- Mitglied seit
- 3 Jul 2013
- Beiträge
- 48
- Punkte für Reaktionen
- 10
- Punkte
- 8
Seit Ende letzte Jahres betreibe ich ein Cisco 7975 IP Phone an meiner 7270v3 Fritzbox und bin soweit eigentlich recht zufrieden (siehe dazu auch meinen vorheriges HOWTO dazu). Einziges Ärgernis ist jedoch, dass bei anstehenden AB-Nachrichten, keine Signalisierung im Display (Briefumschlag) und Hörer (rote LED) erfolgt.
Grund dafür schient ein nicht-standardkonfomes Verhalten des Cisco-IP-Phones zu sein (Phone sendet keine Subscription an den SIP-Server). Trotzdem wollte ich dieses Manko nicht einfach so hinnehmen und hab mich auf die Suche nach einer Lösung gemacht. Das folgende Skript basiert auf meiner im vorherigen Thread beschriebenen Lösung mit Freetz und läuft seit ein paar Tagen sehr zufriedenstellend auf meiner Box.
Nötig ist dazu, dass man sich aus dem aktuellen Freetz-Trunk das Binary sipsak (SIP-Swiss Army Knife) besorgt bzw. mit ins Image einbaut, damit das Skript einen SIP-Notify versenden kann
Mit folgendem Skript vm_monitor.sh, das über die rc.custom gestartet wird, wird im Hintergrund der Status der AB-Nachrichten gemonitort und bei Aktualisierung eine entsprechende SIP-Notify Message ans Cisco-IP-Phone gesendet.
Unbedingt benötigt wird das Binary sipsak (SIP Swiss Army Knife). Dieses ist in der Version 0.9.6 im aktuellen freetz-trunk enthalten und muss beim Build, des Images ausgewählt werden.
In der rc.custom muss das Skript wie folgt zum Starten eingetragen werden (Pfad zur Voicebox und zum Skript müssen entsprechend angepasst werden):
In der SEP<MAC-Adresse>.cnf.xml
lautet der zugehörige Eintrag:
Grund dafür schient ein nicht-standardkonfomes Verhalten des Cisco-IP-Phones zu sein (Phone sendet keine Subscription an den SIP-Server). Trotzdem wollte ich dieses Manko nicht einfach so hinnehmen und hab mich auf die Suche nach einer Lösung gemacht. Das folgende Skript basiert auf meiner im vorherigen Thread beschriebenen Lösung mit Freetz und läuft seit ein paar Tagen sehr zufriedenstellend auf meiner Box.
Nötig ist dazu, dass man sich aus dem aktuellen Freetz-Trunk das Binary sipsak (SIP-Swiss Army Knife) besorgt bzw. mit ins Image einbaut, damit das Skript einen SIP-Notify versenden kann
Mit folgendem Skript vm_monitor.sh, das über die rc.custom gestartet wird, wird im Hintergrund der Status der AB-Nachrichten gemonitort und bei Aktualisierung eine entsprechende SIP-Notify Message ans Cisco-IP-Phone gesendet.
Code:
#!/bin/bash
# SIP settings: USER, IP_PHONE und SIP_SERVER etc. hier anpassen
USER="620"
IP_PHONE="192.168.178.10"
SIP_SERVER="192.168.178.1"
SIP_PORT=5060
SIP_FROM="FRITZ!Box"
LAST=$( ctlmgr_ctl r tam settings/TAM0/NumNewMessages )
while test 1; do
NEW_MESSAGES=$( ctlmgr_ctl r tam settings/TAM0/NumNewMessages )
if test "$LAST" != "$NEW_MESSAGES"; then
OLD_MESSAGES=$( ctlmgr_ctl r tam settings/TAM0/NumOldMessages )
TOTAL_MESSAGES=$(($NEW_MESSAGES + $OLD_MESSAGES))
if [ "$NEW_MESSAGES" != "0" ]; then
HAS_NEW="yes"
else
HAS_NEW="no"
fi
CONTENT_LENGTH=$(( 34 + ${#HAS_NEW} + ${#NEW_MESSAGES} + ${#OLD_MESSAGES} ))
RAND=$( awk 'BEGIN { srand(); print(int(rand()*1000000)) }' )
SEQUENCE=$( printf "%06d" $RAND )
(
cat <<-EOM
NOTIFY sip:${USER}@${IP_PHONE} SIP/2.0
From: <sip:${SIP_FROM}@${SIP_SERVER}>
To: <sip:${USER}@${IP_PHONE}>
Contact: <sip:${USER}@${SIP_SERVER}>
Call-ID: ${SEQUENCE}@${SIP_SERVER}
CSeq: ${SEQUENCE} NOTIFY
Event: message-summary
Content-Type: application/simple-message-summary
Content-Length: ${CONTENT_LENGTH}
Messages-Waiting: ${HAS_NEW}
Voicemail: ${NEW_MESSAGES}/${OLD_MESSAGES}
EOM
) | /usr/bin/sipsak -s sip:${USER}@${IP_PHONE} -f -
LAST=$NEW_MESSAGES
fi
sleep 5
done
exit 0
Unbedingt benötigt wird das Binary sipsak (SIP Swiss Army Knife). Dieses ist in der Version 0.9.6 im aktuellen freetz-trunk enthalten und muss beim Build, des Images ausgewählt werden.
In der rc.custom muss das Skript wie folgt zum Starten eingetragen werden (Pfad zur Voicebox und zum Skript müssen entsprechend angepasst werden):
Code:
#Hintergrund-Überwachung, ob neue Voicemails vorhanden sind.
{
VMDIR="/var/media/ftp/uStor01/FRITZ/voicebox"
while [ ! -d "$VMDIR" ]; do sleep 5; done
sh /var/media/ftp/uStor01/wwwroot/htdocs/cgi-bin/vm_monitor.sh
} &
In der SEP<MAC-Adresse>.cnf.xml
lautet der zugehörige Eintrag:
Code:
<messageWaitingLampPolicy>1</messageWaitingLampPolicy>
Zuletzt bearbeitet: