Определить предложение SDP для ответа в WebRTC
При наличии нескольких SDP предложений, созданных локальным устройством, и SDP ответа, созданного удаленным устройством в ответ на одно, возможно ли определить предложение, для которого был создан ответ?
Другими словами, есть ли какая-то информация, уникальная для одного соединения, которое содержится и в Ответе, и в Предложении, позволяющее сопоставить эти два? Например, значение в SDP, указывающее, для какого соединения используется SDP.
Я не уверен, используется ли один и тот же идентификатор сеанса и в предложении, и в ответе, но если бы это было так, его можно было бы использовать.
1 ответ
Нет, в JSEP SDP, соответствующем стандартам, не будет такого идентификатора.
Один трюк, который вы могли бы сделать (который я бы не рекомендовал, так как он мог бы перестать работать на любой новой версии Chrome/Firefox), это использование атрибута "a=mid". Это гарантированно будет одинаковым между предложением и ответом.
Итак, вы можете взять sdp, который выглядит так:
...
a=group:BUNDLE audio video
...
a=mid:audio
...
И заменить его на
...
a=group:BUNDLE uniqueidentifier video
...
a=mid:uniqueidentifier
...
Хотя, как уже упоминалось, это не ориентировано на будущее (поскольку использование SDP в конечном итоге будет запрещено). Кроме того, значение MID должно быть небольшим, поскольку оно будет отображаться на проводе, и оно должно быть одинаковым между последовательными предложениями / ответами. Я бы действительно рекомендовал сигнализировать уникальный идентификатор за пределами самого SDP.