[Problem] Busy-Abfrage fehlerhaft / nicht möglich? (Asterisk als IP-Nebenstelle hinter Fritz!Box)

suedflughafen

Neuer User
Mitglied seit
3 Sep 2017
Beiträge
37
Punkte für Reaktionen
1
Punkte
8
Aufbau/Situation:
Fritz!Box 7490 mit 3 DECT-Telefonen (Fritz!Fon) und einer IP-Nebenstelle (für den Asterisk)
Telekom-Internet-Anschluss mit 2 Leitungen
Der Asterisk ist an der Fritz!Box angemeldet und bekommt alle eingehenden Anrufe sofort zugewiesen. Der/Die Anrufer haben damit die Möglichkeit zwischen 3 Abteilungen mittels Tastensignal (DTMF) zu wählen und werden daraufhin an das jeweilige DECT-Telefon an der Fritz!Box weitergeleitet/verbunden (**610, **611, **612). Bis hierher funktioniert alles einwandfrei und stabil.
Leider wird man aber auch "weitergeleitet/verbunden", wenn die gewünschte Nebenstelle telefoniert und fliegt damit mit einem Besetzt-Ton aus der Leitung. In der extensions.conf sieht die betreffende Stelle wie folgt aus:

Code:
exten => 1,1,Playback(auswahl1)
exten => 1,n,GoToIf($[ ${DEVICE_STATE(SIP/$**610@Fritzbox)} = BUSY ]?1,1:)
exten => 1,n,Dial(SIP/**610@Fritzbox)

Setzte ich die "1,1" nach dem Doppelpunkt, wird erwartungsgemäß die "auswahl1" in Schleife abgespielt.

Was mache ich falsch? Gibt es evtl. einen Syntax-Fehler oder ist eine derartige "Busy-Abfrage" evtl. überhaupt nicht möglich? Was sollte ich dann abfragen bzw. wie anders könnte ich den gewünschten Effekt erzielen?

Vielen Dank schon mal im Voraus für Ideen & Tipps ...
 
Moinsen


Vermutlich musst du explizit auf einen String testen.
Dazu in Gänsefüßchen einfassen...
Code:
GoToIf($[ "${DEVICE_STATE(SIP/$**610@Fritzbox)}" = "BUSY" ]?1,1:)
...und testen.
Auch mal vorher das Ergebnis mit Verbose() oder NoOp() ausgeben lassen...
Code:
Verbose(1,"${DEVICE_STATE(SIP/$**610@Fritzbox)}")

Und eine Frage: Wofür ist das Dollarzeichen gut? - Hinter: SIP/
 
Das mit den Gänsefüßchen hab ich auch schon überlegt aber noch nicht getestet. Viel "interessanter" dürfte aber tatsächlich das Dollarzeichen vor der Nebenstelle sein, das ich mir aktuell auch nicht erklären kann. :oops:
... werde in Kürze berichten.
 
Teste auch mal, weil vor Audioausgabe der RTP Kanal stehen muss, als erste Priorität: Answer(250)
...schaden kann es jedenfalls nicht ;)
 
Hat es inzwischen geklappt? Wenn nicht, hast Du dieses Regel-Werk irgendwo kopiert; von wo? Vielleicht erklärt das es dann. Mein Tipp: Gib zum Test den DEVICE_STATE z.B. über Verbose aus, bevor Du in vergleichst. Dann siehst Du auf dem Command-Line-Interface, ob Asterisk weiß, dass bereits BUSY vorliegt.

Was genau möchtest Du eigentlich erreichen, was soll passieren, wenn besetzt ist? Ich frage deswegen, weil nicht nur Asterisk sondern auch der User entscheiden kann, ob er gerade besetzt ist. Das nennt sich „Wegdrücken“ bzw. „Abweisen“. Diesen Zustand bzw. SIP-Status erhältst Du erst, nach dem Dial.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.