Contact ID over IP (CID) / Webserver
|
26-05-2016, 09:29
Beitrag: #8
|
|||
|
|||
RE: Contact ID over IP (CID) / Webserver
Ich habe das (mangels PHP-Kentnissen) mit einem relativ simplen bash-Script gelöst. Läuft absolut zuverlässig auf meinem Raspberry.
Voraussetzungen: - Raspberry Pi mit Asterisk (ich selber verwende IncrediblePBX) - im Lupus-Panel wird unter "Contact-ID" eingetragen: rptn://YYYY@IP_des_Raspberry:YYYY # YYYY = frei wählbarer Port, auf dem der Raspberry lauscht; möglichst oberhalb 1023, da ansonsten root-Rechte nötig sind auf dem Raspberry: 1. Bash-Script "/root/Alarm.sh" #!/bin/bash while true # Endlosschleife, da diese Bedingung IMMER erfüllt ist do nc -l -p YYYY < /root/Antwort.txt > /tmp/contact_id.log # Raspberry lauscht mittels netcat auf dem gewählten Port YYYY und sendet bei eingehenden Nachrichten als Antwort den Inhalt der Datei "/root/Antwort.txt" # die eingehende Contact-ID-Nachricht wird in der Datei "/tmp/contact_id.log" gespeichert if cat /tmp/contact_id.log | grep -q "1130" # diese Log-Datei wird ständig auf das Vorhandensein einer bestimmten Zahlenkombination geprüft # im Falle einer Meldung wird von XT1 z. B. gesendet: "YYYY 181130000016613" (Syntax der Contact-ID-Meldungen googeln bzw. austesten) then datei=$(date +%s%N) # Sekunden und Nanosekunden seit 1970, um eindeutigen Dateinamen für das Callfile "datei" zu erhalten echo "Channel: local/<Zielnummer>@from-internal\nMaxRetries: <number>\nRetryTime: <number>\nWaitTime: <number>\ncontext: Alarm\nextension: s\npriority: 1\nSet: MSG=Alarmtext1" > /tmp/$datei.call # jetzt wird im Verzeichnis "/tmp" ein Asterisk-Callfile angelegt, in dem festgelegt wird, welche Telefonnummer angerufen und welche Sprachnachricht vorgespielt werden soll # "\n" = Zeilenumbruch # "context" sowie "extension" je nach eigener Asterisk-Konfiguration evtl. anpassen # MaxRetries: <number> Die Anzahl der weiteren Wählversuche (falls besetzt oder nicht erreichbar) # RetryTime: <number> Die Anzahl an Sekunden, die bis zum nächsten Wählversuch gewartet wird (Defaultwert 300 Sekunden) # WaitTime: <number> Die Anzahl an Sekunden, die das System auf die Annahme des Anrufs warten soll # "MSG": Name der Audio-Datei mit der gewünschten Sprachnachricht (passend zu Contact-ID "1130") (ohne die Dateiendung!) (Asterisk kann bzgl. Datenrate nur ganz bestimmte Audio-Formate verwenden !) # diese Audio-Datei (z. B. "Alarmtext1.wav") muß bei meiner Asterisk-Version im Verzeichnis "/var/lib/asterisk/sounds/custom" abgelegt werden; evtl. anpassen! mv /tmp/$datei.call /var/spool/asterisk/outgoing/ # jetzt wird das fertige call-file verschoben von "/tmp" in "/var/spool/asterisk/outgoing/" und von Asterisk sofort ausgeführt fi # je nach Bedarf können jetzt noch zusätzlich bei anderen Contact-ID-Meldungen (statt "1130" z. B. "XXXX") weitere call-files mit den passenden Audio-Dateien "Alarmtext2" usw. erzeugt werden if cat /tmp/contact_id.log | grep -q "XXXX" then datei=$(date +%s%N) echo "Channel: local/<Zielnummer>@from-internal\nMaxRetries: <number>\nRetryTime: <number>\nWaitTime: <number>\ncontext: Alarm\nextension: s\npriority: 1\nSet: MSG=Alarmtext2" > /tmp/$datei.call mv /tmp/$datei.call /var/spool/asterisk/outgoing/ fi done 2. Rechte des Scriptes ändern: chmod 755 /root/Alarm.sh 3. die als Antwort an die XT1 gesendete Datei "/root/Antwort.txt" erstellen und speichern: nano /root/Antwort.txt XX # Inhalt ist völlig beliebig; ein einzelner Buchstabe / eine Zahl reicht 4. das Script mit jedem Neustart des raspberry durch einen Eintrag in die Datei "/etc/crontab" ausführen: echo "@reboot root sh /root/Alarm.sh > /dev/null &" >> /etc/crontab 5. Minimalkonfiguration der Extension "Alarm": [Alarm] exten => s,1,Answer exten => s,2,Wait(2) exten => s,n,Playback(custom/${MSG}) exten => s,n,Hangup ;--== end of [Alarm] ==--; |
|||
|
Nachrichten in diesem Thema |
Contact ID over IP (CID) / Webserver - Schmupu - 28-01-2016, 19:52
RE: Contact ID over IP (CID) / Webserver - icyMEDIA - 30-01-2016, 00:52
RE: Contact ID over IP (CID) / Webserver - Schmupu - 30-01-2016, 07:38
RE: Contact ID over IP (CID) / Webserver - icyMEDIA - 08-02-2016, 12:26
RE: Contact ID over IP (CID) / Webserver - Schmupu - 09-02-2016, 21:53
RE: Contact ID over IP (CID) / Webserver - Torte - 17-05-2016, 11:36
RE: Contact ID over IP (CID) / Webserver - Michael27 - 16-05-2016, 10:44
RE: Contact ID over IP (CID) / Webserver - asteriskuser - 26-05-2016 09:29
RE: Contact ID over IP (CID) / Webserver - Torte - 26-05-2016, 10:40
RE: Contact ID over IP (CID) / Webserver - Joezi19 - 18-08-2016, 12:44
RE: Contact ID over IP (CID) / Webserver - asteriskuser - 28-08-2016, 08:14
|
Möglicherweise verwandte Themen... | |||||
Thema: | Verfasser | Antworten: | Ansichten: | Letzter Beitrag | |
LUPUSEC XT-1 DynDns Webserver Port Einstellung | izapper | 10 | 26.190 |
13-01-2014 17:24 Letzter Beitrag: Tomsec |
Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste