Telephony Call状态图解

编程入门 行业动态 更新时间:2024-10-15 00:19:40

Telephony Call<a href=https://www.elefans.com/category/jswz/34/1771386.html style=状态图解"/>

Telephony Call状态图解

CS call的工作状态图解

在分析Telephony的工作流程时,总是接触到各种状态的转换,并且不同种类的状态很容易让人混淆,不知所措,本文根据工作中的记忆,根据图示,简要分析一下Telephony中的各种状态。

Telephony中的几种状态。

图1,DriverCall State/ Call State/ Phone State

DriverCall State

DriverCall State是从RIL接口更新的状态,它具有6个状态,分别是:

  • ACTIVE,
  • HOLDING,
  • DIALING, // MO call only
  • ALERTING, // MO call only
  • INCOMING, // MT call only
  • WAITING; // MT call only
    正好对应Ril.h中的RIL_CallState。当下发RIL_REQUEST_GET_CURRENT_CALLS request后,DriverCall State会根据response携带的状态信息更新自己的状态。

Call State

在GSMCall中有三种Call:ringingCall,foregroundCall and backgroundCall. 也就是振铃的电话,前台电话,后台电话。
每个Call最多有 5 个connections,但同时3个Call合起来不能超过7个connections。

Call State同样包含DriverCall所具有的6个状态,但同时Call还有3种状态:
- IDLE
- DISCONNECTING
- DISCONNECTED
当Call 每次执行handlePollCalls时,会根据driver call来更新ACTIVE,HOLDING,DIALING, ALERTING,INCOMING,WAITING这6种状态,但是对于IDLE, DISCONNECTING and DISCONNECTED这三种额外的状态,就有一点复杂了。

IDLE:
如果一个Call是空的,那么它就是在IDLE状态,具体怎么理解这个空的,往下看。
DISCONNECTING:
如果本机挂断这个Call。这时Call会变成DISCONNECTING状态,(如果是对方挂断,Call是不会进入DISCONNECTING状态的)

DISCONNECTED:
如果对方来电,但是这个connection因为本地拒接(REJECTED)或者无人接听(MISSED)。或者正在活动的connection因本地挂断或者对方挂断等原因中断,又或者播出的电话是无效的。那么这个connection就会被标记为disconnected。
当一个Call只拥有disconnected的connections。那么这个Call就被称作DISCONNECTED。
而disconnected状态的连接(connections)就会被移出Call的connections队列,如果connections队列变成了空的,那么Call的状态就会变成IDLE

Phone State

Phone State则是根据updatePhoneState方法,从Call State更新的。
如果振铃呼叫(ringingCall)是处在INCOMING/WAITING状态,这时Phone State就是RINGING状态。

当一个call处于IDLE/ DISCONNECTED/ DISCONNECTING状态时,被称为非激活的,如果不是处在这三种状态时,就是激活的。
当一个去电对象(pendingMO)是非空的,或者前台呼叫和后台呼叫其中至少有一个是激活的。那么这是Phone State 就是摘机(OFFHOOK)状态。
如果Phone既不是RINGING状态,也不是OFFHOOK状态,则处于IDLE状态。

下图展示了Phone State和Call State的相互转化状态图。

注意:只有本地挂断会导致DISCONNECTING状态,对方挂断或者信号原因导致的断开,会直接跳到Disconnected状态。(本图中没有体现)

更多推荐

Telephony Call状态图解

本文发布于:2024-03-14 14:21:47,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1736660.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:状态   Telephony   Call

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!