Projekte: Netzsprecher in oeffentlicher beta
Im Blog war es leider die letzte Zeit sehr ruhig
Das liegt daran, das ich momentan sehr eingespannt bin bei einigen Projekten. Eines davon ist jetzt (endlich) in der offenen Beta. TATAAAA Tusch, der netzsprecher ist da. Endlich mal ein asterisk, der ja auch im titel des blogs vorkommt.
Worum gehts?
Das Ganze ist eine art speakers corner im Internet, allerdings nicht ganz offen. Die README’s und FAQ’s beim Netzsprecher waren nicht meine Aufgabe. Da ich weiss worum es geht kann ich sie inhaltlich nicht wirklich beurteilen. Ich hoffe sie helfen trotzdem weiter.
Mein Anteil an der Geschichte ist technischer Natur.
!!!BEGIN Technik und Fachausdruecke BEGIN!!!
Das bedeutet ich habe den asterisk aufgesetzt und den dialplan zum grossen Teil geschrieben. Im Laufe des Projekts kam noch der opensips als SIP Proxy hinzu um genattete Klienten besser einbinden zu können. Eine nagios Installation überwacht die fuer das Projekt notwendigen Telefonie- und Webserver.
Im Lauf des Projektes sind eine Menge technischer Herausforderungen wie z.B. das voiceblog oder die Whitelabeling moeglichkeit hinzugekommen. Die investierte Zeit hat sich gelohnt, denn der netzsprecher ist im Laufe des Projektes multidomainfaehig geworden und ich habe eine Menge ueber SIP-Fehlermeldungen gelernt.
!!!END Technik und Fachausdruecke END!!!
Aber es laeuft und jeder kann sich registrieren und das ganze nutzen.
Die netzsprecher dienste koennen auch fuer andere domains zur verfuegung gestellt werden und eine weitere installation ist in Planung.
Die ersten geier stellen mein sicherheitskonzept auch schon auf die Probe. Allerdings erzaehlt ihnen Kyra, die stimme des Netzsprechers, im von mir geschriebene KILLCONTEXT das es nicht weitergeht und das Ganze funktioniert wunderbar inklusive eintrag im cdr das was schieflief.
!!!BEGIN Technik und Fachausdruecke BEGIN!!!
Wer es mal brauchen kann:
ich weiss nicht mehr woher ich das code snippet habe auf dem das ganze beruht, big KUDOS an den urspruenglichen autor. der KILLCONTEXT wird als letzter kontext im Dialplan eingebunden und per
exten => i,1,GoSub(KILLCONTEXT,_X.,1)
oder
exten => i,1,GoSub(KILLCONTEXT,_X.,invalid_input)
im jeweiligen Kontext in die invalid extension eingebunden.
[KILLCONTEXT]
;alles abfangen, was nicht existiert bzw. es bis hierher geschafft hat ![]()
;MUSS als letzter context eingebunden werden
exten => _X.,1,Answer()
exten => _X.,n,wait(.5)
;cdr eintragen
exten => _X.,n,Set(CDR(userfield)=${CDR(userfield)} to ${EXTEN} in KILLCONTEXT)
;+++++++++++++++++sprachdatei++++++++++++++++
exten => _X.,n(invalid_input),Playback(invalid_input)
exten => _X.,n,Hangup()
exten => i,1,Hangup()
exten => h,1,Hangup()
!!!END Technik und Fachausdruecke END!!!
meine netzsprechernummer ist uebrigens 900007.
so long
arnd
