1、mtk_ims_mo_sip报文交互流程

log:

步骤1:ATD触发MO呼叫尝试
步骤2:VDM选择ADS到IMS。
步骤3:触发VoLTE UA来设置MO调用。
步骤4:SIP信息到P-CSCF进行MO呼叫设置和协商
步骤5:在VoLTE情况下确认专用承载与此调用尝试的QoS条件匹配。
步骤6:更新数据路径的媒体参数。在VoWiFi中, WFCA信号被handle RTP on WiFi。
步骤7:将呼叫状态传递给IMC,并激活媒体流。
步骤8:URC来指示Framework的call状态。

2、mtk_ims_MT_sip报文交互流程

步骤1:VoLTE UA接收SIP消息为MT呼叫尝试和协商P-CSCF为MT呼叫设置。
步骤2:在VoLTE情况下确认专用承载与此调用尝试的QoS条件匹配
步骤3:更新数据路径的媒体参数。在VoWiFi中,也给WFCA发信号来处理WiFi上的RTP
步骤4、5:传递MT call attempt到Framework,等待用户接受。
步骤6:通知VoLTE UA接受MT调用并完成调用设置
步骤7:SIP消息到P-CSCF完成MT设置
步骤8:将呼叫状态传递给IMC,激活媒体流
步骤9:URC来指示框架的调用状态

//receive,request,INVITE
[AT_URC p31,ch1]+ESIPCPI: 0,1,0,1,0,""
[AT_URC p31,ch1]+EAIC: 1,"13267945631",129,20,102,0
[AT_RX p33,ch3]AT+EAIC=0,1,102
//send ,response,INVITE
[AT_URC p31,ch1]+ESIPCPI: 1,0,1,1,183,""
[ATCI_AT_I_0 s33]AT+EIMSCI=1,0,0 //IMS 开启,LTE
//MT,IMS_VOICE_CALL,国内呼叫
[AT_URC p31,ch1]+ECPI: 1,0,0,1,1,20,"13267945631",129,"<tel:13267945631>"
 [AT_URC p31,ch1]+ESIPCPI: 1,1,0,13,0,""    //receive request PRACK
[AT_URC p31,ch1]+ESIPCPI: 1,0,1,13,200,""    //send response PRACK
[AT_URC p31,ch1]+ESIPCPI: 1,1,0,3,0,""        //receive request UPDATE
[AT_URC p31,ch1]+ESIPCPI: 1,0,1,3,200,""    //send response UPDATE
[AT_URC p31,ch1]+ESIPCPI: 1,0,1,1,180,""    //send response INVITE
[AT_URC p31,ch1]+CRING: VOICE               //180 Ring
[AT_URC p31,ch1]+ESIPCPI: 1,0,1,1,200,""    //send response INVITE
[AT_URC p31,ch1]+ECPI: 1,132,0,1,1,20,"13267945631",129,"<tel:13267945631>"
[AT_URC p31,ch1]+ECPI: 1,6,0,1,1,20,"13267945631",129,"<tel:13267945631>"
[AT_URC p31,ch1]+ESIPCPI: 1,1,0,6,0,""     // receive request    ACK
[AT_URC p31,ch1]+ESIPCPI: 1,1,0,1,0,""     // receive request    INVITE
[AT_URC p31,ch1]+ESIPCPI: 1,0,1,1,200,""    // send response INVITE
[AT_URC p31,ch1]+ESIPCPI: 1,1,0,6,0,""    // receive request    ACK
[AT_URC p31,ch1]+EIMSCMODE: 1,20,0,3,"<tel:13267945631>",2 //接132的电话
[AT_RX p50,ch6]AT+CHLD=11    //释放特定的active call 1
[AT_URC p31,ch1]+ECPI: 1,133,0,1,1,20,"13267945631",129,"<tel:13267945631>",16
[ATCI_AT_I_0 s33]AT+EIMSCI=0,0,0[AT_URC p31,ch1]+ESIPCPI: 1,1,0,7,0,"" // receive request BYE[AT_URC p31,ch1]+ESIPCPI: 1,0,1,7,200,""  //send response BYE
[AT_RX p33,ch3]AT+CEER
[AT_TX p33,ch3]+CEER: 16,CM_NORMAL_CALL_CLR
小结:  1、不管是MT/MO,最后BYE SIP信令可能由主动呼叫方发起,也有可能由被动呼叫方发起。

 2、info 为100 Trying的INVITE SIP信令在AT下发的时候没有对应的AT指令。

sip会话流程以及sip介绍(3)的更多相关文章

  1. sip会话流程以及sip介绍(2)

    下面我们通过一个简单的场景例子来简单介绍一下 SIP 会话流程. Tom 和 Jerry 是非常好的伙伴,Tom 在他的 PC 上使用一个 SIP 的应用程序呼叫 Internet 上另一个 SIP ...

  2. sip会话流程以及sip介绍(1)

    参考连接 :https://www.2cto.com/kf/201609/546336.html https://www.w3cschool.cn/session_initiation_protoco ...

  3. Android网络功能之会话发起协议SIP

    原文:http://android.eoe.cn/topic/android_sdk * 会话发起协议* Android提供了一个支持会话发起协议(SIP)的API,这可以让你添加基于SIP的网络电话 ...

  4. 基于GBT28181:SIP协议组件开发-----------第三篇SIP注册流程分析实现

    原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3941172.html,qq:1269122125. 上两章节简要的 ...

  5. SIP呼叫流程典型流程图解及其详细解释

    目录(?)[+]   1.注册流程: 2.注销流程: 3. 基本呼叫建立过程: 4. 会话更改流程: 5. 正常呼叫释放过程: 6. 被叫忙呼叫释放: 7.被叫无应答流程一: 8.被叫无应答流程二: ...

  6. SIP会话发起协议 - 先知道是什么(一)

    少年,思无邪,最最动人. 协议概述 SIP会话发起协议是VoIP技术中最常用的协议之一.它是一种应用层协议,与其它应用层协议协同工作,通过Internet控制多媒体通信会话. SIP采用SDP(会话描 ...

  7. 基于GBT28181:SIP协议组件开发-----------第四篇SIP注册流程eXosip2实现(一)

    原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3945294.html. 上章节讲解了利用自主开发的组件SIP组件l ...

  8. sip 注册流程

    基本注册流程示意图: 注册流程描述如下: 1.         SIP代理向SIP服务器发送REGISTER请求: 2.         SIP服务器向SIP代理发送响应401,并在响应的消息头WWW ...

  9. vlc源码分析(一) RTSP会话流程

    可以先了解一下RTSP/RTP/RTCP的概念与区别:RTP与RTCP协议介绍(转载). 在调试vlc-android时,熟悉了RTSP的会话流程.C表示RTSP客户端,S表示RTSP服务端: 第一步 ...

随机推荐

  1. Rust <4>:所有权、借用、切片

    tips:栈内存分配大小固定,访问时不需要额外的寻址动作,故其速度快于堆内存分配与访问. rust 所有权规则: 每一个值在任意时刻都有且只有唯一一个所有者 当所有者离开作用域时,这个值将被丢弃 所有 ...

  2. Java数据类型简介

    Java数据类型 以下两行Java代码定义了两个整数:num1和num2: num1和num2是两个int类型的变量. int关键字指定它的后面是变量的名称,并表示数据类型整数,例如:10,15,70 ...

  3. selenium学习笔记(1)

    selenium http://selenium-python.readthedocs.io/index.html https://www.seleniumhq.org/projects/ide/ 声 ...

  4. jumpserver注意事项以及报错处理

    需要注意下面亮点 在使用jumpserver过程中,有一步是系统用户推送,要推送成功,client(后端服务器)要满足以下条件: 后端服务器需要有python.sudo环境才能使用推送用户,批量命令等 ...

  5. git拉取远程所有分支

    第一步: git branch -r | grep -v '->' | while read remote; do git branch --track "${remote#origi ...

  6. postgresql like 中的转义

    select * from tb_org where char_length(xdm)>8 and xdm not like '%*_%'  ESCAPE '*' ESCAPE 后面的 * 是转 ...

  7. makefile自动编译

    1.格式:  目标:依赖 规则    规则前有一个tab键 ,缺少tab键出错,使用空格替代也不可以 (1). 例子: 编写makefile 编译 main.c ,fun.c , fun.h test ...

  8. rest framework之过滤组件

    一.普通过滤 (一)get_queryset get_queryset方法是GenericAPIView提供的一个方法,旨在返回queryset数据集,而过滤就是要在这个方法返回数据集之前对数据进行筛 ...

  9. koa 中间件 koa-art-template 的使用

    例子 const Koa = require('koa'); const render =require('koa-art-template'); const path= require('path' ...

  10. 定时器实现Promise.all()的简单使用

    // 异步事件1 function time1() { const promise = new Promise(function (resolve, reject) { setTimeout(func ...