Звездочка, игнорировать специальные символы DTMF в GET DATA - PullRequest
0 голосов
/ 19 мая 2019

Я использую phpagi $agi->get_data для чтения цифр от пользователя.
В некоторых телефонах пользователь не нажимал ни одной клавиши, но воспроизведение звука немедленно останавливается и получается "D" !!
Iя много об этом искал и, похоже, $agi-get_dat получает DTMF-данные, которые содержат 0-9*#ABCD.
1-й вопрос: почему мои пользователи получают "D", не нажимая ни одну клавишу!
2-й вопрос: как я могуигнорируйте эти символы, чтобы не прерывать мой ivr.

1 Ответ

0 голосов
/ 19 мая 2019

phpagi getdata сделать этот вызов

https://wiki.asterisk.org/wiki/display/AST/AGICommand_stream+file

, чтобы вы могли расширить его, добавив разрешенные цифры param. PhpAGI lib является открытым исходным кодом и имеет исходный код.

На самом деле вы можете просто использовать stream_file call

stream_file (строка 677)

Воспроизведение данного аудиофайла, что позволяет прерывать воспроизведение Цифра DTMF. Эта команда похожа на команду GET DATA, но эта команда возвращается после нажатия первой цифры DTMF во время GET DATA может накапливать любое количество цифр перед возвратом.

return: see evaluate for return information. ['result'] is -1 on hangup or error, 0 if playback completes with no digit received,

в противном случае десятичное значение тона DTMF. Используйте chr () для преобразования в ASCII. ссылка: http://www.voip -info.org / wiki-stream + file пример: пинг IP-адрес

массив, файл_потока (строка $ filename, [string $ escape_digits = ''], целое число $ offset)

string $filename: without extension, often in /var/lib/asterisk/sounds    
string $escape_digits 
integer $offset
...