SIP Problem bei direkter Providerregistrierung

  • Hallo zusammen,


    ich stricke grade meinen Prototypen zusammen und stoße auf ein SIP-Problem.


    Ich würde gern den Doorpi direkt beim Provider (Telekom) als SIP-Endgerät registrieren. Nach vielem Probieren funktioniert das auch, die Kommunikation wird aufgebaut, es kommt jedoch eingehend wie ausgehend keine Verbindung zustande, obwohl ich den "Ruf" sehe:


    1.) Eingehend


    2019-06-28 06:37:33,670 [DEBUG] [doorpi.sipphone.linphone_lib.CallBacks] is_admin_number (sip:+49160xxxxxxx@ims.telekom.de)
    2019-06-28 06:37:33,671 [WARNING] [root] section AdminNumbers not found in configfile
    2019-06-28 06:37:33,671 [TRACE] [doorpi.conf.config_object] get_keys for section AdminNumbers returns []
    2019-06-28 06:37:33,672 [DEBUG] [doorpi.sipphone.linphone_lib.CallBacks] sip:+49160xxxxxxx@ims.telekom.de is not an adminnumber
    2019-06-28 06:37:33,672 [TRACE] [doorpi.action.handler] fire Event OnCallReject from doorpi.sipphone.linphone_lib.CallBacks asyncron
    2019-06-28 06:37:33,673 [DEBUG] [doorpi.sipphone.from_linphone] [PYLINPHONE] >>> pylinphone_Core_instance_method_decline_call(0x75827500 [0x9de210], 0x76d17df0 [0xa0ab20], 2)
    2019-06-28 06:37:33,674 [INFO] [doorpi.sipphone.from_linphone] channel [0xa12308]: message sent to [UDP://tel.t-online.de:5060], size: [406] bytes
    SIP/2.0 403 Forbidden
    Via: SIP/2.0/UDP 217.0.21.2:5060;branch=z9hG4bKg3Zqkv7i66gwdzcrtn67x721tfsmi8hob
    From: <sip:+49160xxxxxxx@ims.telekom.de;user=phone>;tag=h7g4Esbg_p65541t1561696653m488495c845925960s1_3594997545-1359138989
    To: <sip:+493xxxxxxxx@telekom.de;user=phone>;tag=B6Ljx9u
    Call-ID: p65541t1561696653m488495c845925960s2
    CSeq: 1 INVITE
    User-Agent: (belle-sip/1.4.2)
    Supported: outbound



    2.) Ausgehend


    2019-06-28 06:36:58,364 [INFO] [doorpi.sipphone.from_linphone] channel [0xa12308]: received [395] new bytes from [UDP://tel.t-online.de:5060]:
    SIP/2.0 606 Not Acceptable
    Via: SIP/2.0/UDP 192.168.1.113:5060;branch=z9hG4bK.YKoat4R67;rport
    From: "DoorPi" <sip:03xxxxxxx@tel.t-online.de>;tag=QENrfP~Za
    To: <sip:0160xxxxxxx@tel.t-online.de>;tag=h7g4Esbg_p65541t1561696618m236819c845844589s1_3559739564-2019247265
    Call-ID: k8WFIrY4B9
    CSeq: 21 INVITE
    Contact: <sip:sgc_c@217.0.21.2;transport=udp>
    supported: timer
    Content-Length: 0


    Ich habe bereits alle möglichen Codecs ausprobiert und Video in der Konfig disabled, nichts funktioniert.


    Hat jemand einen Tip für mich?

  • Hallo Alex01.


    Eingehend ist dein Problem wohl, dass du die Anrufer Nummer nicht in der Config hinterlegt hast. DoorPi nimmt nur Anrufe von Admin-Nummern entgegen. Da musst du folgende Einträge in die Doorpi.ini aufnehmen:



    Code
    [AdminNumbers]
    +49160xxxxxxx@ims.telekom.de = Active

    wobei ich mir nicht sicher bin, ob der CLIP so stimmt. unter Umständen kannst du das hinter dem "@" weglassen. Am besten probierst du mal aus.


    Beim ausgehenden Call scheint dein angerufenes Gerät ein Problem zu haben. Der 606er bedeutet:



    Code
    606	Not Acceptable	Das Endgerät des angerufenen Teilnehmers lehnt die SIP-Anfrage als unzulässig ab


    Probier doch mal eine Verbindung DoorPi ---> Handy. Da hast du das codec-gedusel schon mal ausgeblendet.


    Hier noch meine Einstellungen, wie ich sie in meiner DoorPi schon zwei Jahre problemlos nutze:


    Vier Erfolg beim weitertüfteln.


    Gruss
    Sven

  • Danke Sven!


    Eingehend ist es vielleicht der richtige Hinweis, das probiere ich. Nur mit der Rufnummer scheint es zu funktionieren.
    Dann passiert aber nichts und nach ca. 10 Sekunden löst es aus. Muss ich da noch Events definieren, damit ich mit der Polycom sprechen kann? Könntest Du Deine komplette Doorpi.ini posten?



    Abgehend versuche ich die ganze Zeit, mein iPhone zu erreichen;-)

  • Hallo Alex01.


    Was genau meinst du mit "Dann passiert aber nichts und nach ca. 10 Sekunden löst es aus." ?
    Kommt keine Sprachverbindung zustande?
    Funktioniern denn dein Mikro und der Lautsprecher am Pi?
    Events für den einkommenden Rufaufbau brauchts keine. Ausgehend muss das natürlich irgendwas triggern, aber das weisst du ja sicher.


    Meine DoorPi.ini ist umfangreich und hat noch Kommunikation mit meiner Hausautomation drin, aber wenn du meinst, damit was anfangen zu können, dann hier:

    Verwendung auf eigene Gefahr und ohne Supportanspruch meinerseits 8)



    Gruss
    Sven

  • Hm. Ich hänge hier immernoch.


    Ich möchte einen eingehenden Call vom Handy annehmen können.


    Wenn ich mit dem iPhone den DoorPi anrufe, ist der Anruf ca. 10 Sekunden offenbar verbunden, es ist aber nichts zu hören. Danach wird die Verbindung getrennt


    SIP-Protokoll sehe ich alles, was sein soll... Invite - ok - ACK...


    aber nach dem OK passiert offenbar nichts in Linphone:



    2019-07-03 08:57:19,432 [ERROR] [doorpi.sipphone.from_linphone] audio_stream_start_from_io: No decoder or encoder available for payload telephone-event.


    Wo liegt mein Denkfehler?

  • Es scheint ein Codec Problem zu sein. Wenn ich mit einem PC über das Netz anrufe (App PhonerLite), geht es. MIt einem iPhone nicht.


    Im Sip-Header sieht die Codec-Section bei Phoner so aus:


    v=0
    o=- 1801568110 3014767174 IN IP4 192.168.2.1
    s=SIPPER for PhonerLite
    c=IN IP4 192.168.2.1
    t=0 0
    m=audio 7070 RTP/AVP 8 0 3 9 18 101
    a=rtpmap:8 PCMA/8000
    a=rtpmap:0 PCMU/8000
    a=rtpmap:3 GSM/8000
    a=rtpmap:9 G722/8000
    a=rtpmap:18 G729/8000
    a=fmtp:18 annexb=yes
    a=rtpmap:101 telephone-event/8000
    a=fmtp:101 0-16
    a=ssrc:1108112642
    a=sendrecv

    Und wenn ich mit dem iPhone anrufe, sieht es so aus:


    v=0
    o=- 1400937498 3024008617 IN IP4 192.168.2.1
    s=-
    c=IN IP4 192.168.2.1
    t=0 0
    a=sendrecv
    m=audio 7070 RTP/AVP 109 104 110 9 102 108 105 100 8 0
    b=AS:80
    a=rtpmap:109 EVS/16000
    a=fmtp:109 max-red=0; br=5.9-24.4; bw=nb-wb; cmr=1; ch-aw-recv=-1
    a=rtpmap:104 AMR-WB/16000
    a=fmtp:104 mode-set=0,1,2; mode-change-capability=2; max-red=0
    a=rtpmap:110 AMR-WB/16000
    a=fmtp:110 octet-align=1; mode-set=0,1,2; mode-change-capability=2; max-red=0
    a=rtpmap:9 G722/8000
    a=rtpmap:102 AMR/8000
    a=fmtp:102 mode-change-capability=2; max-red=0
    a=rtpmap:108 AMR/8000
    a=fmtp:108 octet-align=1; mode-change-capability=2; max-red=0
    a=rtpmap:105 telephone-event/16000
    a=fmtp:105 0-15
    a=rtpmap:100 telephone-event/8000
    a=fmtp:100 0-15
    a=ptime:20
    a=maxptime:40
    a=sendrecv
    a=rtpmap:8 PCMA/8000
    a=rtpmap:0 PCMU/8000

    Offenbar fehlt der passende Codec für das iPhone. Weiß jemand, welcher das ist?

  • Deine "SIP-Konstellation" verstehe nicht so richtig.
    Du hast einen Hybrid-Anschluss (Telekom)?
    Auf dem Router hast du Deine (sonstigen) Telefonnummern (Telekom) eingerichtet?
    Eine Telefonnummer (Telekom) verwendest du für den Doorpi direkt mit dem Telekom-SIP-Server
    Wenn du vom iPhone anrufst, mit einer App? Wie eingerichtet? Auch wieder an direkt an den Telekom-SIP-Server?
    Beim PC auch wieder an direkt an den Telekom-SIP-Server?


    Viele Grüße
    Olaf

  • Hallo Korky,


    ich nutze einen Telekom - Hybrid-Anschluß. Dahinter ist eine Unifi Firewall.
    In Summe habe ich auf meinem Anschluß (Ein Trunk ist es ja nicht) 5 Rufnummern. Zwei der Rufnummern sind direkt auf dem Speedport registriert, eine Weitere am PC (Nicht am Speedport angemeldet sondern direkt tel.t-online.de) und eine vierte Rufnummer ist auf dem DoorPi direkt registriert.


    Am PC funktioniert alles einwandfrei. Wenn ich vom PC auf dem Doorpi anrufe, habe ich Sprachverständigung. Jedoch hängen PC und Doorpi im gleichen IP-Subnet und ich kann nicht garantieren, ob der Sprachdatenstrom trotz Providerregistrierung nicht doch im lokalen Netz bleibt.
    Vom iPhone rufe ich mit der nativen App (also ganz normales GSM) den Doorpi an. Es kommt eine Verbindung zustande, die nach 10Sek. mit einem BYE vom Netz auslöst. Wenn ich in diesen 10 Sekunden am Handy makele, kommt am Doorpi die bekannte "Ein Teilnehmer hat das Gespräch vorrübergehend verlassen..." Ansage aus dem Mobilfunknetz. Selten hatte ich schon nach dem Makeln eine Sprachverbindung... warum auch immer.


    Wenn ich übrigens vom Handy den PC anrufe, der wie gesagt im gleichen Subnetz wie der Doorpi hängt, geht das sofort. Sagt mir, das es nicht an meiner LAN/Firewallkonfiguration liegt. Ich nutze am PC PhonerLite.


    So richtig reproduzierbar ist das alles grad nicht... Und im SIP Protokoll ist leider auch keine klare Ursache erkennbar.

  • Was ich "komisch" finde ist, dass du dich hinter dem Speedport mit dem SIP-Server verbinden kannst.
    Nun gut, wenn es klappt hat es ja was.


    Ich wollte meinen asterisk (von meinem Home-Serverer) erst direkt zur Telekom verbinden. Als ich dann gelesen hatte, dass man einen Portbereich zum Internet öffnen muss, habe ich es der Fritzbox überlassen. Leider gibt die Telekom keinen IP-Bereich aus, damit man Filtern könnte.
    Beides zusammen (Fritzbox und asterisk) zur Telekom habe ich nicht hinbekommen.


    Wie dem auch sei. Soweit ich es verstanden habe (oder zusammen reime) wird der Port 5060 nur für die "Steuerung" benutzt. Also: "Rufe Nr xxx an" oder "ankommender Anruf für RufNr" , ...
    Die Sprache wird über eine extra Verbindung hergestellt, welche vom SIP-Server kommt. bzw. die Teilnehmer verbinden sich direkt.


    Ich kriege es nicht mehr ganz zusammen (ist zu lange her, andere Projekte zurzeit wichtiger). Ich meine bei asterisk hat das was mit


    Code
    directmedia=no
    directrtpsetup=no

    zu tun.


    Soweit jedenfalls mein Kenntnisstand.
    Ich denke mal, das der SIP-Server (Telekom) versucht eine Verbindung aufzubauen, aber der Router (Speedport) damit nichts anfangen kann und die Verbindung verwirft.


    Als Schlagworte schmeiß ich mal "SIP NAT" in den (Suchmaschinen-)Ring


    Viele Grüße
    Olaf

  • Hallo Korky.
    Danke, du hast mir gerade die Landebahn geebnet.
    Alex01: SIP braucht in der Tat noch mehr Ports für die Kommunikation. Vor einem Jahr musste ich im Geschäft die Firewall austauschen und da musste ich neben 5060 auch noch den Range 30000 - 30005 eingehend auf unsere PBX freigeben.
    Kurz gegoogelt und gefunden: hier ist alles recht schön beschrieben: https://www.tecchannel.de/a/vo…ner-nat-firewall,433069,6
    Ich hoffe das hilft dir nun weiter.


    Da ich persönlich kein Freund von eingehenden Portweiterleitungen auf Geräte im Heimnetz bin, würde ich für den DoorPi eine DMZ oder ein VLAN bauen. Aber das überlasse ich jedem wie er will.


    Gesendet von meinem BAH-W09 mit Tapatalk

  • Hallo Ihr beiden,


    danke für die Tip´s… aber so recht an die Portweiterleitung glauben mag ich noch nicht. Wie gesagt, sind Phonerlite am PC und Doorpi beide im gleichen Subnet hinter der gleichen Firewall und hinter dem gleichen Speedport. Phonerlite geht, Doorpi nicht.
    Und bei Verbindung sehe ich auch eigehende "Sprachpakete" vom Gespräch, nur eben ohne Inhalt am Doorpi.


    2019-07-04 19:03:02,351 [INFO] [doorpi.sipphone.from_linphone] Linphone core [0x173bfa8] notifying [call_stats_updated]
    2019-07-04 19:03:02,351 [INFO] [doorpi.sipphone.from_linphone] Bandwidth usage for call [0x17f7ac0]:
    RTP audio=[d= 0.0,u= 0.0], video=[d= 0.0,u= 0.0] kbits/sec
    RTCP audio=[d= 0.0,u= 0.0], video=[d= 0.0,u= 0.0] kbits/sec
    2019-07-04 19:03:02,352 [INFO] [doorpi.sipphone.from_linphone] Thread processing load: audio=0.000000 video=0.000000

    Sehr Mysteriös das ganze, da wünsche ich mir fast ISDN zurück, X.25 konnte ich besser lesen...;-);-);-)

  • Nutzt ddu bei phonerLite UDP oder TCP?
    Bei TCP ist meines Wissens kein zusätzlicher Port nötig, da alles in den 5060er gekapselt wird. Das macht es als Protokoll hinter NAT etwas konfortabler. Siehe: https://www.dus.net/de/sip-ueber-tcp


    Ob LinPhone in DoorPi auch TCP spricht, weiss ich leider auch nicht. Das wüssten wahrscheinlich @motom001 oder Nea.


    Gesendet von meinem BAH-W09 mit Tapatalk