2009-01-31 19 views
62

Estoy buscando una buena biblioteca SIP ya sea escrita en C# o que proporciona un contenedor C#. No necesariamente tiene que ser gratis. ¿Alguien ha usado algo bueno?C# SIP Stack/Library

Para aclarar, estoy hablando del protocolo VoIP SIP.

Realmente estoy buscando algo más que una búsqueda en Google en este caso. Me gustaría que alguien vuelva y diga "Usamos ______, y funciona muy bien".

Para aclarar más, estoy buscando una biblioteca que me ayude a implementar un servidor proxy SIP sin tener que construir manualmente los paquetes SIP. No estoy buscando asterisk, freeswitch o cualquier otro software pbx.

Estoy buscando crear un servicio en C#, que espere los paquetes SIP y responda a ellos y me gustaría una biblioteca que maneje la mayoría de los detalles.

+0

solo para estar seguro: cuando dices 'sip', ¿estás hablando como con voip? –

+0

Después de haber hecho lo mismo, puede considerar buscar en una versión de C++ y quizás compilar en código administrado. Las soluciones administradas (desde hace un tiempo) no eran muy buenas. (Terminamos escribiendo el nuestro, si solo es un proxy, no es tan difícil) – MichaelGG

+0

@MichaelGG - Estoy de acuerdo. JayG tenía un comentario similar en su respuesta a continuación en relación con la escritura y el mantenimiento de su propia pila. –

Respuesta

4

Parece un buen punto de partida podría ser este CodeProject article. Sin embargo, no creo que maneje el flujo de medios.

1

que he visto (no se utiliza directamente, simplemente revisado) bastante sistema VOIP grande y estable usando una pila SIP de Radware. Muy bueno (es decir, sin problemas), y tampoco encontré ningún problema de seguridad con él ...

El sistema que revisé estaba en C#.

4

Necesité esto hace un tiempo y terminé escribiendo mi propio B2BUA (un proxy SIP que también maneja el audio y actúa como un punto final para ambos lados de la conversación).

El problema con las especificaciones SIP (y RTP) es que es muy complicado, especialmente si considera todas las adiciones opcionales que se le han hecho a lo largo de los años. Todo el mundo lo implementa de forma un poco diferente, por lo que si utiliza un software empaquetado, es posible que tenga problemas con teléfonos o servidores específicos.

En mi caso, estaba intentando que Microsoft Speech Server se comunicara con los terminadores SIP. Microsoft tiene una interpretación especialmente creativa de la especificación SIP (el ejemplo más notable es que no admiten UDP). Además, algunas pasarelas VOIP no admiten REFER para las transferencias supervisadas, que es una necesidad para muchas aplicaciones.

Varios enlaces decentes se han proporcionado en las otras respuestas: mi consejo es lanzar el suyo o ir con algo de código abierto para que pueda modificarlo cuando sea necesario cuando se encuentre con las incompatibilidades inevitables en las implementaciones de SIP.

2

No estoy seguro de lo que está buscando aquí. ¿Estás buscando una aplicación VOIP del lado del cliente o una del servidor? Si es este último, es posible que desee comprobar FreeSwitch. Una característica que tienen es la capacidad de escribir código de extensión en Mono, que permite C#. Busque soporte de mod_mono.

FreeSwitch

+0

Lo renombré a mod_managed, y ahora es compatible con Mono y CLR. Y FreeSWITCH puede ejecutarse incrustado, lo que permite algunos otros escenarios interesantes. – MichaelGG

0

LANscape: http://www.lanscapecorp.com/

productos todos LANscape VOIP incluyendo la LANscape VoIP Media Engine ™ han sido diseñados de la "base" a apoyo todas las versiones de Microsoft Windows® 2000 y XP hasta y incluyendo la última versión de Windows Vista.

También sé personalmente que es C# -friendly.

22

Pasé por una búsqueda similar hace 7 años, pero en busca de una versión C incrustada. Miré a la biblioteca oSIP. Hizo todo el trabajo de convertir paquetes SIP a estructuras y viceversa.

Sin embargo, un punto de la documentación se me quedó grabado. El autor recomendó que se familiarice con la especificación SIP (RFC 3261) para usar la biblioteca de manera efectiva. Después de leer las especificaciones varias veces, terminé escribiendo mi propio analizador y aplicación de control de llamadas.

Tenga en cuenta que SIP sigue siendo un estándar en evolución. Existe un grupo SIPForum activo que actualmente desarrolla SIPConnect 1.1 para estandarizar en una interfaz entre un proveedor de servicios SIP (por ejemplo, Vonage) y una SIP-PBX. También hay una actividad llamada BLISS para definir las "mejores prácticas" para implementar las características SIP entre los Agentes de usuario.

La interoperabilidad es difícil. Hay cientos de RFC relacionadas con SIP. Diferentes puntos finales usan diferentes, y las interpretaciones de las especificaciones no son siempre compatibles. Hay varios eventos de prueba diferentes de interoperabilidad (como SIPit) para asegurarse de que su implementación funcione con los demás.

Independientemente de lo que seleccione, asegúrese de comprender bien las especificaciones de las funciones que está implementando. y las bibliotecas ayudarán con el paquete, pero aún necesita una biblioteca de "control de llamadas" ("cerebro" de nivel superior para decidir cómo procesar una solicitud/respuesta SIP). También necesita una capa de medios para manejar el audio a menos que su aplicación sea puramente un proxy SIP.

Habiendo dicho todo eso, varios proveedores de servicios de telefonía por Internet (ITSP) han utilizado el SIP Express Router como un proxy de acceso directo para sus servicios. Es muy configurable y tiene una alta tasa de éxito para comp atibilidad.

8

En mi humilde opinión, una de las mejores pilas de lejos es PJSIP. Está escrito en C muy portátil y tiene varias envolturas. Aquí hay un .NET wrapper que funciona muy bien.

+1

Wrapper se ha movido a https://sites.google.com/site/sipekvoip/Home/documentation/pjsipwrapper – Quango

+0

Gracias, publicación actualizada. –

5

Usamos SIP.Net, funciona bien para nosotros.
Lo usamos para esperar paquetes SIP y mantener el flujo SIP muy simple.
Tenga en cuenta que a veces su modelo de objetos es demasiado detallado, por lo que el producto en sí es muy flexible (si necesita tal flexibilidad). Sin embargo, escribimos un contenedor de nivel superior (una especie de fachada) solo para facilitarnos las cosas. Son muy receptivos, pero la documentación no es lo suficientemente detallada IMO.
También puede comprobar nsip (sólo un enlace, no he probado a mí mismo)

1

En el pasado, he utilizado Live Communications Server desde MS (pensaba que era en 2003). El SDK asociado fue bastante malo.

Ahora está la nueva versión, Office Communications Server. No me he desarrollado con el SDK, pero he visto algunas demos que fueron geniales.

-1

Lea acerca de Avaya DMCC. Puede registrarse en AvayaDev y descargarlo gratis. Ese marco C# le permite aprovechar todas las funciones de pbx con AES y CM. Puede verificar si tiene SIP también.

2

Probar Voice Elements.

Es una herramienta de telefonía .NET y tienen su propia pila SIP. Use C# o el lenguaje .NET que desee.

2

Konnetic proporciona componentes SIP totalmente administrados para el desarrollo de .NET.

Su .NET SIP SDK es probablemente el más completo.

De lo contrario, el servidor de Lync de Microsoft viene con una muy buena biblioteca SIP administrado, disponible aquí: www.microsoft.com/en-us/lync/default.aspx~~V~~3rd

3

http://www.konnetic.com es una adición relativamente nueva. Totalmente administrado. Todo lo que necesita para trabajar con SIP y SDP. No han escogido la fruta de bajo costo en el estándar como muchas otras. Igual de bueno pero vinculado a Microsoft es el servidor Microsoft Lync.

5

Mi proyecto sipsorcery es otra opción. Contiene una pila SIP escrita completamente en C#.

+0

Solo compatible con uLaw. No hay dispositivos de audio seleccionables. – dkapa

+0

dkapa, sipsorcery es una pila de sorbos, no una pila de rtp. No es apropiado (imho) para teléfonos sip, sin embargo es perfectamente útil para proyectos de servidor de sorbos, aunque uno podría necesitar integrar una pila rtp para manejar cualquier servicio de medios que pudiera ser necesario. – Shayne

2

Quizás quieras probar lumisoft. Completamente construir en C#. Completamente de código abierto y gratuito. lumisoft

1

LumiSoft.Net es una muy buena pila SIP para C#. Tiene todas las bibliotecas básicas como SIP, RTP, SDP, DNS y muchas otras librerías para construir un servidor sip proxy robusto o un cliente SIP muy fácilmente.