2012-06-26 2 views
0

Когда я воспроизвожу файл с помощью команды воспроизведения в Asterisk, он не прекращает воспроизведение, когда на телефоне нажата клавиша. Есть ли способ остановить игру и перейти к следующей команде?Как остановить команду воспроизведения при обнаружении цифры?

ответ

1

Воспроизведение не предназначено для чтения ввода от пользователя, а как инструмент для воспроизведения приветственного сообщения (обратите внимание, что воспроизведение будет отвечать на канал, если не будет дан ответ). manual for Playback ничего не говорит о чтении ввода от пользователя. Кроме того, эта voip-info страница состояния:

Playback will play the whole sound file(s), and when complete, return control. 

Так попробуйте воспользоваться Read в диалплане, как:

Read(get,"mysound", 1) 

Это будет воспроизводить звук MySound, и прочитать до 1 цифры от пользователя. Дополнительные примеры (и полный синтаксис с его параметрами) доступны на voip-info page for Read.

Лучшее!

EDIT: В этом примере считываемая цифра будет сохранена в переменной диалплана получить.

+0

Если вы хотите, чтобы собрать DTMF цифры во время воспроизведения файла - а не после того, как с помощью Прочитайте приложение - вы также можете использовать фоновое приложение: https://wiki.asterisk.org/wiki/display/AST/Application_BackGround –

+0

@MattJordan. Разве это не предназначено специально для чтения (и перехода) к расширениям вместо смысла? цифры? Я выбрал Read для ответа, потому что OP не указал намерения. Кроме того, вы не можете указать максимальное количество цифр, и вам нужно будет иметь расширение для каждого действительного параметра, а s - как все-таки, это похоже на слишком много для вопроса, так как это – marcelog

+0

хе, хорошая точка. Я на самом деле получил фоновое смешение с Read - thanks :-) –

0

Тогда просто собрать одну цифру, и ничего не делать с собранными переменной :-)

0

Вы также можете использовать команду Фон, который получит один вход DTMF от пользователя.

Чтобы узнать об этом использовании команды по этой ссылке http://www.voip-info.org/wiki/view/Asterisk+cmd+BackGround

или введите следующую команду на сервере

asterisk -rx 'core show application Background' 
Смежные вопросы