C# SIP 堆栈/库

发布于 2024-07-12 04:36:51 字数 1542 浏览 10 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(19

地狱即天堂 2024-07-19 04:36:51

7 年前我经历过类似的任务,但寻找的是嵌入式 C 版本。 我查看了 oSIP 库。 它完成了将 SIP 数据包与结构相互转换的所有工作。

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

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

互操作性很困难。 与 SIP 相关的 RFC 有数百个。 不同的端点使用不同的端点,并且规范的解释并不总是兼容的。 有几个不同的互操作性“测试事件(例如 SIPit)来确保您的 无论您选择什么

,请确保您对正在实现的功能的规范有很好的了解。此外,规范和库将对数据包方面有所帮助,但您仍然需要一个“呼叫控制”库( 您还需要一个媒体层来决定如何处理 SIP 请求/响应)。

除非您的应用程序纯粹是 SIP 代理,否则 SIP Express 路由器 作为其服务的前端代理,它是非常可配置的并且具有很高的性能。兼容性的成功率。

I went through a similar quest 7 years ago, but looking for an embedded C version. I looked at the oSIP library. It did all the work of converting SIP packets to structures and back.

However, one point in the documentation stuck with me. The author recommended that you become very familiar with the SIP specification (RFC 3261) to use the library effectively. After reading the specs several times, I ended up writing my own parser and call control application.

Keep in mind that SIP is still an evolving standard. There is an active SIPForum group that is currently developing SIPConnect 1.1 to standardize on an interface between a SIP Service provider (e.g. Vonage) and a SIP-PBX. There is also an activity called BLISS for defining the "best practices" to implement SIP features between User Agents.

Interoperability is tough. There are hundreds of RFCs related to SIP. Different end-points use different ones, and interpretations of the specs are not always compatible. There are several different interoperability "test events (like SIPit) to make sure your implementation works with others.

Whatever you select, make sure you have a good understanding of the specs for the features you are implementing. Additionally, the specs and libraries will help with the packet side, but you still need a "call control" library (higher level "brain" to decide how to process a SIP request/response). You also need a media layer to handle audio unless your application is purely a SIP proxy.

Having said all that, several Internet Telephony Service Providers (ITSPs) have used the SIP Express Router as a front-end proxy for their services. It is very configurable and has a high success rate for compatibility.

时光沙漏 2024-07-19 04:36:51

恕我直言,迄今为止最好的堆栈之一是 PJSIP。 它是用非常可移植的 C 语言编写的,并且有许多包装器。 这是一个效果非常好的 .NET 包装器

IMHO, one of the best stacks by far is PJSIP. It is written in very portable C and has a number of wrappers. Here is a .NET wrapper that works really well.

路还长,别太狂 2024-07-19 04:36:51

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

We use SIP.Net, works OK for us.
We use it to wait for SIP packets and keep the SIP flow very simple.
Note that sometimes its object model is too detailed, so the product itself is very flexible (if you need such flexibility). However, we wrote a higher level wrapper (a kind of a façade) just to make things easier for us. They're very responsive, but the documentation is not detailed enough IMO.
You can also check nsip (just a link, I haven't tried it myself)

萌面超妹 2024-07-19 04:36:51

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

My sipsorcery project is another option. It contains a SIP stack written completely in C#.

一梦浮鱼 2024-07-19 04:36:51

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

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

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

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

I needed this a while back and ended up writing my own B2BUA (a SIP proxy that also handles the audio and acts as an endpoint to both sides of the conversation).

The problem with the SIP spec (and RTP), is that it's very complicated, especially is you consider all of the optional additions that have been made to it over the years. Everyone implements it just a little bit differently, so if you go with shrink-wrapped software, you might run into problems with specific phones or servers.

In my case, I was trying to get Microsoft Speech Server to communicate with SIP terminators. Microsoft has an especially creative interpretation of the SIP spec (the most notable example being that they do not support UDP). Also, some VOIP gateways do not support REFER for supervised transfers, which is a necessity for many applications.

Several decent links have been provided in the other answers: my advice is to roll your own or go with something that is open source so you can tweak it as necessary when you run into the inevitable incompatibilites in SIP implementations.

清旖 2024-07-19 04:36:51

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

Looks like a decent starting point might be this CodeProject article. I don't believe it handles the media stream, however.

大姐,你呐 2024-07-19 04:36:51

http://www.konnetic.com 是一个相对较新的新增内容。 完全托管。 使用 SIP 和 SDP 所需的一切。 他们没有像其他许多人一样选择标准中容易实现的目标。
Microsoft Lync 服务器同样出色,但与 Microsoft 紧密相关。

http://www.konnetic.com is a relatively new addition. Fully managed. Everything you need to work with SIP and SDP. They haven’t picked the low-hanging fruit in the standard like a lot of the others.
Just as good but tied to Microsoft is the Microsoft Lync server.

柏拉图鍀咏恒 2024-07-19 04:36:51

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

FreeSwitch

Not sure what you're looking for here. Are you looking for a client-side VOIP application or a server side? If the latter, you might want to check out FreeSwitch. One feature they have is the ability to write extension code in Mono, which allows C#. Look for mod_mono support.

FreeSwitch

陌上青苔 2024-07-19 04:36:51

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

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

另外,Microsoft 的 Lync 服务器附带了一个非常好的托管 SIP 库,可在此处获取:www.microsoft.com/en-us/lync/default.aspx

Konnetic provide fully managed SIP components for .NET development.

Their .NET SIP SDK is probably the most comprehensive.

Otherwise, Microsoft's Lync server comes with a very good managed SIP library, available here: www.microsoft.com/en-us/lync/default.aspx

寄人书 2024-07-19 04:36:51

也许您想尝试lumisoft。 完全用 C# 构建。 完全开源且免费。
lumisoft

Perhaps you want to try lumisoft. Entirely build in C#. Completely open source and free.
lumisoft

够钟 2024-07-19 04:36:51

尝试 语音元素

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

Try Voice Elements .

It is a .NET Telephony Tool and they have their own SIP Stack. Use C# or whatever .NET language of your choice.

花海 2024-07-19 04:36:51

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

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

I've seen (not used directly, just reviewed) a fairly large and stable VOIP system using a SIP stack from Radware. Very good (i.e. no problems), and I didn't find any security issues with it either...

The system I reviewed was in C#.

撑一把青伞 2024-07-19 04:36:51

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

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

In the past, I've used Live Communications Server from MS (thought it was in 2003). The SDK associated was pretty bad.

There's now the new version, Office Communications Server. I haven't developed with the SDK but seen some demos that were pretty cool.

辞别 2024-07-19 04:36:51

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

The best i found was VoIP Video SIP SDK It provide as well video with high quality

留蓝 2024-07-19 04:36:51

LumiSoft.Net 是一个非常好的 C# SIP 堆栈。 它具有所有基本库,例如 SIP、RTP、SDP、DNS 和许多其他库来构建强大的库sip代理服务器或SIP客户端非常容易。

LumiSoft.Net is a very good SIP stack for C#. It has all basic libraries such as SIP, RTP, SDP, DNS and many other libs to build a robust sip proxy server or SIP client very easily.

心的憧憬 2024-07-19 04:36:51

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

另请看一下:http://www.codeplex.com/mysipswitch

This looks interesting to me... http://developers.inova.si/sipobjects/Default.aspx?tabid=92 - it's not open source, but it's definitely .NET-centric. It's Avaya centric so it may not suit your purposes.

Also look at this: http://www.codeplex.com/mysipswitch

薄凉少年不暖心 2024-07-19 04:36:51

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

所有 LanScape VOIP 产品包括
LanScape VOIP Media Engine™ 具有
从“底层”开始设计
支持微软所有版本
Windows® 2000 和 XP 及以上
包括最新版本的
Windows Vista。

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

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

All LanScape VOIP products including
the LanScape VOIP Media Engine™ have
been designed from the "ground up" to
support all versions of Microsoft
Windows® 2000 and XP up to and
including the latest version of
Windows Vista.

I also happen to personally know that it is C#-friendly.

逆光飞翔i 2024-07-19 04:36:51

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

Read about Avaya DMCC. You can register in AvayaDev and download it for free. That C# framework let you leverage all the pbx features with AES and CM. You can check if you have SIP supported too.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文