5. Почему-то упал tc_transceiver.exe
В рамках Н460 нужно решить несколько вопросов для прохождения трафика через NAT:
1. В схеме когда TCS выступает в роли Gatekeeper нужно дождаться отправки терминалом keepAlive-пакета. Только после этого нужно начинать передачу RTP трафика, при этом нужно для передачи использовать IP-адрес и порт с которого пришел keepAlive-пакет, а не тот, что указан в OLC. Тоесть до получения первого keepAlive-пакета мы-то в принципе и не знаем куда нужно отправлять RTP. Таким образом нужно добавить механизм определения этого адреса и буферизировать либо отбрасывать трафик до его получения.
2. Также должны на каждый канал приходить keepAlive пакеты в случае отсутствия RTP трафика, payload type для этих пакетов будет доступен в VS_MediaChannelInfo как 'keepalive_pt'. Это, как я понимаю, нужно будет использовать в валидации входящих RTP пакетов.
3. В Н460.19 определена поддержка передачи мультиплексированных медиа данных. Когда TCS используется в качестве Gatekeeper для всех каналов в этом случае нужно бы выделить один сокет, который будет получать весь трафик (аудио, видео, слайды и данные). Тогда весь этот трафик нужно будет демультиплексировать (здесь вроде бы проблем нет - нужно всего-то убрать 4 байта) и передать в соответствии с этим заголовком мультиплексированя и payload type-ом в цепочку фильтров. Тоесть здесь нужно как-то поменять схему получения и прохождения через фильтры пакетов из RTP, чтобы пакеты шли на напрямую в цепочку а в сущность которая будет маршрутизировать трафик между цепочками.