Channel killen - wie channel ID rausfinden?

rlexa

Neuer User
Mitglied seit
11 Aug 2005
Beiträge
21
Punkte für Reaktionen
0
Punkte
0
Servus Gemeinde!

Ich möchte aus einem Skript heraus in Asterisk ein Channel runterfahren lassen. Ich habe den Clientnamen und kann entsprechend in der Konsole "soft hangup SIP/client..." mit TAB vervollständigen lassen, aber wie mache ich das aus einem Skript heraus? Ich habe keinen Asterisk Befehl gefunden, mit dem ich diese kurze ChannelID sehen bzw. rausfiltern könnte. Oder kann ich vielleicht das <TAB> für die Vervollständigung übergeben?

Danke schö!
 
Wie waere es mit 'show channels'?
 
Jawohl das tut`s, bin beschämt und niedergeschlagen (hab nur SIP Befehle angeschaut)... Jetzt aber: wie filtere ich den Channel heraus? Cut funktioniert nicht, anscheinend sind nicht TABs als Delimiter verwendet worden...
 
Damit sollte es gehen:

Code:
asterisk -rx 'show channels' | xargs -n1 | grep 'SIP/xy'
 
@rlexa

Darf man wissen wofür das benötigt wird?

Gruß
britzelfix
 
Hmm werde die Lösung morgen probieren, danke!

Warum das ganze:
Wenn eine MDA - WLAN - SIP Verbindung steht und das MDA sich ausm WLAN entfernt, merkt das komischerweise nur Asterisk, der Kanal steht offen. Also hab ich jetzt ein Skript geschrieben, um das UNREACHABLE des MDAs zu erkennen und will den ggf. offenen zugehörigen channel schließen.
 
@rlexa

Akso. Einen PDA kenn ich noch, aber was ist ein MDA?

Gruß
britzelfix
 
Das ist das MDAIII der TMobile. Unterscheidet sich insoweit von MDAII dass er eine WLAN-Schnittstelle besitzt - die ich eben für einen SIP Client nutze...
 
nettes Ding.

Gruß
britzelfix
 
OK der Tipp mit xargs hat super funktioniert:

otpt4="$(/usr/sbin/asterisk -rx 'show channels' | grep Dial | xargs -n1 | grep $peername)"

bringt mir einen Channel in otpt4. Jetzt muß ich ihn noch schließen und stoße wieder auf Probleme...

/usr/sbin/asterisk -rx 'soft hangup SIP/xxxx-db01'

...funktioniert von der Konsole aus aber...

otpt3="$(/usr/sbin/asterisk -rx 'soft hangup $otpt4')"

...aus dem Skript funktioniert nicht!
 
Zwischen einfachen Anfuehrungszeichen werden keine Variablen ausgewertet. Versuchs mal damit:

Code:
otpt3="$(/usr/sbin/asterisk -rx "soft hangup $otpt4")"
 
Yey das funzt!

Vielen Dank an die fähigen Helfer!

:)
 
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.