SIP_sip鍜

其他范文 时间:2020-02-27 16:46:49 收藏本文下载本文
【www.daodoc.com - 其他范文】

SIP由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“sip鍜”。

SIP请求方法:

INVITE:

ACK:发起会话请求 证实已收到对于INVITE请求的最终响应。与INVITE消息配套使用。

REGISTER:将自己的地址信息注册至服务器上

OPTIONS: 查询服务器(对方代理)的能力

CANCEL:

BYE:

UPDATE:

INFO:

REFER:

PRACK:

COMET: 取消尚未完成的请求。对于已完成的无影响 结束会话 允许客户更新一个会话的参数而不影响当前的会话状态 用于传递会话中产生的与会话相关的控制信息 呼叫转移,用于指示接收方通过使用在请求中提供的联系地址信息联系第三方 与ACK相同,但用于临时响应 用来检验能够用于会话的资源,使用户代理根据资源可用性决定是否接受呼

取消订阅请求 REINVITE: 用于改变会话参数 SUBSCRIBE: 用于发起订阅请求,向远端断点预定其状态变化的通知 UNSUBSCRIBE:

NOTIFY: 用于通告当前资源状态,发送消息通知预订者它所预定的状态的变化

MESSAGE: 用于通过在消息体中承载即时消息内容实现即时通信

SIP响应码:

1xx: Provisional,2xx: Succe,3xx: Redirection

4xx: Client Error

5xx: Server Error

6xx: Global Error 临时响应---表明请求已经接收,正在继续进行处理。成功响应---请求已经成功收到,理解并接受。重定向响应---还需要附加的操作才能完成这个请求,本请求转发到其他的服务器 上处理 客户端错误---请求包含错误的格式或者不能在这个服务器上完成 服务器错误---服务器不能正确的处理这个显然合法的请求 全局错误---请求不能被任何服务器处理。

SIP消息头域:

1.通用头域:

用于请求消息或响应消息.域名只有在协议版本改变时才可有效的扩展

Call-ID: a84b4c76e66710@pc33.atlanta.com

Call-ID =(“Call-ID” | “i”)”:”local-id”@”host

Local-id = 1*uric

全局唯一标识。代表了一种在两个或多个用户之间共享的SIP信令的关系。

标识一个特定邀请和与这个邀请相关的所有后续事务

一般使用经过加密的随机标识(可通过随机字串和主机名或IP地址混和产生)

From: Alice;tag=1928301774

From =(“From” | “f”)“:”(name-addr | addr-spec)*(“;”addr-params)

addr-params=tag-param

tag-param=“tag=”UUID

UUID=1*(hex | “-”)

“tag”可出现在From头域中,当共享同一个SIP地址的用户的两个实例使用同一个Call-ID发出邀请时,必须使用“tag”。全局唯一的经过加密的至少32比特的随机数。“tag”参数作为一种通用机制,用于区分由一个SIP-URL标识的用户的多个实例。

出于安全性考虑,禁止包含“transport-param”,“maddr-param”,“ttl-param”,“headers”。接收到含有以上元素的SIP-URL的服务器在执行下一步处理之前,应将这些元素删除。

To: BobTo =(“To” | “t”)“:”(name-addr | addr-spec)*(“;”addr-params)如果请求包含了不止一个Via头域,则必须增加“tag”参数。

出于安全性考虑,同From。

Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds

Via指示请求迄今为止所走的路径。

Branch参数: 使用magic cookie”z9hG4bK”打头.其它部分是对“To, From, Call-ID头域和Request-URI”按一定的算法加密后得到。这7个字母是一个乱数cookie(定义成为7位的是为了保证旧版本的RFC2543实现不会产生这样的值).Contact:sip:192.168.2.89:5090

Contact=(“Contact” | “m”)”:”

(“*” |(1#((name-addr | addr-spec)[*(“;”contact-params)][comment])))

name-addr=[display-name]””

addr-spec=SIP-URL | URI

display-name=*token | quoted-string

contact-param=“q”“=”qvalue|“action””=””proxy”|”expires”“=”delta-seconds| SIP-date| extension-attribute

extension-attribute = extension-name [“=”extension-value]

q:表明所给的位置的相对重要性,“qvalue”从0到1,值高参考性大。

action:只用于使用REGISTER登记时。表明是否客户希望服务器代理或者重定向用户想要的未来的请求。

expires:表明URI的活动时间。注意与Expire头域的联系:如果Contact 中存在expires参数,则使用其表示的时间;若不存在,则使用Expire头域所表示的时间。

CSeq: 314159 INVITECseq =“Cseq” “:” 1*DIGITMethod 为一个32位的无符号整数,它的初始值是任意的,但必须小于等于2**31。

每发出一个新的SIP请求,CSeq++1,遵循严格单调增加的守则.派生的请求须有同样的Cseq值 用户代理服务器必须记住同一个Call-ID的INVITE请求的最高序列数.低于此序列数的任何INVITE请求,服务器作出响应后放弃。

“Method”值使得客户将对于INVITE请求的响应和对于一个CANCEL请求的响应(一般是200响应)区分开来

Encryption:Encryption= “Encryption” “:””pgp”pgp-eparams

pgp-eparams=1#(pgp-version | pgp-encoding)

pgp-encoding=”encoding””=””ascii” | token

表明内容经过了加密处理,此加密为端到端的加密。加密部分默认为二进制。Expires = “Expires” “:”(SIP-date | delta-seconds)Expires头域给出了消息内容活动的日期和时间 此域的值可以是一个SIP-date,或者是一个以秒为单位的数字形式。此头域只用于INVITE、REGISTER方式。在REGISTER请求中,它指示登记的有效期限。在INVITE请求中,主叫方可以限制邀请的有效性 Record-Route: sip:p1.example.com;lr Expires:

Record-Route = “Record-Route” “:” 1#name-addr

Record-Route请求和响应头域可以被任何服务器加到请求中并坚持以后的同一个Call leg的请求使用同样的路径。它包含了一个唯一可达的Request-URI来指示代理服务器。每一个代理服务器将它的Request-URI加到序列的开始。

严格路由: Strick Routing.要求接收到的消息的request-URI必须是自己的URI,然后将第一个Route头域“弹”出来,并把其中的URI作为新的request-RUI,然后把该消息路由给该URI。松散路由:lr: Louse Routing1,Proxy首先会检查消息的request-URI是不是自己属于自己所负责的域。如果是,它就会通过定位服务将该地址“翻译”成具体的联系地址并以此替换掉原来的request-URI;否则,它不会动request-URI。2,Proxy检查第一个Route头域中的URI是不是自己的,如果是,则移除之。3,前面两项都是准备工作,下面该进行真正的路由了。如果还有Route头域,则Proxy会把消息路由给该头域中的URI,否则就路由给request-URI。Timestamp:

Timestamp = “Timestamp” “:” *(DIGIT)[ “.” *(DIGIT)][delay] Delay =(DIGIT)[ “.” *(DIGIT)] Timestamp通用头域指示客户何时向服务器发送请求。

此头域的值只对客户有用。客户使用timestamp头域来计算到达服务器的round-trip时间,以便调整重传的timeout时间。

Date: Tue, 15 Nov 1994 08:12:31 GMTDate = “Date” “:” HTTP-dateHTTP-date只能是rfc1123-date。

rfc1123-date = wkday “,” SP date1 SP time SP “GMT”

date1 = 2DIGIT SP month SP 4DIGIT;day month year(e.g., 02 Jun 1982)

wkday = “Mon” | “Tue” | “Wed” | “Thu” | “Fri” | “Sat” | “Sun”

month = “Jan” | “Feb” | “Mar” | “Apr” | “May” | “Jun” | “Jul” | “Aug” | “Sep” | “Oct” | “Nov” | “Dec”

(GMT):Greenwich Mean Time

当请求或者响应被第一次发送时,Date头域指示发送日期和时间.重传将使用与相应的初始同样的Date头域。

Accept:

用于INVITE、OPTIONS和REGISTER请求方式中,指示在响应中能够接收的媒体的类型(缺省值为application/sdp)

Accept-Encoding:与Accept头域相似,但它限制在响应中可接受的content-codings

客户用此头域向服务器指示它接收原因短语、通话描述符或者消息体中所承载的状态响应时所使用的语言。Proxy可以用此域来帮助选择呼叫的目的地。

2.实体头域

描述消息体内容的长度、格式和编码类型等属性.可用于请求消息或响应消息

Content-Encoding:

Content-Encoding=(“Content-Encoding” | “e”)”:” 1#content-coding

指示适用于实体消息体的其他的内容编码,指示为了获得Content-Type头域所给出的media-type,必须使用的编码方案。主要用于压缩消息体,而不丢失它底层的媒体类型的标识。如服务器不能识别Content-Encoding, 则发送415响应,在Accept-Encoding头域中列出可以接受的编码.Accept-Language:

Content-Length:142Content-Length =(“Content-Length” | “l”)”:” 1*DIGIT 指示消息体的长度。形式上以八个比特为一个字节。Content-Length的值应为非负数,0表示没有消息体。

服务器如果收到一个不包含Content-Length域的UDP请求,那么它便认为此请求压缩了包的剩余部分,直接关闭TCP连接

服务器如果收到一个包含有Content-Length域的UDP请求。但它的值比消息体的实际长度大,客户则应产生一个400类的响应。

Content-Type: application/sdpContent-Type=(“Content-Type”| “c”)“:”media-type 指示发送给接收者的消息体的媒体类型

3.请求头域:

只用于请求消息.用来传递有关请求或客户机本身的一些附加信息,对请求进行补充说明 Subject:

Subject=(“subject” | “s”)“:”*TEXT-UTF8

提供了一个摘要,或指示了呼叫的实际情况,使得不必分析通话描述便可过滤呼叫。User-Agent:CERN-LineMode/2.15 libwww.daodoc.comment)

包含了关于发送初始请求的客户用户代理的消息

用于统计目的,跟踪违反协议的情况、用户代理的自动认可的情况,以便在编制响应时避免特定用户代理的限制。用户代理应在请求中包含此头域。

Organization:Organization =“Organization” “:”*TEXT-UTF8

表明发送请求或者响应的实体所属的组织。它可以由位于某组织边界的代理来加入。客户软件可以使用此头域来过滤呼叫。

Contact:可出现在INVITE、ACK和REGISTER请求中,1XX、2XX、3XX和485响应中。提供了一个URL,用户可以通过此URL来进行进一步的通信 INVITE和ACK请求:Contact域表明请求从哪个位置发起; Authorization = “Authotization”“:”“pgp”*(“;”pgp-response)

pgp-response =realm | pgp-version | pgp-signature | signed-by | nonce

pgp-signature = “signature”“=”quoted-string

signed-by = “signed-by”“=”URI

pgp-signature:由ASCII码包裹的PGP标识,出现在“BEGIN PGP MESSAGE”和“END PGP MESSAGE”之间,没有版本标识。如果重新侵入并不担心的话,服务器可以不产生nonce。不产生nonce避免了增加其他形式的请求,401响应和可能的ACK消息,也减少了round-trip时间的耽搁。realm:复制于相关的www.daodoc.comment] [“:” “duration””=”delta-seconds]

用在503(Service Unavailable)响应中,向提出申请的客户指示,此服务预计多长时间无效。用在404(Not Found),600(Busy)和603(Decline)响应中,指示被叫方多长时间内再次有效。此域的值可以是SIP-date和以秒为单位的整数值。

Server:CERN/3.0 libwww.daodoc.comment)Product = token [“/” product-version] product:所使用的服务器;

comment:服务器中的重要部分。

包含了关于UAS用来处理请求的软件的信息.如果响应通过代理来前转,那么代理禁止修改此Server响应头域,它应该包含一个Via头域。

Warning:

Warning= “Warning”“:” 1#warning-value

Warning-value = warn-code SP warn-agent SP warn-text

Warn-code = 3DIGIT

Warn-agent =(host[“:”port])| pseudonym

Warn-text= quoted-string

包含了关于响应状态的其他信息.一个响应中可以有多个Warning头域

Allow:Allow = “Allow”“:” 1#Method

列出了Request-URI指示的资源所支持的方式集.目的是通知接收者与资源相联系的有效方式。在405(Method Not Allowed)响应中必须有Allow头域;在OPTIONS响应中应该有Allow头域。

Unsupported:Unsupported = “Unsupported” “:”1#option-tag

列出了服务器不支持的特征。(只用于420响应)

下载SIPword格式文档
下载SIP.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

相关专题 sip鍜 SIP
    热门文章
      整站推荐
        点击下载本文