如何使用C#构建软电话(使用SIP协议)

我有使用c#或.net技术构建SIP软电话的挑战。

请指导我建立这样的技术,要求和规格。

可能的要求:

支持的编解码器:

G.722.1,G.723.1,G.726,G.728,G.711,G.729,G.723.1,iLBC,:G.711(A和m-law),G.729A / B / D / E,AMR,GSM 6.10 / EFR,iLBC,Speex

  • 语音:

    实时质量监控(MOS)3条独立电话线
    自动应答/请勿打扰呼叫
    转发全双工音频
    录制压缩音频数据。

  • 完全SIP兼容的软电话/拨号器用于PC2Phone和Mobile2Phone(iPhone,诺基亚N95)应用程序与symbian s60,应提供完整的源代码。

  • 兼容Windows 2000 / XP / 2003 / Vista / Mac

  • NAT /防火墙遍历function

  • 适用于任何第三方SIP服务器

  • 支持SIP出站代理

  • 显示呼叫者帐户余额

  • 显示通话信用时间

  • 自动回声消除

  • 自动抖动缓冲调整

  • 最后号码重拨

  • 上次拨打的10个号码的历史记录

  • 快速拨号用户列表

  • 快速为客户提供,只需要用户名和密码

http://www.konnetic.com是一个相对较新的补充。 完全管理。 使用SIP和SDP所需的一切。 他们没有像许多其他人一样选择标准中的低调水果。 同样好但与Microsoft绑定的是Microsoft Lync服务器。

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

他们的SIP .NET SDK在这里可用,可能是最全面的。 他们还提供了一个MSRP库。

否则,Microsoft的Lync服务器附带了一个非常好的托管SIP库,可从以下url获得:www.microsoft.com/en-us/lync/default.aspx

这里有几点建议

  • 有关在C#中实现SIP堆栈的Code Project,请参阅此文章
  • 使用LAME查看此post的音频压缩

Microsoft实时通信:协议和技术http://technet.microsoft.com/en-us/library/bb457036.aspx