В звездочке, как я могу запретить вызывающему абоненту нажимать определенную клавишу как DTMF, а не все?

Я сделал поток вызовов, используя php AGI в звездочке. Для получения DTMF от вызывающего абонента у меня есть пользовательская функция fastpass_get_data() AGI. В этой функции вызывающий абонент может нажать любую клавишу. Как и когда вызывающий абонент нажимает любую клавишу, воспроизведение будет остановлено.

Теперь я хочу, чтобы, когда вызывающий абонент нажимал «1», в это время останавливалась только эта подсказка. Таким образом, пока воспроизводится файл подсказки и пользователь нажимает любую цифру, кроме «1», это не повлияет на воспроизведение файла. Но если пользователь нажмет «1», воспроизведение файла подсказки должно быть остановлено, а поток вызовов продолжится.

Спасибо !!!


person Khushal    schedule 09.07.2015    source источник


Ответы (1)


Используйте команду потокового файла

stream file Usage: STREAM FILE <filename> <escape digits> [sample offset]

Send the given file, allowing playback to be interrupted by the given digits, if any.

Use double quotes for the digits if you wish none to be permitted.

If sample offset is provided then the audio will seek to sample offset before play starts.

Remember, the file extension must not be included in the filename.

Returns: failure: 200 result=-1 endpos=<sample offset> failure on open: 200 result=0 endpos=0 success: 200 result=0 endpos=<offset> digit pressed: 200 result=<digit> endpos=<offset>

http://www.voip-info.org/wiki/view/stream+file

person arheops    schedule 12.07.2015
comment
Если мы используем потоковый файл, нет возможности ждать определенного тайм-аута. В функции fastpass_get_data() она будет ждать 3 секунды после завершения запроса, чтобы позволить вызывающему абоненту вставить DTMF. Таким образом, такой тайм-аут не доступен в streamfile(). - person Khushal; 22.07.2015
comment
управляющие цифры — это цифры, которые останавливают воспроизведение. В потоковом файле нет тайм-аута. Вы можете добавить тишину после воспроизведения, если вам нужна задержка после окончания воспроизведения - person arheops; 22.07.2015