使用不带声音设备的pjsua

时间:2018-10-31 03:36:23

标签: pjsip

我们正在嵌入式芯片上实现sip客户端,因此语音通话存在问题。 pjsua在屏幕上显示错误消息:

    Press a to answer or h to reject call
a
Answer with code (100-699) (empty to cancel): 200
20:19:00.811           pjsua_call.c !Answering call 0: code=200
20:19:00.811          pjsua_media.c  ...Call 0: updating media..
20:19:00.811          pjsua_media.c  ....pjmedia_stream_info_from_sdp() failed for call_id 0 media 0: Invalid media payload type (PJMEDIA_EINVALIDPT)
20:19:00.811          pjsua_media.c  .....Media stream call00:0 is destroyed
20:19:00.811          pjsua_media.c  ....Error updating media call00:0: Invalid media payload type (PJMEDIA_EINVALIDPT)
20:19:00.811           pjsua_call.c  ...Unable to create media session: No active media stream after negotiation (PJMEDIA_SDPNEG_ENOMEDIA) [status=220048]
20:19:00.811           pjsua_core.c  ......TX 657 bytes Response msg 488/INVITE/cseq=5078 (tdta0x55ff190ff418) to UDP 91.121.209.194:5060:
SIP/2.0 488 Not Acceptable Here

我使用以下命令行(x86 pjsua)启动了pjsua示例:

$ ./pjsua-x86_64-unknown-linux-gnu --null-audio --local-port=15060

pjsua是否会强制检查声音设备?我们只想拨打电话并将外部DSP音频数据传输到服务器,并且我们已经实现了从本地DSP提取音频数据。有什么方法可以通过pjsua发送音频而无需修改pjsip的源代码?我们的pjsip版本是2.8。

PS:我已经阅读了这份文件,它告诉了我实现目标的几种方法。

方法1: set_null_audio_device

方法2: 启用外部声音设备(我们不知道它如何工作)

方法3: 第三方媒体示例(pjsip 2.X,有点复杂)

方法4: 集成第三方媒体堆栈(仅适用于pjsip 1.X?)

,但是它们都没有示例程序。甚至不赞成使用某些方法。

0 个答案:

没有答案