论文部分内容阅读
IP电话(VoIP)正在向一种跨越因特网的正式商业电话模式演进。SIP是一种应用层控制信令协议,是NGN(下一代网络)系列协议中重要的一部分,可用于确保这种演进的实现。 本文简要介绍了IP电话的原理、关键技术,然后详细介绍了SIP协议的原理、实现机制,并用C++语言在Linux平台上实现了一个SIP协议栈以及基于这个协议栈的服务器系统。 所实现的SIP协议栈可以实现SIP消息的编解码和收发,支持IPv6协议和SNMP协议,可以使用在代理服务器、重定向服务器、注册服务器等标准SIP服务器之上,与最新的SIP协议标准(RFC3261)基本兼容。为提高效率,SIP消息的解码使用了lazy-decode方式。 基于这个SIP协议栈实现了具有商用价值的SIP服务器系统,采用了代理服务器模式和重定向模式相结合的方式。该系统除了完成用户定位、呼叫路由等基本功能之外,还增加了协议中没有规定但实用系统必须具有的一些功能,如用户信息维护、灵活多样的接入认证方式,另外遵循Radius计费协议,采用集中方式管理服务器。 为了提高效率、可靠性和可扩充性,服务器的实现采取冗余策略,由多个服务器实现同样的功能。本文提出了专门用于配置服务器之间以及配置服务器与其客户端之间数据同步和访问的SPP协议,重定向服务器之间也采取了特定方式来实现所有注册信息的同步。重定向服务器实现了呼叫路径规划,可方便用户服务的定制,并创新性地增加了ENUM功能,使不具有ENUM功能的用户终端能够使用E.164号码。