Unterschiedliche Klingeltöne

Nachfolgend ist ein kleines Beispiel aufgeführt, wie man eine unterschiedliche Signalisierung für interne, externe und Gruppenanrufe realisieren kann. Dabei spielen die Parameter alert_internal_ring_text, alert_external_ring_text und alert_group_ring_text eine Rolle. Über den SIP-Header ist es möglich, eine Signalisierungsinformation mit zu übergeben, auch Alert-Info genannt. Die Telefone erkennen dann über diese Info, ob sie ggfs. eine andere Ruf-Signalisierung nutzen sollen, soweit dies vom Anwender konfiguriert wurde. Dazu muss vor der eigentlichen Anwahl über das Dial()-Kommando der SIPAddHeader()-Befehl abgesetzt werden. Anbei ein entsprechender Auszug aus der extensions.conf Datei.

exten => _2XXX,1,SIPAddHeader("Alert-Info: <http://pbx.apfelmus-gmbh.de>
\;info=alert-internal\;x-line-id=0")
exten => _2XXX,2,Dial(SIP/${EXTEN})

Das Format des SIP-Headers ist vorgegeben, wichtig ist in diesem Fall eigentlich nur der zweite Parameter info=alert-internal . Hier muss einer der drei konfigurierten Texte stehen, an denen das Telefon die Art des Rufes erkennen soll. Welcher Text dort steht, ist eigentlich egal, aber er muss jeweils mit den Werten übereinstimmen, die bei den Telefon-Parametern alert_internal_ring_text, alert_external_ring_text oder alert_group_ring_text übergeben wurden. Es empfiehlt sich, die jeweiligen Default-Werte zu übernehmen.

[Wichtig]

Bitte beachten Sie, dass die Semikolons im Alert-Info mittels "\"-Zeichen maskiert ("gequotet") werden müssen. Ansonsten interpretiert Asterisk alles ab dem ersten Semikolon als Kommentar und der Befehl wird nur unvollständig oder gar nicht ausgeführt.

In der oberen Variante wird davon ausgegangen, dass das Telefon anhand des Info-Parameters selbst entscheidet, welchen Rufton es auswählen muss. Man kann diesen Befehl aber auch dazu nutzen, einen Rufton vorzugeben, indem man eine entsprechende URL angibt, die auf eine Sounddatei verweist.

exten => _2XXX,1,SIPAddHeader(Alert-Info: <http://pbx.apfelmus-gmbh.de/s
nom/sounds/snom_trumpet.wav>)
exten => _2XXX,n,Dial(SIP/${EXTEN})

Es bietet sich an, einfach mit den verschiedenen Möglichkeiten zu experimentieren. Eine Unterscheidung zwischen internen, externen und Gruppenanrufen macht in den meisten Fällen durchaus Sinn.