Sorry für die Überschrift, aber ich kanns grad in der kürze nicht besser Beschreiben.
Hier die lange Version:
Ich habe eine SIP fähige Sprachanlage vor der Haustür. Drückt jemand auf den Klingeltaster, so wird "drinnen angerufen".
Oftmals ist aber der Weg zur Tür kürzer als zum Telefon, weswegen ich, gesteuert über einen Türkontakt den Anruf forciert beende. Dazu überwache ich den Türkontakt und triggere per Shellscript dann ggf. ein
Wobei NUMBER=1000 die interne Rufnummer der SIP-Türklingel ist.
Das funktioniert auch. Es hört drinnen spontan auf zu klingeln. Aber vor der Haustüre kommt noch ein "tuut, tuut, tuut" als Quittungston dass der Anruf abgebrochen wurde.
Das ist irgendwie nervig und der der vor der Tür steht wunder sich immer. Ich kann aber die SIP-Klingel auch nicht passend umkonfigurieren so dass der Quittungston nicht mehr kommt. Ich muss das also über Asterisk lösen.
Ich stochere aktuell noch im dunkeln. Die Frage die sich mir stellt ist: Kann ich per Kommandozeile den Anruf so beenden, dass die SIP-Türklingel mein sie hätte mit dem Anruf Erfolg gehabt und der Anruf wurde sauber beendet?
Also quasi ein gescriptetes "Anruf entgegen nehmen und sofort geordnet beenden", aber eben ohne Beteiligung des angerufenen Endgeräts?
Nur so ein Gedanke: Gespräch ad-hoc auf einen Dummy-Teilnehmer der von Asterisk kontrolliert werden kann umleiten, per script abnehmen und gleich auflegen... sowas in der Art.
Any ideas?
Gruß
Alex
Hier die lange Version:
Ich habe eine SIP fähige Sprachanlage vor der Haustür. Drückt jemand auf den Klingeltaster, so wird "drinnen angerufen".
Oftmals ist aber der Weg zur Tür kürzer als zum Telefon, weswegen ich, gesteuert über einen Türkontakt den Anruf forciert beende. Dazu überwache ich den Türkontakt und triggere per Shellscript dann ggf. ein
Code:
#!/bin/sh
NUMBER=1000
CHANNEL=`/usr/sbin/asterisk -rx "core show channels" | grep "SIP/$NUMBER-" | grep "Ring" | cut -f1 -d" "`
if [ -n "$CHANNEL" ]
then
echo "Will hangug ringing channel '$CHANNEL'"
/usr/sbin/asterisk -rx "channel request hangup $CHANNEL"
else
echo "Channel with number $NUMBER is not ringing. No hangup required."
fi
Wobei NUMBER=1000 die interne Rufnummer der SIP-Türklingel ist.
Das funktioniert auch. Es hört drinnen spontan auf zu klingeln. Aber vor der Haustüre kommt noch ein "tuut, tuut, tuut" als Quittungston dass der Anruf abgebrochen wurde.
Das ist irgendwie nervig und der der vor der Tür steht wunder sich immer. Ich kann aber die SIP-Klingel auch nicht passend umkonfigurieren so dass der Quittungston nicht mehr kommt. Ich muss das also über Asterisk lösen.
Ich stochere aktuell noch im dunkeln. Die Frage die sich mir stellt ist: Kann ich per Kommandozeile den Anruf so beenden, dass die SIP-Türklingel mein sie hätte mit dem Anruf Erfolg gehabt und der Anruf wurde sauber beendet?
Also quasi ein gescriptetes "Anruf entgegen nehmen und sofort geordnet beenden", aber eben ohne Beteiligung des angerufenen Endgeräts?
Nur so ein Gedanke: Gespräch ad-hoc auf einen Dummy-Teilnehmer der von Asterisk kontrolliert werden kann umleiten, per script abnehmen und gleich auflegen... sowas in der Art.
Any ideas?
Gruß
Alex