Hauptmenü

Modul 96_SIP

Begonnen von Wzut, 19 Februar 2017, 19:10:09

Vorheriges Thema - Nächstes Thema

thunder1902

Hallo! Ich habe das Problem, dass die Soundausgabe nicht funktioniert. Das initiieren von einem Anruf geht - wenn ich aber rangehe kommt kein Ton. Nach ein paar Sekunden wird einfach wieder aufgelegt.
Kann mir da jemand helfen?
Hier mein Device:

defmod telsip SIP
attr telsip T2S_Device mytts
attr telsip T2S_Timeout 10
attr telsip audio_converter sox
attr telsip sip_dtmf_loop once
attr telsip sip_dtmf_send audio
attr telsip sip_dtmf_size 2
attr telsip sip_elbc yes
attr telsip sip_from sip:*****2@192.168.178.2
attr telsip sip_ip ***
attr telsip sip_listen none
attr telsip sip_port 5060
attr telsip sip_registrar 192.168.178.2
attr telsip sip_ringtime 3
attr telsip sip_user t****
attr telsip verbose 5

setstate telsip initialized
setstate telsip 2018-07-02 11:02:42 call done
setstate telsip 2018-07-02 11:02:42 call_attempt 0
setstate telsip 2018-07-02 11:02:42 call_state ok
setstate telsip 2018-07-02 11:02:42 call_success 1
setstate telsip 2018-07-02 11:02:42 call_time 14
setstate telsip 2018-06-29 12:53:51 caller reject


Hier das Log:
2018.07.02 11:02:28 4: telsip, audio file cache/test.alaw found
2018.07.02 11:02:28 4: telsip, telsip|08****|30|cache/test.alaw|0
2018.07.02 11:02:28 4: telsip, call -> telsip|08****|30|cache/test.alaw|0|0
2018.07.02 11:02:28 5: telsip, call has pid 1100
2018.07.02 11:02:28 4: telsip[1100], my parent is 43
2018.07.02 11:02:28 4: telsip[1100], trying to use port 5070
2018.07.02 11:02:28 4: telsip[1100], register new expire : 2018-07-02 11:07:28
2018.07.02 11:02:28 5: telsip, readingS:state Val:calling
2018.07.02 11:02:28 4: telsip[1100], CallStart with 1 files - first file : cache/test.alaw - PCMA/8000 , repeat 0
2018.07.02 11:02:28 4: telsip[1100], calling : 08*******
2018.07.02 11:02:28 4: telsip[1100], cb_final - status : FAIL - final : 481
2018.07.02 11:02:28 5: telsip, readingS:call_state Val:calling 08*********
2018.07.02 11:02:28 5: telsip, readingS:call_state Val:ringing
2018.07.02 11:02:39 4: telsip[1100], cb_final - status : OK
2018.07.02 11:02:39 4: telsip[1100], call established
2018.07.02 11:02:39 5: telsip, readingS:call_state Val:established
2018.07.02 11:02:42 5: telsip[1100], 0. Ende des ersten Loops
2018.07.02 11:02:42 5: telsip[1100], 1. rtp_done : Net::SIP::Simple::Call=HASH(0x46f3fd0)
2018.07.02 11:02:42 5: telsip[1100], 2. fi : 0
2018.07.02 11:02:42 5: telsip[1100], 4. timeout : 0
2018.07.02 11:02:42 5: telsip[1100], 6. call_established : 1
2018.07.02 11:02:42 5: telsip[1100], call->bye
2018.07.02 11:02:42 5: telsip[1100], RTP done : Net::SIP::Simple::Call=HASH(0x46f3fd0)
2018.07.02 11:02:42 5: telsip[1100], Timeout  : 0
2018.07.02 11:02:42 5: telsip[1100], while    : 0
2018.07.02 11:02:42 5: telsip[1100], Status   : OK
2018.07.02 11:02:42 4: telsip, CALLDone -> telsip|1|ok
2018.07.02 11:02:42 5: telsip, fifo is empty
2018.07.02 11:02:42 5: telsip, no elbc

Wzut

Dein Log Auzug ist unauffällig. Ich würde mich bei der Fehlersuche auf die verwendete Audiodatei konzentrieren, denn laut Log wurde sie abspielt und danach der Anruf beendet.
Woher stammt test.alaw bzw. wie wurde sie erzeugt ?
Hast du dir die Datei zur Kontrolle mal mit einem Mediaplayer angehört ?
Hast du es mal mit einer anderen bzw. mit einer .mp3 versucht ?
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

thunder1902

@Wzut:
Die Mediendatei ist ok. Hab sie schon mit Medienplayer "geprüft".
Ich habe das Modul jetzt mit einem externen SIP Anbieter getestet. Da funktioniert alles einwandfrei!
Nur mit der Fritzbox (die bei mir auf der IP-Adresse 192.168.178.2 läuft), funktioniert das nicht. Der Anruf wird initiiert - es klingelt auch - nur wenn ich rangehe, wird kein Audio abespielt.

Hast du dazu noch eine Idee??

Wzut

Dann kann es IMHO nur noch die FB selbst sein. Wenn ich dein Log richtig lese rufst du eine externe Nummer an.
Hast du es mal auf einem internen direkt an der FB angeschlossenen Telefon probiert ?
Wenn kein Telefon Analog/DECT direkt an der FB hängt wäre eventuell ein Smartphone als WLAN Phone auch eine Möglichkeit zum testen. Wenn intern geht aber extern nicht wirst du wohl Wireshark auspacken müssen. 
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

thunder1902

Das hab ich gerade probiert. Leider das gleiche Phänomen. Log sieht genauso aus wie extern..  Irgendwie läuft die Kommunikation zur Fritzbox etwas schief.. Über eine SIP-Android-App auf'm Handy funktioniert die Verbindung zur Fritzbox (über SIP-Prototkoll) tadellos...

plin

mmmh, mein Log sieht anders aus:

2018.07.03 18:08:35 4: SipTest, audio file /opt/fhem/okay.alaw found
2018.07.03 18:08:35 4: SipTest, SipTest|**622|30|/opt/fhem/okay.alaw|0
2018.07.03 18:08:35 4: SipTest, call -> SipTest|**622|30|/opt/fhem/okay.alaw|0|0
2018.07.03 18:08:35 5: SipTest, call has pid 1311
2018.07.03 18:08:35 4: SipTest[1311], my parent is 403
2018.07.03 18:08:35 4: SipTest[1311], trying to use port 5080
2018.07.03 18:08:35 4: SipTest[1311], register new expire : 2018-07-03 18:13:35
2018.07.03 18:08:35 5: SipTest, readingS:state Val:calling
2018.07.03 18:08:35 4: SipTest[1311], CallStart with 1 files - first file : /opt/fhem/okay.alaw - PCMA/8000 , repeat 0
2018.07.03 18:08:35 4: SipTest[1311], calling : **622
2018.07.03 18:08:35 5: SipTest, readingS:call_state Val:calling **622
2018.07.03 18:08:38 4: SipTest[1311], cb_final - status : OK
2018.07.03 18:08:38 4: SipTest[1311], call established
2018.07.03 18:08:38 5: SipTest, readingS:call_state Val:established
2018.07.03 18:08:39 5: SipTest[1311], 0. Ende des ersten Loops
2018.07.03 18:08:39 5: SipTest[1311], 1. rtp_done : Net::SIP::Simple::Call=HASH(0x2de25b8)
2018.07.03 18:08:39 5: SipTest[1311], 2. fi : 0
2018.07.03 18:08:39 5: SipTest[1311], 4. timeout : 0
2018.07.03 18:08:39 5: SipTest[1311], 6. call_established : 1
2018.07.03 18:08:39 5: SipTest[1311], call->bye
2018.07.03 18:08:39 5: SipTest[1311], RTP done : Net::SIP::Simple::Call=HASH(0x2de25b8)
2018.07.03 18:08:39 5: SipTest[1311], Timeout  : 0
2018.07.03 18:08:39 5: SipTest[1311], while    : 0
2018.07.03 18:08:39 5: SipTest[1311], Status   : OK
2018.07.03 18:08:39 4: SipTest, CALLDone -> SipTest|1|ok
2018.07.03 18:08:39 5: SipTest, fifo is empty
2018.07.03 18:08:39 5: SipTest, no elbc


Mir ist in Deinem Log

...
2018.07.02 11:02:28 5: telsip, readingS:state Val:calling
2018.07.02 11:02:28 4: telsip[1100], CallStart with 1 files - first file : cache/test.alaw - PCMA/8000 , repeat 0
2018.07.02 11:02:28 4: telsip[1100], calling : 08*******
2018.07.02 11:02:28 4: telsip[1100], cb_final - status : FAIL - final : 481
...

aufgefallen. Der SIP-Code hat folgende Bedeutung:

481    Call/Transaction Does Not Exist    Diese Verbindung existiert nicht (mehr).

Erst dann kommt der erfolgreiche Anruf

...
2018.07.02 11:02:28 5: telsip, readingS:call_state Val:ringing
2018.07.02 11:02:39 4: telsip[1100], cb_final - status : OK
2018.07.02 11:02:39 4: telsip[1100], call established
2018.07.02 11:02:39 5: telsip, readingS:call_state Val:established
2018.07.02 11:02:42 5: telsip[1100], 0. Ende des ersten Loops
2018.07.02 11:02:42 5: telsip[1100], 1. rtp_done : Net::SIP::Simple::Call=HASH(0x46f3fd0)
2018.07.02 11:02:42 5: telsip[1100], 2. fi : 0
2018.07.02 11:02:42 5: telsip[1100], 4. timeout : 0
2018.07.02 11:02:42 5: telsip[1100], 6. call_established : 1
2018.07.02 11:02:42 5: telsip[1100], call->bye
2018.07.02 11:02:42 5: telsip[1100], RTP done : Net::SIP::Simple::Call=HASH(0x46f3fd0)
2018.07.02 11:02:42 5: telsip[1100], Timeout  : 0
2018.07.02 11:02:42 5: telsip[1100], while    : 0
2018.07.02 11:02:42 5: telsip[1100], Status   : OK
2018.07.02 11:02:42 4: telsip, CALLDone -> telsip|1|ok
...

aber ohne das Audio-File.
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

thunder1902

Ja, das ist mir auch schon aufgefallen. Mir kommt es so vor, dass die Antwort von der Fritzbox nicht in Fhem ankommt.
Aber dann versteh' ich nicht, warum das mit einem externen SIP Anbieter problemlos klappt.

Ich glaub, ich geb jetzt auf. Hab schon den ganzen Tag damit rumgespielt... :-/

Wzut

Zitat von: plin am 03 Juli 2018, 18:14:53
2018.07.02 11:02:28 4: telsip[1100], cb_final - status : FAIL - final : 481
aufgefallen. Der SIP-Code hat folgende Bedeutung:
481    Call/Transaction Does Not Exist    Diese Verbindung existiert nicht (mehr).
jein ... du hast eine recht neue Version von Net::SIP da ist das richtig ohne die 481, bei meiner Net::SIP Version 0.6x gibt es auch die 481 und das nutze ich zum anzeigen des status "ringing" , check das mal bei dir da gibt es den status ringing nicht mehr. (oder schau in den Quellcode vom Modul )
Der Wechsel kam bei irgend einer 0.8 Version, damals als wir noch mit Wireshark gekämpft hatten und Steffen Ulrich uns eine Testversion von Net::SIP gemacht hatte. 
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

plin

ok, dann kommt noch die Idee mit einem mp3-File ins Spiel und wir lassen sox oder ffmpeg konvertieren. Dann können wir sicher sein, dass das Audio File ein Format hat das Net::SIP gefällt.
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

pechnase

Hallo zusammen,

bei bestimmten 'Alarmen' ruft mein fhem eine definierte Telefonnummer an und spielt einen Audiofile ab, der zu dem jeweiligen Alarm passt. Dazu verwende ich auf einem Raspberry Pi 2B asterisk als 'SIP-Client' in Verbindung mit einer FritzBox.

Mit dem Modul 96_SIP könnte ich nach meinem Verständnis die oben beschriebene Funktion auch umsetzen.

Meine Frage: was ist eure Einschätzung nach die Lösung, die weniger Ressourcen auf dem PI braucht?

Viele Grüße
Wolfgang
2 x RPI mit FHEM 5.8 (RPI B+ & RPI 2B) verbunden über FHEM2FHEM
- HM Fensterkontakte, Rauchmelder, Fernbedienung, Schalter
- Optolink (Selbstbau) Vitotronic 200KW2
- 1-wire DS1820 Temp.Sensoren, TX29DT-IT
- CUL (busware), nanoCUL, Jeelink (Nachbau), FHEMduino

magichand

Hallo zusammen,

ich habe eine Frage:

Kann man in diesem Modul einen "Outbound-Proxy" definieren?

Ich hoffe dadurch, mein Problem in einer Docker-Umgebung in den Griff zu bekommen, indem ich einen sip-proxy "zwischenschalte"!

Oder hat jemand eine andere Lösung, damit sich das Modul mit der IP des Hosts am SIP-Server registriert und nicht mit der Container IP ?

Liebe Grüße
Ralf




plin

Zitat von: pechnase am 09 Juli 2018, 13:48:18
Meine Frage: was ist eure Einschätzung nach die Lösung, die weniger Ressourcen auf dem PI braucht?
Ich nutze das Module TelegramBot in Verbindung mit der Telegram App
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

plin

Zitat von: magichand am 09 Juli 2018, 14:18:09
Oder hat jemand eine andere Lösung, damit sich das Modul mit der IP des Hosts am SIP-Server registriert und nicht mit der Container IP ?
Schon mal mit sip_ip versucht (siehe auch https://wiki.fhem.de/wiki/SIP-Client)?
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

Wzut

Zitat von: plin am 09 Juli 2018, 18:20:07
Ich nutze das Module TelegramBot in Verbindung mit der Telegram App
ich glaube das war nicht ganz was pechnase wissen wollte. Du hast doch im Gegensatz zur mir Asterisk Erfahrung auf dem Raspi.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

magichand

#644
Zitat von: plin am 09 Juli 2018, 18:24:42
Schon mal mit sip_ip versucht (siehe auch https://wiki.fhem.de/wiki/SIP-Client)?

Ja, habe ich. Beide IP-Adressen eingesetzt und sip_listen auf 'wfp' gesetzt:

Bei der Host-IP 192.168.2.226 erhalte ich eine Fehlermeldung: ListenRegister: can't open port 5070 at 192.168.2.226 : Cannot assign requested address

Bei der Container-IP gibt es keine Fehlermeldung, dafür steht in der Registrierung auf dem Server auch die Containter-IP drin...

Viele Grüße
Ralf