Для таких вещей я использую Asterisk AGI .Идея похожа на CGI-скрипты для веб-серверов.Вы можете использовать разные языки, но я использую Python с библиотекой pyst: Python for Asterisk .Такой скрипт / программа AGI может читать или устанавливать переменную канала и таким образом связываться с абонентской группой Asterisk.
Пример такого кода с pyst agilib
:
wav_to_play = 'other.wav'
user_nr = agilib.get_variable('user_entered_number')
if not user_nr:
wav_to_play = 'nothing.wav'
elif user_nr.endswith('0'):
wav_to_play = 'zero.wav'
# ...
agilib.set_variable('wav_selected', wav_to_play)
После сохранения такого кода в wav_selector.agi
(вы должны добавить нормальный заголовок Python, библиотеки и т. д.), вы можете использовать его в плане набора, например:
exten => s,n,Set(user_entered_number=5)
exten => s,n,AGI(wav_selector.agi)
exten => s,n,Background((${wav_selected})