2009-01-31 5 views
62

Ich bin auf der Suche nach einer guten SIP-Bibliothek, die entweder in C# geschrieben ist oder einen C# -Wrapper bereitstellt. Muss nicht unbedingt frei sein. Hat jemand etwas Gutes benutzt?C# SIP Stack/Library

Um zu verdeutlichen, spreche ich über das VoIP-Protokoll SIP.

Ich suche wirklich mehr als eine Google-Suche auf diesem. Ich möchte jemanden, der zurückkommt und sagt "Wir benutzen ______, und es funktioniert großartig."

Um weiter zu klären, suche ich nach einer Bibliothek, die mir helfen würde, einen SIP-Proxy-Server zu implementieren, ohne die SIP-Pakete manuell aufbauen zu müssen. Ich suche nicht nach asterisk, freeswitch oder irgendeiner anderen PBX Software.

Ich bin auf der Suche nach einem Dienst in C#, der auf SIP-Pakete warten und auf sie reagieren wird, und ich möchte eine Bibliothek, die die meisten Details behandeln würde.

+0

nur um sicher zu gehen: wenn du 'sip' sagst, sprichst du mit voip? –

+0

Wenn Sie das Gleiche getan haben, könnten Sie eine C++ - Version in Erwägung ziehen und vielleicht den verwalteten Code kompilieren. Die verwalteten Lösungen (wie vor kurzem) waren nicht sehr gut. (Am Ende haben wir unser eigenes geschrieben - wenn es nur ein Proxy ist, ist es nicht so schwer.) – MichaelGG

+0

@MichaelGG - stimme zu. JayG hatte in seiner Antwort unten einen ähnlichen Kommentar bezüglich des Schreibens und Pflegens eines eigenen Stapels. –

Antwort

4

Sieht aus wie ein guter Ausgangspunkt könnte dies CodeProject article sein. Ich glaube aber nicht, dass es den Medienstream handhabt.

1

ich gesehen habe (nicht direkt, nur überprüft verwendet) eine ziemlich großes und stabiles VOIP-System mit einem SIP-Stack von Radware. Sehr gut (d. H. Keine Probleme), und ich habe auch keine Sicherheitsprobleme gefunden ...

Das System, das ich überprüft habe, war in C#.

4

Ich brauchte diese eine Weile zurück und schrieb am Ende meinen eigenen B2BUA (ein SIP-Proxy, der auch das Audio behandelt und als Endpunkt für beide Seiten der Konversation fungiert).

Das Problem mit der SIP-Spezifikation (und RTP) ist, dass es sehr kompliziert ist, besonders wenn Sie alle optionalen Zusätze betrachten, die über die Jahre gemacht wurden. Jeder implementiert es nur ein wenig anders, also, wenn Sie mit eingeschweißter Software gehen, könnten Sie Probleme mit bestimmten Telefonen oder Servern bekommen.

In meinem Fall habe ich versucht, Microsoft Speech Server mit SIP-Terminatoren zu kommunizieren. Microsoft hat eine besonders kreative Interpretation der SIP-Spezifikation (das bemerkenswerteste Beispiel ist, dass sie UDP nicht unterstützen). Außerdem unterstützen einige VOIP-Gateways REFER nicht für überwachte Übertragungen, was für viele Anwendungen notwendig ist.

In den anderen Antworten wurden einige anständige Links bereitgestellt: Mein Rat ist es, selbst zu rollen oder mit etwas Open Source zu gehen, damit Sie es bei Bedarf optimieren können, wenn Sie auf die unvermeidlichen Inkompatibilitäten in SIP-Implementierungen stoßen.

2

Nicht sicher, wonach Sie hier suchen. Suchen Sie eine clientseitige VOIP-Anwendung oder eine Serverseite? Wenn Letzteres, sollten Sie sich FreeSwitch anschauen. Eine Eigenschaft, die sie haben, ist die Fähigkeit, Erweiterungscode in Mono zu schreiben, der C# erlaubt. Suchen Sie nach mod_mono-Unterstützung.

FreeSwitch

+0

Ich habe es in mod_managed umbenannt, und es unterstützt jetzt Mono und CLR. Und FreeSWITCH kann embedded ausführen, was einige andere interessante Szenarien ermöglicht. – MichaelGG

0

LANSCAPE: http://www.lanscapecorp.com/

alle LANscape VOIP-Produkte, einschließlich der LANSCAPE VoIP-Media-Engine ™ haben aus dem "zermahlen" zu unterstützen alle Versionen von Microsoft Windows® entwickelt 2000 und XP bis zu und einschließlich der neuesten Version von Windows Vista.

Ich weiß auch zufällig, dass es C# -freundlich ist.

22

Ich bin vor 7 Jahren durch eine ähnliche Quest gegangen, aber auf der Suche nach einer eingebetteten C-Version. Ich schaute auf die oSIP Bibliothek. Es machte die ganze Arbeit der Umwandlung von SIP-Paketen in Strukturen und zurück.

Ein Punkt in der Dokumentation blieb jedoch bei mir. Der Autor empfahl Ihnen, sich mit der SIP-Spezifikation (RFC 3261) vertraut zu machen, um die Bibliothek effektiv zu verwenden. Nachdem ich die Spezifikationen mehrmals gelesen hatte, schrieb ich meine eigene Parser- und Anrufsteuerungsanwendung.

Denken Sie daran, dass SIP immer noch ein sich entwickelnder Standard ist. Es gibt eine aktive SIPForum Gruppe, die derzeit SIPConnect 1.1 entwickelt, um auf einer Schnittstelle zwischen einem SIP-Service-Provider (z.B. Vonage) und einer SIP-PBX zu standardisieren. Es gibt auch eine Aktivität namens BLISS zum Definieren der "Best Practices" zum Implementieren von SIP-Funktionen zwischen Benutzeragenten.

Interoperabilität ist schwierig. Es gibt Hunderte von RFCs im Zusammenhang mit SIP. Unterschiedliche Endpunkte verwenden unterschiedliche, und Interpretationen der Spezifikationen sind nicht immer kompatibel. Es gibt verschiedene Interoperabilitätstestereignisse (wie SIPit), um sicherzustellen, dass Ihre Implementierung mit anderen zusammenarbeitet.

Unabhängig davon, was Sie auswählen, stellen Sie sicher, dass Sie die Spezifikationen für die von Ihnen implementierten Funktionen gut verstanden haben und Bibliotheken werden mit der Paketseite helfen, aber Sie benötigen immer noch eine "Call Control" -Bibliothek (höhere Ebene "Gehirn", um zu entscheiden, wie eine SIP-Anfrage/Antwort zu verarbeiten). Sie benötigen auch eine Medienebene, Audio zu behandeln, es sei denn, Ihre Anwendung ist ein einziger SIP-Proxy

Nachdem das alles gesagt wurde, haben mehrere Internet Telephony Service Provider (ITSPs) die SIP Express Router als Front-End-Proxy für ihre Dienste verwendet.Es ist sehr konfigurierbar und hat eine hohe Erfolgsquote für comp Fähigkeit.

8

IMHO, ist einer der besten Stacks mit Abstand PJSIP. Es ist in sehr portablen C geschrieben und hat eine Reihe von Wrappern. Hier ist eine .NET wrapper, die wirklich gut funktioniert.

+1

Wrapper ist nach https://sites.google.com/site/sipekvoip/Home/documentation/pjsipwrapper umgezogen – Quango

+0

Danke, aktualisierter Beitrag. –

5

Wir verwenden SIP.Net, funktioniert OK für uns.
Wir verwenden es, um auf SIP-Pakete zu warten und den SIP-Fluss sehr einfach zu halten.
Beachten Sie, dass manchmal sein Objektmodell zu detailliert ist, so dass das Produkt selbst sehr flexibel ist (wenn Sie solche Flexibilität benötigen). Wir haben jedoch einen Wrapper auf höherer Ebene (eine Art Fassade) geschrieben, um die Dinge für uns einfacher zu machen. Sie sind sehr reaktionsschnell, aber die Dokumentation ist nicht detailliert genug IMO.
Sie auch nsip überprüfen (nur einen Link, ich habe es selbst nicht ausprobiert)

1

In der Vergangenheit habe ich verwendet, Live Communications Server von MS (dachten, es war im Jahr 2003). Das zugehörige SDK war ziemlich schlecht.

Es gibt jetzt die neue Version, Office Communications Server. Ich habe nicht mit dem SDK entwickelt, aber einige Demos gesehen, die ziemlich cool waren.

-1

Lesen Sie über Avaya DMCC. Sie können sich in AvayaDev registrieren und kostenlos herunterladen. Mit diesem C# -Framework können Sie alle PBX-Funktionen mit AES und CM nutzen. Sie können überprüfen, ob Sie auch SIP unterstützt haben.

2

Versuchen Sie Voice Elements.

Es ist ein .NET Telefonie-Tool und sie haben ihren eigenen SIP-Stack. Verwenden Sie C# oder eine andere .NET-Sprache Ihrer Wahl.

2

Konetic bietet vollständig verwaltete SIP-Komponenten für die .NET-Entwicklung.

Ihre .NET SIP SDK ist wahrscheinlich die umfassendste.

Andernfalls kommt Lync Server von Microsoft mit einem sehr guten SIP-Bibliothek verwaltet werden, finden Sie hier: www.microsoft.com/en-us/lync/default.aspx

3

http://www.konnetic.com noch relativ neu ist. Vollständig verwaltet Alles was Sie brauchen, um mit SIP und SDP zu arbeiten. Sie haben die niedrig hängenden Früchte im Standard nicht wie viele andere ausgewählt. Genauso gut aber mit Microsoft verbunden ist der Microsoft Lync Server.

5

Meine sipsorcery Projekt ist eine andere Option. Es enthält einen SIP-Stack, der vollständig in C# geschrieben ist.

+0

Nur Unterstützung uLaw. Keine auswählbaren Audiogeräte. – dkapa

+0

dkapa, sipsorcery ist ein sip stack, kein rtp stack. Nicht geeignet (imho) für sip-Telefone, jedoch perfekt für sip-server-Projekte, obwohl man vielleicht einen rtp-Stack integrieren muss, um jede benötigte Medienausgabe zu verarbeiten. – Shayne

2

Vielleicht möchten Sie Lumisoft versuchen. Komplett in C# eingebaut. Komplett Open Source und kostenlos.

1

Das Beste, was ich war gefunden VoIP Video SIP SDK Es ist mit hohen Qualität und Video zur Verfügung stellen. Es hat alle grundlegenden Bibliotheken wie SIP, RTP, SDP, DNS und viele andere Bibliotheken, um einen robusten SIP-Proxy-Server oder SIP-Client sehr einfach aufzubauen.