Симметричный RTP
Симметричный RTP подразумевает, что пользовательские агенты (UA) используют одну и ту же связку сокет/порт для отправки и приема пакетов RTP потока.
То, как устанавливается этот режим, описывается в SDP части SIP сообщения Invite. Интернет документ IETF для настроек параметров соединений медиапотока в SDP (COMEDIA), описывает как можно определить роль каждого участника сессии, желающих установить соединение между собой. Несмотря на то, что этот документ описывает сеансы, устанавливаемые по протоколу TCP, этот метод используется в симметричном RTP для установки соединения через NAT.
Выдержка из документа Comedia:
Для протоколов, в которых указывается кто будет инициатором связи, очень важным моментом является процедура установки того, кто будет инициатором связи и кто будет подтверждать соединение. Одно конечное устройство должно стать инициатором связи, а другое должно подтвердить это соединение. Атрибут направления direction используется для описания этих ролей, синтаксис этой директивы следующий:
a=direction:<role>
Значение <role> может быть одним из следующих:
- passive: Это оконечное устройство будет подтверждать соединение.
- active: Это оконечное устройство будет инициатором исходящего соединения.
- both: Оконечные устройства могут как подтверждать входящие соединения, так и быть инициаторами исходящих соединений.
Рекомендуется к прочтению:
- Cisco.com: SIP: Connection-Oriented Media Enhancements for SIP
- IETF Draft: Connection-Oriented Media Transport in SDP
- Чтобы ознакомиться со всеми проблемами, с которыми можно столкнуться при передачи голоса и мультимедиа данных через устройства с трансляцией адресов (NAT), включая использование симметричного NAT, рекомендуется ознакомиться с: NAT Traversal for Multimedia over IP Services