呼叫(电话)中都有哪些不同类型的状态
Posted
技术标签:
【中文标题】呼叫(电话)中都有哪些不同类型的状态【英文标题】:what are different types of state in calling (telephony)呼叫(电话)中有哪些不同类型的状态 【发布时间】:2019-11-29 15:44:55 【问题描述】:我想简要了解一下电话中不同类型的状态(如等待、等待、振铃)以及呼叫中等待和等待状态之间的区别。
【问题讨论】:
【参考方案1】:有许多不同的术语来识别电话状态,但 ECMA 的CSTA(计算机支持的电信服务)标准定义了一个非常有用的电话模型。
电话模型的目标是描述电话设备和呼叫之间的关系。问题是有两个合法的观点,一方面你有一个面向设备的观点(endpoint view
),其中焦点是涉及多个呼叫的设备;另一方面,面向呼叫的观点 (global view
),呼叫随着多个设备及时发展。
CSTA 中的端点状态是:
Alerting/Offered – 指示端点的来电。通常,连接可能正在响铃或处于预警(例如提供)状态。
已连接 – 表示连接正在积极参与通话。此连接状态可能是呼入或呼出的结果。
失败 – 表示呼叫进程已停止。通常,这可能表示遇到繁忙端点的拨出呼叫尝试。 保持 – 表示端点不再积极参与呼叫。对于支持每个端点(即线路)多个呼叫的实现,可以在线路用于发出另一个呼叫(例如,模拟线路上的咨询转接)时保持连接。 已启动 – 一种暂时状态,通常表示端点正在启动服务(例如拨号音)或提示设备摘机。 Null – 调用与端点之间没有关系。 Queued – 表示呼叫在设备上暂时挂起(例如,呼叫已被暂留、预占)。CSTA 中的全局视图更复杂,因为呼叫状态是一组端点状态,但我尝试用 Alice 呼叫 bob 简要描述基本的简单呼叫状态:
空/空闲(无呼叫)->Alice(Null)-Bob(Null)
待处理(Alice 拨号)-> Alice(Initiated)-Bob(Null)
起源(爱丽丝等等)-> Alice(Connected)-Bob(Null)
已送达(Bob set 正在响铃)-> Alice(Connected)-Bob(Alerting)
已建立(鲍勃回答)-> Alice(Connected)-Bob(Connected)
终止(Bob 挂断)-> Alice(Connected)-Bob(Null)
回到您对挂起与等待的具体担忧;等待意味着呼叫已被放入等待队列:
已排队(呼叫已排队)->Alice(Connected)-Bob(Queued)
等待是暂时的状态,但在播放语音指南或音乐的情况下等待可能会很长。
【讨论】:
【参考方案2】:我不知道你从哪里得到“待定”状态,但在TelephonyManager
中只有 3 个状态:
CALL_STATE_IDLE
- 没有活动
CALL_STATE_OFFHOOK
- 有一个
当前通话(呼入或呼出)
CALL_STATE_RINGING
-
有来电等待用户接听
您可以通过状态转换检测来电和去电:
CALL_STATE_IDLE
=> CALL_STATE_OFFHOOK
- 建议拨出电话
CALL_STATE_RINGING
=> CALL_STATE_OFFHOOK
- 建议来电
见:https://developer.android.com/reference/android/telephony/TelephonyManager.html#CALL_STATE_IDLE
【讨论】:
以上是关于呼叫(电话)中都有哪些不同类型的状态的主要内容,如果未能解决你的问题,请参考以下文章