呼叫(电话)中都有哪些不同类型的状态

Posted

技术标签:

【中文标题】呼叫(电话)中都有哪些不同类型的状态【英文标题】:what are different types of state in calling (telephony)呼叫(电话)中有哪些不同类型的状态 【发布时间】:2019-11-29 15:44:55 【问题描述】:

我想简要了解一下电话中不同类型的状态(如等待、等待、振铃)以及呼叫中等待和等待状态之间的区别。

【问题讨论】:

【参考方案1】:

有许多不同的术语来识别电话状态,但 ECMACSTA(计算机支持的电信服务)标准定义了一个非常有用的电话模型。

电话模型的目标是描述电话设备和呼叫之间的关系。问题是有两个合法的观点,一方面你有一个面向设备的观点(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

【讨论】:

以上是关于呼叫(电话)中都有哪些不同类型的状态的主要内容,如果未能解决你的问题,请参考以下文章

iOS中都有哪些不同类型的通知以及如何正确配置它们?

iOS中都有哪些不同类型的通知以及如何正确配置它们?

密码学中都有哪些不同的证书类型和格式

提要中都有哪些类型的帖子?

C#bond 中都有哪些可用的数据类型?

java中都有哪些数据结构