62

我正在寻找一个用 C# 编写或提供 C# 包装器的好的 SIP 库。不一定需要是免费的。有人用过好东西吗?

澄清一下,我说的是 VoIP 协议 SIP。

我真的在寻找比谷歌搜索更多的东西。我希望有人回来说“我们使用______,效果很好。”

为了进一步澄清,我正在寻找一个可以帮助我实现 SIP 代理服务器而无需手动构建 SIP 数据包的库。我不是在寻找星号、freeswitch 或任何其他 pbx 软件。

我希望在 C# 中创建一个服务,它将等待 SIP 数据包并响应它们,我想要一个可以处理大部分细节的库。

4

19 回答 19

22

7 年前我经历了类似的任务,但正在寻找嵌入式 C 版本。我查看了oSIP库。它完成了将 SIP 数据包转换为结构并返回的所有工作。

但是,文档中有一点让我印象深刻。作者建议您非常熟悉 SIP 规范 ( RFC 3261 ) 以有效地使用该库。多次阅读规范后,我最终编写了自己的解析器和呼叫控制应用程序。

请记住,SIP 仍然是一个不断发展的标准。有一个活跃的SIPForum小组目前正在开发SIPConnect 1.1,以标准化 SIP 服务提供商(例如 Vonage)和 SIP-PBX 之间的接口。还有一个名为BLISS的活动,用于定义“最佳实践”以在用户代理之间实现 SIP 功能。

互操作性很困难。有数百个与 SIP 相关的 RFC。不同的端点使用不同的端点,并且对规范的解释并不总是兼容的。有几个不同的互操作性“测试事件(如SIPit)来确保您的实现与其他人一起工作。

无论您选择什么,请确保您对要实现的功能的规范有很好的了解。此外,规范和库将有助于数据包方面,但您仍然需要一个“呼叫控制”库(更高级别的“大脑”来决定如何处理 SIP 请求/响应)。除非您的应用程序纯粹是 SIP 代理,否则您还需要一个媒体层来处理音频。

说了这么多,几家互联网电话服务提供商 (ITSP) 已将SIP Express 路由器用作其服务的前端代理。它是非常可配置的,并且具有很高的兼容性成功率。

于 2009-02-09T14:52:33.253 回答
9

恕我直言,迄今为止最好的堆栈之一是PJSIP。它是用非常便携的 C 语言编写的,并且有许多包装器。这是一个运行良好的.NET 包装器

于 2009-03-07T15:40:06.350 回答
7

这是我遇到的一对:

http://www.independentsoft.com/sip/index.html

http://voipengine.googlepages.com/sipeksdk

于 2009-02-02T15:09:54.673 回答
6

我的吸毒项目是另一种选择。它包含一个完全用 C# 编写的 SIP 堆栈。

于 2011-02-20T03:27:06.067 回答
5

我们使用SIP.Net,对我们来说工作正常。
我们使用它来等待 SIP 数据包并保持 SIP 流非常简单。
请注意,有时它的对象模型过于详细,因此产品本身非常灵活(如果您需要这种灵活性)。然而,我们编写了一个更高级别的包装器(一种外观)只是为了让我们更容易。他们反应迅速,但 IMO 的文档不够详细。
也可以查看nsip(只是一个链接,我自己没试过)

于 2009-03-24T22:50:12.663 回答
4

不久前我需要这个并最终编写了我自己的 B2BUA(一个 SIP 代理,它也处理音频并充当对话双方的端点)。

SIP 规范(和 RTP)的问题在于它非常复杂,尤其是您考虑了多年来对其进行的所有可选添加。每个人的实现方式都略有不同,因此如果您使用收缩包装的软件,您可能会遇到特定手机或服务器的问题。

就我而言,我试图让 Microsoft Speech Server 与 SIP 终结器进行通信。微软对 SIP 规范有一个特别有创意的解释(最显着的例子是它们不支持 UDP)。此外,一些 VOIP 网关不支持受监督传输的 REFER,这对于许多应用程序来说是必需的。

其他答案中提供了几个不错的链接:我的建议是自己动手或使用开源的东西,这样当您在 SIP 实现中遇到不可避免的不兼容时,您可以根据需要对其进行调整。

于 2009-02-05T19:14:02.027 回答
3

看起来不错的起点可能是这篇CodeProject 文章。但是,我不相信它可以处理媒体流。

于 2009-01-31T02:31:44.877 回答
3

http://www.konnetic.com是一个相对较新的添加。完全托管。使用 SIP 和 SDP 所需的一切。他们没有像许多其他人那样在标准中摘取低垂的果实。Microsoft Lync 服务器同样出色但与 Microsoft 相关联。

于 2010-10-14T04:02:33.660 回答
2

不知道你在这里找什么。您在寻找客户端 VOIP 应用程序还是服务器端?如果是后者,您可能需要查看 FreeSwitch。他们拥有的一项功能是能够在 Mono 中编写扩展代码,这允许使用 C#。寻找 mod_mono 支持。

自由开关

于 2009-02-05T19:36:57.877 回答
2

也许你想试试 lumisoft。完全用 C# 构建。完全开源和免费。 lumisoft

于 2012-07-12T11:17:48.920 回答
2

Konnetic 为 .NET 开发提供完全托管的 SIP 组件。

他们的.NET SIP SDK 可能是最全面的。

否则,Microsoft 的 Lync 服务器带有一个非常好的托管 SIP 库,可在此处获得:www.microsoft.com/en-us/lync/default.aspx

于 2010-09-20T23:38:38.637 回答
2

尝试语音元素

它是一个 .NET 电话工具,他们有自己的 SIP 堆栈。使用 C# 或您选择的任何 .NET 语言。

于 2010-03-02T22:51:04.667 回答
1

过去,我使用过 MS 的 Live Communications Server(以为是在 2003 年)。相关的 SDK 非常糟糕。

现在有了新版本 Office Communications Server。我没有使用 SDK 进行开发,但看过一些非常酷的演示。

于 2009-04-10T14:00:35.370 回答
1

我已经看到(没有直接使用,只是回顾)一个相当大且稳定的 VOIP 系统,它使用来自 Radware 的 SIP 堆栈。非常好(即没有问题),我也没有发现任何安全问题......

我审查的系统是用 C# 编写的。

于 2009-02-05T08:09:43.583 回答
1

我发现最好的是VoIP Video SIP SDK它还提供高质量的视频

于 2013-09-04T08:30:35.267 回答
1

LumiSoft.Net是一个非常好的 C# SIP 堆栈。它具有所有基本库,例如SIPRTP、和许多其他库SDPDNS可以非常轻松地构建强大的 sip 代理服务器或 SIP 客户端。

于 2015-05-05T15:22:42.630 回答
0

这对我来说看起来很有趣...... http://developers.inova.si/sipobjects/Default.aspx?tabid=92 - 它不是开源的,但它绝对以.NET 为中心。它以 Avaya 为中心,因此可能不适合您的目的。

也看看这个: http: //www.codeplex.com/mysipswitch

于 2009-01-31T03:30:23.073 回答
0

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

包括 LanScape VOIP Media Engine™ 在内的所有 LanScape VOIP 产品都经过全新设计,以支持 Microsoft Windows® 2000 和 XP 的所有版本,包括最新版本的 Windows Vista。

我个人也碰巧知道它是 C# 友好的。

于 2009-02-05T20:47:25.190 回答
-1

阅读有关 Avaya DMCC 的信息。您可以在 AvayaDev 中注册并免费下载。该 C# 框架让您可以利用 AES 和 CM 的所有 pbx 功能。您可以检查是否也支持 SIP。

于 2009-07-12T01:56:23.417 回答