SIP协议

协议标准:RFC3261

通信主体

名称简写用途
用户客户端UAC发起呼叫的实体
用户服务端UAS接收呼叫并响应的实体。
代理服务器Proxy Server代表其他客户机生成请求,传递到其他服务器(其他代理,重定向,注册)
重定向服务器Redirect Server接受SIP请求,UAS的SIP地址映射对应的地址成返回客户机,不传递请求到其他服务器
注册服务器Registrar Server接收注册,存储地址,处理地址请求

跨域呼叫

img

  1. 域A终端发起呼叫域B终端请求;

  2. 域A的SIP代理服务器发现被叫方不属于自己管理的域,向SIP重定向服务器查询被呼终端的域代理服务器在哪里

  3. SIP重定向服务器向域A的SIP代理服务器返回被呼终端所在域的SIP代理服务器地址;

  4. 域A的SIP代理服务器向域B的SIP代理服务器转发呼叫请求;

  5. 域B的SIP代理服务器向域B的注册和定位服务器查询被呼方的地址;

  6. 域B的注册和定位服务器向域B的SIP代理服务器返回被呼方的地址;

  7. 域B的SIP代理服务器向被呼方转发呼叫请求;

  8. 被呼方响应呼叫请求给域B的SIP代理服务器;

  9. 域B的SIP代理服务器转发呼叫响应给域A的SIP代理服务器;

  10. 域A的SIP代理服务器将呼叫响应转发给主叫终端。

协议格式

请求行与状态行

  • 请求行:Method SP Request-URI SP SIP-Version CRLF

  • 状态行:SIP-Version SP Status-Code SP Reason-Phrase CRLF

头域

  • 以":"作为key与value的分割符,

  • 允许list,以","作为分隔符,或者直接key同名,list有顺序,顺序不同的list不相等

  • 允许多行,行首加空格或Tab,表示接上行

  • 参数以";"作为分割符,一个field中parameter是唯一的。格式–field-name: field-value *(;parameter-name=parameter-value)

  • 大小写不敏感

  • 允许简写:简写

  • 头域常见Key:全部定义

    key含义例子说明
    From请求的发起者From: “A. G. Bell” <sip:agb@bell-telephone.com> ;tag=a48sname和<>,可选
    To请求的响应者To: The Operator sip:operator@cs.columbia.edu;tag=287447同from
    Contact后续Request的请求地址m: sips:bob@192.0.2.4;expires=60
    Call-ID通话标识Call-ID: f81d4fae-7dec-11d0-a765-00a0c91e6bf6@biloxi.com
    Via记录请求的路由Via: SIP / 2.0 / UDP first.example.com: 4000;ttl=16 ;
    maddr=224.2.0.1 branch=z9hG4bKa7c6a8dlze.1
    CSeq标识事务并对事务排序CSeq: 1 INVITE

例子

image-20210705152455081

SIP方法

方法含义
REGISTER向SIP服务器注册标明自己的位置
INVITEUAC发送此信息用以邀请UAS加入会话(包择一对一通话或conference
ACK为INVITE回复一个确认信息
CANCEL用来中止一个还没建立(在建立过程当中)的呼叫
OPTIONS用来查询server的capability
BYE用来中断呼叫
INFO发送会话中信息而不改变会话状态
PRACK用于回复一个临时性的请求
REFER呼叫转移,联系第三方
SUBSCRIBE用来向远端端点预订其状态变化的通知
NOTIFY用于通告当前资源状态
UPDATE在接到初始INVITE的回复时,UAC用UPDATE修改一个呼叫的参数而不影响该会话的当前状态
MESSAGE通过在其请求体中承载即时消息内容实现即时通讯

SIP状态码

错误码主要含义
1xx临时应答-请求已经收到,正在处理这个请求
2xx成功处理-请求已经成功接收,并且正确处理了这个请求
3xx重定向-还需要附加的操作才能完成这个请求,本请求转发到其他的服务器上处理
4xx客户端错误-求包含错误的格式或者不能在这个服务器上完成
5xx服务器错误-服务器不能正确的处理这个显然合法的请求
6xx全局错误-请求不能被任何服务器处理

5xx | 服务器错误-服务器不能正确的处理这个显然合法的请求 |
| 6xx | 全局错误-请求不能被任何服务器处理 |

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值