문제

I am a newbie to sip/sdp world.
From my understanding of SDP protocol, if we define a=sendonly from sip server to client softphone, the softphone should open one RTP session for listening, but it should not send any RTP packets to destination. Am I correct?

In my case, I can not hear any sounds coming in, and there is a RTP stream to upload audio. Note: I am using the multicast address.

here is a SIP/SDP dump (from server to client softphone):

    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

I use another softphone to multicast sound(verify by wireshark) on that address and port. why can not I hear the sound?

by the way, softphone i am using xlite, the server is freeswitch.

도움이 되었습니까?

해결책

a=sendonly is, as you suspect, a unidirectional stream. The server says that it will send data and will not receive data, so the client must open a listening port. You're doing the right thing.

If you're not getting audio, it might be time to haul out an analysis tool like Wireshark to see if the server's actually sending any RTP data.

다른 팁

is there a specific reason why you configured a multicast address for this communication?

Multicast delivery depends on how your network is prepared for that. Also if your local ethernet switches are configured for IGMP Snooping, they would not pass any multicast traffic unless there's an explicit IGMP Join message from the client. Also the client should be multicast-capable, in order to be able to start receiving multicast traffic in a particular multicast group.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top