SIP URI mit Asterisk wählen

Eine SIP-URI sieht vom Aufbau her aus wie eine Email-Adresse, fungiert aber eher als eine „Telefonnummer“ im VoIP-Netz. Also könnte ich zum Beispiel „Rob@zero0ne.de“ als Telefonnummer angeben. Wenn ich für meine Domain die entsprechende SIP-Lösung installiert hätte. Dies geht aber rel. leicht mit Asterisk. Dazu macht man sich einfach eine subdomain „sip.zero0ne.de“ und dann auf die SLD ein SRV-Eintrag mit dem Verweis auf die Subdomain auf den Port 5060.

Um mit Asterisk eine SIP-URI zu wählen, sollte der ausgehende Context ungefähr so aussehen:

exten => _[a-z].,1,NoOp(trunkuri start! ${EXTEN}@${SIPDOMAIN})
exten => _[a-z].,2,Dial(SIP/${EXTEN}@${SIPDOMAIN})
exten => _[a-z].,3,Congestion()
exten => _X.,1,NoOp(trunkuri start! ${EXTEN}@${SIPDOMAIN})
exten => _X.,2,Dial(ZAP/g1/${EXTEN})
exten => _X.,3,Congestion()

Das Pattern „_[a-z].“ fängt hierbei alle „gewählten“ Buchstaben ab und setzt es dann, wenn eine SIPDomain mitgeliefert wurde in ein Dial-Kommando zusammen. Würde man dies nicht so schreiben, würde Asterisk versuchen, den Teil vor dem @ als lokale Extension zu werten und den Rest verwerfen. So wird nun aber rausgewählt.

Das zweite Pattern mit „_X.“ fängt dann alle Zahlen auf die gewählt wurden, also falls man doch mal eine herkömmliche Telefonummern wählen mag. In diesem Beispiel wird dann über „ZAP“ (neuerdings DAHDI) rausgewählt, also über das ISDN-Netz.

So, nun können wir rauswählen. Aber man will ja auch mal angerufen werden. Also nun noch die Anpassung für den eingehenden Context. Dort sollte man sich nun die Extensions hinzufügen, die man in der URI vor dem @ angeben möchte.

exten => rob, 1, Dial(SIP/Rob_phone,50,tThHr)

Wobei hier der Extensionname „rob“ ist und das Kommando dann, wenn die Extension angesprochen wird, Dial. Also würde mein Telefon dann klingeln.

Nun sollte man eigentlich von aussen erreichbar sein und selbst auch rauswählen können!