web-dev-qa-db-fra.com

C # SIP pile / bibliothèque

Je recherche une bonne bibliothèque SIP écrite en C # ou qui fournit un wrapper C #. N'a pas nécessairement besoin d'être gratuite. Quelqu'un a-t-il utilisé quelque chose de bien?

Pour clarifier, je parle du protocole VoIP SIP.

Je recherche vraiment plus qu'une recherche google sur celui-ci. J'aimerais que quelqu'un revienne et dise: "Nous utilisons ______, et cela fonctionne très bien."

Pour clarifier davantage, je recherche une bibliothèque qui m'aiderait à implémenter un serveur proxy SIP sans avoir à construire manuellement les paquets SIP. Je suis ne cherche pas d'astérisque, de freeswitch ou tout autre logiciel pbx.

Je cherche à créer un service en C #, qui attendra SIP paquets et y répondra et je voudrais une bibliothèque qui gérerait la plupart des détails.

63
bobwienholt

J'ai effectué une quête similaire il y a 7 ans, mais à la recherche d'une version C intégrée. J'ai regardé la bibliothèque oSIP . Il a fait tout le travail de conversion des paquets SIP en structures et inversement).

Cependant, un point de la documentation m'est resté. L'auteur a recommandé que vous vous familiarisiez avec la spécification SIP ( RFC 3261 ) pour utiliser la bibliothèque efficacement. Après avoir lu les spécifications plusieurs fois, j'ai fini par écrire mon propre analyseur et application de contrôle d'appel.

Gardez à l'esprit que SIP est toujours une norme évolutive. Il existe un groupe SIPForum actif qui est actuellement en développement SIPConnect 1.1 pour normaliser sur un interface entre un SIP fournisseur de services (par exemple Vonage) et un SIP-PBX. Il existe également une activité appelée BLISS pour définir les "meilleures pratiques" pour implémenter les fonctionnalités SIP entre les agents utilisateurs.

L'interopérabilité est difficile. Il existe des centaines de RFC liés au SIP. Différents points finaux en utilisent différents, et les interprétations des spécifications ne sont pas toujours compatibles. Il existe plusieurs événements de test d'interopérabilité différents (comme SIPit ) pour vous assurer que votre implémentation fonctionne avec d'autres.

Quoi que vous choisissiez, assurez-vous d'avoir une bonne compréhension des spécifications des fonctionnalités que vous implémentez. De plus, les spécifications et les bibliothèques vous aideront du côté des paquets, mais vous avez toujours besoin d'une bibliothèque de "contrôle des appels" ("cerveau" de niveau supérieur pour décider comment traiter une SIP). Vous avez également besoin d'une couche multimédia pour gérer l'audio, sauf si votre application est purement un SIP proxy.

Cela dit, plusieurs fournisseurs de services de téléphonie Internet (ITSP) ont utilisé le SIP Express Router comme proxy frontal pour leurs services. Il est très configurable et a un taux de réussite élevé pour la compatibilité.

22
JayG

À mon humble avis, l'une des meilleures piles de loin est PJSIP . Il est écrit en C très portable et possède un certain nombre de wrappers. Voici un wrapper .NET qui fonctionne vraiment bien.

8
E Dominique
8
Xaisoft

Mon projet sipsorcery est une autre option. Il contient une pile SIP écrite entièrement en C #.

6
sipwiz

Nous utilisons SIP.Net , fonctionne bien pour nous.
Nous l'utilisons pour attendre les paquets SIP et garder le flux SIP très simple).
Notez que parfois son modèle d'objet est trop détaillé, donc le produit lui-même est très flexible (si vous avez besoin d'une telle flexibilité). Cependant, nous avons écrit un wrapper de niveau supérieur (une sorte de façade) juste pour nous faciliter les choses. Ils sont très réactifs, mais la documentation n'est pas assez détaillée IMO.
Vous pouvez également vérifier nsip (juste un lien, je ne l'ai pas essayé moi-même)

5
Ron Klein

J'avais besoin de cela il y a quelque temps et j'ai fini par écrire mon propre B2BUA (un proxy SIP qui gère également l'audio et agit comme un point de terminaison des deux côtés de la conversation).

Le problème avec la spécification SIP (et RTP), c'est que c'est très compliqué, surtout si vous considérez tous les ajouts facultatifs qui lui ont été apportés au fil des ans. Tout le monde l'implémente juste un un peu différemment, donc si vous optez pour un logiciel sous emballage, vous pourriez rencontrer des problèmes avec des téléphones ou des serveurs spécifiques.

Dans mon cas, j'essayais de faire communiquer Microsoft Speech Server avec les terminateurs SIP. Microsoft a une interprétation particulièrement créative de la spécification SIP (la plus notable) par exemple, ils ne prennent pas en charge UDP) .En outre, certaines passerelles VOIP ne prennent pas en charge REFER pour les transferts supervisés, ce qui est une nécessité pour de nombreuses applications.

Plusieurs liens décents ont été fournis dans les autres réponses: mon conseil est de rouler le vôtre ou d'aller avec quelque chose qui est open source afin que vous puissiez l'ajuster si nécessaire lorsque vous rencontrez les incompatibilités inévitables dans SIP = implémentations.

4
Eric Z Beard

http://www.konnetic.com est un ajout relativement nouveau. Entièrement géré. Tout ce dont vous avez besoin pour travailler avec SIP et SDP. Ils n'ont pas choisi les fruits bas dans la norme comme beaucoup d'autres. Tout aussi bon mais lié à Microsoft est le Microsoft Lync serveur.

3
jwri

On dirait qu'un point de départ décent pourrait être ceci article CodeProject . Cependant, je ne pense pas qu'il gère le flux multimédia.

3
Sean Bright

Essayez Voice Elements .

Il s'agit d'un outil de téléphonie .NET et ils ont leur propre pile SIP. Utilisez C # ou le langage .NET de votre choix.

2
Laura Williamson

Konnetic fournit des composants SIP entièrement gérés pour le développement .NET.

Leur . NET SIP SDK est probablement le plus complet.

Sinon, le serveur Lync de Microsoft est livré avec une très bonne bibliothèque SIP gérée, disponible ici: www.Microsoft.com/en-us/lync/default.aspx

2
jnielsen

Vous souhaitez peut-être essayer Lumisoft. Construire entièrement en C #. Entièrement open source et gratuit. lumisoft

2
hannes

Je ne sais pas ce que vous cherchez ici. Vous recherchez une application VOIP côté client ou côté serveur? Dans ce dernier cas, vous voudrez peut-être consulter FreeSwitch. L'une de leurs fonctionnalités est la possibilité d'écrire du code d'extension en Mono, ce qui permet C #. Recherchez la prise en charge de mod_mono.

FreeSwitch

2
Erik Funkenbusch

Le meilleur que j'ai trouvé était Vidéo VoIP SIP SDK Il fournit également des vidéos de haute qualité

1
user2343734

LumiSoft.Net est une très bonne pile SIP pour C #. Il a toutes les bibliothèques de base telles que SIP, RTP, SDP, DNS et bien d'autres bibliothèques pour construire un serveur proxy sip robuste ou un client SIP très facilement.

1

Dans le passé, j'ai utilisé Live Communications Server de MS (je pensais que c'était en 2003). Le SDK associé était assez mauvais.

Il y a maintenant la nouvelle version, Office Communications Server. Je n'ai pas développé avec le SDK mais j'ai vu des démos plutôt sympas.

1
LB40

J'ai vu (non utilisé directement, juste examiné) un système VOIP assez grand et stable utilisant une pile SIP de Radware. Très bien (c.-à-d. Pas de problèmes), et je n'en ai trouvé aucun problèmes de sécurité avec elle non plus ...

Le système que j'ai examiné était en C #.

1
AviD

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

Tous les produits LanScape VOIP, y compris LanScape VOIP Media Engine ™, ont été conçus dès le départ pour prendre en charge toutes les versions de Microsoft Windows® 2000 et XP jusqu'à la dernière version de Windows Vista incluse). .

Il se trouve que je sais personnellement qu'il est compatible avec C #.

0

Cela me semble intéressant ... http://developers.inova.si/sipobjects/Default.aspx?tabid=92 - ce n'est pas open source, mais c'est définitivement centré sur .NET. Il est centré sur Avaya, il peut donc ne pas convenir à vos besoins.

Regardez aussi ceci: http://www.codeplex.com/mysipswitch

0
ankushnarula