Как заставить Asterisk 13 прочитать DTMF «#» и сохранить его в переменную?
Добрый день. Используя функцию Read читаю DTMF, но вот беда - надо читать и решетку тоже(для Read это признак завершиться). В моем случае надо ограничиться количеством DTMF или длительностью ввода комбинации. Как быть? Заранее спасибо.
Gansterito, есть железка, которая общается с внешним миром посредством DTMF (0-9, *, #, A-D), надо использовать Asterisk в качестве приемника, ибо то, что используется сейчас больше простаивает в ручных и автоматических перезагрузках, чем работает. Если ближе к задаче, то надо писать эти коды в файл, отправляя между ними обратно похожий DTMF-код, далее вступают в дело другие стредства.
Варианта 2:
1) Пропатчить Asterisk (app_read.c), чтобы ввод # не завершал чтение.
2) Зная, что # завершает чтение, проверять значение переменной READSTATUS. Если =OK, к набранному номеру добавлять # и продолжить чтение в цикле. Если =TIMEOUT, то оканчивать чтение. Контекст, ес-но, должен быть зациклен.