资源描述:
《基于sip协议voip客户端的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于SIP协议VoIP客户端的设计与实现熊磊1张思发1黄永峰2(1.中国地质大学计算机学院武汉430074;2.清华大学电子工程系网络研究所北京100084)要:SIP协议作为下一代网络(NGN)的重要协议,基于SIP的VoIP业务已经对传统话音业务形成了摘巨大的威胁,具有很大的发展潜力。该文首先概述了SIP协议的结构和信令流程,然后详细介绍了一种基于SIP协议的VoIP客户端的设计与实现方法。关键词:SIP;VoIP;H.3231引言VoIP技术为基于IP网络的语音传输提供了强大而有很好的支持,这些突出的优势使SIP得到了设备制造商和运营商的高度关注。有效的手段,以网络多
2、媒体传输为主的宽带网成为计2SIP协议SIP协议是由IETF(国际互联网标准制定组织)制定的面向Internet会议和电话的信令协议。它是算机网络发展的主流应用。VoIP是基于IP网络的语音通信,它不仅是IP电话,还是一个可以提供多样化服务的平台。2000年前后,国内的电信运营商就已经开始提供以H.323方式为主的VoIP业务,主要是将传统的Client/Server结构的协议,支持IPv4和IPv6,用来建电话网络转化成IP网络,以此来降低资费。2004年以后,随着宽带的不断普及和宽带接入费用的不断降低,基于会话初始化协议SIP(SessionInitiationProt
3、oco)l的VoIP(VoiceoverIP)开始成为应用的主流。SIP协议和H.323协议是VoIP的两个最重要的标准。H.323是由国际电联提出的一种兼顾传统PSTN(公共交换电话网)和IP网特点的标准体制。特别之处就是吸取了电信网的组网、互联和运营经验,能够与PSTN网以及其他应用网互联互通,也正是这样H.323协议得到了广泛的应用。SIP协议由IETF提出,与立、修改和终止两个或多个参与者参加的多媒体会话;支持多媒体通信中的用户定位、用户可用性、性能协商、会话建立、会话管理功能。2.1SIP中的实体按照逻辑功能区分,SIP系统可以划分为4个逻辑实体:用户代理、代理服
4、务器、重定向服务器以及注册服务器。用户代理UA(UserAgent)是一个终端实体,该终端通过发送请求和响应请求来发起和中止一个会话,或更改会话参数。RFC2543将用户代理定义为一图1代理呼叫的SIP信令流程图2重定向呼叫的SIP信令流程AgentClient)和用户代理服务器端UAS(UserAgentServer),前者用来发起SIP请求,根据用户的行为做出响应。代理服务器(ProxyServer)是一个中间实体,它同时充当服务器端和客户端,负责接收UA发来的请求,并根据网络策略将请求发给相应的服务后者在收到请求后器,对收到的应答做出响应。如果需要的话,可用收到的消息
5、改写后再发出去。它也重定向服务器(RedirectServer)是用于接受SIP请求,把目的地址映射到零个或多个新的地址,再江这些新地址返回给请求的发起者,该请求的发起者可用按照重定向服务器所返回的地址发出请求,而重定向服务器本身并不发起任何SIP请求。注册服务器(Register)用于接受和处理用户端的注册请求,完成用户地址信息的注册,并根据用户在请求消息中携带的信息更新本地数据库。2.2SIP协议的消息机制SIP消息分为两大类:从客户端到服务器的请求(Request)和从服务器到客户端的响应(Response)。3客户端的设计与实现系统按功能划分为核心控制模块、SIP模
6、块、好友管理模块、参数设置模块。无论是请求消息还是响应消息,都是由起始行(Start-Line)、消息头部(Message-Header)消息体(Message-Body)构成。和可选的3.1核心控制模块控制模块是整个VoIP终端核心部分。主要功能包请求消息按请求行(起始行)分为Register登记联系信息;Invite邀请用户加入会话;ACK对请求成括对客户端状态进行控制、根据目前所处状态和收到的SIP消息或用户的动作来决定下一步的状态选择、功后做出的确认;Cancel取消未完成的请求;话结束;Options询问服务器的性能。Bye会协调其他各模块之间的数据通信。客户端的
7、用户代理(UAC)的状态机主要有初始响应消息按状态行(起始行)中的状态码(3位)分为1XX暂时响应;2XX成功响应;3XX重定状态(IDLE)、对方正在处理(CALL_PROCEED-ING),对方正在响铃(CALL_RINING)、呼叫失败(CALL_FAILURE)、呼叫已被应答(CALL_ANSWE-RD)、呼叫已建立(CALL_ESTABLISHED),会话已向响应;4XX客户端出错;全局故障。2.3SIP协议呼叫方式5XX服务器出错;6XX(CALL_CLOSED)CALL_的状态经结束会话已释(SIP协