Alternative Rufumleitung/ Fake-Agents für Snoms

tomster

Mitglied
Mitglied seit
6 Dez 2004
Beiträge
238
Punkte für Reaktionen
0
Punkte
0
Nachdem ich gerade einen Heimarbeitsplatz für eine unserer Sekretärinnen (gleichzeitig Telefonzentralistin) einrichten muss, dachte ich, dass es doch auch prima wäre, wenn sie unsere Anrufe weiterhin beantworten könnte, wenn auch von zu Hause aus. Dazu stelle ich ihr daheim einfach ein Snom 360 hin, welches per VPN am Büronetz hängt.

Also hab ich mich mal ein bisschen umgeschaut, wie man sowas realisieren könnte. Zunächst dachte ich an queues, wleche aber sofort wieder verworfen wurden, weil ich dann meinen kompletten Dialplan hätte umstricken müssen. Nächste Idee war ein dynamischer Dialplan, soll heissen dass die entsprechende Extension je nach An-/ Abmeldung ebenfalls klingelt oder eben nicht. Leider hat dies den Nachteil, dass dann natürlich auch "Missed Calls" nicht auf mehr dem Heimapparat angezeigt werden, weil Anrufe ja dort gar nicht mehr klingeln.

Glücklicherweise bieten die Snom-Telefone aber mannigfaltigste Einstellungsmöglichkeiten auch per http-Befehl. Hierbei ist für meine Lösung die Möglichkeit DND (Do-not-disturb) setzen zu können sicher die Wichtigste. Das hat den Vorteil, dass das Heimtelefon bei Wunsch eben nicht klingelt, "Missed Calls" aber nach wie vor in der Anrufliste stehen.
Damit stehen in meinem Dialplan alle Extensions, die bei einem eingehenden Anruf klingeln sollen. Diejenigen, die nicht aktiv sein sollen, werden eben per DND "mundtot" gemacht.

Zusätzlich sollte der Status dieser "Rufumleitung" von beiden Geräten (Büro-Ext. & Home-Ext.) eingesehen und verändert werden können. Hierzu hab ich auf den Befehl "DevState" gesetzt, weil man damit die LEDs am Snom so schön zum Leuchten bringt. Dazu ist aber der bristuff-Patch nowendig, oder? Nö, ist er nicht. Ich habe auf http://www.vecsector.com/phonecall/valet/ eine solitäre app_devstate.so gefunden (eigentlich für 1.2.9), die durch einfaches kopieren in den apps-Folder meines 1.2.17 prima funzt. Source ist dort auch angegeben, wenn's einer braucht.
Mit diesem Kniff hatte ich ein funktionierendes DevState auf meinem Asterisk, ohne langes bristuff-gepatche. Aber zurück zum eigentlichen Thema.

Um nicht lange erklären zu müssen, hier der Ausschnitt aus meinem Dialplan:
Code:
exten => MSN,1,Dial,SIP/10&SIP/11&SIP/12
...
exten => 920,hint,DS/920
exten => 920,1,Set(HOME=${DB(home/status)})
exten => 920,2,GotoIf($[ ${HOME} = 1 ]?10:20)
exten => 920,10,Set(DB(home/status)=2)
exten => 920,11,DevState(920,0)
exten => 920,12,TrySystem(wget -qb -O /dev/null -o /dev/null "http://[login]:[passwd]@[Telefon-IP]/dummy.htm?settings=save&dnd_mode=on")
exten => 920,13,playback,home-inaktiv
exten => 920,14,HangUp()
exten => 920,20,Set(DB(home/status)=1)
exten => 920,21,DevState(920,2)
exten => 920,22,TrySystem(wget -qb -O /dev/null -o /dev/null "http://[login]:[passwd]@[Telefon-IP]/dummy.htm?settings=save&dnd_mode=off")
exten => 920,23,playback,home-aktiv
exten => 920,24,HangUp()
...
Wie man erkennen kann, klingeln bei einem eingehenden Anruf zunächst alle 3 Telefone (SIP 10,11,12). Wenn aber das Script den Heim-Apparat auf DND gesetzt hat, dann klingelt's dort einfach nicht, der Anruf (so nicht beantwortet) landet aber dennoch in der Anrufliste des Geräts. Die Anzeige ob die "Umleitung" aktiv ist übernimmt devState. Dazu hab ich auf dem Heimgerät/ Büro-Pendant einfach eine Nebenstelle 920 auf eine Funktionstaste gelegt. Somit sieht man sofort ob, die Umleitung angeschalten ist und kann sie durch simplen Tastendruck von beiden Geräten aus (de)aktivieren.

Mit diesem Ansatz (zugegeben, etwas von Hinten-durch-die-Brust-in's-Auge), kann man auch relativ leicht "Fake-Agents" einrichten, die sich mit einem Tastendruck an- und abmelden lassen. Natürlich nicht mit voller queue-Funktionalität, aber dafür auch nur mit einem Bruchteil an Konfigurationsaufwand.

Danke an HobbyStern und http://www.voip-info.org/wiki/view/Asterisk+phone+snom für die Denkanstösse.

Grüße
TOM