2017-05-22 5 views
1

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ügt
accCfg.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.

+0

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

Antwort

0

Problem war über Token Länge in Kontakt.

Ich habe Abhilfe, indem Sie Token mit unserer REST-API senden. Ich bin nicht zu tief in Thema, scheint es ist eine übermäßige MTU Größe beim Senden von SIP-Nachricht über UDP. Sobald ich TCP-Transport in meinem Projekt nicht benötige, habe ich nicht getestet, diese Nachricht per TCP zu senden.

Falls jemand noch ineterested, ist hier ein Link auf pjsip.org über msg Größe und einige Tipps darüber, wie es zu reduzieren:

https://trac.pjsip.org/repos/wiki/FAQ#sip-msg-size

+0

Wenn jemand noch interessant dafür ist, PJSIP Jungs sind kurz davor, pjsip 2.7 zu veröffentlichen, und scheint, als ob sie etwas über lange Kontakt in pjsua (ab 2.7. Meilensteine: pjsua2, swig: # 2021 Crash in Call-Info mit langen Kontakt Header) –