Как запустить поток RTP внутри вызова SIP/SDP
Мне удалось настроить SIP-вызов, используя JAIN-SIP API для Java.
Теперь я хотел бы транслировать видео после того, как был установлен диалог. Я читал, что это возможно с SDP и RTP, и я нашел несколько примеров того, как определить тело SDP/RTP в пакете SIP.
Но как только вы договорились о возможностях и т. Д. На узлах, как вы фактически запускаете поток RTP? Вы запускаете потоковый сервер RTP снаружи или внутри вашего Java-приложения? Если так, то как? Какая ссылка?
В том, что я могу найти в сети, узлы просто "начинают обмениваться RTP-пакетами".
Спасибо.
2 ответа
Вам нужен стек RTP. Когда вы только начинаете, было бы лучше сохранить все вместе в одном приложении. JMF(Java Media Framework), (архитектура JMF-RTP) - хорошее место для начала, хотя есть и другие, такие как JRTP. Особенности видео JMF можно найти здесь
Попробуйте выполнить поиск по ключевому слову "повторно ПРИГЛАСИТЬ" и соответствующим примерам. Как только вы обнаружите, что нуждаетесь в другом аудио / видео потоке в существующий вызов SIP с уже установленным носителем, вам нужно запустить новую последовательность INVITE / OK / ACK. Новые потоки могут заменить существующие медиапотоки или могут быть добавлены. Это ваш выбор, и это зависит от сигнализации. Конечно, вам нужен стек RTP с поддержкой возможностей / кодеков для удовлетворения ваших реальных потребностей.
Люди часто реализуют это для обработки факсимильной связи T.38 внутри вызовов SIP. Вы можете получить требуемые справочные журналы дампинга вызова с устройства, которое поддерживает T.38 (или фактически имеет любой модем с поддержкой IP). Помните, что ваши голосовые потоки должны быть кодеками LBR (низкая скорость передачи данных), такими как G.729 или G.723.1. Это может принести вам множество ответов, по крайней мере, "когда" запустить RTP и как сигнализировать об этом. По крайней мере, инициируя INVITE с предложенным новым потоком RTP, вы должны быть готовы получить этот поток с самого начала. После OK вы можете начать отправку RTP с предложенными портами "куда" отправлять RTP.