【发布时间】:2020-03-21 17:11:05
【问题描述】:
我需要在 GSM 网络上进行电话会议。
我在datasheet中看到的最大的就是AT+CLCC命令可以在当前通话状态发生变化时自动上报ME当前通话列表。
如何使用 SIM800L 进行电话会议?我有 2 个电话号码可供拨打。
【问题讨论】:
标签: arduino gsm at-command phone-call sim800
我需要在 GSM 网络上进行电话会议。
我在datasheet中看到的最大的就是AT+CLCC命令可以在当前通话状态发生变化时自动上报ME当前通话列表。
如何使用 SIM800L 进行电话会议?我有 2 个电话号码可供拨打。
【问题讨论】:
标签: arduino gsm at-command phone-call sim800
您要求的功能的关键命令是AT+CHLD(呼叫保持服务)。重要的是要说这是众所周知的 GSM 补充服务,因为AT+CHLD 是一个标准命令,它很可能被所有蜂窝调制解调器支持,而不仅仅是 SIM800。
任何用户都必须知道的主要限制是:
虽然这可能看起来是一个无聊的介绍,但我们需要在坚实的基础上构建我们的程序。如果您只是对 AT 命令序列感兴趣,请随意跳过这一段。
ETSI规范TS 127.007 v15.3.0在第7.13章描述了它的行为:“呼叫相关的补充服务+CHLD”:
此命令允许控制以下调用相关 服务:
- 可以暂时断开与 MT 的通话,但连接由网络保留;
- 多方对话 (电话会议);
- 服务的订户有两个呼叫(一个 保持和另一个活动或警报)可以连接另一个 各方并释放服务订阅者自己的连接。
然后引用了与 MPTY 调用相关的进一步文档:3GPP TS 22.084(可以找到here。另一个有趣的来源是ETSI 300 954,其中指出
服务的移动用户 A 可以发起一个活跃的多方呼叫 来自当前通话 C 和保持通话 B。
这意味着我们可以通过将保持通话添加到活动通话中来获得电话会议。
从前面的文档我们可以推断出以下步骤将建立多方通话:
ATD<number>; 与其中一方发起语音通话,或使用ATA 接听来电
AT+CHLD=2(well supported 由您的 SIM800 来暂停第一个呼叫,+CHLD=2 状态 “暂停所有活动呼叫(如果有)和接受另一个(保留或等待的)呼叫。”)。AT+CHLD=3 开始多方通话(您的SIM800 很好地支持,+CHLD=3 状态“在对话中添加保持呼叫。”)。 您在问题中提到的命令不直接负责启动多方对话,但它与它有某种关系。事实上,它能够列出所有活动呼叫的状态。
执行命令AT+CLCC提供如下答案:
[+CLCC: <id1>,<dir>,<stat>,<mode>,<mpty>[,<number>,<type >,<alphaID>]
[<CR><LF>+CLCC: <id2>,<dir>,<stat>,<mode>,<mpty>[,<number>,<type>,<alphaID>]
[...]]]
OK
我们将只讨论两个相关参数:
+CHLD 命令的许多选项允许选择性地保持/释放 X 呼叫,并且需要此 ID 才能在命令中指定 X。 此答案中未提及的所有这些选项对于正确选择要添加到多方对话中的呼叫很有用。【讨论】: