С# SIP Stack/Library

Я ищу хорошую библиотеку SIP, написанную на С# или предоставляющую оболочку С#. Не обязательно нужно быть свободным. Кто-нибудь использовал что-нибудь хорошее?

Чтобы уточнить, я говорю о VoIP-протоколе SIP.

Я действительно ищу больше, чем поиск Google на этом. Я хотел бы, чтобы кто-то вернулся и сказал: "Мы используем ______, и он отлично работает".

Чтобы уточнить, я ищу библиотеку, которая поможет мне реализовать прокси-сервер SIP без необходимости вручную создавать SIP-пакеты. Я не ищу звездочку, freeswitch или любое другое программное обеспечение pbx.

Я ищу создать службу на С#, которая будет ждать SIP-пакетов и отвечать на них, и мне нужна библиотека, которая обрабатывала бы большинство деталей.

Ответ 1

Я провел аналогичный квест 7 лет назад, но искал встроенную версию C. Я просмотрел библиотеку oSIP. Он выполнил всю работу по преобразованию пакетов SIP в структуры и обратно.

Однако, один момент в документации застрял со мной. Автор рекомендовал вам хорошо ознакомиться с спецификацией SIP (RFC 3261), чтобы эффективно использовать библиотеку. Прочитав спецификации несколько раз, я закончил писать свой собственный парсер и приложение для управления вызовами.

Имейте в виду, что SIP по-прежнему является развивающимся стандартом. Существует активная группа SIPForum, которая в настоящее время разрабатывает SIPConnect 1.1 стандартизировать интерфейс между поставщиком услуг SIP (например, Vonage) и SIP-PBX. Существует также деятельность, называемая BLISS для определения "лучших практик" для реализации функций SIP между пользовательскими агентами.

Совместимость жесткая. Существуют сотни RFC, связанных с SIP. Различные конечные точки используют разные, и интерпретации спецификаций не всегда совместимы. Существует несколько различных событий взаимодействия (например, SIPit), чтобы убедиться, что ваша реализация работает с другими.

Независимо от того, что вы выбрали, убедитесь, что вы хорошо понимаете спецификации для функций, которые вы реализуете. Кроме того, спецификации и библиотеки будут помогать стороне пакета, но вам все равно нужна библиотека "управления вызовами" (более высокий уровень "мозг", чтобы решить, как обрабатывать запрос/ответ SIP). Вам также нужен медиа-уровень для обработки звука, если ваше приложение не является просто прокси-сервером SIP.

Сказав все это, несколько провайдеров интернет-телефонии (ITSP) использовали SIP Express Router в качестве прокси-сервера для своих служб, Он очень настраиваемый и имеет высокую степень успеха для совместимости.

Ответ 3

IMHO, один из лучших стеков на сегодняшний день - PJSIP. Он написан в очень портативном C и имеет несколько оберток. Вот .NET wrapper, который работает очень хорошо.

Ответ 4

Мы используем SIP.Net, работает нормально для нас.
Мы используем его для ожидания SIP-пакетов и поддержания потока SIP очень просто.
Обратите внимание, что иногда его объектная модель слишком детализирована, поэтому сам продукт очень гибкий (если вам нужна такая гибкость). Однако мы писали обертку более высокого уровня (своего рода фасад), чтобы облегчить нам задачу. Они очень отзывчивы, но документация недостаточно детальная ИМО.
Вы также можете проверить nsip (просто ссылку, я сам не пробовал)

Ответ 5

Мой sipsorcery - еще один вариант. Он содержит SIP-стек, полностью написанный на С#.

Ответ 6

Похоже, что хорошей отправной точкой может стать статья CodeProject. Однако я не считаю, что он обрабатывает медиапоток.

Ответ 7

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

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

В моем случае я пытался заставить Microsoft Speech Server связываться с терминаторами SIP. Microsoft имеет особенно творческую интерпретацию спецификации SIP (наиболее заметным примером является то, что они не поддерживают UDP). Кроме того, некоторые шлюзы VOIP не поддерживают REFER для контролируемых передач, что необходимо для многих приложений.

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

Ответ 8

http://www.konnetic.com - относительно новое дополнение. Полностью управляется. Все, что вам нужно для работы с SIP и SDP. Они не выбрали низкопробный плод в стандарте, как и многие другие. Так же хорошо, как и Microsoft, это Microsoft Lync-сервер.

Ответ 9

Не уверен, что вы ищете здесь. Вы ищете клиентское приложение VOIP или серверную сторону? Если последнее, вы можете проверить FreeSwitch. Одна из возможностей - возможность писать код расширения в Mono, что позволяет использовать С#. Найдите поддержку mod_mono.

FreeSwitch

Ответ 10

Попробуйте "Голос-элементы" .

Это инструмент .NET Telephony Tool, и у них есть собственный SIP-стек. Используйте С# или любой другой язык .NET по вашему выбору.

Ответ 11

Konnetic предоставляет полностью управляемые SIP-компоненты для разработки .NET.

Их .NET SIP SDK, вероятно, является наиболее полным.

В противном случае сервер Microsoft Lync поставляется с очень хорошей управляемой SIP-библиотекой, доступной здесь: www.microsoft.com/en-us/lync/default.aspx

Ответ 12

Возможно, вы хотите попробовать lumisoft. Полностью встроен в С#. Полностью открытый источник и бесплатный. lumisoft

Ответ 13

Я видел (не использовал напрямую, только что просмотрел) довольно большую и стабильную систему VOIP, используя стек SIP от Radware. Очень хорошо (т.е. Никаких проблем), и я не нашел никаких проблем с безопасностью с ним либо...

Система, рассмотренная мной, была в С#.

Ответ 14

В прошлом я использовал Live Communications Server от MS (думал, что это было в 2003 году). Связанный с SDK был довольно плохим.

Теперь появилась новая версия Office Communications Server. Я не развился с SDK, но видел некоторые демонстрации, которые были довольно крутыми.

Ответ 15

Лучшее, что я нашел, было VoIP Video SIP SDK Он также обеспечивает видео с высоким качеством

Ответ 16

LumiSoft.Net - очень хороший стек SIP для С#. Он имеет все базовые библиотеки, такие как SIP, RTP, SDP, DNS и многие другие библиотеки для создания надежного прокси-сервера sip или SIP-клиента очень легко.

Ответ 18

LanScape: http://www.lanscapecorp.com/

Все продукты LanScape VOIP, включая LanScape VOIP Media Engine ™ имеют были спроектированы с "земли вверх" до поддержка всех версий Microsoft Windows® 2000 и XP до и включая последнюю версию Windows Vista.

Я также лично знаю, что это С# - дружелюбно.

Ответ 19

Читайте об Avaya DMCC. Вы можете зарегистрироваться в AvayaDev и скачать его бесплатно. Эта инфраструктура С# позволяет использовать все функции pbx с AES и CM. Вы также можете проверить, поддерживается ли SIP.