質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.13%

Raspberry Pi:PJSIPより発信、応答した瞬間に切断されてしまう

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,883

nakky

score 10

前提・実現したいこと 

PJSIPにてAsteriskと接続、他のSIPクライアントとの通信を行いたい。 
Make Call でSIPクライアントへ発信できるが、
SIPクライアントで応答した瞬間に、切断されてしまう。

解決策を教えていただければと思います。 

【補足】 
2台のAndroid端末にインストールした SIPクライアント間で通話は確認済み 
上記のSIPクライアントへPJSIPから発信した場合にのみ事象が発生

Asteriskをインストールしているハード/OS は以下となります。
Raspberry Pi 2
Linux raspberrypi 4.1.19-v7+ #858 SMP Tue Mar 15 15:56:00 GMT 2016 armv7l GNU/Linux

構成

イメージ説明

発生している問題・エラーメッセージ 

以下2つのログを添付します。
・asterisk -vvvvr での発信・切断時のログ
・pjsuaより、Make callにて発信・切断時のログ
(ログが長いため、一部削除しております。)

[ asterisk ログ ]

Connected to Asterisk 1.8.13.1~dfsg1-3+deb7u4 currently running on raspberrypi (pid = 2161)
Verbosity was 0 and is now 4
    -- Registered SIP '32' at 192.168.11.204:5061
  == Using SIP RTP CoS mark 5
    -- Executing [30@default:1] Dial("SIP/32-00000004", "SIP/30,30") in new stack
  == Using SIP RTP CoS mark 5
    -- Called SIP/30
    -- SIP/30-00000005 is ringing
[Nov 19 09:49:54] NOTICE[2569]: res_rtp_asterisk.c:2339 ast_rtp_read: Unknown RTP codec 95 received from '(null)'
    -- SIP/30-00000005 answered SIP/32-00000004
    -- Locally bridging SIP/32-00000004 and SIP/30-00000005
  == Spawn extension (default, 30, 1) exited non-zero on 'SIP/32-00000004'

[ pjsip ログ ]

Make call: sip:30@192.168.11.204
22:41:26.717   pjsua_call.c !Making call with acc #2 to sip:30@192.168.11.204
22:41:26.717    pjsua_aud.c  .Set sound device: capture=-99, playback=-99
22:41:26.717    pjsua_aud.c  ..Setting null sound device..
22:41:26.717    pjsua_app.c  ...Turning sound device ON
22:41:26.717    pjsua_aud.c  ...Opening null sound device..
22:41:26.718  pjsua_media.c  .Call 0: initializing media..
22:41:26.719  pjsua_media.c  ..RTP socket reachable at 192.168.11.204:4000
22:41:26.719  pjsua_media.c  ..RTCP socket reachable at 192.168.11.204:4001
22:41:26.719  pjsua_media.c  ..Media index 0 selected for audio call 0
22:41:26.722   pjsua_core.c  ....TX 1119 bytes Request msg INVITE/cseq=9623 (tdta0xc48218) to UDP 192.168.11.204:5060:
INVITE sip:30@192.168.11.204 SIP/2.0
Via: SIP/2.0/UDP 192.168.11.204:5061;rport;branch=z9hG4bKPjGRVw8t3Z.xhPtTKMcXwT-sS1nPDGtmFG
Max-Forwards: 70
From: sip:31@192.168.11.204;tag=dY-GFFdWGeLYZM8Khh-x0nOVQiZ-Qo4p
To: sip:30@192.168.11.204
Contact: <sip:31@192.168.11.204:5061;ob>
Call-ID: qJJZH.7BBUsvFaEqHvBb3msd.vTKfoLO
CSeq: 9623 INVITE
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Supported: replaces, 100rel, timer, norefersub
Session-Expires: 1800
Min-SE: 90
User-Agent: PJSUA v2.5.5 Linux-4.1.19/armv7l/glibc-2.13
Content-Type: application/sdp
Content-Length:   479

v=0
o=- 3688206086 3688206086 IN IP4 192.168.11.204
s=pjmedia
b=AS:84
t=0 0
a=X-nat:0
m=audio 4000 RTP/AVP 98 97 99 104 3 0 8 9 96
c=IN IP4 192.168.11.204
b=TIAS:64000
a=rtcp:4001 IN IP4 192.168.11.204
a=sendrecv
a=rtpmap:98 speex/16000
a=rtpmap:97 speex/8000
a=rtpmap:99 speex/32000
a=rtpmap:104 iLBC/8000
a=fmtp:104 mode=30
a=rtpmap:3 GSM/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:9 G722/8000
a=rtpmap:96 telephone-event/8000
a=fmtp:96 0-16

--end msg--
22:41:26.726    pjsua_app.c  .......Call 0 state changed to CALLING
>>> 22:41:26.728   pjsua_core.c  .RX 572 bytes Response msg 401/INVITE/cseq=9623 (rdata0xc3d3b4) from UDP 192.168.11.204:5060:
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.11.204:5061;branch=z9hG4bKPjGRVw8t3Z.xhPtTKMcXwT-sS1nPDGtmFG;received=192.168.11.204;rport=5061
From: sip:31@192.168.11.204;tag=dY-GFFdWGeLYZM8Khh-x0nOVQiZ-Qo4p
To: sip:30@192.168.11.204;tag=as78823107
Call-ID: qJJZH.7BBUsvFaEqHvBb3msd.vTKfoLO
CSeq: 9623 INVITE
Server: Asterisk PBX 1.8.13.1~dfsg1-3+deb7u4
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="6230a0dc"
Content-Length: 0

--end msg--
22:41:26.739   pjsua_core.c  .......TX 1281 bytes Request msg INVITE/cseq=9624 (tdta0xc48218) to UDP 192.168.11.204:5060:
INVITE sip:30@192.168.11.204 SIP/2.0
Via: SIP/2.0/UDP 192.168.11.204:5061;rport;branch=z9hG4bKPjmM11URHgUQW7GNP2eDt6l4MyOlOiOO0Z
Max-Forwards: 70
From: sip:31@192.168.11.204;tag=dY-GFFdWGeLYZM8Khh-x0nOVQiZ-Qo4p
To: sip:30@192.168.11.204
Contact: <sip:31@192.168.11.204:5061;ob>
Call-ID: qJJZH.7BBUsvFaEqHvBb3msd.vTKfoLO
CSeq: 9624 INVITE
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Supported: replaces, 100rel, timer, norefersub
Session-Expires: 1800
Min-SE: 90
User-Agent: PJSUA v2.5.5 Linux-4.1.19/armv7l/glibc-2.13
Authorization: Digest username="31", realm="asterisk", nonce="6230a0dc", uri="sip:30@192.168.11.204", response="25d92327951bc9291b1732b2cfdfeae0", algorithm=MD5
Content-Type: application/sdp
Content-Length:   479

v=0
o=- 3688206086 3688206086 IN IP4 192.168.11.204
s=pjmedia
b=AS:84
t=0 0
a=X-nat:0
m=audio 4000 RTP/AVP 98 97 99 104 3 0 8 9 96
c=IN IP4 192.168.11.204
b=TIAS:64000
a=rtcp:4001 IN IP4 192.168.11.204
a=sendrecv
a=rtpmap:98 speex/16000
a=rtpmap:97 speex/8000
a=rtpmap:99 speex/32000
a=rtpmap:104 iLBC/8000
a=fmtp:104 mode=30
a=rtpmap:3 GSM/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:9 G722/8000
a=rtpmap:96 telephone-event/8000
a=fmtp:96 0-16

--end msg--
22:41:27.244    pjsua_aud.c  .....Conf connect: 1 --> 0
22:41:27.245   conference.c  ......Port 1 (ringback) transmitting to port 0 (Master/sound)
22:41:27.245    pjsua_app.c  .....Call 0 state changed to EARLY (180 Ringing)
22:41:29.994   pjsua_core.c  .RX 895 bytes Response msg 200/INVITE/cseq=9624 (rdata0xc3d3b4) from UDP 192.168.11.204:5060:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.11.204:5061;branch=z9hG4bKPjmM11URHgUQW7GNP2eDt6l4MyOlOiOO0Z;received=192.168.11.204;rport=5061
From: sip:31@192.168.11.204;tag=dY-GFFdWGeLYZM8Khh-x0nOVQiZ-Qo4p
To: sip:30@192.168.11.204;tag=as6fc3ea6b
Call-ID: qJJZH.7BBUsvFaEqHvBb3msd.vTKfoLO
CSeq: 9624 INVITE
Server: Asterisk PBX 1.8.13.1~dfsg1-3+deb7u4
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Session-Expires: 1800;refresher=uas
Contact: <sip:30@192.168.11.204:5060>
Content-Type: application/sdp
Content-Length: 300

v=0
o=root 1629173699 1629173699 IN IP4 192.168.11.204
s=Asterisk PBX 1.8.13.1~dfsg1-3+deb7u4
c=IN IP4 192.168.11.204
t=0 0
m=audio 16602 RTP/AVP 3 0 8 96
a=rtpmap:3 GSM/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:96 telephone-event/8000
a=fmtp:96 0-16
a=ptime:20
a=sendrecv
--end msg--
22:41:30.008    pjsua_app.c  .....Call 0 state changed to CONNECTING
22:41:30.010  pjsua_media.c  .....Call 0: updating media..
22:41:30.010    pjsua_aud.c  ......Audio channel update..
22:41:30.011   strm0xc517cc  .......VAD temporarily disabled
22:41:30.012   strm0xc517cc  .......Encoder stream started
22:41:30.012   strm0xc517cc  .......Decoder stream started
22:41:30.012  pjsua_media.c  ......pjsua_aud_channel_update() failed for call_id 0 media 0: Invalid operation (PJ_EINVALIDOP)
22:41:30.013  pjsua_media.c  ......Error updating media call00:0: Invalid operation (PJ_EINVALIDOP)
22:41:30.013   pjsua_call.c  .....Unable to create media session: No active media stream after negotiation (PJMEDIA_SDPNEG_ENOMEDIA) [status=220048]
22:41:30.014   pjsua_core.c  ........TX 340 bytes Request msg BYE/cseq=9625 (tdta0xc41048) to UDP 192.168.11.204:5060:
BYE sip:30@192.168.11.204:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.11.204:5061;rport;branch=z9hG4bKPjwneXgrEzTyf9OgujNoasSp3AA.3vF9l6
Max-Forwards: 70
From: sip:31@192.168.11.204;tag=dY-GFFdWGeLYZM8Khh-x0nOVQiZ-Qo4p
To: sip:30@192.168.11.204;tag=as6fc3ea6b
Call-ID: qJJZH.7BBUsvFaEqHvBb3msd.vTKfoLO
CSeq: 9625 BYE
Content-Length:  0

--end msg--
22:41:30.022 sip_endpoint.c  .Response msg 487/INVITE/cseq=9624 (rdata0xc3d3b4) from 192.168.11.204:5060 was dropped/unhandled by any modules
22:41:30.023   pjsua_core.c  .RX 483 bytes Response msg 200/BYE/cseq=9625 (rdata0xc3d3b4) from UDP 192.168.11.204:5060:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.11.204:5061;branch=z9hG4bKPjwneXgrEzTyf9OgujNoasSp3AA.3vF9l6;received=192.168.11.204;rport=5061
From: sip:31@192.168.11.204;tag=dY-GFFdWGeLYZM8Khh-x0nOVQiZ-Qo4p
To: sip:30@192.168.11.204;tag=as6fc3ea6b
Call-ID: qJJZH.7BBUsvFaEqHvBb3msd.vTKfoLO
CSeq: 9625 BYE
Server: Asterisk PBX 1.8.13.1~dfsg1-3+deb7u4
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
Content-Length: 0

--end msg--
22:41:30.025    pjsua_aud.c  .....Conf disconnect: 1 -x- 0
22:41:30.025   conference.c  ......Port 1 (ringback) stop transmitting to port 0 (Master/sound)
22:41:30.025    pjsua_app.c  .....Call 0 is DISCONNECTED [reason=488 (Not Acceptable Here)]
22:41:30.026 pjsua_app_comm  .....
  [DISCONNCTD] To: sip:30@192.168.11.204;tag=as6fc3ea6b
    Call time: 00h:00m:00s, 1st res in 526 ms, conn in 3300ms
    #0 audio deactivated
22:41:30.026  pjsua_media.c  .....Call 0: deinitializing media..
Segmentation fault
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • over

    2016/11/16 09:34

    asterisk側のログを提示する必要があるのではないでしょうか? 別コンソールで # asterisk -vvvvvvr を実行した上で、pjsipから発信、対象端末で応答 → 切断すれば、asteriskコンソール上にログが記録されます。そこに切断理由が記載されている可能性があります。

    キャンセル

  • nakky

    2016/11/19 10:18

    ご指摘ありがとうございました。asterisk -vvvvr にて、事象発生時のログを追記いたしました。

    キャンセル

回答 1

0

http://www.asteriskguru.com/tutorials/unknown_codec_received.html
https://community.asterisk.org/t/res-rtp-asterisk-c-unknown-rtp-codec-95-received-from/67704
これらを見るとcodec 95がちゃんと指定されていないのが原因で疎通が取れなくなっているようです。
その対処方法として、codec 95を指定してasteriskをリコンパイルするという方法が考えられます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/20 03:23

    matsuさん
    ご指摘ありがとうございました。
    Unknown RTP codec 95 をキーワードに検索をしたところ、
    Android端末で使用していたZoiperでよく発生するとのことで、
    SIPクライアントをCSipSimpleに変えたところ、 Unknown RTP codec 95 のエラーはなくなりました。

    #######以下、CSipSipmleに変えてからのAsterisk -vvvvr ログ##########

    -- Registered SIP '32' at 192.168.11.204:5061
    == Using SIP RTP CoS mark 5
    -- Executing [30@default:1] Dial("SIP/32-00000048", "SIP/30,30") in new stack
    == Using SIP RTP CoS mark 5
    -- Called SIP/30
    -- SIP/30-00000049 is ringing
    -- SIP/30-00000049 answered SIP/32-00000048
    -- Locally bridging SIP/32-00000048 and SIP/30-00000049  ←応答した直後
    == Spawn extension (default, 30, 1) exited non-zero on 'SIP/32-00000048' ←応答した直後すぐに切断メッセージ
    ###################################################

    その他、SIPシーケンス等を見たところ、
    BYEのシーケンスあたりより、ネガティブなキーワードが発生しているので、
    以降、以下ログのあたりを中心に調べてみようと思います。

    --end msg--
    02:00:20.460 pjsua_app.c .....Call 0 state changed to CONNECTING
    02:00:20.461 pjsua_media.c .....Call 0: updating media..
    02:00:20.461 pjsua_aud.c ......Audio channel update..
    02:00:20.461 strm0x59c6c4 .......VAD temporarily disabled
    02:00:20.462 strm0x59c6c4 .......Encoder stream started
    02:00:20.462 strm0x59c6c4 .......Decoder stream started
    02:00:20.462 pjsua_media.c ......pjsua_aud_channel_update() failed for call_id 0 media 0: Invalid operation (PJ_EINVALIDOP)
    02:00:20.463 pjsua_media.c ......Error updating media call00:0: Invalid operation (PJ_EINVALIDOP)
    02:00:20.463 pjsua_call.c .....Unable to create media session: No active media stream after negotiation (PJMEDIA_SDPNEG_ENOMEDIA) [status=220048]
    02:00:20.463 pjsua_core.c ........TX 340 bytes Request msg BYE/cseq=7606 (tdta0x58c048) to UDP 192.168.11.204:5060:
    BYE sip:30@192.168.11.204:5060 SIP/2.0
    Via: SIP/2.0/UDP 192.168.11.204:5061;rport;branch=z9hG4bKPj4trDiwH6dvnRsVZGzoum4Owzo6EJqibX
    Max-Forwards: 70
    From: sip:32@192.168.11.204;tag=bGYdDmZ2tW0eYJhCGbpk4XVo4qFJXKac
    To: sip:30@192.168.11.204;tag=as184e030a
    Call-ID: xnSBiWujAj3JmI8Dg3TwfIEW-peZwPsw
    CSeq: 7606 BYE
    Content-Length: 0


    --end msg--
    02:00:20.473 pjsua_aud.c .....Conf disconnect: 1 -x- 0
    02:00:20.473 conference.c ......Port 1 (ringback) stop transmitting to port 0 (Master/sound)
    02:00:20.473 pjsua_app.c .....Call 0 is DISCONNECTED [reason=488 (Not Acceptable Here)]
    02:00:20.474 pjsua_app_comm .....
    [DISCONNCTD] To: sip:30@192.168.11.204;tag=as184e030a
    Call time: 00h:00m:00s, 1st res in 226 ms, conn in 1793ms
    #0 audio deactivated
    02:00:20.474 pjsua_media.c .....Call 0: deinitializing media..

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.13%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる