我使用 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客户端接听后结束通话时,音频流立即停止,但直到连接超时才结束通话。