Как начать конференц-связь в сети GSM? - PullRequest
1 голос
/ 21 марта 2020

Мне нужно сделать конференц-вызов в сети GSM.

Максимум, который я видел в таблице данных, заключается в том, что команда AT+CLCC может автоматически сообщать список текущих вызовов ME при изменении статуса текущего вызова.

Как я могу делать конференц-вызовы с SIM800L ? У меня есть 2 телефонных номера для звонка.

1 Ответ

1 голос
/ 23 марта 2020

Ключевой командой для запрашиваемой вами функции является AT+CHLD (Услуги удержания вызова) . Важно сказать, что это хорошо известная дополнительная услуга GSM , и, поскольку AT+CHLD является стандартной командой, эта функция, вероятно, будет поддерживаться всеми сотовыми модемами, а не только SIM800.

Основные ограничения, которые должен знать любой пользователь:

  1. Это услуга, строго связанная с вызовами VOICE
  2. Оператор сети также должен поддерживать эту услугу

ETSI Спецификации о многосторонних вызовах

Хотя это может показаться скучным введением, нам нужно строить нашу процедуру на solid основе. Не стесняйтесь пропустить этот параграф, если вас просто интересует последовательность команд AT.

ETSI спецификация TS 127.007 v15.3.0 описывает его поведение в главе 7.13: «Дополнительные услуги, связанные с вызовом + CHLD» :

Эта команда позволяет управлять следующими услугами, связанными с вызовом:

  • вызов может быть временно отключен с МТ, но соединение сохраняется в сети;
  • многопартийный разговор (конференц-связь);
  • обслуживаемый абонент, имеющий два вызова (один удержан, а другой активен или оповещен), может соединить другие стороны и освободить собственное соединение обслуживаемого абонента.

Далее ссылается на следующий документ, связанный с вызовами MPTY : 3GPP TS 22.084 (который можно найти здесь Другим интересным источником является ETSI 300 954 , в котором говорится

Обслуживаемый мобильный абонент А может инициировать активный многопартийный вызов из активного вызова C и удерживаемый вызов. B.

Это означает, что мы можем получить конференц-вызов , просто добавив удерживаемые вызовы к активным вызовам.


Процедура AT Commands

Из предыдущих документов мы можем сделать вывод, что следующие шаги настроят многосторонний вызов:

  1. Начните голосовой вызов с одной из сторон, введя ATD<number>;, или ответ на входящий вызов с ATA
  2. Отложите первый вызов, выдав AT+CHLD=2 ( хорошо поддерживается вашим SIM800 , что для +CHLD=2 состояний «Переведите все активные вызовы в режим удержания (если есть) и примите другой (удерживаемый или ожидающий) вызов.» ).
  3. Начните вызов с третьей стороной
  4. Начните многопартийность путем выдачи AT+CHLD=3 (хорошо поддерживается вашей SIM800 , что для +CHLD=3 состояний "добавляет удерживаемый вызов в разговор." ).

Об AT + CL CC

Упомянутая вами в вопросе команда не несет прямой ответственности за начало многопартийной беседы, но она каким-то образом связана с ней. Фактически, он может перечислить статус всех активных вызовов.

Команда выполнения AT+CLCC дает следующий ответ:

[+CLCC: <id1>,<dir>,<stat>,<mode>,<mpty>[,<number>,<type >,<alphaID>]
[<CR><LF>+CLCC: <id2>,<dir>,<stat>,<mode>,<mpty>[,<number>,<type>,<alphaID>]
[...]]]
OK 

Мы остановимся только на двух соответствующих параметрах:

  1. - это идентификатор вызова N th . Это актуально, потому что многие опции команды +CHLD позволяют выборочно удерживать / освобождать вызов X, и этот идентификатор требуется для указания X в команде. Все эти параметры, не упомянутые в этом ответе, могут быть полезны для правильного выбора вызова, добавляемого в многопартийной беседе .
  2. является флагом многопартийного вызова , и если он установлен в 1, это означает, что вызов является одной из сторон многостороннего (конференц-вызова).
...