Android 組み込みの sip ライブラリを使用して、独自の Asterisk サーバー経由で呼び出しを行うアプリを作成しました。通話は正しく行われていますが、ほとんどの場合、通話は正しく終了していません。
これは、通話を終了するための私のコードです:
public void stopCalling(){
try {
call.endCall();
call.close();
} catch (SipException e) {
e.printStackTrace();
}
}
通話が正しく終了することがあるのに、ほとんどの場合正しく終了しない理由を誰か説明してもらえますか?
何が起こるかの例を挙げると、Android フォンから PC の sip クライアントに電話をかけると、呼び出し音が鳴ります。Android デバイスから stopCalling メソッドを呼び出すと、PC クライアントが鳴り続けます。PC で通話に応答すると、音が出ず、最終的に接続がタイムアウトし、PC クライアントで通話が終了します。側。PC クライアントが応答した後に通話を終了すると、オーディオ ストリームはすぐに停止しますが、接続がタイムアウトするまで通話は終了しません。