2012-02-18 3 views
0

Я хочу удаленный набор с моего ПК с помощью простой клиентской программы, отличной от SIP, которую я написал, и которая отправляет команды собственному SIP-клиенту, который принимает удаленные команды через TCP-соединение. Собственный клиент SIP затем набирает удаленную сторону, используя IP-адрес и номер порта ПК в SDP для RTP. Возможно ли это в принципе? Существуют ли какие-либо клиенты с открытым исходным кодом, которые используют эту концепцию? Есть ли какая-либо документация (IETF RFC, блоги и т. Д.), Которая доступна.удаленный набор с использованием SIP-клиента

Цените любую помощь в этом вопросе.

+0

Каков протокол вашей опоры. SIP-клиент? Что это за клиент? пожалуйста, дайте более подробную информацию! – CharlesB

+0

Клиент SIP поддержки использует SIP для связи с программным коммутатором (звездочкой, freeswitch и т. Д.) С одной стороны. Он взаимодействует с моим TCP-клиентом, используя простую проприетарную команду запроса-ответа на другом конце. –

+0

ОК, так что в чем проблема, если вы знаете протокол? – CharlesB

ответ

0

Отъезд pjsip, это межплатформенный SIP-клиент с открытым исходным кодом для всех основных платформ и API в C и оболочка API для python, в зависимости от того, что вы предпочитаете. На их сайте также есть примеры. Свяжите TCP код парсинга для pjsip и вызывать его функции, чтобы инициировать вызов, вы можете найти, как это сделать на своем сайте

+0

Клиент PJSIP и TCP находятся на разных машинах. Как я могу получить RTP-канал для моего удаленного клиента TCP. Я подумал о том, чтобы указать для этого удаленный порт и удаленный IP-адрес. Но будет ли это работать? Есть идеи? Спасибо за ваш ответ. –

+0

Теоретически возможно было бы перенаправить поток RTP на третий IP-адрес, тщательно настроив параметры SDP сообщения INVITE, но я никогда не делал этого или никогда не слышал никого, кто бы это сделал, поэтому успех не гарантируется. Начните здесь: http://www.ietf.org/rfc/rfc2327.txt – MrTJ

+0

Поддерживает ли SDK Skype4b Android SDK возможность изменения части SDP сообщения, так что потоки RTP мультимедиа будут перенаправляться на другой IP-адрес и порт, чем работает приложение? Можно извлечь информацию SDP удаленного соединения, чтобы можно было отправить информацию в ящик Linux? –

0

Если я правильно понимаю, вот что вы хотите сделать:

TCP    SIP/SDP/RTP 
PC <===> SIP client <===========> softswitch 

Фактически, TCP между ПК и клиентом SIP, вероятно, будет точным для сигнализации, но не для медиа, поскольку поток RTP-сообщений часто отправляется через UDP.

На мой взгляд, первый шаг - убедиться, что ваш программный коммутатор примет отправку RTP-пакетов на IP-адрес, который не совпадает с клиентом SIP (я думаю, большинство из них отказывается по соображениям безопасности). Если он принимает и если у вас нет NAT между вашим SIP-клиентом и вашим ПК, вы должны иметь возможность отправлять RTP-поток прямо на ваш компьютер. В этом случае вам необходимо получить RTP-пакеты, в конечном итоге перестроить их, распаковать свою полезную нагрузку и передать их вашим динамикам.

Если ваш программный коммутатор не хочет отправлять RTP-пакеты на IP-адрес, отличный от IP-адреса SIP, вам необходимо переслать свои RTP-пакеты с вашего SIP-клиента на ваш компьютер. Но если вы не можете изменить свой SIP-клиент, чтобы сделать это (и это, вероятно, так, как это проприетарное программное обеспечение), вы, вероятно, застряли.

Чтобы проверить, согласен ли ваш программный коммутатор на отправку RTP-пакетов на непреднамеренный IP-адрес, вы можете использовать sipp и указать удаленный IP-адрес, отличный от IP-адреса сигнализации SIP.

+0

Поддерживает ли SDK Skype4b Android SDK разрешение на изменение части SDP сообщения, так что потоки RTP мультимедиа будут перенаправляться на другой IP-адрес и порт, чем приложение работает? Можно извлечь информацию SDP удаленного соединения, чтобы можно было отправить информацию в ящик Linux? –

Смежные вопросы