转载自:http://blog.sina.com.cn/s/blog_6617106b01011oaz.html
概念
SIP:Session Initiation Protocol,会话初始协议。
SIP协议是一个应用层的信令控制协议,用于创建、修改和释放一个或多个参与者的会话。会话类型包括多媒体会议、Internet电话等类似的应用。SIP可以通过MCU(Multipoint Control Unit)、单播联网方式或组播方式创建多方会话。
按照IETFRFC2543的定义,SIP是一个基于文本的应用层控制协议,独立于底层传输协议TCP/UDP/SCTP,用于建立、修改和终止IP网上的双方或多方多媒体会话。SIP协议借鉴了HTTP、SMTP等协议,支持代理、重定向及登记定位用户等功能,支持用户移动。通过与RTP/RTCP、SDP、RTSP等协议及DNS配合,SIP支持语音、视频、数据、E-mail、状态、IM、聊天、游戏等。SIP协议可在TCP或UDP之上传送,由于SIP本身具有握手机制,可首选UDP。
SIP协议可以应用于MSC Server与MSC Server之间的Nc接口,也可以应用于MSC Server和IMS对接,MSC Server和NGN的对接。
SIP支持别名映射、重定向服务、ISDN和智能网业务。也支持个人移动,即终端用户能够在任何地方、任何时间请求和获得已订购的任何电信业务。
SIP能够支持下列五种通信功能:
-
用户定位:确定参加通信的终端用户的位置。
-
用户通信能力协商:确定通信的媒体类型和参数。
-
用户意愿交互:确定被叫是否乐意参加某个通信。
-
建立呼叫:包括向被叫“振铃”,确定主叫和被叫的呼叫参数。
-
呼叫处理和控制:包括呼叫重定向、呼叫转移、终止呼叫等。
SIP可以使用UDP协议或SCTP协议作为传输层协议,默认选择UDP协议。
SIP消息采用文本方式编码并使用UTF-8字符集,分为两类:请求消息和响应消息。
请求消息和响应消息都包括起始行、消息头字段、一个标志头字段结束的空行和消息体字段。
请求消息的起始行是请求行,响应消息的起始行是状态行。
消息体可以采用SDP(Session Description Protocol)来描述本次会话的具体实现方式,也可以封装ISUP消息。 任何SIP消息都必须带有消息头字段,消息体字段可以根据SIP消息的类型和业务需要决定是否携带。
-
SIP请求消息由请求行、消息头、空行(CRLF)和消息体组成。通过换行符区分消息头中的每一条参数行。