[gelöst]anderen Channel auflegen und für VIP-Anruf freimachen (Channelname auslesen)

Tippfehler

IPPF-Promi
Mitglied seit
14 Sep 2004
Beiträge
3,271
Punkte für Reaktionen
29
Punkte
48
Hallo, ich hoffe, dass hier Jemand mitliest, der mir weiter helfen kann.

Mein Problem ist, dass ich manchmal Gespräche über ein GSM-Gateway mit nur einem Kanal weiterreiche. Wenn das Gateway belegt ist, bekommt jeder weitere Anrufer ein Besetztzeichen, bzw. landet auf dem AB. Eine Anklopffunktion habe ich nicht gefunden.
Jetzt kommt es aber manchmal vor, dass ich auf einen sehr wichtigen Anruf warte, z. B. Türklingel, für die der AB oder das Besetztzeichen manchmal ungeeignet sind.
Jeden anderen Anrufer kann ich zurückrufen oder er ruft mich nochmal an, bei Handytelefonaten ist es ja nicht ungewöhnlich, dass das Gespräch manchmal plötzlich endet.
Optimal wäre es, wenn bei einen VIP-Ruf der erste Anrufer in eine Warteschleife kommt und nach dem VIP-Ruf wieder zurück zu mir. Das scheint mir aber kaum möglich zu sein.
Eine einfachere Lösung wäre, wenn einfach mein Gateway-Channel (z. B. SIP/788 ) aufgelegt wird und dann der VIP-Ruf auf SIP/788 reinkommen kann.
Im Dialplan kann ich das z. B. machen mit:
Code:
exten => ...,n,SoftHangup(SIP/778-00679b98)
Das Problem ist, dass sich die ID jedes Mal ändert und ich sie nicht in eine Variable bekomme, mit der ich sie weiterverabeiten kann.
wonder75 scheint schon weiter zu sein:
Also hole ich mir in einem ersten Schritt den kompletten Channelnamen des Calls...
Code:
@$chan_to_hangup=exec("sudo /usr/sbin/asterisk -rx \"core show channels\" | grep SIP/soft | cut -d\" \" -f1");

Ich habe danach den kompletten Channelnamen des aktuell laufenden Calls und kann diesen jetzt mit einem soft hangup killen:

Code:
@$sysmessage=exec("sudo /usr/sbin/asterisk -rx \"soft hangup $chan_to_hangup\"");
Leider funktioniert das so nicht mit Asterisk auf der Fritzbox.
Kann mir hier Jemand den ersten Teil für die Fritzbox übersetzen / anpassen?
 
Zuletzt bearbeitet:
Auf der FBF befindet sich das Asterisk-Binary unter "/bin/asterisk", d.h.
Code:
sudo /usr/sbin/asterisk -rx
sollte via
Code:
/bin/asterisk -rx
ersetzt werden.

"sudo" sollte nicht benötigt werden.

Gruß
Ibo
 
Danke für die schnelle Antwort.

aus dieser Zeile:
Code:
@$sysmessage=exec("sudo /usr/sbin/asterisk -rx \"soft hangup $chan_to_hangup\"");
habe ich diese hier gemacht:
Code:
exten => ...,n,SoftHangup(${chan_to_hangup})
Das scheint soweit auch zu funktionieren.
Aber wie bekomme ich aus dieser hier eine Asterisk-Zeile mit exten => ...?
Code:
@$chan_to_hangup=exec("/bin/asterisk -rx \"core show channels" | grep SIP/778 |") cut -d\" \" -f1")
Ich habe es auch schon per Batchdatei, bzw. direkt auf der Linuxkonsole probiert.
Leider bekomme ich außer syntax error nichts zu sehen.
Entschuldigt bitte meine Unkenntnis.
 
Folgende Anweisung müsste funktionieren, um die Channel-ID mittels Asterisk-Console auf der FBF zu ermitteln:
Code:
/bin/asterisk -rx "core show channels" |sed "s,\(SIP/[^ ]*\)\ \(.*\),\1,"

Gruß
dynamic
 
Wo muß ich die SIP/778 eingeben?
Wenn ich auf der Konsole eingebe

/bin/asterisk -rx "core show channels" |sed "s,\(SIP/778*\)\ \(.*\),\1," > test

bekomme ich in test die komplette Ausgabe, aber keinen Channelnamen alleine.
Dann schon das nächste Problem:
Wenn es geht, müßte ich es noch irgendwie in den Dialplan einbauen, bzw. diese Ausgabe zu einer Globalvar in Asterisk machen.
 
Code:
/bin/asterisk -rx "core show channels" |sed "s,\([COLOR=Red][B]SIP/778[/B][/COLOR][^ ]*\)\ \(.*\),\1,"
 
Danke, aber es gibt immer noch die selben Probleme.
Code:
/bin/asterisk -rx "core show channels" |sed "s,\(SIP/772[^ ]*\)\ \(.*\),\1," >test
ergibt:
test schrieb:
Channel Location State Application(Data)
SIP/777-0061f750 (None) Up AppDial((Outgoing Line))
SIP/772-0067c230
2 active channels
1 active call
Ich hätte aber gerne als Ergebnis:
test schrieb:
 
OK ... da fehlt noch der grep auf "SIP/77x", also:
Code:
/bin/asterisk -rx "core show channels" | grep SIP/772 | sed "s,\([^ ]*\)\ \(.*\),\1,"
 
Danke, perfekt, so funktioniert es:
killchan.sh schrieb:
/bin/asterisk -rx "soft hangup `/bin/asterisk -rx "core show channels" | grep SIP/772 | sed "s,\([^ ]*\)\ \(.*\),\1,"`"
 
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.