Chinaunix首页 | 论坛 | 博客
  • 博客访问: 357250
  • 博文数量: 94
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 606
  • 用 户 组: 普通用户
  • 注册时间: 2015-09-30 08:58
个人简介

x

文章分类

全部博文(94)

文章存档

2019年(4)

2018年(10)

2017年(26)

2016年(38)

2015年(16)

我的朋友

分类: 嵌入式

2016-06-13 13:36:54

原文地址:SIP协议 作者:bill_cao

协议简介:
    会话初始化协议SIP(session initiation protocol,RFC3261).是一个基于文本的处于应用层的控制协议,可以用来创建、修改、终止会话。具有简练、开放、兼容和可扩展等特性。
    SIP只是整个多媒体架构中的一部分,可以和实时数据传输协议(RTP)、实时流协议(RSTP)、会话描述协议(SDP)等其他协议一起组成一个完整的多媒体结构。SIP在这个多媒体架构中充当一个交通工具的作用,并不提供具体服务。
    SIP是基于TCP/IP协议进行数据传输的,因此可以通过UDP传输(较常用),也可以同TCP传输。
    从结构上来说,SIP协议由一组相对无关的处理层次组成,这些层次之间只有松散的关系。
                          
常用术语概述:
    会话(session):就是一个多媒体发送和接收方组合的集合。可以理解为一次打电话从摘机、拨号、通话、挂机等一系列信号动作。
     对话(dialog):一个对话是持续一段时间的两个UA之间的端到端的SIP关系。用call-ID,local tag ,remote tag(对方tag)来标志一个对话。
     事务(transaction):实在客户端和服务器端的事件,包含了从第一个有客户端发送到服务器端的请求, 通过branch和cseq参数标志一个事务。
     用户代理UA(User Agent):一个逻辑实体的概念,包含UAC和UAS,仅存在于事物中。
     UAC(user agent client):用户代理客户端,用于发送SIP请求。
     UAS(user agent server):用户代理服务器,用于对SIP请求做响应的。
     背靠背的用户代理B2BUA(back-to-back user agent):是直接的UAC和UAC串联,要接受和处理请求,为了解决如何处理这个请求,又要发出一个请求,同时需要维持对话状态。
     呼叫(call):它是指在断点之间一些通信行为,用于建立多媒体对话。
     请求(request):一个由客户端发到服务器端的sip信息,用于执行特定的功能。
     应答(response):一个由服务器发到客户端的SIP信息,用来标志从客户端发往服务器端的请求处理的情况。
     方法(method):是向服务器请求处理的主要功能。
SIP消息简介
     SIP核心规范定义了6中不同的方法:
         
    6种应答消息
      
     Sip请求实例
           
     其中Request line包括方法名,Request URL,协议版本号,下面的为头域部分,域名+”:“+域值。头域后面加一个空行,然后是消息体部分。
     一个合法的SIP请求的头域部分必须至少包含如下6个头域:ViaFromToCall-IDCseqMax-Forwards
整个消息中每行都是以回车换行(CRLF)结束。 头域的域名是大小写不敏感的,一般习惯第一个字母大写;域值也是大小写不敏感的,除非用引号引起来。 冒号左右对加多少空格没有限制,一般建议在冒号和值之间加一个空格(SP)即可。 在没有body时,头域的后面也要加一个空行
    
     sip应答模式     
      
    
呼叫流程
 
    注册流程
          
   呼叫流程
        
 
    呼叫未建立时终止呼叫流程
        
        
 
    
阅读(2219) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~