問題タブ [pjsua2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1001 参照

android - PJSUA2 Android - 着信コールが 32 秒後にドロップする

PJSUA2 (PJSIP 2.8) Android アプリを構築していますが、いくつかの問題があります。つまり、着信通​​話でのみ、通話状態が「PJSIP_INV_STATE_CONNECTING」のままになり、32 秒後に通話が切断されます。

数日後、問題の原因を探しています。Google でいろいろ調べたところ、ほとんどの場合、この問題は NAT の管理または NAT に関連するネットワークの問題に関連しています。簡単に言うと、ほとんどの場合、着信側は通話に応答した後、ACK を受信しません。最後に、アプリと SIP サーバー間のすべての SIP メッセージをログに記録し、アプリがサーバーから ACK を受信したことを確認したので、ネットワーク関連の問題ではないと思います。

OpenSSL と SRTP をサポートする PJSIP 2.8 をコンパイルしましたが、ビデオはサポートしていません (少なくとも現時点では必要ありません)。違いがある場合、アプリのターゲット バージョンは 28 で、最小 SDK バージョンは 19 です。

市場でいくつかのアプリを試してみましたが、それらは SRTP の有無にかかわらず、すべてのシグナリング トランスポート (UDP、TCP、TLS) で十分に動作し、WebRTC も (SipML5 でテスト済み) 正常に動作するため、サーバーの構成ミスを除外します。私のアプリも同じことを行います(現時点でいくつかの問題があるSRTPを除く)。

UDPを使用してSIPプロバイダー(MessageNet)でも試してみましたが、動作は常に同じです。コンパクトな SIP メッセージを使用しようとしましたが、URI パラメーターの有無にかかわらず、STUN や ICE の有無にかかわらず同じように動作し、何も変わりません。モバイル ネットワークと WiFi ネットワークでは、同じ結果が得られます。

私も PJSIP ライブラリ内でデバッグしようとしましたが、成功しなかったので、コードをたどって何が間違っていたのかを理解しようとしましたが、明らかに間違っているようには見えません。

以下は、PJSIP を初期化するコード (最新バージョン) です。

以下は、作成および登録コードを含む私の Account クラスです。

最後に、PJSIP の Call クラスを拡張するクラスで現時点でコードにどのように答えるか:

私もステータスコードだけで試しましnew CallOpParam();たが、何も変わりませんでした。

1 つのメモ: IdUri を sip:username@127.0.0.1 として作成しました。これは、ホストがないと連絡先が表示されず、ユーザー部分の欠落が問題またはその一部の原因である可能性があると考えたためです。

以下は、通話中のアプリ <-> 私のアスタリスク サーバー通信のトレースです (コンテンツの長さが超過したためリンクされています)。

https://gist.github.com/ivano85/a212ddc9a808f3cd991234725c2bdb45

ServerIpはインターネットのパブリック IP で、MyIp[5.XXX.XXX.XXX] は私の電話のパブリック IP です。

ログからわかるように、私のアプリは 100 Trying を送信し、電話が鳴ると 180 Ringing を送信し、ユーザーが応答するとアプリは 200 OK を送信します。サーバーは ACK メッセージで応答します (PJSIP が ACK を受信するため、NAT の問題ではないと思います)。アスタリスクからも同じことがわかります。

この後、コールが PJSIP_INV_STATE_CONNECTING から PJSIP_INV_STATE_CONFIRMED に移行すると予想しますが、発生しないため、PJSIP は 200 OK を送信し続け、約 2 秒ごとに ACK を受信し、コールが 32 秒後にタイムアウトになり、PJSIP がコールを切断します ( BYEを送る)。

PJSIP は ACK メッセージを無視するだけで、間違った動作をしているだけだと思い始めています。ここで何が起こっているのかを理解するのを手伝ってください。よろしくお願いします!

詳細が必要だと思われる場合は、明らかにお知らせください。

0 投票する
1 に答える
266 参照

android - 発信時にビープ音を鳴らして受信機に送信する方法

呼び出し用に pjsua2 ライブラリを実装しました。発信通話中に音声を再生する際に問題が発生しています。また、正常に機能している通話録音機能も実装しました。受信機でも聞こえる通話中にwavファイルを再生する方法がわかりません。

pjsua2 のドキュメントを確認しましたが、これは最新のものではありません。

私を助けてください、私はすでにほぼ一週間過ごしています。

0 投票する
1 に答える
518 参照

android - pjsua2 サンプル アプリの発信呼び出しが TCP 接続で 403 Forbidden 応答を取得する

pjsua サンプル アプリに sip クライアントを正常に登録し、UDP 経由で着信を受信して​​います。しかし、発信しようとすると、403 FORBIDDEN エラーで切断されます。作成された接続は TCP です。

宛先URIを確認しました。それは次のような形式です

sip:mobile-number@sip-server-ip:port

ここに私のmakeCallコードがあります:

public void makeCall(View ビュー) {

通話アクティビティが表示されます。ログは次のとおりです。