Как ввести опцию во время голосовых вызовов с помощью команд
Я использовал модуль sim900 для воспроизведения многих функций, которые есть в базовых мобильных телефонах для встроенного проекта. Я был успешным с большинством функций, за исключением ввода параметров во время голосового вызова. Я на самом деле ищу универсальное решение (например, GSM 07.07 и т. Д.), Хотя модуль GSM/GPRS, который я использую, это sim900.
Сценарий: я инициирую звонок, используя ATD<number>;
Затем автоматический голос попросит меня набрать "1" для выбора. Как мне отправить "1"?
Я ищу высокий и низкий ответ. Я снова и снова просматривал руководство по AT-командам. Пожалуйста помоги.
1 ответ
Очень хорошее начало использования официальной спецификации GSM, хотя я хочу отметить, что 07.07 был заменен 27.007 очень давно, и вы должны использовать этот документ (или 27.005, если применимо).
Первоначально я ожидал, что есть два способа добиться этого, модификаторы строки набора или команда DTMF, но я искал строку набора в спецификации 27.007. Я не нахожу p
(пауза) модификатор1 я ожидал, и ближайшая вещь, W
Модификатор (wait) игнорируется и включается только для совместимости.
Отправка 0
через 9
, A
через D
, *
а также #
во время вызова выполняется с использованием DTMF, хотя в сети GSM это сигнализируется отдельно вне полосы, а не при отправке внутриполосных аналоговых сигналов. Существует специальная команда для отправки тонов DTMF, которая называется AT+VTS
(с ужасным синтаксисом). Таким образом, эта команда является ответом на ваш вопрос. Вызовите его либо из командного режима онлайн, либо из другого последовательного соединения.
1 причина, по которой я ожидал p
Для того, чтобы существовал модификатор, я могу ввести один в записи телефонной книги, например, `"12345678p123", который наберет 12345678, дождаться установления соединения и затем отправить 123 в виде тонов DTMF. Но тогда это, очевидно, нечто (только), которым управляет обработчик голосовых вызовов пользовательского интерфейса, а не обработчик AT-команд.