Модель предложения / ответа в sip согласно RFC3264
У меня проблемы с пониманием заявлений, сделанных в RFC3264, который определяет модель предложения / ответа, используемую в SIP.
1-й абзац на странице 2, глава 1 The answer has a matching media stream for each stream in the offer, indicating whether the stream is accepted or not..
Таким образом, в ответ каждому потоку, найденному в предложении, присваивается соответствующий поток. Это звучит как копия, предложение полностью или частично копируется в ответ. В моем понимании совпадающий поток должен выглядеть как копия потока. Далее больше цит.: "ответ включает в себя". Таким образом, описывается свойство, которое может иметь одно состояние. В RFC нет ни единого слова о несоответствии потока или об отсутствии потока в ответе.
С другой стороны, указывается, принят поток или нет. Здесь у нас есть артефакт с двумя состояниями.
Интересно, как артефакт с 1 состоянием может описать артефакт с 2 состояниями.
1 ответ
Под "медиа потоком" подразумевается некоторый источник медиа, такой как аудио, видео или что-то еще. Ответ должен иметь несколько потоков, и ответ должен иметь ответ на каждый поток. "Базовая" настройка "медиапотока" - это строка "m=".
Вы можете увидеть это в примерах в RFC, например:
10.1 Basic Exchange
Assume that the caller, Alice, has included the following description
in her offer. It includes a bidirectional audio stream and two
bidirectional video streams, using H.261 (payload type 31) and MPEG
(payload type 32). The offered SDP is:
v=0
o=alice 2890844526 2890844526 IN IP4 host.anywhere.com
s=
c=IN IP4 host.anywhere.com
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
m=video 51372 RTP/AVP 31
a=rtpmap:31 H261/90000
m=video 53000 RTP/AVP 32
a=rtpmap:32 MPV/90000
The callee, Bob, does not want to receive or send the first video
stream, so he returns the SDP below as the answer:
v=0
o=bob 2890844730 2890844730 IN IP4 host.example.com
s=
c=IN IP4 host.example.com
t=0 0
m=audio 49920 RTP/AVP 0
a=rtpmap:0 PCMU/8000
m=video 0 RTP/AVP 31
m=video 53000 RTP/AVP 32
a=rtpmap:32 MPV/90000
Вы можете видеть, что в предложении есть три предлагаемых потока: 1 аудио и 2 видео, которые можно прочитать по строкам "m=".
Вы также можете видеть, что ответ имеет три строки "m=" (в том же порядке). Строка "m=video 0 RTP/AVP 31" при отклонении видеопотока предлагает быть принятой из-за части "0". Никаких дополнительных строк не требуется.
Вы также можете видеть, что строки - это не "копии", а фактически настройка того, что эти конечные точки требуют для принятия этого медиапотока. Единственным "копированием" является заказ "m=xxx".