I need to make a conference voice call on GSM network.
The maximum I have seen in the datasheet is that the command AT+CLCC
can report a list of current calls of ME automatically when the current call status changes.
How can I make conference calls with a SIM800L? I have 2 phone numbers for call.
The key command for the feature you are asking for is AT+CHLD
(Call Holding Services). It is important to say that this is well known GSM Supplementary Service, and since AT+CHLD
is a standard command it is a feature that is likely to be supported by all cellular modems, not only SIM800.
The main constraints that any user must know are:
Though it may appear as a boring introduction, we need to build our procedure on solid basis. Feel free to skip this paragraph if you are just interested in the AT commands sequence.
ETSI specification TS 127.007 v15.3.0 describes its behaviour at chapter 7.13: "Call related supplementary services +CHLD":
This command allows the control of the following call related services:
- a call can be temporarily disconnected from the MT but the connection is retained by the network;
- multiparty conversation (conference calls);
- the served subscriber who has two calls (one held and the other either active or alerting) can connect the other parties and release the served subscriber's own connection.
A further document related to MPTY calls is then referenced : 3GPP TS 22.084 (that can be found here. Another interesting source is ETSI 300 954 which states
The served mobile subscriber A may initiate an active MultiParty call from an active call C and a held call B.
This means that we can obtain a conference call just by adding held calls to active calls.
From the previous documents we can deduce that the following steps will setup a multi-party call:
ATD<number>;
, or answer to an incoming call with ATA
AT+CHLD=2
(well supported by your SIM800, that for +CHLD=2
states "Place all active calls on hold (if any) and accept the other (held or waiting) call.").AT+CHLD=3
(well supported by your SIM800, that for +CHLD=3
states "adds an held call to the conversation.").The command you mentioned in the question is not directly responsible for starting a multiparty conversation, but it is someway related to it. In fact, it is able to list the status of all the active calls.
Execution command AT+CLCC
provides the following answer:
[+CLCC: <id1>,<dir>,<stat>,<mode>,<mpty>[,<number>,<type >,<alphaID>]
[<CR><LF>+CLCC: <id2>,<dir>,<stat>,<mode>,<mpty>[,<number>,<type>,<alphaID>]
[...]]]
OK
We will linger on just two relevant parameters:
+CHLD
command allow to selective hold/release an X call, and this ID it is required in order to specify X in the command. All these options, not mentioned in the this answer, can be useful in order to select correctly the call to be added in the multiparty conversation.