Отправка USSD-команды через chan_dongle
Послать USSD-команду (например, запрос баланса и другие управляющие команды) очень просто. Например, для отправки *923# с модема dongle0 нужно написать такую команду в консоли Asterisk:
Для datacard вместо dongle пишем datacard.
dongle0 — Это название вашего модема.
Читать дальше
Для 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()