SDP sendonly означает открытие одного аудиопотока RTP в этом случае?

Я новичок в мире sip / sdp.
Насколько я понимаю протокол SDP, если мы определим a = sendonly от sip-сервера к клиентскому программному телефону, программный телефон должен открыть один сеанс 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

Я использую другой программный телефон для многоадресной передачи звука (проверка с помощью wirehark) на этот адрес и порт. почему я не слышу звук?

кстати, софтфон я использую xlite, сервер freeswitch.


person xijing dai    schedule 29.06.2012    source источник
comment
они не очень хорошо поддерживают многоадресную рассылку, я полагаю   -  person xijing dai    schedule 19.10.2012


Ответы (2)


a=sendonly - это, как вы подозреваете, однонаправленный поток. Сервер сообщает, что он будет отправлять данные и не будет получать данные, поэтому клиент должен открыть порт прослушивания. Ты поступаешь правильно.

Если вы не получаете звук, возможно, пришло время достать инструмент анализа, например Wireshark, чтобы проверить, сервер фактически отправляет любые данные RTP.

person Frank Shearar    schedule 29.06.2012
comment
поток RTP отправлен, я могу его декодировать с помощью wirehark. Как я могу узнать, идет ли этот поток на программный телефон? Из схемы потока VOIP в Wireshark я не вижу потока в потоке для софтфона. Это значит, что в софтфоне какой-то баг? - person xijing dai; 30.06.2012
comment
Если вы запустите Wireshark на компьютере софтфона, видите ли вы, что трафик попадает на этот компьютер? - person Frank Shearar; 30.06.2012
comment
да, я видел, как трафик ударил по машине. - person xijing dai; 11.07.2012

есть ли конкретная причина, по которой вы настроили многоадресный адрес для этого сообщения?

Многоадресная доставка зависит от того, насколько ваша сеть к этому подготовлена. Кроме того, если локальные коммутаторы Ethernet настроены для отслеживания IGMP, они не будут передавать многоадресный трафик, если от клиента не будет явного сообщения о присоединении IGMP. Также клиент должен иметь возможность многоадресной рассылки, чтобы иметь возможность начать получать многоадресный трафик в конкретной группе многоадресной рассылки.

person Stanislav Sinyagin    schedule 30.06.2012