VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Проблема с ExternalIVR()

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

Аватара пользователя
Obi Van
Сообщения: 340
Зарегистрирован: 03 сен 2010, 11:21

Re: Проблема с ExternalIVR()

Сообщение Obi Van »

В подавляющем большинстве случаев, голосовые системы, которые я встречал, любезно замолкали, с целью выслушать мои DTMF посылки. Не понимаю нужды в музыке во время нажатия клавиш? :geek:
bartram
Сообщения: 25
Зарегистрирован: 07 мар 2011, 15:49

Re: Проблема с ExternalIVR()

Сообщение bartram »

Не музыка это, а голос. "Для этого нажмите 1, для этого нажмите 2." и так далее...
ded
Сообщения: 15620
Зарегистрирован: 26 авг 2010, 19:00

Re: Проблема с ExternalIVR()

Сообщение ded »

.. и если человек услышал что нужно нажать 2 и нажал 2 то зачем ему слушать другие опции?
bartram
Сообщения: 25
Зарегистрирован: 07 мар 2011, 15:49

Re: Проблема с ExternalIVR()

Сообщение bartram »

А если у человека должен быть множественный выбор? Задача конечно специфическая и мало где используемая, но нужно реализовать.
ded
Сообщения: 15620
Зарегистрирован: 26 авг 2010, 19:00

Re: Проблема с ExternalIVR()

Сообщение ded »

У человек есть множественный выбор apriory.
Можно его пустить на первый круг прослушивания без варанта вообще что-либо нажать - что бы ни нажимал - ничего не произойдёт.
Использовать Playback в ограниченом контексте. А на исходе вытолкнуть его в другой, где будет уже Background.
bartram
Сообщения: 25
Зарегистрирован: 07 мар 2011, 15:49

Re: Проблема с ExternalIVR()

Сообщение bartram »

Зачем? Когда можно все считать во время проигрывания, зачем на первый круг время тратить? Можно конечно реализовать, но это лишняя трата времени пользователя.
ded
Сообщения: 15620
Зарегистрирован: 26 авг 2010, 19:00

Re: Проблема с ExternalIVR()

Сообщение ded »

Используйте тогда канал Local для того, чтобы не прерывать после Read()
Воспроизводим всё в одном канале, а считываем что он нажал - в другом.
bartram
Сообщения: 25
Зарегистрирован: 07 мар 2011, 15:49

Re: Проблема с ExternalIVR()

Сообщение bartram »

Кстати, это идея. Попробую.
gosha
Сообщения: 375
Зарегистрирован: 06 сен 2010, 17:41
Контактная информация:

Re: Проблема с ExternalIVR()

Сообщение gosha »

bartram писал(а): Но главная проблема все таки, это прекращение воспроизведения звука при нажатии первой клавиши. Ни одна из agi функций которые я пробовал не может и считывать клавиши, и играть файл одновременно.
сделать промпты в виде MOH, включить этот MOH и собрать символы пока оно играет ?

Код: Выделить всё

#!/usr/bin/perl

use Asterisk::AGI;
use strict;

my $AGI = new Asterisk::AGI;
my %input = $AGI->ReadParse();

$AGI->answer();

$AGI->set_music('on');

my $result = '';
my $timeout = 600;
my $start_time = time;

while ( 1 ) {
        my $ch = $AGI->wait_for_digit( $timeout * 1000 );

        if ( $ch <= 0 ) {
                last;
        } else {
                $ch = chr($ch);
                if ( $ch eq '#' ) {
                        last;
                } else {
                        $result .= $ch;
                }
        }
        $AGI->verbose( "Result: $result" );
        last if time - $start_time > $timeout;
}

$AGI->set_music('off');

$AGI->say_digits($result);
засада только с повторным использованием :)
bartram
Сообщения: 25
Зарегистрирован: 07 мар 2011, 15:49

Re: Проблема с ExternalIVR()

Сообщение bartram »

switch писал(а):Топик можно считать наглядным примером неправильного анализа задачи
В чём же он не правильный?
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH