Список форумов Asterisk Forum Asterisk Forum
The Asterisk Open Source PBX - Russian Community
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ПравилаПравила   ГруппыГруппы   ИзбранноеИзбранное    LinksСсылки   РегистрацияРегистрация 
 RSSRSS   ПрофильПрофиль   Войти и проверить личные сообщения   ВходВход 

Asterisk AGI IVR

 
Список форумов Asterisk Forum -> Asterisk IP PBX    вывод темы на печать
Предыдущая тема :: Следующая тема  
Автор Сообщение
busc
Модератор


Зарегистрирован:
12.02.2008
Сообщения: 150
Откуда: Kiev

Статус: Оффлайн 

СообщениеДобавлено: Вт Ноя 03, 2009 11:00    Заголовок сообщения: Asterisk AGI IVR

В результате долгих работ и переписывания отдельных частей Asterisk2Billing,
набралось по немногу готовых частей кода на PHP, которые я почистил и соединил
в проекте http://sourceforge.net/projects/phpivr/.
Интересующихся темой создания многоуровневого IVR на базе Asterisk приглашаю к использованию и обсуждению возможностей.
Задачи, которые стояли передо мной, текущим проектом покрыты. Все новшества будут реализовываться по надобности и возможности.
Баги, замечания, предложения и прочее можно постить непосредственно в этот топик, но лучше в соответствующие разделы проекта на SF.net
Желающих принять участие в разработке прошу обращаться в личку.

Кстати этот же IVR я интегрировал в Asterisk2Billing на входящие вызовы для тех у кого есть прямые входящие номера.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора GTalk ID Jabber ID
busc
Модератор


Зарегистрирован:
12.02.2008
Сообщения: 150
Откуда: Kiev

Статус: Оффлайн 

СообщениеДобавлено: Чт Ноя 05, 2009 14:24    Заголовок сообщения:

Вышел новый релиз 0.9.4.
Основное нововведение - конфигурация в формате JSON
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора GTalk ID Jabber ID
busc
Модератор


Зарегистрирован:
12.02.2008
Сообщения: 150
Откуда: Kiev

Статус: Оффлайн 

СообщениеДобавлено: Пт Ноя 06, 2009 11:46    Заголовок сообщения:

На текущий момент IVR конфигурируется из консоли и конфиг его лежит в /etc/asterisk/phpivr.conf
Предположим что нам необходимо сделать интерактивный автоответчик, который вкратце скажет в какую компанию
поступил звонок и переадресовать вызов на отдел (1001) продаж если нажать 1, отдел копоративных клиентов (1002) по нажатию 2.
Ну и как обычно бывает - соединить с секретарем (1000) если нажать 0 или дождаться окончания сообщения. Также предусмотрим
случай, когда с терминала введут dtmf не предусмотренный меню - сообщим о том чтобы еще раз прослушали меню
и проиграем его заново.

Для реализации этой простой задачи нам потребуется:
1) звуковой файл приветствия - welcome.gsm
2) звуковой файл описывающий доступное меню (его можно совместить с приветствием) - main-menu.gsm
3) звуковой файл с просьбой прослушать меню еще раз и сделать свой выбор - please-make-your-choice.gsm

Записанные файлы положим в папку /var/lib/asterisk/sounds/ivr, установим на них соответствующие права

в phpivr.conf пишем:
Код:
{
        "common" : {
                "name" : "Main menu of my company IVR"
                ,"options" : "say=ivr/welcome|say=ivr/main-menu,prompt,loop=1|transfer=1000"
                ,"inputs" : {
                        "0" : "transfer=1000"
                        ,"1" : "transfer=1001"
                        ,"2" : "transfer=1002"
                }

                ,"inputnotfound_act" : "say=ivr/please-make-your-choice|menu=common"
        }

}

Здесть надо отметить, что во время проигрывания welcome нажатие любой клавиши приведет к его завершению, и
сразу же будет проигрываться main-menu. И можно опустить опцию loop=1 поскольку количество проигрываний по
умолчанию равно 1, но дописано мной для лучшего понимания написанного.

Вот и все настройки. Сделали и забыли. Через время скачали новую версию, порадовались, поддержали проект )))

Added after 1 minutes:

В процессе написания примера был обнаружен баг:
Завершалось меню если небыло введено ни одного dtmf в случае ожидания по команде transfer или prompt

Собственно вышел новый bugfix release 0.9.5
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора GTalk ID Jabber ID
Obi Van



Зарегистрирован:
17.01.2007
Сообщения: 425
Откуда: Россия, г.Новочеркасск, Рост.обл

Статус: Оффлайн 

СообщениеДобавлено: Пт Ноя 06, 2009 12:20    Заголовок сообщения:

Большое спасибо за проект! Up
Уже пробую. Сама концепция очень хорошая. Меньше телодвижений, меньше исправлений, меньше ошибок, но нужный результат.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
fabi



Зарегистрирован:
05.08.2008
Сообщения: 37

Статус: Оффлайн 

СообщениеДобавлено: Чт Ноя 12, 2009 10:12    Заголовок сообщения:

Спасибо за такую чудесную нужную разработку!!!
Очень удобно ! Единственное чего не хватает, такого же удобного веб-интерфейса. Rolling Eyes
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
busc
Модератор


Зарегистрирован:
12.02.2008
Сообщения: 150
Откуда: Kiev

Статус: Оффлайн 

СообщениеДобавлено: Чт Ноя 12, 2009 15:18    Заголовок сообщения:

В проекте
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора GTalk ID Jabber ID
busc
Модератор


Зарегистрирован:
12.02.2008
Сообщения: 150
Откуда: Kiev

Статус: Оффлайн 

СообщениеДобавлено: Вт Дек 08, 2009 12:24    Заголовок сообщения:

Добавлена команда "*", которая позволяет запускать команды Asterisk не завершая меню среди прочих команд.
Механизм в превую очередь находит применение в организации пауз между проигрыванием сообщений.
Код:
say=some-wav|*=Wait 5|say=another-wav

собственно сам релиз http://sourceforge.net/project/platformd ... _id=285035
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора GTalk ID Jabber ID
busc
Модератор


Зарегистрирован:
12.02.2008
Сообщения: 150
Откуда: Kiev

Статус: Оффлайн 

СообщениеДобавлено: Чт Мар 04, 2010 16:23    Заголовок сообщения:

В поле userfield теперь складывается история ввода DTMF с терминала.
Так если были нажаты клавиши (1, 4, 3, 0, 3, Cool, то в CDR(userfield) будет записано:
Код:
->1->4->3->0->3->8

Глядя в конфигурационный файл phpivr.conf можно запросто восстановить последовательность прохождения меню.
Дальше дело за аналитическим складом ума.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора GTalk ID Jabber ID
busc
Модератор


Зарегистрирован:
12.02.2008
Сообщения: 150
Откуда: Kiev

Статус: Оффлайн 

СообщениеДобавлено: Ср Мар 10, 2010 14:37    Заголовок сообщения:

В проект добавлен online монитор, пока совсем простой, но все же...
Монитор с промежутками в 5 секунд показывает звонки которые обслуживаются IVR-ом

ссылка та же))
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора GTalk ID Jabber ID
fabi



Зарегистрирован:
05.08.2008
Сообщения: 37

Статус: Оффлайн 

СообщениеДобавлено: Ср Мар 10, 2010 22:33    Заголовок сообщения:

есть ли какието надежды увидеть веб интерфейс в скором будущем ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
busc
Модератор


Зарегистрирован:
12.02.2008
Сообщения: 150
Откуда: Kiev

Статус: Оффлайн 

СообщениеДобавлено: Чт Мар 11, 2010 12:49    Заголовок сообщения:

есть, уже пишу ))
если под web интерфейсом понимается то в чем можно конфигурацию редактировать
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора GTalk ID Jabber ID
fabi



Зарегистрирован:
05.08.2008
Сообщения: 37

Статус: Оффлайн 

СообщениеДобавлено: Пт Мар 12, 2010 15:46    Заголовок сообщения:

а где "редактирование" там и добавление,удаление Wink
вообщем интерес есть, ждем результатов Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
someone



Зарегистрирован:
20.09.2009
Сообщения: 33

Статус: Оффлайн 

СообщениеДобавлено: Чт Мар 18, 2010 01:48    Заголовок сообщения:

А поддержка sql есть/планируется?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
koqep



Зарегистрирован:
26.01.2010
Сообщения: 221
Откуда: Челябинская обл.

Статус: Оффлайн 

СообщениеДобавлено: Пт Май 07, 2010 08:10    Заголовок сообщения:

Внимание!!! тех кто использует версию php 5.3 или новее, т.к. в phpIVR входит сборка phpAGI то его следует немного поправить

    - открываем phpagi.php
    - переходим на строчку 1184
    - перименовываем function goto($context, $extension='s', $priority=1) в function ast_goto($context, $extension='s', $priority=1)

http://asteriskforum.ru/viewtopic.php?p= ... pAgi#38743
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Skype Name Jabber ID Телефон
fabi



Зарегистрирован:
05.08.2008
Сообщения: 37

Статус: Оффлайн 

СообщениеДобавлено: Пт Май 07, 2010 15:19    Заголовок сообщения:

Оппаньки ! спасибо Smile

Added after 2 minutes:

а есть какие то новости по PHPIVR ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
fabi



Зарегистрирован:
05.08.2008
Сообщения: 37

Статус: Оффлайн 

СообщениеДобавлено: Ср Май 19, 2010 23:05    Заголовок сообщения:

является ли параметр "name" обязательным ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
bartram



Зарегистрирован:
04.06.2010
Сообщения: 7

Статус: Оффлайн 

СообщениеДобавлено: Пт Июн 04, 2010 19:56    Заголовок сообщения:

Как сделать, чтобы не бросало трубку, после окончания проигрывания файла и ожидания нажатия, как сделать чтобы ожидание нажатия было долгим?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
busc
Модератор


Зарегистрирован:
12.02.2008
Сообщения: 150
Откуда: Kiev

Статус: Оффлайн 

СообщениеДобавлено: Чт Июн 17, 2010 11:27    Заголовок сообщения:

bartram писал(а):
Как сделать, чтобы не бросало трубку, после окончания проигрывания файла и ожидания нажатия, как сделать чтобы ожидание нажатия было долгим?


phpivr.conf в студию

Added after 12 minutes:

fabi писал(а):
является ли параметр "name" обязательным ?

Нет, он используется только для вывода в консоли в строке
Код:
Разбираем опции меню NAME=Bla bla bla'
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора GTalk ID Jabber ID
bartram



Зарегистрирован:
04.06.2010
Сообщения: 7

Статус: Оффлайн 

СообщениеДобавлено: Пн Июл 05, 2010 11:02    Заголовок сообщения:

busc писал(а):
phpivr.conf в студию

Код:

        "common" : {
                "name" : "1st menu"
                ,"options" : "say=ivr/main,prompt"
                ,"inputs" : {
                        "1" : "menu=main-1-q"
                        ,"0" : "menu=common"
                }

                ,"inputnotfound_act" : "menu=common"
        }

Вернуться к началу
Посмотреть профиль Отправить личное сообщение
busc
Модератор


Зарегистрирован:
12.02.2008
Сообщения: 150
Откуда: Kiev

Статус: Оффлайн 

СообщениеДобавлено: Пн Июл 12, 2010 14:24    Заголовок сообщения:

Вот два варианта.
Здесь проигрываний будет 3, а потом бросит трубку
Код:
,"options" : "say=ivr/main,prompt,loop=3"

Здесь проигрываний будет пока абонент не бросит трубку ))
Код:
,"options" : "say=ivr/main,prompt|menu=common"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора GTalk ID Jabber ID
koqep



Зарегистрирован:
26.01.2010
Сообщения: 221
Откуда: Челябинская обл.

Статус: Оффлайн 

СообщениеДобавлено: Чт Июл 29, 2010 13:17    Заголовок сообщения:

admin@superserver:/etc/asterisk# cat ./phpivr.conf
Код:

{
        "common" : {
                "name" : "Common IVR menu"
                ,"options" : "*=WAIT 2|say=ivr/0,prompt,loop=1|menu=welcome_short"
                ,"inputs" : {
                        "3" : "transfer=351"
                        ,"1" : "menu=time_work"
                        ,"2" : "menu=services"

                }
                ,"inputnotfound_act" : "say=ivr/invalid|menu=welcome_short"
        }
}


подскажите почему не набирает номер по transfer=351, нажимаю "3" сразу же короткие гудки

Added after 2 minutes:

вот лог
[code]
[Jul 29 18:17:29] IVR.php,common: Class.IVR.php:243 - Пытаемся получить IVR меню ID='common'
[Jul 29 18:17:29] IVR.php,common: Class.IVR.php:82 - Разбираем опции меню NAME='Common IVR menu' | ID='common'
[Jul 29 18:17:29] IVR.php,common: Class.IVR.php:83 - Array
[Jul 29 18:17:29] IVR.php,common: (
[Jul 29 18:17:29] IVR.php,common: [name] => Common IVR menu
[Jul 29 18:17:29] IVR.php,common: [options] => *=WAIT 2|say=ivr/0,prompt,loop=1|menu=welcome_short
[Jul 29 18:17:29] IVR.php,common: [inputs] => Array
[Jul 29 18:17:29] IVR.php,common: (
[Jul 29 18:17:29] IVR.php,common: [3] => transfer=351
[Jul 29 18:17:29] IVR.php,common: [1] => menu=time_work
[Jul 29 18:17:29] IVR.php,common: [2] => menu=services
[Jul 29 18:17:29] IVR.php,common: )
[Jul 29 18:17:29] IVR.php,common:
[Jul 29 18:17:29] IVR.php,common: [inputnotfound_act] => say=ivr/invalid|menu=welcome_short
[Jul 29 18:17:29] IVR.php,common: )
[Jul 29 18:17:29] IVR.php,common:
[Jul 29 18:17:29] IVR.php,common: Class.IVR.php:250 - IVR меню ID='common' успешно получено
[Jul 29 18:17:29] IVR.php,common: Class.IVR.php:252 - Выполняем меню ID='common'
[Jul 29 18:17:29] IVR.php,common: Class.IVR.php:135 - Опции обработчика : '*=WAIT 2|say=ivr/0,prompt,loop=1|menu=welcome_short'
[Jul 29 18:17:31] IVR.php,common: Class.IVR.php:94 - Устанавливаем счетчик проигрывания сообщения loop='1'
[Jul 29 18:17:31] IVR.php,common: Class.IVR.php:99 - Проигрываем сообщение 'ivr/0' с ожиданием нажатия
[Jul 29 18:17:31] IVR.php,common: Class.IVR.php:100 - Максимальное количество символов для ввода prompt_count='1'
[Jul 29 18:17:33] IVR.php,common: Class.IVR.php:274 - Была нажата кнопка '3'
[Jul 29 18:17:33] IVR.php,common: Class.IVR.php:281 - История ввода:->3
[Jul 29 18:17:33] IVR.php,common: Class.IVR.php:284 - Обработчик последовательности '3'
[Jul 29 18:17:33] IVR.php,common: Class.IVR.php:135 - Опции обработчика : 'transfer=351'
[Jul 29 18:17:33] IVR.php,common: Class.IVR.php:201 - Переадресовываем вызов на '351'
[Jul 29 18:17:33] IVR.php,common: IVR.php:25 - Array
[Jul 29 18:17:33] IVR.php,common: (
[Jul 29 18:17:33] IVR.php,common: [code] => 200
[Jul 29 18:17:33] IVR.php,common: [result] => 0
[Jul 29 18:17:33] IVR.php,common: [data] =>
[Jul 29 18:17:33] IVR.php,common: )
[Jul 29 18:17:33] IVR.php,common:
[/code]
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Skype Name Jabber ID Телефон
busc
Модератор


Зарегистрирован:
12.02.2008
Сообщения: 150
Откуда: Kiev

Статус: Оффлайн 

СообщениеДобавлено: Пт Июл 30, 2010 12:13    Заголовок сообщения:

koqep писал(а):

подскажите почему не набирает номер по transfer=351, нажимаю "3" сразу же короткие гудки

Dialplan настроен?
extensions.conf
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора GTalk ID Jabber ID
koqep



Зарегистрирован:
26.01.2010
Сообщения: 221
Откуда: Челябинская обл.

Статус: Оффлайн 

СообщениеДобавлено: Пн Авг 02, 2010 07:32    Заголовок сообщения:

с диалпланом и с phpivr все в порядке, косяк был у меня, для peer'а было выставлен call-limit=1
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Skype Name Jabber ID Телефон
busc
Модератор


Зарегистрирован:
12.02.2008
Сообщения: 150
Откуда: Kiev

Статус: Оффлайн 

СообщениеДобавлено: Пн Авг 16, 2010 15:34    Заголовок сообщения:

v0.13.0 выложена
Переименовал функцию PHPAGI goto в agigoto
Переписана ф-ция json_decode. Добавлена замена `имени файла` на его содержимое. Допускаются переносы строк в блоках команд.

Пара ошибок поправлено.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора GTalk ID Jabber ID
busc
Модератор


Зарегистрирован:
12.02.2008
Сообщения: 150
Откуда: Kiev

Статус: Оффлайн 

СообщениеДобавлено: Сб Авг 21, 2010 08:23    Заголовок сообщения:

Домашняя страница переехала
http://sites.google.com/site/grygoriim/devel/phpivr

Внимание !!!!
С версии 0.12.0 таг inputnotfount_act был заменен на invalidinput_act.
Заметил только сейчас, что кругом была ошибка в конфигах.
При вводе dtmf, которого небыло в меню, ничего не происходило. т.е проигрывалось меню заново.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора GTalk ID Jabber ID
Список форумов Asterisk Forum -> Asterisk IP PBX Ответить на тему
Страница 1 из 1

Добавить в Избранное

 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
You cannot attach files in this forum
You cannot download files in this forum