SIP и Java, с чего начать и с чем?

Я хочу реализовать протокол SIP в java и хотел бы иметь возможность создавать разные клиенты (5 или более) и заставлять их подключаться к прокси-серверу. Это все для целей тестирования, поэтому я хотел бы хорошо видеть, что происходит на довольно низком уровне.
Сначала клиенты должны иметь возможность связываться с текстом, а затем, возможно, также через аудио. (Если я когда-либо доберусь до этого)

Я уже немного читал о библиотеках JAIN, и я понял, что они не очень хорошо подходят для серверной части? Я также не нашел примеров прокси-сервера, обучающих программ, используя JAIN.
Я также нашел эту SIP книгу для сервлета, я использовал HTTP-сервлеты в прошлом, но должен ли я использовать сервлеты или JAIN или...?

Я очень новичок в SIP, поэтому я не знаю, с чего начать или что выбрать в сочетании с java.

Ответ 1

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

Вот хороший список доступных SIP-стеков. Если, с другой стороны, вы решите реализовать свой собственный старт, просмотрев SIP-список RFC. RFC 3261 - это спецификация основного протокола, но она была обновлена ​​рядом других RFC, поэтому вам нужно будет реализовать как минимум полдюжины просто для основных функций SIP. После этого, если вы хотите поддерживать такие вещи, как переводы, присутствие, ожидание сообщения и т.д., Тогда это еще больше RFC для реализации. Вот этот список SIP стеки снова.

Ответ 2

Платформа Sip Servlets поможет вам создавать конвергентные приложения, то есть приложения HTTP и SIP. Пользовательское устройство Sip будет взаимодействовать с приложением Sip Servlet. Приложение Sip Servlet может быть, например, B2BUA или прокси-сервером SIP.

Я бы предложил вам попробовать Mobicents Sip Servlet, который является полноценной платформой Sip Servlet поверх Java Servlets, сертифицированной по спецификации JSR289 и используя Jain Sip для SIP-стека.

В проекте есть активное сообщество, и вы найдете полезные примеры для начала.

Выбирая платформу для начала работы, вы можете сосредоточиться на бизнес-логике, и вам не нужно возиться с деталями