Отправка USSD-команды через chan_dongle

Послать USSD-команду (например, запрос баланса и другие управляющие команды) очень просто. Например, для отправки *923# с модема dongle0 нужно написать такую команду в консоли Asterisk:

Для datacard вместо dongle пишем datacard.
dongle0 — Это название вашего модема.

pbx*CLI> dongle ussd dongle0 *923#
[dongle0] USSD queued for send with id 0x2a10d400
    -- [dongle0] Successfully sent USSD 0x2a10d400
[Jun 22 20:33:31] NOTICE[1253]: at_response.c:267 at_response_ok: [dongle0] Successfully sent USSD 0x2a10d400
pbx*CLI>
pbx*CLI>
 [dongle0] Got USSD type 1 'USSD Request': 'Баланс 844.51 руб.'
Кстати, ответный USSD-пакет приходит в extension ussd, поэтому можно дополнительно настроить обработку таких входящих сообщений. Вот, например, пересылка ответов на e-mail:

exten => ussd,1,Verbose(Incoming USSD: ${USSD})
exten => ussd,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${DATACARD}: ${USSD}' | mail -s "USSD" recipient@domain.ru)
exten => ussd,n,Hangup()
Читать дальше