SIP消息

来源:互联网 发布:阿里云 vpn服务器 编辑:程序博客网 时间:2024/04/30 04:56

SIP消息有两种类型:请求和响应。

  • 一个请求的打开行包含定义,其中该请求是要被发送的方法,它定义请求,以及请求URI。

  • 同样响应的打开行包含一个响应代码。

请求方法

SIP请求是用于建立通信的代码。为了补充它们,SIP响应其通常指示请求是成功还是失败。

有一些命令称作方法,使SIP消息可行。

  • METHODS 可被视为SIP请求,因为它们要求将要采取的另一个用户代理或服务器的特定动作。

  • METHODS 被区分为两种类型:

    • 核心方法
    • 扩展方法

核心方法

有六个核心的方法如以下所讨论。

INVITE

INVITE被用于发起会话使用用户代理。换言之,一个INVITE方法用于建立用户代理之间的媒体会话。

Invite
  • INVITE可以包含在邮件正文中主叫者的媒体信息。

  • 会话被认为是如果INVITE已经获得了成功响应(2xx)上建立或ACK已发送。

  • 一个成功的INVITE请求建立这一直持续到BYE发送到终止会话的两个用户代理之间的对话。

  • 一个发送的INVITE内已建立的对话被称为一个re-INVITE请求。

  • re-INVITE请求用于改变在会话特性或刷新一个对话的状态。

INVITE实例

下面的代码演示了INVITE如何被使用。

INVITE sips:Bob@TMC.com SIP/2.0Via: SIP/2.0/TLS client.ANC.com:5061; branch = z9hG4bK74bf9Max-Forwards: 70From: Alice <sips:Alice@atlanta.com> ;tag = 1234567To: Bob <sips:Bob@TMC.com>Call-ID: 12345601@ANC.comCSeq: 1 INVITEContact: <sips:Alice@client.ANC.com>Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFYSupported: replacesContent-Type: application/sdpContent-Length: ...v = 0o = Alice 2890844526 2890844526 IN IP4 client.ANC.coms = Session SDPc = IN IP4 client.ANC.comt = 3034423619 0m = audio 49170 RTP/AVP 0a = rtpmap:0 PCMU/8000

BYE

BYE用于终止已建立的会话的方法。这是可以通过主叫方或被叫方结束会话被发送SIP请求。

  • 它不能由代理服务器发送。
  • BYE请求通常路线端到端,绕过代理服务器。
  • BYE不能被发送到一个等待INVITE或未确定会话。

REGISTER

REGISTER请求执行的用户代理的注册。这个请求是由用户代理发送到注册服务器。

  • REGISTER请求可以被转发或代理,直到它到达指定域的权威注册机构。

  • 它所携带的AOR(记录地址)在为正在注册的用户的头。

  • REGISTER请求中包含的时间段(3600秒)。

  • 一个用户代理可以代表其他用户发送代理注册请求。这就是所谓的第三方注册。在这里,从标签中包含方提交的注册代表确定To头部分的URI。

CANCEL

CANCEL用于终止未建立会话。用户代理使用此请求取消更早启动暂停呼叫的尝试。

  • 它可以通过一个用户代理或代理服务器来发送。

  • CANCEL是一个逐跳转发请求,也就是说,它通过用户代理之间的元件和接收由下一状态元素所产生的反应。

Hop By Hop

ACK

ACK用于确认最后的响应的INVITE方法。ACK总是在INVITE的方向。 ACK可能包含的SDP主体(媒体特性),如果它不在INVITE可用。

SDP AckSDP Acknowledgement
  • ACK可能不被用于修改一个已经发送的初始INVITE的媒体描述。

  • 有状态代理接收ACK必须确定是否将ACK应下游转发到另一个代理或用户代理。

  • 对于2xx应答,ACK是端到端的,但对于所有其他最终响应,它可以在逐跳转发基础上参与状态代理时。

OPTION

OPTIONS方法用于查询的用户代理或围绕其功能的代理服务器,并发现其当前的可用性。于请求的响应列出了用户代理或服务器的功能。代理从未产生OPTIONS请求。

扩展方法

订阅

订阅所使用的用户代理商建立了订阅获取通知的有关特定事件的目的。

  • 它有一个时间周期,在Expires头字段,指示存在一个订阅的所需的持续时间。

  • 在指定的时间段过后,订阅将自动终止。

  • 成功订阅建立用户代理之间的对话。

  • 订阅可以通过发送到期时间之前对话框中的另一个订阅刷新。

  • 服务器接受订阅返回一个200 OK。

  • 用户可以通过发送另一个使用订阅方法退订过期值为0(零)。

Example Subscribe

NOTIFY

NOTIFY是用来由用户代理传达的特定事件的发生。NOTIFY总是在对话中发送当用户与通知之间存在订阅。

  • 200 OK响应被接收为每个NOTIFY以指示它已收到。

  • NOTIFY请求包含指示,指示订阅的当前状态的包和订阅的状态报头字段的Event报头字段。

  • NOTIFY总是在订阅开始和订阅终止发送。

PUBLISH

PUBLISH用于由用户代理发送的事件的状态信息,以已知作为一个事件状态合成器的服务器。

Publish
  • Publish当有事件信息的多种来源主要是有用的。

  • PUBLISH请求类似于一个NOTIFY,不同之处在于它不是在对话框发送。

  • 一个PUBLISH请求必须包含一个Expires头字段和Min-Expires头字段域。

REFER

REFER用于由一个用户代理来指另一个用户代理访问URI的对话框。

  • REFER必须包含一个Refer-To头。这是参考一个强制性的头。

  • REFER可以在内部或在对话外发送。

  • 202 Accepted 将引发REFER请求这表明其他用户代理已经接受了参考。

INFO

INFO所使用的用户代理发送呼叫信令信息,与它建立了一个媒体会话其他用户代理。这是一个终端到终端的请求,并且从不生成由代理。代理会一直转发信息请求。

UPDATE

UPDATE用于修改会话的状态不改变对话的状态。更新用于如果会话没有建立,并且用户想要改变编解码器。

Update

如果会话建立后,再邀请来改变/更新会话。

PRACK

PRACK用于确认收到临时响应(1XX)可靠传输。

  • PRACK通过一个用户代理客户端时产生的临时的响应已经接收到含有RSEQ可靠序列号和一个 supported:100rel 头。

  • PRACK包含架头(RSEQ+ Cseq)值。

  • PRACK可能包含邮件正文;它可以被用于提供/应答交换。

MESSAGE

它是用来发送即时消息或使用SIP IM。一个IM通常由短信息交换实时由从事文本会话参与者。

Message
  • 消息可以在对话中或在对话外发送。

  • 消息的内容在邮件正文中携带的MIME附件。

  • 200 OK响应被正常接收,以指示该消息已被传送在它的目的地。

文章转载自:易百教程 [http:/www.yiibai.com]

0 0
原创粉丝点击