NEWS
[Aufruf] Asterisk VoIP Adapter
-
Also ich habe es jetzt erstmal soweit hinbekommen das Asterisk auf den eingehenden Anruf antwortet.
Leider bekomme ich aber keine Ansage…
Im CLI kommt folgendes:
== Using SIP RTP CoS mark 5 -- Executing [1000@default:1] Goto("SIP/27062010-00000003", "ael-antwort,10,1") in new stack -- Goto (ael-antwort,10,1) -- Executing [10@ael-antwort:1] Answer("SIP/27062010-00000003", "") in new stack > 0xb4509628 -- Probation passed - setting RTP source address to 192.168.2.1:7082 -- Executing [10@ael-antwort:2] Wait("SIP/27062010-00000003", "1") in new stack -- Executing [10@ael-antwort:3] Set("SIP/27062010-00000003", "repeat=3") in new stack -- Executing [10@ael-antwort:4] Read("SIP/27062010-00000003", "dtmf,/tmp/asterisk_dtmf&beep,0,s,3") in new stack [Jan 2 12:58:52] WARNING[8177][C-00000003]: file.c:774 ast_openstream_full: File /tmp/asterisk_dtmf does not exist in any format [Jan 2 12:58:52] WARNING[8177][C-00000003]: file.c:1100 ast_streamfile: Unable to open /tmp/asterisk_dtmf (format (ulaw)): No such file or directory [Jan 2 12:58:52] WARNING[8177][C-00000003]: file.c:774 ast_openstream_full: File beep does not exist in any format [Jan 2 12:58:52] WARNING[8177][C-00000003]: file.c:1100 ast_streamfile: Unable to open beep (format (ulaw)): No such file or directory -- User disconnected -- Executing [10@ael-antwort:5] GotoIf("SIP/27062010-00000003", "0?6:7") in new stack -- Goto (ael-antwort,10,7) -- Executing [10@ael-antwort:7] NoOp("SIP/27062010-00000003", "Finish if_ael-antwort_4") in new stack -- Executing [10@ael-antwort:8] Hangup("SIP/27062010-00000003", "") in new stack == Spawn extension (ael-antwort, 10, 8) exited non-zero on 'SIP/27062010-00000003'
Die Audiofiles liegen alle im /tmp/ das sollte eigentlich passen.
die Rechte sind -rwxrwxrwx 1 root root 17961 Jan 2 12:46 asterisk_dtmf.mp3 `
Hallo,
die Datei muss die Endung gsm und im gsm format dort liegen. D.h. /tmp/asterisk_dtmf.gsm . Du kannst versuchen die Datei über https://convertio.co/de/mp3-gsm/ einmal von mp3 nach gsm zu konvertieren oder Du versuchst es über den Befehl:
sendTo('asterisk.0', 'dial', { telnr: '0172xxxxxxx', text: 'Das ist ein Test!' });
VG
Thorsten
-
Super, das mit dem convertieren hat geklappt.
Wenn ich jetzt aus einem Script heraus das probiere geht leider noch kein Anruf raus:
asterisk.0 2019-01-02 13:53:34.592 debug sendTo "dial" to system.adapter.javascript.0 from system.adapter.asterisk.0 asterisk.0 2019-01-02 13:53:34.592 error Error while dialing (2). Error: {} asterisk.0 2019-01-02 13:53:34.312 debug Start converting text message (Das ist ein Test!) to GSM audio ‚file /tmp/audio_91225331 asterisk.0 2019-01-02 13:53:34.311 debug Parameter: {"telnr":"******","text":"Das ist ein Test!","extension":"27062010","audiofile":"/tmp/audio_91225331"} asterisk.0 2019-01-02 13:53:34.310 debug Dial Command asterisk.0 2019-01-02 13:53:34.310 debug Message: {"telnr":"******","text":"Das ist ein Test!"} asterisk.0 2019-01-02 13:53:34.310 debug Connected to Asterisk
-
das sieht doch schon einmal gut aus. Im /tmp/ Verzeichnis ist auch die Datei audio_91225331.gsm (mit Endung .gsm)? Und Asterisk u. ioBroker laufen in der gleichen Umgebung?
Kannst Du bitte einmal auf der Shell den Befehlt asterisk -rvvvvvv aufrufen und das Protokoll zur Verfügung stellen.
VG
Thorsten
-
Hallo,
beim Aufruf mit asterisk -rvvvvvv erhalte ich das:
Asterisk 13.1.0~dfsg-1.1ubuntu4.1, Copyright (C) 1999 - 2014, Digium, Inc. and others. Created by Mark Spencer <markster@digium.com>Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= Connected to Asterisk 13.1.0~dfsg-1.1ubuntu4.1 currently running on ioBroker-Tinker (pid = 13398) ioBroker-Tinker*CLI></markster@digium.com>
Im Verzeichnis /tmp/ befindet sich eine audio_91225331.gsm aber keine .mp3.
-
Mal eine andere Frage…
Wenn ich einen Anruf mache mit
sendTo('asterisk.0', "dial", { telnr: "8004", callerid: "4711", text: "Hallo}, (res) => { console.log('Result: ' + JSON.stringify(res)); });
versucht der Adapter immer eine Verbindung über den Peer/Fritzbox zu erstellen den man im Adapter angegeben hat (hier 9001).
== Using SIP RTP CoS mark 5 -- Called 9901/8004 -- SIP/9901-0000001b is ringing
@ tstueben
Hattest Du nicht auch gesagt, das es ohne die Fritzbox geht? Ich möchte den Anruf direkt an ein anderes SIP-Telefon machen (ohne Fritzbox dazwischen)
-
ok, habe die Antwort selbst gefunden. Habe gerade mal in Deinen Adapter geschaut
Der Anruf wird wie folgt initiiert:
'action': 'originate', 'channel': 'SIP/' + extension + '/' + telnr,
Ein Anruf ohne Peer(extension) ist also aktuell nicht möglich :roll:
-
ok, habe die Antwort selbst gefunden. Habe gerade mal in Deinen Adapter geschaut
Der Anruf wird wie folgt initiiert:
'action': 'originate', 'channel': 'SIP/' + extension + '/' + telnr,
Ein Anruf ohne Peer(extension) ist also aktuell nicht möglich :roll: `
okay, hilft es wenn ich wenn ich folgendes in Adapter ändere:
wenn extension leer, dann : 'action': 'originate', 'channel': 'SIP/' + telnr, sonst: 'action': 'originate', 'channel': 'SIP/' + extension + '/' + telnr,
VG
-
Hallo,
mit der nächsten Version (1.0.0) kann man als Alsternative zu ffmpeg nun sox zum konvertieren von Text zu Audiodateien (gsm Format) auswählen. Auf dem Tinkboard Ubuntu 16.04 LTS wollte es einfach nicht mit ffmpeg laufen.
Weiterhin kann man nun die Ausgabesprache im Menü vorgeben.
VG
Stübi
-
> mit der nächsten Version (1.0.0) kann man als Alsternative zu ffmpeg nun sox zum konvertieren von Text zu Audiodateien (gsm Format) auswählen. Auf dem Tinkboard Ubuntu 16.04 LTS wollte es einfach nicht mit ffmpeg laufen.
Cool das macht die Sache einfacher, da es ja meist schon mit Asterisk mitkommt
Ich musste mir auf dem PI gestern n Ast biegen um ffmpeg installiert zu bekommen :roll:
-
Moin,
In der Version 1.0.2 ist seit heute raus. Es wird jetzt nicht nur SIP sondern auch PJSIP angeboten. Weiterhin habe ich in einem Beispiel beschrieben wie man Asterisk ohne Fritzbox mit der Telekom funktioniert.
VG
Stübi
Gesendet von iPhone mit Tapatalk
-
@tstueben:okay, hilft es wenn ich wenn ich folgendes in Adapter ändere:
wenn extension leer, dann : 'action': 'originate', 'channel': 'SIP/' + telnr, sonst: 'action': 'originate', 'channel': 'SIP/' + extension + '/' + telnr,
VG `
Ja, ich glaube so in der Art hatte ich es im PullRequest
VG
Bassbumper
-
Ja, ich glaube so in der Art hatte ich es im PullRequest
VG
Bassbumper `
Ich hatte deine Änderung übernommen. Das sollte eigentlich gehen. Hast du es Mal getestet?
Gesendet von iPhone mit Tapatalk
-
Ab Morgen gibt es die Version 1.0.3 unter latest auf GitHub heute schon. Damit man ioBroker und Asterisk auf unterschiedlichen Servern einfach laufen lassen kann, habe ich jetzt eine scp/ssh Option eingebaut. Im ioBroker wird die Sprachdatei erstellt und dann per scp auf den Asterisk Server kopiert und anschließend auf dem ioBroker Server gelöscht.
Auf Rückmeldungen freue ich mich!
Gruß
Stübi
-
Ja ich bin auch nach der aktuellen Anleitung vorgegangen.
wenn ich asterisk -rvvvvvv eingebe und ein Anruf mache bekomme ich die Meldung in Putty dass Nutzer oder service nicht kennt.
Ich kontrollieren noch mal meine config `
Hast Du Probleme mit SSH oder Asterisk?
SSH
Einstellungen in ioBroker über den Reiter SSH
Du musst auf dem Asterisk Server einen User inklusive Passwort anlegen oder einen vorhanden User nutzen. Wichtig, der SSH User muss die Unix Schreibrechte haben um in ein Verzeichnis die "Sprachdateien" zu kopieren. Asterisk muss auch die entsprechenden Rechte haben um diese Datei zu lesen. Du kannst zum Beispiel ein Verzeichnis /var/asterisk/ioboroker anlegen und diesem Verzeichnis die Gruppenrechte asterisk vergeben (vorausgesetzt asterisk läuft mit dem mit dem User asterisk, der in der Gruppe asterisk ist). Dem SSH User erteilst zusätzlich die Gruppenrechte des Asterisk Users.
Asterisk
Einstellungen in ioBroker über den ersten Reiter (Haupteinstellungen).
Hier ist der User und das Passwort aus der /etc/asterisk/manager.conf einzutragen. Der User ist komplett unabhängig von SSH.
Trage in dem Beispiel hier unter "Path for temporary audio files. Must be accessible and authorized for Asterisk and ioBroker" dann var/asterisk/ioboroker ein.
Ich hoffe das hilft weiter?
VG
Stübi
-
WICHTIG: Morgen gibt es eine neue Version vom ioBroker Asterisk Adapter in der Version 1.0.4
Wenn Du diese Version installierst musst Du umbedingt die extension.ael anpassen damit der Adapter weiterhin funktioniert! Ersetze 10 => { ... } durch _. => { ... } .bis zu Version 1.0.3
context ael-ansage { 10 => { Answer(); Wait(1); Read(dtmf,${file}&beep,0,s,${repeat},1); if ("${dtmf}" != "") { SayDigits(${dtmf}); } Hangup(); } }
ab Version 1.0.4
context ael-ansage { _. => { Answer(); Wait(1); Read(dtmf,${file}&beep,0,s,${repeat},1); if ("${dtmf}" != "") { SayDigits(${dtmf}); } Hangup(); } }
-
Nachdem Asterisk jetzt eine zeitlang problemlos lief habe ich seit ein paar Tagen folgende Meldung im Log:
asterisk.0 2019-05-03 14:50:53.594 error Cound not connect to Asterisk Manager! Try to connect in 30 seconds again!
asterisk.0 2019-05-03 14:50:18.196 error Cound not connect to Asterisk Manager! Try to connect in 30 seconds again!
asterisk.0 2019-05-03 14:49:42.777 error Cound not connect to Asterisk Manager! Try to connect in 30 seconds again!
asterisk.0 2019-05-03 14:49:07.379 error Cound not connect to Asterisk Manager! Try to connect in 30 seconds again!Was stimmt da nicht? Er ruft auch nicht mehr an.
-
@martin, läuft der Asterisk Prozess? Ich denke Asterisk läuft nicht oder ist von ioBroker nicht erreichbar.
-
Unter Instanzen ist Asterisk grün.
-
@martin , dann habe ich missverständlich ausgedrückt. Das Programm Asterisk läuft nicht bzw. muss einmal gestartet werden.
Wenn Du dich unter Linux anmeldest, kannst Du z.B. ps -ef | grep asterisk aufrufen. Dann solltest Du sehen ob der Asterisk Prozess läuft.
Wenn Asterisk läuft, kannst Du mit asterisk -rvvvvv die Manager connects von dem Asterisk ioBroker Adapter sehen. Wenn Du nicht siehst stimmt etwas nicht. Versuche es dann einmal mit /etc/init.d/asterisk restart um den Prozess neu zu starten. -
Ich habe alle 3 Sachen mal ausprobiert.
Leider kommt der Fehler immer noch.