java - 在带有 PJSIP Android 库的 Android 6.0 上的 pjsip 中使用无用户帐户时出现问题
问题描述
我目前正在开发一个需要创建对等 sip 客户端进行测试的项目。我找到了一个名为 PJSIP Android 的库,它将 pjsip 包装为在 Android 上运行的服务。
我的问题是我创建的无用户帐户无法拨打任何电话,也无法接收来自同一网络中另一个 sip 客户端的任何来电。
正如 pjsip 文档中的描述,我已经在没有注册的情况下声明了该帐户。在我使用 createGuest() 作为默认帐户创建了一个无用户帐户 (sipUri = "sip:10.0.1.101") 后,它成功地附加到了 SIP 堆栈,一切似乎都很好。
08-04 20:37:54.160 30848-30886/com.example.pjsipgo D/SipService: PJSIP started!
08-04 20:37:54.169 30848-30848/com.example.pjsipgo D/SipServiceBR: SIP service stack started
08-04 20:37:54.178 30848-30886/com.example.pjsipgo D/SipService: SIP account sip:10.0.1.101 successfully added
08-04 20:37:54.178 30848-30886/com.example.pjsipgo D/SipService: SipService created!
08-04 20:37:54.178 30848-30886/com.example.pjsipgo D/SipService: Reconfiguring sip:10.0.1.101
08-04 20:37:54.178 30848-30886/com.example.pjsipgo D/SipService: Removing SIP account sip:10.0.1.101
08-04 20:37:54.178 30848-30886/com.example.pjsipgo D/SipService: SIP account sip:10.0.1.101 successfully removed
08-04 20:37:54.179 30848-30886/com.example.pjsipgo D/SipService: SIP account sip:10.0.1.101 successfully added
但是,当我尝试拨打电话时,错误弹出如下:
08-04 20:41:57.571 30848-30886/com.example.pjsipgo D/SipService: Making call to Shin@10.0.1.7
08-04 20:41:57.571 30848-30886/com.example.pjsipgo I/SipService: handleMakeCall accountID: sip:10.0.1.101
08-04 20:41:57.670 30848-30886/com.example.pjsipgo W/AudioTrack: AUDIO_OUTPUT_FLAG_FAST denied by client; transfer 1, track 16000 Hz, output 48000 Hz
08-04 20:41:57.673 30848-30886/com.example.pjsipgo W/AudioRecord: AUDIO_INPUT_FLAG_FAST denied by client; transfer 1, track 16000 Hz, primary 48000 Hz
08-04 20:41:58.174 30848-30848/com.example.pjsipgo D/SipServiceBR: onCallState - accountID: sip:10.0.1.101, callID: 0, callStateCode: PJSIP_INV_STATE_DISCONNECTED, callStatusCode: PJSIP_SC_BAD_GATEWAY, connectTimestamp: 0, isLocalHold: false, isLocalMute: false, isLocalVideoMute: false
08-04 20:41:58.176 30848-30886/com.example.pjsipgo E/SipAccount: Error while making outgoing call
java.lang.Exception: Title: pjsua_call_make_call(acc.getId(), &pj_dst_uri, param.p_opt, this, param.p_msg_data, &id)
Code: 70018
Description: gethostbyname() has returned error (PJ_ERESOLVE)
Location: ../src/pjsua2/call.cpp:490
at org.pjsip.pjsua2.pjsua2JNI.Call_makeCall(Native Method)
at org.pjsip.pjsua2.Call.makeCall(Call.java:107)
at net.gotev.sipservice.SipCall.makeCall(SipCall.java:409)
at net.gotev.sipservice.SipAccount.addOutgoingCall(SipAccount.java:98)
at net.gotev.sipservice.SipService.handleMakeCall(SipService.java:477)
at net.gotev.sipservice.SipService.access$900(SipService.java:40)
at net.gotev.sipservice.SipService$2.run(SipService.java:101)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.os.HandlerThread.run(HandlerThread.java:61)
用调试模式跟踪错误,我没有发现输入到pjsua2JNI.Call_makeCall()中的数据有任何问题。
此外,当我使用另一个 sip 客户端拨打无用户帐户时,Wireshark 显示目标端口无法访问。
谁能告诉我可能的问题是什么?如果可能的话,谁能告诉我 pjsip 使用无用户帐户拨打和接听电话的工作流程?我已经在这个问题上停留了几天,但一直没有解决它的线索。
顺便说一句,使用注册的 sip 帐户登录时,代码运行良好。该代码名为 PjsipGo,我试图联系作者,但没有得到他的回复。
解决方案
推荐阅读
- cuda - cuda-memcheck 无效的 __global__ 读取大小为 4
- python - 为什么我得到 discord.py AttributeError: 'str' object has no attribute 'trigger_typing'
- java - 集群中其他节点未释放石英锁导致微服务启动失败
- amazon-web-services - aws sdk boto3 使用 describe_security_groups()
- android - 使用Moshi和retrofit2解析具有相同键但不同值的json字段
- reactjs - 在相同组件中识别单击的组件
- javascript - 将 CommonJS 默认导出导入为命名导出/无法加载 ES 模块
- python - 如何在 C# 中从 python 脚本异步读取数据
- ssh - 通过端口转发连接使用 ssh
- google-cloud-platform - 在没有角色/所有者的 GCP 上部署 Kubeflow 1.3