IVR + FaxDetect
Добрый день!
Есть сложное голосовое меню где данные абоненту читаються из БД на основе определившегося номера.
Задача в том что бы в любой момент голосового меню (можно не дослушать до конца) абонент мог принять все эти данные по факсу одним нажатием "Старт" у себя на факс аппарате.
Для этих целей я использую NVFaxDetect, NVBackgroundDetect.
Загвоздка в том что в IVR я использую макросы, AGI скрипты которые произносят динамические голосовые фразы и просто использовать к примеру NVBackgroundDetect не получаеться по причине того, что NVBackgroundDetect воспроизводит только конкретно записанную фразу :(
Пробовал заменять Playback на NVBackgroundDetect - но все равнополучаеться фигня.
Привожу кусок кода что бы было понятнее:
[macro-firstspeech]
exten => s,1,Answer()
exten => s,n,MYSQL(Connect connid localhost asterisk 123456 database)
exten => s,n,MYSQL(Query resultid ${connid} select DocumentId, wight, cost from table where Phone = '${ARG1}')
exten => s,n,MYSQL(Fetch fetchid ${resultid} DocumentId wight cost)
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,MYSQL(Disconnect ${connid})
exten => s,n,NVBackgroundDetect(beep|dt)
exten => s,n,System(echo "текст приветсвия " | /usr/bin/text2wave -scale 1.5 -F 8000 -o /tmp/festival1.wav)
exten => s,n,NVBackgroundDetect(/tmp/festival1|dt)
exten => s,n,agi(d2ms.agi,${cost},rur)
exten => s,n,System(echo "вес " | /usr/bin/text2wave -scale 1.5 -F 8000 -o /tmp/weight.wav)
exten => s,n,NVBackgroundDetect(/tmp/weight|dt)
exten => s,n,SayNumber(${wight})
exten => s,n,System(echo "килограмм " | /usr/bin/text2wave -scale 1.5 -F 8000 -o /tmp/kg.wav)
exten => s,n,NVBackgroundDetect(/tmp/kg|dt)
exten => s,n,SayDigits(${DocumentId})
exten => fax,1,macro(sendfax)
Посоветуйте как правильно определять факс ?
Заранее благодарен.
PS: если бы NVBackgroundDetect мог вызывать макросы - это было бы хорошо :)
|