Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

php AGI воспроизвести файл в фоне[Решено]

0

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

echo 'STREAM FILE "'.$filename.'" ""'."\n";
fgets(STDIN);

Но нужно сделать чтобы человек смог вводить номер ещё до того как электронный голос закончит свою фразу. Пробовал так echo 'EXEC PLAYBACK "'.$filename.'" ""'."\n"; работает аналогично STREAM FILE

echo 'EXEC Background "'.$filename.'" ""'."\n";

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

удалить закрыть спам изменить тег редактировать

спросил 2014-11-20 15:12:54 +0400

sasha23rus Gravatar sasha23rus
11 2 1 5

обновил 2014-11-26 14:37:13 +0400

Comments

Background не помогает? Или Read() , например ?

zzuz ( 2014-11-20 15:23:51 +0400 )редактировать

Background пропускает первую цифру, например пользователь вводит номе 10588, на выходе получаем 0588, таким образом пользователю нужно вводить 110588 или *10588, в общем нажать любую цифру перед вводом непосредсвенно номера. А надо чтобы не дожидаясь конца человек просто ввел свой номер

sasha23rus ( 2014-11-20 15:29:10 +0400 )редактировать

Read. Да и phpagi Вам в помощь

tesak89 ( 2014-11-20 15:42:57 +0400 )редактировать

AGI(saygoogle.php,"Чтобы узнать состояние, вашего заказа, ведите номер, и нажмите решетку") Read(zakaz,,8) уже изначально стоит и не меняется, редактирую только сам файл saygoogle.php

sasha23rus ( 2014-11-20 15:50:08 +0400 )редактировать

если так echo 'SET VARIABLE FILENAME "'.$filename.'" ""'."\n"; то вообще ничего не говорит, Read сразу пропускается и выдается результат с пустым значение, т.е. Человек ничего не ввел

sasha23rus ( 2014-11-21 13:51:12 +0400 )редактировать

Спасибо meral все заработало в PHP коде ошибка затесалась

sasha23rus ( 2014-11-26 14:35:58 +0400 )редактировать

1 Ответ

2

редактируйте файл так

1) вместо background делаете setvar, записываете имя сгенерированного фалйа в переменную

2)в read ПОСЛЕ agi используете переменную с именем файла.

тоесть

echo 'SET VARIABLE FILENAME "'.$filename.'" ""'."\n";
exit;

в даилплане

Read(res,${FILENAME})
ссылка удалить спам редактировать

ответил 2014-11-20 18:14:57 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

обновил 2014-11-20 18:16:27 +0400

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку
2 закладки

подписаться на rss ленту новостей

Статистика

Задан: 2014-11-20 15:12:54 +0400

Просмотрен: 1,582 раз

Обновлен: Nov 26 '14

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.