SIP消息有两种类型:从客户机到服务器的请求消息(Request)和从服务器到客户机的响应消息(Response)。

呼叫控制请求:

  --INVITE:发起呼叫,并对会话进行描述
  --ACK:主叫确认收到被叫发送的对INVITE的确认响应
  --BYE:释放连接,可由主叫方发起,也可由被叫方发起
  --CANCEL:主叫取消呼叫,在连接建立起来之前发送
注册请求:
  --REGISTER:在注册服务器上注册用户
能力查询请求:
  --OPTIONS:查询服务器的能力
扩展操作:
  --INFO:传递信息
 
响应消息:
服务器向客户端反馈对应请求的处理结果的SIP消息,包括1xx、2xx、3xx、4xx、5xx、6xx响应。
 
sip消息格式:
  SIP消息由一个起始行、消息头、一个标志消息头结束的空行及作为可选项的消息体组成。SIP消息的起始行分为请求行(Request-Line)和状态行(Status-Line)两种。其中,请求行是请求消息的起始行,状态行是响应消息的起始行。可见,请求消息包含请求行、消息头、空行和消息体;响应消息包括状态行、消息头、空行和消息体。
请求消息和响应消息都包括SIP消息头字段和SIP消息体字段。SIP消息头主要用来指明本消息的发起方和接受方,以及经过多少跳转等基本信息;SIP消息体主要用来描述本次会话具体实现方式;通过换行符区分命令行和每一条参数行。
  消息头:Call-id;
  参数行:Via、From、To、Contact、Csq、Content-length、Max-forward、Content-type、White Space、SDP等。

SIP消息的更多相关文章

  1. 流媒体学习三-------SIP消息结构详解

    SIP消息由三部分组成,即:开始行(start line).消息头(header).正文(body)Start-line:请求行Request-line  消息为 request消息时使用reques ...

  2. 抓包分析SIP消息

    I. 实验环境 SIP服务器: Yate服务器, IP:port=10.15.3.34:5060 SIP客户端: 移植Sipdroid的Android网络电话软件, IP: 10.15.3.73, A ...

  3. SIP消息类型和消息格式

    转自:http://blog.chinaunix.net/uid-1797566-id-2840904.html sip消息类型和消息格式 SIP是一个基于文本的协议,使用的是UTF-8字符集. SI ...

  4. FreeSWITCH 处理Refer盲转时,UUI传递不对(没有将SIP 消息头Refer-To中的User-to-User传递给B-Leg)

    运行环境:     CentOS 7.6     FreeSWICH 1.6.18   一.问题场景:     FreeSWITCH收到REFER命令后,重新发起的INVITE消息中的 "U ...

  5. Sipdroid实现SIP(三): 消息接收处理

    I. 注册回调 RegisterAgent类 在TransactionClient Fail/Success的回调中, 调用RegisterAgentListener的Register Fail/Su ...

  6. SIP学习笔记(转)

    本文转发自:http://blog.chinaunix.net/uid-20655530-id-1589483.html 学习 SIP 协议最快捷的方法是通过范例来学习, 找到了一个完整的呼叫流程,l ...

  7. SIP 解析

    1 general-header类: 为描述消息基本属性的通用头域,可用于请求消息或响应消息:通用头域的域名只有在协议版本改变时才可有效地扩展.不过,通信中的所有方均认为是“通用头域”的新的头域也可认 ...

  8. 2、SIP

    1.初学者笔记:http://www.cnblogs.com/gnuhpc/archive/2012/01/16/2323637.html 2.SIP头字段解释:http://www.cnblogs. ...

  9. [百科] - SIP(会话发起协议)

    SIP(会话发起协议)SIP是类似于HTTP的基于文本的协议.SIP可以减少应用特别是高级应用的开发时间.由于基于IP协议的SIP利用了IP网络,固定网运营商也会逐渐认识到SIP技术对于他们的深远意义 ...

随机推荐

  1. 模拟位置 定位 钉钉打卡 运动轨迹 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  2. linux下gflags的安装

    gflags是google开发的一套命令行参数解析工具,被很多软件系统所依赖,应该算是一个基础的库,安装其实很简单,但是如果在网上找的一些教程大部分都是安装后不能被其他软件调用的,因为默认使用cmak ...

  3. [Canvas]空战游戏进阶 增加己方子弹管理类

    点此下载源码,可用Chrome打开观看. 图例: 代码: <!DOCTYPE html> <html lang="utf-8"> <meta http ...

  4. VS2017环境下安装AO10.2的方法

    软件版本 Visual Studio的全称.简称及版本号对应关系为: Microsoft Visual Studio 2002 VS2002 VC7.0 Microsoft Visual Studio ...

  5. Spring HttpInvoker 从实战到源码追溯

    Spring HttpInvoker 作为 Spring 家族中老牌远程调用模型,深受开发者喜爱. 其主要目的是来执行基于 HTTP 的远程调用(轻松穿越防火墙),并使用标准的 JDK 序列化机制. ...

  6. Jexus 5.4.6 on CentOS 6.6

    Mono 通过脚本安装 https://github.com/cjy37/linux-asp.net-installScript 版本 3.10 MongoDB 也可通过以上脚本安装 默认端口 270 ...

  7. Oracle 18C DBCA建库报ora-01012错误

    操作系统:rhel 7.2 解决方案: 1).设置/etc/systemd/logind.conf中RemoveIPC=no2).重启服务器或者重启systemd-logind重启systemd-lo ...

  8. MySQL字符集详解

    Reference:  https://www.cnblogs.com/wcwen1990/p/6917109.html MySQL字符集详解   一.字符集和校验规则 字符集是一套符合和编码,校验规 ...

  9. Linux系统盘扩容-物理机非虚拟机

    # Linux系统盘扩容 ## 了解磁盘分区情况 - `blkid` 查看分区情况- `fdisk -l` 分区表 ## 系统挂载分区 - `/etc/fstab` 启动挂载分区情况 ## 双系统下分 ...

  10. c# async和await 用法(阻塞与不阻塞)

    void PagePaint() { Console.WriteLine("Paint Start"); Paint(); Console.WriteLine("Pain ...