[Gelöst] Besetztzeichen wenn Extension telefoniert

cptkrabbe

Neuer User
Mitglied seit
5 Jan 2017
Beiträge
16
Punkte für Reaktionen
0
Punkte
1
Hallo!

Im Augenblick sieht mein Wählplan so aus, dass wen eine Extension angerufen wird, und an dieser nicht geantwortet wird, nach 40 Sekunden alle anderen Extensions klingeln. So kann ich auch im oberen Zimmer ans Telefon gehen, weil ich das untere nicht gehört habe.
Code:
exten => 100,1,Dial(PJSIP/100,40)
same => n,Dial(PJSIP/100&PJSIP/200&PJSIP/300,60)
same => n,Voicemail(100,su)
same => n,Hangup

Das Problem ist, ich möchte eigentlich lieber, das der Anrufer ein Besetzt-Zeichen hört, wenn er auf der 100 anruft und ich dort gerade telefoniere. Wenn ich im Telefon "Call-Waiting" deaktiviere, spring Asterisk gleich in die nächste Zeile und ruft die 200 und 300 an. Wie schaffe ich es, die Funktionalität zu behalten, dass ein Anruf nach 40 Sekunden Nicht-Annahme an die anderen Extensions weitergeleitet wird, aber wenn diese Extension besetzt ist, auch tatsächlich dem Anrufer ein formschönes "tut tut tut" zukommen zu lassen?

Viele Dank schon einmal!

PS: Der Diaplan da oben, muss ich in der zweiten Zeile eigentlich die 100 wieder mit angeben, oder wird die auch nach den ersten 40 Sekunden weiter angerufen?
(Ihr seht schon, ich bin Anfänger, aber so langsam lerne ich was ;) )
 
Zuletzt bearbeitet:
Dial setzt die Variable DIALSTATUS, diese kann man anschließend auswerten. Im Falle von Besetzt bekommt sie den Wert BUSY, das heißt Du könntest zB. direkt nach dem ersten Dial ein
same => n,ExecIf($[${DIALSTATUS}=BUSY]?Hangup(17))
machen.

same bedeutet gleiches Muster wie die Zeile davor, Dein Dialplan ist also völlig in Ordnung so.
 
Ok, vielen Dank, ich probiere das nach Feierabend mal aus. Anstatt Hangup(17) könnte auch Playback(tt-monkeys),Hangup da stehen? Wofür steht die 17?
Und mit dem Dialplan, ich meinte ob ich in der zweiten Zeile ebenfalls Dial(PJSIP/100) schreiben muss, oder wird die 100 wegen der ersten Zeile weiterklingeln?
 
Anstatt Hangup(17) könnte auch Playback(tt-monkeys),Hangup da stehen?

ExecIf verträgt nur eine application als Argument. Wenn Du mehrere ausführen willst musst Du stattdessen mit GotoIf irgendwo hin springen, wo das dann alles abläuft.

Wofür steht die 17?

Die 17 ist der hangup cause für besetzt. Dadurch meldet Asterisk ein SIP 486 zurück, damit der Provider auch weiß, dass Du auflegst weil Du besetzt bist.

ich meinte ob ich in der zweiten Zeile ebenfalls Dial(PJSIP/100) schreiben muss, oder wird die 100 wegen der ersten Zeile weiterklingeln?

Achso, nein die 100 wird nicht weiter klingeln, der Channel in Richtung 100 wird nach dem Timeout beendet. Du musst die 100 im nächsten Dial noch einmal neu mit anrufen, so wie Du es oben hast.

Das führt allerdings dazu, dass Du nach den 40 Sekunden immer einen Anruf in Abwesenheit auf dem Telefon 100 stehen hast, auch wenn Du nachher dran gehst. Umgehen könnte man das mit einer sogenannten Nachschaltung.

Lässt heutzutage noch jemand länger als 40 Sekunden läuten? :noidea:
 
Moin

"ExecIf() verträgt nur eine application als Argument"
:!: Eigentlich Zwei: ?trueapplication:falseapplication
Demnach könnte das zweite Dial() die "falseapplication" sein.
Code:
exten => 100,1,Dial(PJSIP/100,40)
same => n,ExecIf($[${DIALSTATUS}=BUSY]?Hangup(17):Dial(PJSIP/100&PJSIP/200&PJSIP/300,60))

"...musst Du stattdessen mit GotoIf"
:!: Goto() und GotoIf() sind auch nur Applikationen
...und können "stattdessen" im ExecIf() benutzt werden...
Code:
exten => 100,1,Dial(PJSIP/100,40)
same => n,ExecIf($[${DIALSTATUS}=BUSY]?Goto(labeliftrue):Goto(labeliffalse))
 
Zuletzt bearbeitet:
Code:
[COLOR=#333333]same => n,ExecIf($[${DIALSTATUS}=BUSY]?Hangup(17))[/COLOR]
macht jetzt erstmal genau das, was ich wollte. Vielen Dank, rentier-s. Danke auch koyaanisqatsi, sobald ich meine anderen Probleme gelöst habe, guck ich mir das noch mal an!
 
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.