sip - 在这种情况下,SDP sendonly 意味着打开一个 RTP 音频流吗?

标签 sip sdp freeswitch

我是 sip/sdp 世界的新手。
根据我对 SDP 协议(protocol)的理解,如果我们定义 a=sendonly 从 sip 服务器到客户端软电话,软电话应该打开一个 RTP session 进行监听,但它不应该向目的地发送任何 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。

最佳答案

a=sendonly 如您所料,是单向流。服务端说要发送数据,不会接收数据,所以客户端必须开启一个监听端口。你做对了。

如果您收不到音频,可能是时候使用像 Wireshark 这样的分析工具了。查看服务器是否实际发送任何 RTP 数据。

关于sip - 在这种情况下,SDP sendonly 意味着打开一个 RTP 音频流吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11256362/

相关文章:

ios - iOS 上的 webRTC : Can't send SDP answer, RTCPeerConnection.setRemoteDescription() 失败

javascript - 正则表达式如何取值代理和用户名和号码?

ios - WebRTC + IOS + Freeswitch : Can't hear audio

android - 我应该在对讲机应用程序中使用 sip 和 voip 吗

android - 在 sip 通话中更改视频分辨率

mysql - MySQL 数据库中的 Asterisk sip.conf

java - 如何合并输入和输出音频以发送给另一个 session 者

webrtc - UDP/TLS/RTP/SAVPF 配置文件相对于 RTP/SAVPF 有什么好处?

java - 如何将 H.264 UDP 数据包转换为可播放的媒体流或文件(碎片整理)

linux - freeswitch 的系统启动不一致