我是sip / sdp世界的新手。
根据我对SDP协议的理解,如果我们将sip服务器中的a = sendonly定义为客户端软电话,则软电话应打开一个RTP会话进行监听,但不应将任何RTP数据包发送到目的地。我对么?
在我的情况下,我听不到任何声音,并且有一个RTP流来上传音频。注意:我正在使用多播地址。
这是SIP / SDP转储(从服务器到客户端软电话):
SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.8.219:5060;branch=z9hG4bK-d8754z-b394381274917501-1---d8754z-;rport=5060 From: ;tag=d67855ee To: ;tag=KQQHgQ93Sjg1F Call-ID: YTExMzkwZDdhMGM1NTJmMDJlMGFiYjgxMGI1ZDNmMDI. CSeq: 2 INVITE Contact: User-Agent: FreeSWITCH-mod_sofia/1.2.0-rc2+git~20120623T054003Z~65b2f2d2e7+unclean~20120623T083401Z Accept: application/sdp Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, UPDATE, INFO, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE Supported: timer, precondition, path, replaces Allow-Events: talk, hold, presence, dialog, line-seize, call-info, sla, include-session-description, presence.winfo, message-summary, refer Content-Type: application/sdp Content-Disposition: session Content-Length: 265 v=0 o=FreeSWITCH 1340907341 1340907343 IN IP4 224.168.168.168 s=FreeSWITCH c=IN IP4 224.168.168.168 t=0 0 a=sendonly m=audio 34567 RTP/AVP 0 101 a=rtpmap:0 PCMU/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=silenceSupp:off - - - - a=ptime:20
我使用另一个软电话在该地址和端口上组播声音(通过wireshark验证)。 为什么我听不到声音?
顺便说一句,我使用xlite的软电话,服务器是freeswitch。答案 0 :(得分:5)
a=sendonly
是一个单向流。服务器说它将发送数据而不会接收数据,因此客户端必须打开一个监听端口。你正在做正确的事。
如果您没有收到音频,可能需要赶快运行像Wireshark这样的分析工具来查看服务器是否实际发送了任何RTP数据。
答案 1 :(得分:0)
是否有为此通信配置多播地址的具体原因?
多播传送取决于您的网络如何为此做好准备。此外,如果本地以太网交换机配置为IGMP侦听,则除非客户端显示明确的IGMP加入消息,否则它们不会传递任何多播流量。此外,客户端应具有多播功能,以便能够开始接收特定多播组中的多播流量。