Ich sende einige zusätzliche Informationen innerhalb Kontakt Header zum Server in REGISTER reuqest, und alles geht normal, aber wenn ich versuche, eingehenden Anruf zu behandeln - Anwendung stürzt ohne Fehler im Protokoll ab direkt nach dem Senden der RINGING-Antwort.PJSUA Absturz auf Android nach Erhalt Rufton Antwort vom Server
Hier ist mein Register Nachricht:
REGISTER sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP XXX.XXX.XXX.XXX:5060;rport;branch=z9hG4bKPj2ec0a45d-ed19-
4638-82fd-fd99c0c0ec2a
Route: <sip:[email protected]:5060;lr>
Max-Forwards: 70
From: <sip:[email protected]>;tag=f11614bc-65b3-4742-846a-f36b207b27ad
To: <sip:[email protected]>
Call-ID: 708c9a3b-be50-4c45-b49c-ac6843547ad0
CSeq: 59316 REGISTER
User-Agent: Pjsua2 Android 2.6
Contact: <sip:[email protected]:5060;app-id=my.app;pn-type=android;pn-
tok=<token_string_here>;ob>
Expires: 300
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY,
REFER, MESSAGE, OPTIONS
Authorization: Digest username="8022", realm="asterisk",
nonce="1495458128/d947e48afff90d90490a665850fde439",
uri="sip:[email protected]", response="291fbdfd407ba19d3d916ec28a88e1a2",
algorithm=md5, cnonce="e55f14a6-95f3-4ace-a4cb-a24cdf4f2bdc",
opaque="0c274aee613c50ab", qop=auth, nc=00000001
Content-Length: 0
--end msg--
Zusätzliche Sachen wie App-ID, pn-Typ wurde pn-tok über
hinzugefügtaccCfg.getSipConfig().setContactUriParams(myContactParams);
Wenn INVITE-Anfrage kommt, PJSUA sendet TRYING Antwort (SIP Status 100), dann Ich sende RINGING Status (180) Antwort auf INVITE.
Hier ist meine RINGING Antwort:
Response msg 180/INVITE/cseq=6662 (tdta0xac62c838) to TCP XXX.XXX.XXX.XXX:52891:
SIP/2.0 180 Ringing
Via: SIP/2.0/TCP XXX.XXX.XXX.XXX:5060;rport=52891;received=XXX.XXX.XXX.XXX;branch=z9hG4bKPje30b530e-e7f3-4404-b937-61d8046a43f8;alias
Call-ID: 43da8440-9a30-49ed-8345-17a2e515c590
From: <sip:[email protected]>;tag=4b2008cd-14db-4edc-97f5-c5fde8ffccb8
To: <sip:[email protected];app-id=my.app;pn-type=android;pn-tok=<token_string_here>;ob>;tag=fd58966e-ef74-48f6-9595-542d85f1e87d
CSeq: 6662 INVITE
Contact: <sip:[email protected]:5060;app-id=my.app;pn-type=android;pn-tok=<token_string_here>;ob>
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Content-Length: 0
--end msg--
Dann ich habe zwei weitere Linien in logcat von PJSUA
I/PJSUA2: 16:46:22.408 tsx0xac3c3f7c ....State changed from Proceeding to Proceeding, event=TX_MSG
I/PJSUA2: 16:46:22.408 dlg0xac479014 .....Transaction tsx0xac3c3f7c state changed to Proceeding
und die App sofort stürzt ohne irgendwelche PJSUA Nachrichten im Protokoll .
Und ja, alles funktioniert perfekt ohne zusätzliche Informationen in Kontakt Header.
Gibt es Möglichkeiten, dieses Problem zu lösen? Wenn es eine Beschränkung von PJSIP gibt - kann ich es ändern, indem ich ein Flag vor der Kompilierung setze oder gibt es vielleicht eine andere Möglichkeit, zusätzliche Kontaktinformationen in der REGISTER-Anfrage zu senden?
Wir verwenden Huawei P8 Lite (Android 6.0) mit Android Studio 2.3.2, PJSIP v2.6 kompiliert für Android, Asterisk PJSIP 13, aber der Fehler passiert auch bei Aterisk 11.
Ist 'To'- und' From'-URI im SIP-Register das gleiche? Sie sollten gleich sein, es sei denn, Sie führen Registrierungen von Drittanbietern durch. – Moerwald