2017-05-22 5 views
1

私はREGISTER reuqestのサーバーに連絡先ヘッダー内のいくつかの追加情報を送信していますが、すべて正常ですが、着信コールを処理しようとすると、 RINGING応答を送信した直後。 INVITEリクエストがPJSUAが送信する、来るとアプリ-ID、PN型のようなサーバからのリンギング応答後にAndroidでPJSUAがクラッシュする

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-- 

追加のもの、PN-TOK

accCfg.getSipConfig().setContactUriParams(myContactParams); 

を介して添加した。ここで

は私のレジスタメッセージがありますTRYING応答(SIPステータス100)、次に 私はINVITEにRINGINGステータス(180)応答を送信します。

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-- 

それから私が持っている2本の

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 

PJSUA

からlogcatで線やアプリがすぐにログに任意のPJSUAメッセージでクラッシュ:

は、ここに私のRINGING応答であります。

はい、すべてが連絡先ヘッダーの追加情報なしで完全に機能します。

この問題を解決する方法はありますか? PJSIPからの制限がある場合 - コンパイルする前にいくつかのフラグを設定して変更することができますか、またはREGISTERリクエストで追加の連絡先情報を送信する別の方法がありますか?

Androidスタジオ2.3.2、Android用にコンパイルされたPJSIP v2.6、アスタリスクPJSIP 13でHuawei P8 Lite(Android 6.0)を使用していますが、エラーはAterisk 11でも発生します。

+0

は 'To'-と' From'-URIですSIP REGISTERで同じですか?あなたが第三者の登録をしていない限り、それは等しいはずです。 – Moerwald

答えて

0

問題のトークンの長さは接触していました。

私はREST APIを使用してトークンを送信することでこれを回避しています。 私は件名であまりにも深くは行っていない、それはUDPを介してメッセージを送信中に超過しているMTUサイズのようだ。私のプロジェクトでTCPトランスポートを必要としなくなると、私はTCPでそのメッセージを送信することをテストしていません。誰かがまだここに、ineterested場合

はMSGの大きさと、それを軽減する方法についていくつかのヒントについてpjsip.orgのリンクは次のとおりです。

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

+0

まだ興味深い人がいれば、PJSIPの人はpjsip 2.7をリリースするようになり、pjsuaの長い連絡先について修正したようです(2.7節のマイルストーン:pjsua2、swig: #2021 長い連絡先ヘッダ) –

関連する問題