售前电话
135-3656-7657
售前电话 : 135-3656-7657
SIP消息有两种:客户机到服务器的请求(Request),服务器到客户机的响应(Response)。
SIP消息由一个起始行(start—line)、一个或多个字段(field)组成的消息头、一个标志 消息头结束的空行(CRLF)以及作为可选项的消息体(message body)组成。其中,描述消 息体(messagebody)的头称为实体头(entityheader),其格式如下:
generic-message = start-line
*message-header
CRLF
[message-body ]
起始行分请求行(Request-Line)和状态行(Status-Line)两种,其中请求行是请求消息 的起始行,状态行是响应消息的起始行。
消息头分通用头(general-header)、请求头(request-header)、响应头(response-header) 和实体头(entity-header) 4种。
1.SIP请求消息
请求消息的格式如下:
Request = Request-Line
*( general-header
I request-header
I entity-header)
CRLF
[message-body ]
请求行(Request-Line)以方法(method)标记开始,后面是Request-URI和协议版本 (SIP-Version),最后以回车键结束,各个元素间用空格键字符间隔。
Request-Line = Method SP Request-URI SP SIP-Version CRLF
SIP用术语“method”来对说明部分加以描述,Method标识是区分大小写的。
Method = "INVITE" I "ACK" I "OPTIONS" I "BYE"
I "CANCEL" I "REGISTER'T'INFO"
Slf定义了以下几种方法(methods)。
INVITE
INVITE方法用于邀请用户或服务参加一个会话。在INVITE请求的消息体中可对被叫方 被邀请参加的会话加以描述,如主叫方能接收的媒体类型、发出的媒体类型及其一些参数; 对INVITE请求的成功响应必须在响应的消息体中说明被叫方愿意接收哪种媒体,或者说明被 叫方发出的媒体。
服务器可以自动地用200 (OK)响应响应会议邀请。
ACK
ACK请求用于客户机向服务器证实它已经收到了对INVITE请求的最终响应。ACK只和 INVITE请求一起使用。对2xx最终响应的证实由客户机用户代理发出,对其他最终响应的证 实由收到响应的第一个代理或第一个客户机用户代理发出。ACK请求的To, From, CaU-ID, CSeq字段的值由对应的INVITE请求的相应字段的值复制而来。
OPTIONS
用于向服务器查询其能力。如果服务器认为它能与用户联系,则可用一个能力集响应 OPTIONS请求;对于代理和重定向服务器只要转发此请求,不用显示其能力。
OPTIONS的From、To分别包含主被叫的地址信息,对OPTIONS请求的响应中的From、 To (可能加上tag参数)、Call-ID字段的值由OPTIONS请求中相应的字段值复制得到。
BYE
用户代理客户机用BYE请求向服务器表明它想释放呼叫。
BYE请求可以像INVITE请求那样被转发,可由主叫方发出也可由被叫方发出。呼叫的 一方在释放(挂断)呼叫前必须发出BYE请求,收到BYE请求的这方必须停止发送媒体流 给发出BYE请求的一方。
CANCEL
CANCEL请求用于取消一个Call-ID, TO, From和Cseq字段值相同的正在进行的请求,但 取消不了已经完成的请求(如果服务器返回一个最终状态响应,则认为请求已完成)。
CANCEL请求中的Call-ID、To、Cseq的数字部分及From字段和原请求的对应字段值相 同,从而使CANCEL请求与它要取消的请求匹配。
REGISTER
REGISTER方法用于客户机向SIP服务器注册列在To字段中的地址信息。
REGISTER请求消息头中各个字段的含义定义如下:
•To:含有要创建或更新的注册的地址记录。
•From:含有提出注册的人的地址记录。
•Request-URI:注册请求的目的地址,地址的域部分的值即为主管注册者所在的域,而 主机部分必须为空。一般,Request-URI中的地址的域部分的值和To中的地址的域部 分的值相同。
•Call-ID:用于标识特定客户机的注册请求。来自同一个客户机的注册请求至少在相同 重启周期内Call-ID字段值应该相同;用户可用不同的Call-ID值注册不同的地址,后 面的注册请求将替换前面的所有请求。
•Cseq: Call-ID字段值相同的注册请求的CSeq字段值必须是递增的,但次序无关系, 服务器并不拒绝无序请求。
•Contact:此字段是可选项;用于把以后发送到TO字段中的URI的非注册请求转到 Contact字段给出的位置。如果请求中没有Contact字段,那么注册保持不变。
•Expires:表示注册的截止期。
INFO
INFO方法是对SIP协议的扩展,用于传递会话中产生的与会话相关的控制信息,如ISUP 和ISDN信令消息,有关此方法的使用还有待标准化,详细内容参见IETF RFC 2976。
其他扩展
其他扩展的含义如下:
•re-INVITE:用来改变参数;
•PRACK:与ACK作用相同,但是用于临时响应;
•SUBSCRIBE:该方法用来向远端端点预定其状态变化的通知;
•NOTIFY:该方法发送消息以通知预定者它所预定的状态的变化;
•UPDATE:允许客户更新一个会话的参数而不影响该会话的当前状态;
•MESSAGE:通过在其请求体中承载即时消息内容实现即时消息;
•REFER:其功能是指示接受方通过使用在请求中提供的联系地址信息联系第三方。
2.SIP响应消息
响应消息格式如下:
Response = Status-Line
*( general-header
I response-header
I entity-header )
CRLF
[message-body ]