SIP 学习 (1)

最近在学习SIP,刚刚看了一个很好的开源工程 pjsip 很强大!  可是对 SIP 还不是很了解,特增加了一个学习计划:SIP学习

RFC 文档参见:http://www.ietf.org/rfc/rfc3261.txt

SIP 也是类似 HTTP 的一个协议集合,在网上搜索了一下相关的信息,摘录如下:

SIP消息的第一行包含消息的类型和所使用的SIP版本(2.0)。在请求中,这一行还包含一个叫做SIP URI的地址。这代表消息的目的地。
这个例子说明了如何使用请求消息INVITE、ACK和BYE,以及200 OK响应消息。SIP中还存在许多其他消息。下面给出一些请求:

消息用法
INVITE呼叫一个用户代理,传送一次呼叫。
ACK确认呼叫。
BYE终止呼叫。
CANCEL终止还未OK的呼叫。
REGISTER提供一项注册服务,带有一个联系地址和可以用来代替的别名。例如,在前面的例子中,地址sip:UAA@example.com就是sip:UserA@10.20.30.40的别名。然后,注册服务器example.com就可以把呼叫转发给地址10.20.30.40。
OPTIONS询问一个用户代理的“能力”(例如,该用户代理能够识别的消息和编码)。

  现在给出一些经常使用的响应消息:

消息用法
100 Trying消息已收到,但是最终用户代理尚未进行处理。请等待。
180 Ringing最终用户代理已经收到消息,正在提示用户。请等待。
200 OK最终用户已经接受消息。
301 Moved Permanently & 302 Moved Temporarily用户代理的地址已经改变,新的永久或临时地址位于Contact字段中。
400 Bad Request普通错误消息。客户端不能识别消息。
401 Unauthorized & 407 Proxy Authentication Required请使用证书重试。
404 Not Found要联系的用户不存在或尚未注册。
408 Request Timeout另一方没有响应。这意味着SIP消息永远不会OK。所有重试都将被丢弃。这并不意味着电话响太长时间(电话可以永远响铃)。

消息使用类似的头字段类型。下面给出其中的一些:

头字段用法
FromSIP请求的发送者。
ToSIP请求的接受者。这通常与SIP URI相同(可以是一个“别名”或一个实际地址)。
Contact用户代理的实际地址。
Call-ID这并不是呼叫者的电话号码。它惟一地代表两个用户代理之间的完整呼叫或对话。所有相关的SIP消息都使用同一个Call-ID。例如,当一个用户代理收到一条BYE消息,根据Call-ID,它就知道要挂断哪次呼叫。
CSeq消息的顺序编号。这在一次对话或一个Call-ID中是惟一的。这用于区别新的消息和“重试消息”。当一条初始消息没有及时OK时,重试就会进行,并会定时发送。
Content-Type消息内payload的MIME类型。
Content-Lengthpayload的大小,以字节为单位。信封和payload之间由一空行隔开。

还有一些与消息路由选择功能相关的头字段,如:Via、Route和Record-Route。许多头字段提供像Accept、User-Agent和Supported这样的功能。其他头字段则提供像Authorization、Privacy和WWW-Authenticate这样的安全性功能。还有很多其他的头字段存在。此外,这些字段中许多都有缩写语法(比如,From = f,To = t,等等)。

 

http://blog.csdn.net/tomken_zhang/article/details/6906254

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值