Dahua VTO4202F + PJSIP "Invalid SDP origin line"

insaider

Neuer User
Mitglied seit
4 Feb 2022
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Hallo,

Ich versuche eine Dahua VTO4202F Türstation (Firmware V4.511.0.0 von 2022-05-23) mit einer FreePBX (Version 16.0.40.7 mit asterisk 19.8.0) zusammen zu bringen. Dabei bin ich im Wesentlichen dieser Anleitung gefolgt https://github.com/thewolfman56/Dahua-VTO-Custom-Ringbacks-Tutorial bis auf den letzten Abschnitt "3. Additional freePBX Setup".

Die VTO registriert sich vernünftig am Server und wird als "available" angezeigt. Wenn jedoch der Klingelknopf gedrückt wird, kommt eine Verbindung nicht zustande. Das Log sieht folgendermaßen aus (pjsip set logger host 192.168.1.100)

<--- Received SIP request (742 bytes) from UDP:192.168.1.100:5060 --->
INVITE sip:[email protected]:5060 SIP/2.0
Authorization: Digest username="8001", realm="asterisk", nonce="1703866985/1b044a3e9bcb020555a5c394489b7438", uri="sip:[email protected]:5060", response="cd90b0e48964d69273f5566b2754e369", algorithm=MD5, cnonce="0a4f113b", opaque="52126fff157b7239", qop=auth, nc=00000001
Call-ID: 2023122918221411002266638
Contact: <sip:[email protected]:5060>
Content-Length: 2
Content-Type: application/sdp
CSeq: 2 INVITE
Expires: 120
From: <sip:[email protected]>;tag=6f42fa7383f907970b21437ceb2d6896
Max-Forwards: 70
To: <sip:[email protected]:5060>
User-Agent: Dahua UAC/3.0 VTO4202F V4.511.0.0 SN:XXXXXXXXXXXXXXXX
Via: SIP/2.0/UDP 192.168.1.100:5060;rport;branch=z9hG4bKc6d5b0f6cb60926f59487985804e5fad



[2023-12-29 17:23:06] ERROR[16889]: pjproject: <?>: sip_inv.c .Error parsing/validating SDP body: Invalid SDP origin line (PJMEDIA_SDP_EINORIGIN)
<--- Transmitting SIP response (452 bytes) to UDP:192.168.1.100:5060 --->
SIP/2.0 400 Bad Request
Via: SIP/2.0/UDP 192.168.1.100:5060;rport=5060;received=192.168.1.100;branch=z9hG4bKc6d5b0f6cb60926f59487985804e5fad
Call-ID: 2023122918221411002266638
From: <sip:[email protected]>;tag=6f42fa7383f907970b21437ceb2d6896
To: <sip:[email protected]>;tag=z9hG4bKc6d5b0f6cb60926f59487985804e5fad
CSeq: 2 INVITE
Warning: 399 SIP "Invalid SDP origin line (PJMEDIA_SDP_EINORIGIN)"
Server: FPBX-16.0.40.7(19.8.0)
Content-Length: 0

Hat jemand eine Idee, was das Problem sein könnte? Eine SDP origin line scheint es ja in dem 1. Paket gar nicht zu geben.
 
Ich vermute mal, der Debugger vom asterisk zeigt den SDP Teil deiner INV nicht an.
Mach doch parallel dazu einen wireshark trace (mit tcpdump,tshark,...), dann sieht man das Problem wohl etwas klarer.
 
Zuletzt bearbeitet:
Danke für den Hinweis und noch ein frohes neues Jahr! Ich habe mal einen wireshark trace angehangen. Da steht jetzt leider nicht wirklich mehr drin, oder?
 

Anhänge

  • wireshark_anon.pcapng.zip
    2 KB · Aufrufe: 4
Tja, da steht nur Murks in der SDP, das ist das Problem.
0d0a ist ein einfaches Carriage Return, damit kann kein SIP Server etwas anfangen.

Die Dahua Dinger sind manchmal recht anfällig für zu viele Config Änderungen.
Mach dir ein paar Fotos der Config und dann einen Factory-Reset. Danach stell wieder alles so ein wie vorher und probiere es nochmal.
 
OK, ich habe einmal Factory Reset gemacht und nur die minimalen Einstellungen vorgenommen (SIP-Server und Rufnummer dem Klingelknopf zugewiesen). Leider bekomme ich das gleiche Resultat - 0d0a. Irgendwelche Ideen? Was müsste denn da eigentlich im Message Body stehen?
 
Im SDP stehen die Infos bzgl. der Datenströme, so wie z.b. Video und Audio mit IP's, ports, codecs,etc.:

1704199126541.png
[Edit Novize: Riesenbild auf Vorschau reduziert - siehe Forumsregeln]


[Edit Novize: Beiträge zusammengefasst - siehe Forumsregeln]

In deinem Trace gefallen mir auf jeden Fall auch die IP's nicht. Grundsätzlich scheint es so, als ob du 192.168.1.x Adressen verwendest, aber in den SIP Meldungen sind IP's von ganz anderen Ranges mit drinnen.
1704199513039.png
[Edit Novize: Riesenbild auf Vorschau reduziert - siehe Forumsregeln]

Was hast du unter dem Reiter SIP Server alles eingestellt?
 
Zuletzt bearbeitet von einem Moderator:
Oje, da fehlt ja eine ganze Menge.

Zu den Traces: Das war mein Fehler. Ich habe die durch einen Anonymizer gejagt aber das Ergebnis anscheinend nur oberflächlich überprüft. Die VTO und die FreePBX sind in 2 unterschiedlichen VLANs, weil die VTO in einer Außenanlage verbaut ist. Der Traffic wird über eine OPNsense Firewall geroutet (kein NAT). An dem SDP-Inhalt wird dabei nichts verändert, so dass ich das als Problemursache ausschließen würde.

Es scheint so, als würde die VTO als SIP-Client sich nicht richtig ans Protokoll halten. Das wurde hier im Forum bei Dahua-Geräten ja schon ein paarmal erwähnt. Was mich wundert, ist allerdings, dass ich schon einmal eine funktionierende Lösung hatte. Dabei war die VTO der SIP-Server und ich nutzte meine Fritzbox 7490 als Client. Damit konnte ich das Telefon zum Klingeln bringen, ein Video-Bild übertragen und das Tor öffnen. Da ich hier aber demnächst Glasfaser bekomme und damit die Fritzbox in Rente geht, war das keine Dauerlösung. Die ganze Telefonie und damit auch die VTO soll in Zukunft über FreePBX laufen.
 
Zu den Traces: Das war mein Fehler. Ich habe die durch einen Anonymizer gejagt aber das Ergebnis anscheinend nur oberflächlich überprüft. Die VTO und die FreePBX sind in 2 unterschiedlichen VLANs, weil die VTO in einer Außenanlage verbaut ist. Der Traffic wird über eine OPNsense Firewall geroutet (kein NAT). An dem SDP-Inhalt wird dabei nichts verändert, so dass ich das als Problemursache ausschließen würde.
Sehr gescheit! Vielen Dank für die Info! :mad:

Wenn du eine simple Installation max. verkomplizierst, dann musst du dir die daraus resultierenden Fehler selbt suchen. Ich bin hier raus!
 
Zuletzt bearbeitet:
Schade, dass du nicht mehr weiterhelfen möchtest. Trotzdem herzlichen Dank für deine Hinweise bis hierher.

Ich habe jetzt mal zum Test einen Laptop an den Switch-Port der VTO gehangen und ihm die IP der VTO gegeben. Dann habe ich ein Softphone mit dem Account der VTO (8001) verbunden und die 9001 angerufen (was normalerweise die VTO beim Klingeln machen soll). Resultat: Hat auf Anhieb funktioniert und ich sehe im Debug Log von Asterisk die erwarteten SDP Daten. Damit liegt der Fehler definitiv nicht beim Netzwerk-Setup sondern bei der VTO. Entweder ist die immer noch irgendwie falsch konfiguriert oder sie implementiert SIP nicht vernünftig. Ich versuche mal, weiter dazu zu recherchieren. Wenn irgendwer hier eine Idee hat, würde ich mich sehr über Hinweise freuen.

[Edit Novize: Beiträge zusammengefasst - siehe Forumsregeln]

Noch ein paar Erkenntnisse:
1. Wenn ich die VTO über 8001 anrufe, wird der Call sofort beendet. In den Logs findet sich wieder die Fehlermeldung "Invalid SDP origin line" und die SDP Daten sind wieder leer. Hier noch das Log:
<--- Transmitting SIP request (973 bytes) to UDP:10.15.100.15:5060 --->
INVITE sip:[email protected]:5060 SIP/2.0
Via: SIP/2.0/UDP 10.80.88.3:5060;rport;branch=z9hG4bKPj04808ce4-ae82-4bc4-b0f1-f19510bf4b88
From: "marvin" <sip:[email protected]>;tag=90392304-0fd0-4aa3-9990-a585a8934d7d
To: <sip:[email protected]>
Contact: <sip:[email protected]:5060>
Call-ID: 3976aaaf-7ac7-419d-a252-db77a0519391
CSeq: 1484 INVITE
Allow: OPTIONS, REGISTER, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, MESSAGE, REFER
Supported: 100rel, timer, replaces, norefersub, histinfo
Session-Expires: 1800
Min-SE: 90
P-Asserted-Identity: "marvin" <sip:[email protected]>
Call-Info: <uri>;answer-after=0
Alert-Info: <http://127.0.0.1>;info=Ring Answer
Max-Forwards: 70
User-Agent: FPBX-16.0.40.7(19.8.0)
Content-Type: application/sdp
Content-Length: 177

v=0
o=- 1473326784 1473326784 IN IP4 10.80.88.3
s=Asterisk
c=IN IP4 10.80.88.3
t=0 0
m=audio 17820 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=ptime:20
a=maxptime:150
a=sendrecv

<--- Received SIP response (376 bytes) from UDP:10.15.100.15:5060 --->
SIP/2.0 100 Trying
Call-ID: 3976aaaf-7ac7-419d-a252-db77a0519391
Content-Length: 0
CSeq: 1484 INVITE
From: "marvin"<sip:[email protected]>;tag=90392304-0fd0-4aa3-9990-a585a8934d7d
To: <sip:[email protected]>
User-Agent: Dahua UAC/3.0 VTO4202F V4.511.0.0 SN:XXXXXXXXXXXXXX
Via: SIP/2.0/UDP 10.80.88.3:5060;rport=5060;branch=z9hG4bKPj04808ce4-ae82-4bc4-b0f1-f19510bf4b88


<--- Received SIP response (466 bytes) from UDP:10.15.100.15:5060 --->
SIP/2.0 101 Dialog Establishment
Call-ID: 3976aaaf-7ac7-419d-a252-db77a0519391
Contact: <sip:[email protected]:5060>
Content-Length: 0
CSeq: 1484 INVITE
From: "marvin"<sip:[email protected]>;tag=90392304-0fd0-4aa3-9990-a585a8934d7d
To: <sip:[email protected]>;tag=c59bdc3f484ba3647236db2686ed8ab5
User-Agent: Dahua UAC/3.0 VTO4202F V4.511.0.0 SN:XXXXXXXXXXXXXX
Via: SIP/2.0/UDP 10.80.88.3:5060;rport=5060;branch=z9hG4bKPj04808ce4-ae82-4bc4-b0f1-f19510bf4b88


<--- Received SIP response (497 bytes) from UDP:10.15.100.15:5060 --->
SIP/2.0 180 Ringing
Call-ID: 3976aaaf-7ac7-419d-a252-db77a0519391
Contact: <sip:[email protected]:5060>
Content-Length: 0
CSeq: 1484 INVITE
From: "marvin"<sip:[email protected]>;tag=90392304-0fd0-4aa3-9990-a585a8934d7d
MaxConnectingTime: 120
MaxRingingTime: 27
To: <sip:[email protected]>;tag=c59bdc3f484ba3647236db2686ed8ab5
User-Agent: Dahua UAC/3.0 VTO4202F V4.511.0.0 SN:XXXXXXXXXXXXXX
Via: SIP/2.0/UDP 10.80.88.3:5060;rport=5060;branch=z9hG4bKPj04808ce4-ae82-4bc4-b0f1-f19510bf4b88


-- PJSIP/8001-0000002a is ringing
<--- Received SIP response (481 bytes) from UDP:10.15.100.15:5060 --->
SIP/2.0 200 OK
Call-ID: 3976aaaf-7ac7-419d-a252-db77a0519391
Contact: <sip:[email protected]:5060>
Content-Length: 2
Content-Type: application/sdp
CSeq: 1484 INVITE
From: "marvin"<sip:[email protected]>;tag=90392304-0fd0-4aa3-9990-a585a8934d7d
To: <sip:[email protected]>;tag=c59bdc3f484ba3647236db2686ed8ab5
User-Agent: Dahua UAC/3.0 VTO4202F V4.511.0.0 SN:XXXXXXXXXXXXXX
Via: SIP/2.0/UDP 10.80.88.3:5060;rport=5060;branch=z9hG4bKPj04808ce4-ae82-4bc4-b0f1-f19510bf4b88



[2024-01-04 17:55:36] ERROR[15627]: pjproject: <?>: sip_inv.c ....Error parsing/validating SDP body: Invalid SDP origin line (PJMEDIA_SDP_EINORIGIN)
2. Wenn ich über DahuaEventHandler.php die Events mitlogge, während ich den Klingelknopf drücke, finde ich das Folgende:
2024-01-04 17:48:19.000000: Event SIPRegisterResult, Success
2024-01-04 17:48:41.000000: Event VideoMotion
2024-01-04 17:48:47.000000: Event VideoMotion
2024-01-04 17:48:48.000000: Event VideoMotion
2024-01-04 17:49:01.000000: Event BackKeyLight with State 1
2024-01-04 17:49:01.000000: keepAlive back
2024-01-04 17:49:16.000000: Event SIPRegisterResult, Success
2024-01-04 17:49:17.000000: Event SIPRegisterResult, Success
2024-01-04 17:49:31.000000: Event BackKeyLight with State 0
Die Call Events scheinen da gar nicht aufzutauchen. Hätte ich aber eigentlich erwartet.
 
Zuletzt bearbeitet von einem Moderator:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.