无语音传输,NAT后面的PJSIP

问题描述 投票:0回答:1

我正在尝试使用pjsua编写软件电话应用。一切正常,当我在同一局域网(192.168.10.XXX)中使用Asterisk和软件电话时,声音是双向传输的,但是当我将软件电话隐藏在NAT之后时,我听不到任何传入的声音,输出声音正常。

我的应用程序的端点的IP为:192.168.12.233,路由器的公共地址为192.168.10.216,而星号-192.168.10.15。路由器上的端口转换配置为转发5060端口(用于SIP)和4000-5000端口(用于RTP)。我试图在pjsua配置中设置ip public addres,但没有任何效果。

这里是我的应用发出的邀请SIP消息,我认为问题是SDP'c'字段包含错误的IP地址。您知道如何在pjsua中进行更改或如何解决声音问题吗?也许我应该在Asterisk配置中更改某些内容?

INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP 192.168.10.216:40173;rport;branch=z9hG4bKPj1cb51c72-d924-4f3e-9075-6fa17e39b3be
Max-Forwards: 70
From: sip:[email protected];tag=c80893bb-4b11-4def-b0e9-59bb82b88630
To: sip:[email protected]
Contact: <sip:[email protected]:40173;ob>
Call-ID: cc07dcae-1f51-4fd9-b3b0-508da40b2752
CSeq: 11230 INVITE
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Supported: replaces, 100rel, timer, norefersub
Session-Expires: 1800
Min-SE: 90
User-Agent: GMIDFOO00
Content-Type: application/sdp
Content-Length:   350

v=0
o=- 3787399917 3787399917 IN IP4 192.168.12.233
s=pjmedia
b=AS:84
t=0 0
a=X-nat:0 Unknown
m=audio 4000 RTP/AVP 9 8 96
c=IN IP4 192.168.12.233
b=TIAS:64000
a=rtcp:4001 IN IP4 192.168.12.233
a=sendrecv
a=rtpmap:9 G722/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:96 telephone-event/8000
a=fmtp:96 0-16
a=ssrc:938347045 cname:56c230b34489dbbe
audio voip pjsip nat pjsua2
1个回答
0
投票

通常在Asterisk PJSIP中,可能由于两件事而发生。

编解码器支持

一个是编解码器支持,请确保您已指定要使用的编解码器,并且双方至少可以在可用编解码器上进行通信。您可以通过运行以下命令来检查此问题,我看不到任何错误,但是您可以尝试使用以下命令来检查RTP通讯]

rtp set debug on

现在您将获得大量信息,请检查双方是否正在通信或只有一方正在移动数据包。如果存在问题,则归因于防火墙。确保您已允许防火墙中的以下端口

 TCP/UDP 5060 and UDP 10000-25000
© www.soinside.com 2019 - 2024. All rights reserved.