настроить IVR с Asterisk

Мне нужно настроить простую систему IVR для компании друга, которая позволит звонящему перемещаться по меню, нажимая клавиши телефона. Это что-то вроде расписания автобусов.

для сегодняшнего расписания нажмите «1», для завтрашнего расписания нажмите «2» и так далее.

Это исключительно информационная система, т.е. ни один навигационный маршрут не будет заканчиваться реальным человеком, а будут воспроизводиться только звуковые сообщения.

Я никогда раньше не устанавливал ничего подобного и немного покопался в Google. Похоже, я смогу добиться этого с помощью Asterisk.

  • Что еще мне нужно в аппаратном плане?
  • Достаточно ли простого сервера Linux и учетной записи VOIP у провайдера в Германии?
  • Справится ли VPS с этой задачей?
  • Как насчет нескольких одновременных входящих вызовов?
  • Они обрабатываются Asterisk?

person Sebastian    schedule 30.01.2009    source источник
comment
Есть ли угол программирования?   -  person Kev    schedule 30.01.2009
comment
Я еще не знаю... пока это связано с технологиями. Но люди, кажется, хотят помочь и дать ответы...   -  person Sebastian    schedule 30.01.2009


Ответы (11)


Это вполне возможно.

Что тебе нужно знать:

  1. У Asterisk есть некоторые проблемы с H323. Если ваш провайдер предоставляет SIP, попросите вместо него SIP.

  2. Вы можете построить целую IVR по абонентским группам в своей extensions.conf, но для сложных задач лучше использовать AGI. Это Perl или Python или скрипты любого другого языка, реализующие вашу IVR логику. Каждый сеанс AGI охватывает дочерний процесс, используйте FastAGI и сетевой демон, если вы ожидаете частых подключений.

  3. Несколько одновременных вызовов не проблема, моя установка Asterisk на простом ПК обрабатывает сотни одновременных вызовов.

  4. Единственные вещи, которые могут действительно повлиять на производительность, — это преобразование звука и обнаружение тона.

    Для повышения производительности следует:

    1. Придерживайтесь одного кодека (я использую µLaw), заставьте все соединения SIP использовать этот кодек и предварительно конвертируйте все ваши звуковые файлы в него с помощью sox -t ul. Как только вы это сделаете, вся операция Asterisk сводится к чтению байтов файла с диска и отправке их по сети с простой оберткой. Никакой математики, ничего, кроме простых операций чтения-переноса-отправки.

    2. Попросите вашего провайдера обнаружить тональные сигналы на его стороне и отправить их вам вне диапазона, используя RFC 2833. Обнаружение тона — довольно ресурсоемкая операция, пусть они делают это сами.

    Я лично запускаю Asterisk на 2,66 MHz Celeron IV с 2048 MB RAM под Fedora 10 X86_64. 150 подключений сразу работают нормально, задержек нет.

    Общий трафик составляет около 9.6 KByte/sec на соединение. Для современного VPS вообще не должно быть проблем.

person Quassnoi    schedule 30.01.2009
comment
Как вы думаете, можно ли реализовать IVR на обычном VPS с установленным Asterisk? Или лучше взять выделенный сервер? - person Sebastian; 30.01.2009
comment
а можете подсказать какое железо (плату) для такой системы? - person sepehr; 29.07.2016
comment
@sepehr: чувак, прошло уже семь лет! Я думаю, что почти все, что может запускать Linux и имеет сетевой порт, подойдет, задачи, с которыми работает Asterisk, вообще не требуют интенсивного использования процессора или ввода-вывода. - person Quassnoi; 29.07.2016
comment
@Quassnoi, теперь я уверен, что у тебя как минимум семь лет опыта :) - person sepehr; 29.07.2016

Звездочка качается. Для нескольких строк подойдет простой P3 или лучше. Не виртуализируйте АТС; Asterisk полагается на довольно точное время.

FreePBX позволяет очень легко настроить IVR - имеет приличный веб-интерфейс и поддерживает некоторые классные Asterisk. инструменты из коробки.

РЕДАКТИРОВАТЬ: FreePBX — это не Asterisk — это красивый интерфейс, который генерирует для вас конфиги. Trixbox включает его по умолчанию, если вам нужно простое решение «наведи и снимай».

Если ваша учетная запись VoIP поддерживает несколько входящих линий, то Asterisk будет их использовать. Вам также потребуется достаточная пропускная способность Интернета и достойный QoS. Для более чем одной линии в бизнес-системе я бы настаивал на выделенном соединении, чтобы не возникало пропаданий при доступе пользователей к сети.

person Adam Hawes    schedule 30.01.2009
comment
Как вы думаете, можно ли реализовать IVR на обычном VPS с установленным Asterisk? Или лучше взять выделенный сервер? - person Sebastian; 30.01.2009
comment
Если у вас где-то установлен Asterisk, то обязательно используйте его. IVR для нескольких строк вряд ли потребует много ресурсов. Если вы говорите много линий (20+), подумайте о выделенном оборудовании. - person Adam Hawes; 01.02.2009
comment
гиперссылка на FreePBX указывает на Free-B-P-X. Плакат может захотеть это исправить. - person Kinjal Dixit; 07.09.2009

Лучший способ создания приложений IVR — использовать VoiceXML, разработанный W3C.org (http://www.w3.org/TR/voicexml21/). Asterisk не поставляется с браузером VoiceXML, но есть компании, которые предоставляют его для Asterisk, например SoftSyl Technologies (http://www.softsyl.com).

Такие компании, как Cisco и Avaya, также предоставляют браузер VoiceXML, но не для Asterisk.

person Mike    schedule 12.02.2011

Если вы совсем новичок, я бы предложил изучить FreeSWITCH вместо Asterisk. Он намного лучше структурирован, а также поставляется с некоторыми готовыми примерами, включая меню IVR, а синтаксис IVR довольно прост: http://wiki.freeswitch.org/wiki/IVR_Menu

Я запускаю экземпляр FreeSWITCH на виртуальном сервере Xen, и он отлично работает с несколькими одновременными вызовами.

person Stanislav Sinyagin    schedule 12.10.2012
comment
Кстати, здесь внизу подробное описание того, что я реализовал: txlab.wordpress.com /tag/dvop-net - person Stanislav Sinyagin; 12.10.2012

Дизайн IVR в Asterisk не сложен, но есть небольшой «учебный обрыв», связанный с запуском и запуском вашего первого сервера Asterisk.

Как сказал кто-то другой, качество связи решает все. Заплатите за запись профессионального уровня для ваших подсказок IVR и ваших объявлений. Убедитесь, что вы используете коды 64k, такие как uLaw и aLaw; GSM (мобильный телефон) может быть дешевым по пропускной способности, но он не соответствует ожиданиям ваших клиентов в отношении качества.

Я настоятельно рекомендую вам поместить IVR в его собственный контекст плана нумерации, а затем направлять вызовы в него. Это значительно упрощает управление такими вещами, как выбор меню. Для каждого подмножества параметров используйте другой контекст абонентской группы.

Старайтесь, чтобы ваше меню было «неглубоким». Если для получения информации, которую ищет ваш клиент, требуется более трех пунктов меню, он, скорее всего, повесит трубку или просто нажмет «0», чтобы поговорить с человеком. Это побеждает смысл вашего IVR.

Если вы собираетесь делать что-то довольно классное с поиском в базе данных, аутентификацией учетной записи или чем-то подобным, я бы рекомендовал использовать приложение «AGI» — интерфейс шлюза Asterisk. Лично мне больше всего нравится "Adhearsion", который хорошо сочетается с Ruby/Rails на стороне DB/Web.

Если вам нужна помощь или дополнительная информация, дайте мне знать.

person MichelV69    schedule 12.10.2012

Для более сложных IVR вы можете попробовать Astive Toolkit, особенно если вам нужна итерация баз данных или веб-сервисов.

person Pedro Sanders    schedule 15.05.2012

Я работал с IVR в прошлом, но в основном с большими системами и никогда не использовал Asterisk. Я быстро просмотрел их веб-сайт (http://www.asterisk.org/), и он кажется очень информативным, вы проверили там?

person Ian Devlin    schedule 30.01.2009
comment
да Уже сделал это. Но я хотел бы услышать от кого-нибудь, кто уже сделал то, что я хочу сделать, и кто может рассказать мне о возможных осложнениях или порекомендовать по настройке. - person Sebastian; 30.01.2009

Это не связано с программированием, но...

Взгляните на trixbox.org, он поддерживает конфигурацию от cisco до... телефонов snom. Его мод Asterisk/Freepbx и все под красивым пользовательским интерфейсом!

У меня есть провайдер в Австралии, который добавил их в качестве магистральной сети GSM, установка 4 телефонов заняла 3 часа. IVR поддерживается

Единственные проблемы, возможно, будут ... качество записи голоса

person Elijah Glover    schedule 30.01.2009

Это довольно просто. Я использую sipgate.de в качестве провайдера для своего астериска. вам нужно настроить диалплан.

это тоже довольно просто. посмотрите здесь. вы также должны заглянуть в extensions.conf. там несколько образцов внутри. это также образец, который подходит для вашей проблемы. чтобы подключиться к sipgate, загляните в их базу знаний. есть несколько примеров конфигурации звездочки.

Sipgate бесплатен, кроме исходящих звонков.

person Bernd Ott    schedule 30.01.2009

Это можно сделать в плане нумерации...

[menu-main]
exten => s,1,Noop()
exten => s,n(msg),Background(ForTodayPress1TomorrPress2)
exten => s,1,Goto(menu-today)
exten => s,2,Goto(menu-tomorrow)
exten => i,1,Playback(invalid)
exten => i,n,Goto(msg)
exten => t,1,Goto(msg)

[menu-today]
etc...

[menu-tomorrow]
etc...

Или, как кто-то предложил, вы можете сделать это на любом языке, который может писать на стандартный ввод и читать из стандартного вывода. Реализация phpagi — мой любимый вариант. Это может подойти к этому примеру, например, когда PHP запускается на отдельном блоке, поэтому он не влияет на АТС ни при какой нагрузке.

[menu-main]
exten => s,1,Noop()
exten => s,n(msg),Background(ForTodayPress1TomorrPress2)
exten => s,1,Goto(menu-today,s,1)
exten => s,2,Goto(menu-tomorrow,s,1)
exten => i,1,Playback(invalid)
exten => i,n,Goto(msg)
exten => t,1,Goto(msg)

[menu-today]
exten => s,1,Noop()
exten => s,n,agi(http://myapache/agi/readschedule.php)
exten => s,n,Hangup()
person vbcrlfuser    schedule 26.03.2011

Если вы хотите настроить Asterisk IVR, вы также можете использовать какой-либо веб-инструмент Drag and Drop, чтобы создать простой автосекретарь (как в вашем примере) или сложный IVR (управление сценариями или IVR на основе базы данных). Одним из вариантов является Cally Square. Посмотрите здесь: http://www.callysquare.com/

person didacus    schedule 02.02.2014