Не слишком сильно использовать свой собственный рожок, но я рекомендую попробовать IcedJava. (Это часть проекта SipTools). Он активно разрабатывается, имеет стабильную версию версии 0.9 и поддерживает использование таких случаев, как RTP-поток из коробки.
Что касается поддержки TCP, это планируется для более поздней версии, но вам будет сложно поддерживать TCP по сравнению с симметричным nat из-за блокировки трехстороннего рукопожатия. Даже расширения TCP в спецификации ICE отмечают, что соединения TCP гораздо менее вероятны, чем соединения UDP между natted peers.
При этом вы можете обойти это путем маршрутизации пакетов TCP по мосту UDP, включая все функции исправления ошибок и управления потоком. (Я забыл о RFC для этого, но это окончательная спецификация). Тем не менее, все это относительно новые спецификации, а спецификация ICE-TCP еще не окончательна. Даже в активном развитии им потребуется время для реализации.
hmm ссылка мертва ... – goh
Исправлена ссылка. – SplinterReality
Сохраняется ли этот проект? Или это было прекращено? – mateuscb