Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Общего характера / Коммандные потоки в *

Коммандные потоки в *

Сообщений: 196

Коммандные потоки в *

Задача: При звонке на определённый номер нужно проиграть начало фразы, цифирю взятую из удалённого источника и окончание фразы.

Если сделать это просто, последовательно, то после начальной фразы может возникнуть неприятная пауза (цифиря добывается из удалённого источника).
Если сперва добывать цифирю, а потом проигрывать начало фразы, цифирю и окончание, то неприятная пауза может возникнуть в самом начале - человек подумает, что ему молчат в трубку и может бросить трубку. Ставить answer после добывания цифири тоже не хочется, может несколько гудков проийти до поднятия трубки.
Но начало фразы проигрывается достаточно долго 5-7 сек. За это время цифрю можно было бы даже не напрягаясь добыть и с запасного источника, если основной временно не доступен.

Вопрос: Как в * запустить отдельный поток для добывания данных, в основном потоке этим временем что-либо проигрывать, а потом когда закончится проигрывание использовать данные полученные в том отдельном потоке?

Как данные добываются не важно, самое главное не мгновенно, и не за точно установленное время, для примера пусть это будет результат (avg) команды "ping -c 4 www.asterisk-support.ru".
Можно ли это сделать в extension.conf или для этого нужно AGI,...

Если можно пример (с AGI я ещё не разобрался).
2005-08-11 11:20

Avatara of navigator
Сообщений: 92

Re: Коммандные потоки в *

Поскольку команд ftp, wget или тому подобных в диалплане нету,то прийдется разбираться с AGI :). Как разберетесь - дам пару дельных советов...
http://www.pbxware.ru - профессиональная техническая поддержка Digium и Asterisk
2005-08-11 12:58

Avatara of litnimax
Откуда: Москва
Сообщений: 3421

Re: Коммандные потоки в *

я бы запустил AGI скрипт, в нем сделал fork и вышел бы обратно в диалплан. Проиграл фразу, и запустил второй AGI скрипт, который бы взял из условленного места (файла) циферку, а если ее там нет - подождал бы чуть и при случае поматерился.
Hint: делая fork закройте stdin/stdout у порождаемого процесса.
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2005-08-11 13:27

Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru