Какие классы из Jain SIP (java) следует использовать для создания SIP-клиента?

Я прошу создать SIP-клиент, но я полностью потерян ... После некоторых исследований я нашел Jain SIP API в java и думаю, что буду его использовать. Однако я действительно не знаю, какие классы я должен использовать и какие интерфейсы я должен реализовывать или нет.

Я прочитал эту статью: http://www.oracle.com/technetwork/articles/entarch/introduction-jain-sip-090386.html

И это: http://hudson.jboss.org/hudson/job/jain-sip/lastSuccessfulBuild/artifact/javadoc/javax/sip/package-summary.html#package_description

Но я не понимаю, какую часть я должен реализовать для SIP-клиента? SipListener ИЛИ SipStack и SipProvider?

Спасибо.


person user2308044    schedule 22.04.2013    source источник
comment
Вам помог какой-нибудь ответ?   -  person Deividi Cavarzan    schedule 02.05.2013


Ответы (2)


Вам нужно реализовать оба этих класса.

Класс SipProvider подключится к вашей конечной точке (например, Aterisk). Обратите внимание, что этот класс должен находиться в статическом контексте, поскольку для каждого клиента разрешено только одно подключение.

Вы не можете создать экземпляр SipProvider, вызывающий класс SipStack, на sipStack.createSipProvider(listeningPoint). После этого вы сможете создавать транзакции и отправлять запросы на вашу конечную точку.

SipListener — это класс, который будет обрабатывать все ответы с вашего сервера. Это означает, что каждый запрос, который вы отправляете на сервер (через SipProvider), получит ответ на SipListener. Таким образом, у вас должен быть этот прослушиватель для обработки всех данных, возвращаемых вашей конечной точкой.

Попробуйте реализовать код, описанный в статье Oracle, которую вы цитируете. Я начал разрабатывать на основе этой статьи, и работает очень хорошо!

person Deividi Cavarzan    schedule 22.04.2013
comment
Большое спасибо за вашу помощь и описание, которое вы мне дали, оно мне очень помогло! - person user2308044; 26.05.2013
comment
Я работаю над тем же кодом. Для ip я установил свой локальный ip, и он работал нормально. Когда я попытался изменить ip-адрес на ip-адрес машины, на которой работает sip-сервер, проект выдал исключения, говорящие, что не может привязаться к адресу. Когда я пропинговал этот ip из командной строки, я получил быстрый ответ. При дальнейшей отладке я обнаружил, что в этой строке возникает исключение: sipStack.createListeningPoint. Может ли кто-нибудь указать, какие свойства я должен установить или какие изменения я должен внести, чтобы он работал? - person Ali Shah Ahmed; 26.12.2013

Ознакомьтесь с примерами в эталонной реализации https://java.net/projects/jsip/sources/svn/show/trunk/src/examples?rev=2279, чтобы помочь вам двигаться вперед быстрее

person jeand    schedule 23.04.2013