我对SIP的报价-应答模式有一个困惑.情况是这样的。
我在客户端配置了两个帐户(例如A和B),使用星号服务器并从A到B调用。
A的帐户详情
客户端(应用):有视频编解码器H264,音频编解码器G722,G711
服务器端(星号):没有视频编解码器,音频编解码器G722,G711
B的帐户详情
客户端(应用):没有视频编解码器,音频编解码器G722,G711
服务器端(星号):没有视频编解码器,音频编解码器G722,G711
在第一个邀请(提供)中,我将发送带有"m=“参数的SDP,用于音频和视频(视频端口为52162),星号是在183个会话进度和200个OK (因为星号没有任何视频编解码器)向我发送带有"m=”参数的音频和视频(视频端口为0)的答案。
从申请方开始,我将发送下一次邀请,以暂停通话。为此,我只为音频发送a=sendonly和"m=“参数。
我的疑问是,“我能否避免第二次邀请的视频(在我的情况下是持有)从应用程序端"m=”参数“,如果我得到的答案是视频端口为0作为第一次报价。
发布于 2015-12-29 16:42:40
session /应答模型要求您在会话的所有修改中重复使用所有m=行和相同顺序的。
唯一允许的操作是在现有的m=行的下面添加额外的行。
在用例中,如果不包括m=video行,则远程端应该拒绝您的邀请。
编辑:这是rfc的确切措辞,它清楚地显示了永不删除任何m=行的要求:
从rfc3264节8修改会话
If an SDP is offered, which is different from the previous SDP, the
new SDP MUST have a matching media stream for each media stream in
the previous SDP. In other words, if the previous SDP had N "m="
lines, the new SDP MUST have at least N "m=" lines. The i-th media
stream in the previous SDP, counting from the top, matches the i-th
media stream in the new SDP, counting from the top. This matching is
necessary in order for the answerer to determine which stream in the
new SDP corresponds to a stream in the previous SDP. Because of
these requirements, the number of "m=" lines in a stream never
decreases, but either stays the same or increases. Deleted media
streams from a previous SDP MUST NOT be removed in a new SDP;
however, attributes for these streams need not be present.
作为一个侧行,表示m=行类型(音频、视频、.)的异常是有用的。可以修改:它是在第8.3.3节提供的改变媒体类型的。这一例外非常具体,不适用于99,99%.( rfc中的一个例子是语音带传真到传真)
https://stackoverflow.com/questions/34508546
复制相似问题