Журнал LinuxFormat - перейти на главную

LXF82:Asterisk

Материал из Linuxformat
(Различия между версиями)
Перейти к: навигация, поиск
м (викификация)
Строка 1: Строка 1:
 
== Asterisk: замените вашу АТС ==
 
== Asterisk: замените вашу АТС ==
''Душа горит желанием внедрить в своей организации VoIP взамен недешёвой АТС, но не уверены, что справитесь? Попробуйте эту открытую систему и добавьте отличные функции – например, конференции с интернет-вызовами.''
+
''Душа горит желанием внедрить в своей организации VoIP взамен недешёвой АТС, но не уверены, что справитесь? Попробуйте эту открытую систему и добавьте отличные функции — например, конференции с интернет-вызовами.''
  
 
Выход технологии за пределы круга своих приверженцев
 
Выход технологии за пределы круга своих приверженцев
Строка 6: Строка 6:
 
Интернетом в середине девяностых; с Linux незадолго до
 
Интернетом в середине девяностых; с Linux незадолго до
 
смены тысячелетий; и теперь это происходит с IP-телефонией.
 
смены тысячелетий; и теперь это происходит с IP-телефонией.
Поскольку «голос поверх IP» (Voice over IP, VoIP) это сервис, работающий поверх общедоступного Интернета (или, возможно, сегмента
+
Поскольку «голос поверх IP» (Voice over IP, VoIP) — это сервис, работающий поверх общедоступного Интернета (или, возможно, сегмента
 
частной LAN/WAN), большинство протоколов и стандартов, используемых данной технологией, открыты, и это способствует разработке
 
частной LAN/WAN), большинство протоколов и стандартов, используемых данной технологией, открыты, и это способствует разработке
 
широкой номенклатуры программ и оборудования. Есть несколько различных реализаций VoIP, каждая из которых имеет свои преимущества
 
широкой номенклатуры программ и оборудования. Есть несколько различных реализаций VoIP, каждая из которых имеет свои преимущества
Строка 27: Строка 27:
 
|Ширина=}}
 
|Ширина=}}
  
Приложение, которое я здесь демонстрирую, Asterisk – это открытая
+
Приложение, которое я здесь демонстрирую, Asterisk — это открытая
 
УАТС (учрежденческая АТС), или телефонный узел частного пользования (private branch exchange, PBX). Хотя Asterisk был разработан для
 
УАТС (учрежденческая АТС), или телефонный узел частного пользования (private branch exchange, PBX). Хотя Asterisk был разработан для
использования с VoIP – и поддерживает богатый набор протоколов VoIP,
+
использования с VoIP — и поддерживает богатый набор протоколов VoIP,
включая SIP и H.323 – им вполне можно бесплатно заменить УАТС даже
+
включая SIP и H.323 — им вполне можно бесплатно заменить УАТС даже
 
и без функций VoIP. Мы особо приглашаем собрать её для себя любителей удушающе больших счетов от телекоммуникационных компаний
 
и без функций VoIP. Мы особо приглашаем собрать её для себя любителей удушающе больших счетов от телекоммуникационных компаний
 
и непристойных тарифов на «дальние» и международные звонки (см.
 
и непристойных тарифов на «дальние» и международные звонки (см.
Строка 37: Строка 37:
 
На этом уроке я предполагаю, что вы пошли путём свободного VoIP.
 
На этом уроке я предполагаю, что вы пошли путём свободного VoIP.
 
Мы сосредоточимся на трёх специфических функциях Asterisk:
 
Мы сосредоточимся на трёх специфических функциях Asterisk:
* Как уберечь передачу вызовов от нестабильности Интернета.
+
* Как уберечь передачу вызовов от нестабильности Интернета.
 
* Как поддерживать связь с друзьями и коллегами с помощью конференции.
 
* Как поддерживать связь с друзьями и коллегами с помощью конференции.
 
* Как помещать входящие звонки в очередь
 
* Как помещать входящие звонки в очередь
Строка 44: Строка 44:
  
 
Если вы не привыкли к телефонии, вам придётся потерпеть, пока
 
Если вы не привыкли к телефонии, вам придётся потерпеть, пока
я коротко опишу её функционирование – но, с другой стороны, крутые хакеры вроде вас должны бы терпимо относиться к техническим
+
я коротко опишу её функционирование — но, с другой стороны, крутые хакеры вроде вас должны бы терпимо относиться к техническим
 
разъяснениям. Приступим. Любая реализация VoIP в принципе состоит
 
разъяснениям. Приступим. Любая реализация VoIP в принципе состоит
 
из двух компонентов: процесс, передающий звуковую информацию от
 
из двух компонентов: процесс, передающий звуковую информацию от
Строка 56: Строка 56:
 
любого абонента в мире.
 
любого абонента в мире.
  
Наша задача согласовать две отдельные телефонные сети не нова
+
Наша задача согласовать две отдельные телефонные сети не нова -
 
любое предприятие с более чем пятью сотрудниками, вероятно, имеет
 
любое предприятие с более чем пятью сотрудниками, вероятно, имеет
 
внутреннюю телефонную сеть с расширениями и голосовыми услугами. Чтобы подключить эту сеть к общей коммутационной сети (public
 
внутреннюю телефонную сеть с расширениями и голосовыми услугами. Чтобы подключить эту сеть к общей коммутационной сети (public
Строка 67: Строка 67:
 
пользователями надёжность почти со 100%-й готовностью на протяжении нескольких лет, если не десятилетий.
 
пользователями надёжность почти со 100%-й готовностью на протяжении нескольких лет, если не десятилетий.
  
При формировании среды VoIP, для ИТ-персонала УАТС – первоочередная область внимания, поскольку это линия фронта между ТфОП
+
При формировании среды VoIP, для ИТ-персонала УАТС — первоочередная область внимания, поскольку это линия фронта между ТфОП
 
и нашими пользователями. Коммерческие системы УАТС с поддержкой
 
и нашими пользователями. Коммерческие системы УАТС с поддержкой
 
VoIP предлагаются почти всеми, кто использует стандартные устройства
 
VoIP предлагаются почти всеми, кто использует стандартные устройства
УАТС – посмотрите на решения Nortel (http://www.nortel.com), Lucent (http://www.lucent.com) и Cisco (http://cisco.com) но имеется замечательная альтернатива в настоящем стиле open source, работающая на стандартном оборудовании Intel. И здесь мы возвращаемся к Asterisk.
+
УАТС — посмотрите на решения Nortel (http://www.nortel.com), Lucent (http://www.lucent.com) и Cisco (http://cisco.com) - но имеется замечательная альтернатива в настоящем стиле open source, работающая на стандартном оборудовании Intel. И здесь мы возвращаемся к Asterisk.
  
 
{{Врезка|center|
 
{{Врезка|center|
Строка 146: Строка 146:
 
Сборка Asterisk проста, хотя и требует компиляции libpri и zaptel
 
Сборка Asterisk проста, хотя и требует компиляции libpri и zaptel
 
для C-заголовков. Установить его можно стандартно: make && make
 
для C-заголовков. Установить его можно стандартно: make && make
install с правами суперпользователя – для большинства пользователей сборка пройдёт успешно. Asterisk потребует немного времени на
+
install с правами суперпользователя — для большинства пользователей сборка пройдёт успешно. Asterisk потребует немного времени на
 
компиляцию, но, будучи установленным, он будет использовать некоторые файлы конфигурации по умолчанию, поставляемые с пакетом.
 
компиляцию, но, будучи установленным, он будет использовать некоторые файлы конфигурации по умолчанию, поставляемые с пакетом.
  
Строка 192: Строка 192:
 
внешний мир станет использоваться другой метод.
 
внешний мир станет использоваться другой метод.
  
Жизненно важная составляющая в этой смеси – приведённый ниже
+
Жизненно важная составляющая в этой смеси — приведённый ниже
 
макрос «дозвона», он важнее всех тех, что вам доведётся увидеть (по
 
макрос «дозвона», он важнее всех тех, что вам доведётся увидеть (по
 
крайней мере, сегодня на уроке):
 
крайней мере, сегодня на уроке):
Строка 212: Строка 212:
 
  exten => _0.,3,Macro(dial,IAX2/carrier2/${EXTEN})
 
  exten => _0.,3,Macro(dial,IAX2/carrier2/${EXTEN})
 
  exten=>_0.,4,Hangup()
 
  exten=>_0.,4,Hangup()
Эту конфигурацию можно расширять как угодно, добавляя в список других операторов VoIP. Её недостаток – когда звонок уже принят,
+
Эту конфигурацию можно расширять как угодно, добавляя в список других операторов VoIP. Её недостаток — когда звонок уже принят,
 
нет гарантии, что он пройдёт гладко. Немногие конечные пользователи
 
нет гарантии, что он пройдёт гладко. Немногие конечные пользователи
 
хотели бы иметь дело с недостатками вроде плавающего или одностороннего звука и прерванных соединений, но как только провайдер VoIP
 
хотели бы иметь дело с недостатками вроде плавающего или одностороннего звука и прерванных соединений, но как только провайдер VoIP
Строка 228: Строка 228:
  
 
=== Строим конференц-связь ===
 
=== Строим конференц-связь ===
Теперь – наша вторая задача. Все телефоны, кроме самых
+
Теперь — наша вторая задача. Все телефоны, кроме самых
 
простых, способны принимать трёхсторонние звонки, так
 
простых, способны принимать трёхсторонние звонки, так
 
что можно организовать небольшую конференцию с двумя другими абонентами. Если участников больше трёх,
 
что можно организовать небольшую конференцию с двумя другими абонентами. Если участников больше трёх,
Строка 239: Строка 239:
  
 
Для поддержки телефонных конференций Asterisk предоставляет приложение, известное как MeetMe; примеры конфигураций
 
Для поддержки телефонных конференций Asterisk предоставляет приложение, известное как MeetMe; примеры конфигураций
включены в поставку Asterisk. Основная зависимость MeetMe – подсистема времени Asterisk. Обычно, чтобы предоставить точные часы,
+
включены в поставку Asterisk. Основная зависимость MeetMe — подсистема времени Asterisk. Обычно, чтобы предоставить точные часы,
 
Asterisk использует драйвер Zaptel и физические устройства; однако это
 
Asterisk использует драйвер Zaptel и физические устройства; однако это
 
доступно не всегда, особенно в случае серверов-стоек, где разъёмы PCI
 
доступно не всегда, особенно в случае серверов-стоек, где разъёмы PCI
Строка 282: Строка 282:
 
и обрабатывать их так, чтобы люди не спятили окончательно. Очереди
 
и обрабатывать их так, чтобы люди не спятили окончательно. Очереди
 
звонков хороши для решения первой проблемы, хотя некоторые считают, что они могут серьёзно подорвать психическое здоровье клиентов.
 
звонков хороши для решения первой проблемы, хотя некоторые считают, что они могут серьёзно подорвать психическое здоровье клиентов.
Типичная очередь – это система, когда дозвонившийся абонент слушает
+
Типичная очередь — это система, когда дозвонившийся абонент слушает
 
некоторое время музыку, затем один из агентов может поднять телефон
 
некоторое время музыку, затем один из агентов может поднять телефон
 
и ответить на звонок. Asterisk легко с этим справляется при помощи
 
и ответить на звонок. Asterisk легко с этим справляется при помощи
Строка 310: Строка 310:
 
Строки announce позволяют приложению периодически сообщать
 
Строки announce позволяют приложению периодически сообщать
 
звонящему, сколько он просидел в очереди и какова его позиция, и
 
звонящему, сколько он просидел в очереди и какова его позиция, и
радовать его позорными сообщениями типа: «Вы – следующий на очереди, среднее время разговора – пять часов». Опция reportholdtime
+
радовать его позорными сообщениями типа: «Вы — следующий на очереди, среднее время разговора — пять часов». Опция reportholdtime
 
включает уведомления агенту о том, как долго звонящий ждал соединения. Отделам технической поддержки такая информация полезна для
 
включает уведомления агенту о том, как долго звонящий ждал соединения. Отделам технической поддержки такая информация полезна для
 
определения тенденций по времени вызова и может быть включена в
 
определения тенденций по времени вызова и может быть включена в
Строка 335: Строка 335:
  
 
=== Узнайте больше ===
 
=== Узнайте больше ===
Нарождающаяся технология развивается с необычайной быстротой – за
+
Нарождающаяся технология развивается с необычайной быстротой — за
ней трудно уследить. Сайт http://www.voip-info.org чудесный ресурс для
+
ней трудно уследить. Сайт http://www.voip-info.org - чудесный ресурс для
 
каждого, кто работает с VoIP, даже если Asterisk не является «частью
 
каждого, кто работает с VoIP, даже если Asterisk не является «частью
 
уравнения». Даже не пытайтесь настроить VoIP-телефон от Cisco или
 
уравнения». Даже не пытайтесь настроить VoIP-телефон от Cisco или
 
Polycom, не посетив этот сайт: без толкового руководства вы можете зря
 
Polycom, не посетив этот сайт: без толкового руководства вы можете зря
 
потратить время, пытаясь во всём разобраться.
 
потратить время, пытаясь во всём разобраться.

Версия 13:31, 17 декабря 2008

Содержание

Asterisk: замените вашу АТС

Душа горит желанием внедрить в своей организации VoIP взамен недешёвой АТС, но не уверены, что справитесь? Попробуйте эту открытую систему и добавьте отличные функции — например, конференции с интернет-вызовами.

Выход технологии за пределы круга своих приверженцев в коммерческий мир всегда волнителен. Это произошло с Интернетом в середине девяностых; с Linux незадолго до смены тысячелетий; и теперь это происходит с IP-телефонией. Поскольку «голос поверх IP» (Voice over IP, VoIP) — это сервис, работающий поверх общедоступного Интернета (или, возможно, сегмента частной LAN/WAN), большинство протоколов и стандартов, используемых данной технологией, открыты, и это способствует разработке широкой номенклатуры программ и оборудования. Есть несколько различных реализаций VoIP, каждая из которых имеет свои преимущества и недостатки.


Приложение, которое я здесь демонстрирую, Asterisk — это открытая УАТС (учрежденческая АТС), или телефонный узел частного пользования (private branch exchange, PBX). Хотя Asterisk был разработан для использования с VoIP — и поддерживает богатый набор протоколов VoIP, включая SIP и H.323 — им вполне можно бесплатно заменить УАТС даже и без функций VoIP. Мы особо приглашаем собрать её для себя любителей удушающе больших счетов от телекоммуникационных компаний и непристойных тарифов на «дальние» и международные звонки (см. врезку «Подключение к телефонной сети общего пользования»).

На этом уроке я предполагаю, что вы пошли путём свободного VoIP. Мы сосредоточимся на трёх специфических функциях Asterisk:

  • Как уберечь передачу вызовов от нестабильности Интернета.
  • Как поддерживать связь с друзьями и коллегами с помощью конференции.
  • Как помещать входящие звонки в очередь

Но как это работает? Кто использует УАТС? И о чём я вообще тут толкую?

Если вы не привыкли к телефонии, вам придётся потерпеть, пока я коротко опишу её функционирование — но, с другой стороны, крутые хакеры вроде вас должны бы терпимо относиться к техническим разъяснениям. Приступим. Любая реализация VoIP в принципе состоит из двух компонентов: процесс, передающий звуковую информацию от пользователя в сеть VoIP (обычно, телефон), и процесс, позволяющий оборудованию VoIP взаимодействовать с телефонной сетью общего пользования (ТфОП). Хотя люди с техническим складом ума из многих стран терпеть не могут общую телефонную сеть, всё же это стандарт, и к ней подсоединён почти каждый. Как бы ни была хороша технология VoIP, пользуются ею не все, так что не обойтись без способности звонить на стандартные телефонные системы и принимать вызовы практически от любого абонента в мире.

Наша задача согласовать две отдельные телефонные сети не нова - любое предприятие с более чем пятью сотрудниками, вероятно, имеет внутреннюю телефонную сеть с расширениями и голосовыми услугами. Чтобы подключить эту сеть к общей коммутационной сети (public switched telephone network, PSTN), используется УАТС. УАТС можно рассматривать как телефонный маршрутизатор, со своим внутренним диапазоном адресов (известных также как добавочные номера или расширения, extensions) и доступом к общим номерам снаружи. УАТС хорошего качества стоят не дёшево (несколько тысяч долларов и более за абсолютный минимум функций), зато предоставляют ожидаемую пользователями надёжность почти со 100%-й готовностью на протяжении нескольких лет, если не десятилетий.

При формировании среды VoIP, для ИТ-персонала УАТС — первоочередная область внимания, поскольку это линия фронта между ТфОП и нашими пользователями. Коммерческие системы УАТС с поддержкой VoIP предлагаются почти всеми, кто использует стандартные устройства УАТС — посмотрите на решения Nortel (http://www.nortel.com), Lucent (http://www.lucent.com) и Cisco (http://cisco.com) - но имеется замечательная альтернатива в настоящем стиле open source, работающая на стандартном оборудовании Intel. И здесь мы возвращаемся к Asterisk.


Будем знакомы

Эта программа была разработана Марком Спенсером [Mark Spencer], чья телефонная компания Digiun оказала проекту разработке Asterisk первичную поддержку, а вообще-то поставляет телекоммуникационное оборудование. Asterisk бесплатен для загрузки, что делает использование УАТС возможным для очень маленьких фирм и даже отдельных пользователей.

Во многих дистрибутивах, включая Fedora Core и Debian, доступны двоичные пакеты Asterisk, а также модули ядра и требуемые библиотеки поддержки. Пока оборудование для соединения с ТфОП (PSTN) не используется, поддержка на уровне ядра не нужна. Пользователи Debian могут просто выполнить apt-get install Asterisk, чтобы загрузить и установить систему Asterisk, или скачать исходные коды с http://www.Asterisk.org.

Сборка Asterisk проста, хотя и требует компиляции libpri и zaptel для C-заголовков. Установить его можно стандартно: make && make install с правами суперпользователя — для большинства пользователей сборка пройдёт успешно. Asterisk потребует немного времени на компиляцию, но, будучи установленным, он будет использовать некоторые файлы конфигурации по умолчанию, поставляемые с пакетом.

Мы можем протестировать установленный нами Asterisk, выполнив от имени суперпользователя:

# Asterisk -cvvvvv

На экране замелькает всевозможная информация, по мере загрузки каждого модуля, но в конечном счёте мы увидим простенькое приглашение, с помощью которого сможем управлять нашей системой Asterisk:

Asterisk Ready.
CLI>

Командная строка Asterisk весьма напоминает Cisco IOS, так что если вы знакомы с этим популярным ПО для маршрутизаторов, то моментально в ней разберётесь. Команда show version выведет текущую версию Asterisk, а все команды можно просмотреть, введя ? в командной строке. Поначалу наиболее полезной командой будет show modules, которая отображает все модули, входящие в комплекс Asterisk. Каждая из возможностей Asterisk, например, обеспечение протоколов телефонии, кодеки для сжатия звука и различные устанавливаемые по умолчанию приложения, представлена в Asterisk в виде модуля.

Устойчивая маршрутизация вызовов

Теперь, после установки, самое время воспользоваться Asterisk для решения нашей первой общей проблемы телефонии: непрофессиональная маршрутизация вызовов.

Понятно, что полным-полно провайдеров VoIP с бизнес-моделями отнюдь не звёздного уровня (см. врезку «Выбор вашего оператора VoIP», там перечислены операторы, имеющие репутацию солидных). Пусть они и предлагают звонки в Тибет за копейки, но человек разумный вряд ли будет ожидать высокой стабильности их сети. Asterisk предоставляет достаточную гибкость в подключении к более чем одному оператору VoIP для обработки вызовов, и мы можем построить логику нашей УАТС так, что если один оператор вдруг «умрёт», для звонков во внешний мир станет использоваться другой метод.

Жизненно важная составляющая в этой смеси — приведённый ниже макрос «дозвона», он важнее всех тех, что вам доведётся увидеть (по крайней мере, сегодня на уроке):

[macro-dial]
exten=>s,1,Dial(${ARG1},120)
exten=>s,2,Goto(s-${DIALSTATUS},1)
exten=>s-NOANSWER,1,Handup
exten=>s-BUSY,1,Busy(45)
exten=>s-CONGESTION,1,NoOp
exten=>s-CHANUNAVAIL,1,NoOp
exten=>s-.,1,Goto(s-NOANSWER,1)

Как видите, макрос позволяет нам создать список методов для передачи клиентских звонков и не волноваться об «уборке» после себя.

Мы можем реализовать этот макрос в соответствии с нашим номерным планом и логикой, используемой для перенаправления вызовов, в extensions.conf:

exten=>_0.,1,Macro(dial,IAX2/carrier1/${EXTEN})
exten=>_0.,2,ResetCDR
exten => _0.,3,Macro(dial,IAX2/carrier2/${EXTEN})
exten=>_0.,4,Hangup()

Эту конфигурацию можно расширять как угодно, добавляя в список других операторов VoIP. Её недостаток — когда звонок уже принят, нет гарантии, что он пройдёт гладко. Немногие конечные пользователи хотели бы иметь дело с недостатками вроде плавающего или одностороннего звука и прерванных соединений, но как только провайдер VoIP берёт вызов в свои руки, мы, естественно, предполагаем, что он всё сделает правильно. Если у вас достаточно времени, вы, думаю, сможете набросать что-то в пять строк на Perl для анализа вызовов, сделанных из Asterisk, и определить, какие маршруты более надёжны.

В больших системах основное преимущество даёт маршрутизация по критерию наименьшей стоимости (Least Cost Routing, LCR), разновидность услуги сравнения, особенно когда у провайдеров различаются тарифы для звонков за границу. Тарифные планы пары провайдеров можно поместить в базу данных и использовать для определённых звонков провайдера, предложившего более низкую цену. Подробную информацию можно получить на http://cpan.uwinnipeg.ca/htdocs/Asterisk-LCR.

Строим конференц-связь

Теперь — наша вторая задача. Все телефоны, кроме самых простых, способны принимать трёхсторонние звонки, так что можно организовать небольшую конференцию с двумя другими абонентами. Если участников больше трёх, это усложняется и требует усовершенствованного решения, ориентированного на группы абонентов. Даже если вы проводите основную часть своих групповых дискуссий в сети, не мешает знать, как создать мост конференций и запустить его, на случай, если сеть IRC будет неработоспособна.

Для поддержки телефонных конференций Asterisk предоставляет приложение, известное как MeetMe; примеры конфигураций включены в поставку Asterisk. Основная зависимость MeetMe — подсистема времени Asterisk. Обычно, чтобы предоставить точные часы, Asterisk использует драйвер Zaptel и физические устройства; однако это доступно не всегда, особенно в случае серверов-стоек, где разъёмы PCI в большом дефиците. Вместо этого, в ядре 2.6 и текущем релизе Zaptel вы можете использовать модуль ядра ztdummy, и всё замечательно заработает. Многие функции Asterisk связаны с синхронизацией, так что при подгруженном ztdummy всё работает гораздо более гладко.

Построить мост конференций в MeetMe.conf совсем не сложно, требуется только номер ID конференции и необязательный PIN-код для доступа:

conf => 2345,9938

Мы можем затем переключиться на этот мост из нашего extensions. conf:

exten => 2000,1,MeetMe(2345)

Первому позвонившему сообщат, что он пока только один, и будет проигрываться мелодия ожидания. Как только присоединится второй абонент, мелодия ожидания завершится, и они смогут побеседовать. При подключении или отсоединении очередного абонента все будут оповещаться об этом звуковым сигналом. MeetMe имеет огромный набор опций, включая расширения для подключения к конференции с различными предпочтениями. Это идеально, когда мы хотим, чтобы определённые абоненты подсоединились и послушали, но не смогли ввязаться в разговор; или когда к мосту уже подключено несколько человек, но мелодия ожидания звучит до тех пор, пока не объявится некая конкретная личность.

Есть ряд версий мостов конференций сторонних разработчиков, работающих с Asterisk, но MeetMe имеет так много опций, что его замену обосновать очень трудно.

Управление очередью

Теперь мы можем заняться третьей задачей Asterisk, которая ждёт своего часа, слушая мелодию Greensleeves буквально с самого начала урока. Любая организация, клиентов у которой намного больше, чем сотрудников на телефоне, должна рационально расставить приоритеты звонков и обрабатывать их так, чтобы люди не спятили окончательно. Очереди звонков хороши для решения первой проблемы, хотя некоторые считают, что они могут серьёзно подорвать психическое здоровье клиентов. Типичная очередь — это система, когда дозвонившийся абонент слушает некоторое время музыку, затем один из агентов может поднять телефон и ответить на звонок. Asterisk легко с этим справляется при помощи приложения Queue.

Очереди определены в файле queues.conf, который имеет ту же структуру, что и другие файлы конфигурации Asterisk. Каждая очередь строится с собственной конфигурацией и списком агентов. Простейшая очередь может выглядеть примерно так:

[support]
musiconhold=default
strategy=roundrobin
timeout=15
retry=5
wrapuptime=30
maxlen=0
announce-frequency=90
announce-holdtime=yes
announce-round-seconds=60
context=operator
reportholdtime=yes
member => SIP/200
member => SIP/208
member => SIP/212

Большая часть этой конфигурации довольно прямолинейна, хотя есть ряд опций, подстраиваемых под требования конкретной очереди. Строки announce позволяют приложению периодически сообщать звонящему, сколько он просидел в очереди и какова его позиция, и радовать его позорными сообщениями типа: «Вы — следующий на очереди, среднее время разговора — пять часов». Опция reportholdtime включает уведомления агенту о том, как долго звонящий ждал соединения. Отделам технической поддержки такая информация полезна для определения тенденций по времени вызова и может быть включена в документацию по запросу.

В нашей базовой конфигурации очереди есть только статические агенты, которые не могут покинуть очередь, пока не переведут свои телефоны в режим DnD (Do not Disturb, «не беспокоить») или не отключатся. Для людей, которые приходят и уходят, или для удалённых пользователей использование агентов позволяет подключаться к очереди, когда они хотят ответить на звонок. Система отсоединит их, если они не смогут ответить в течение определённого времени. Создадим agents. conf, похожий на этот:

[agents]
ackcall=no ; Агент не нажал #, чтобы ответить на звонок
musiconhold => default
agent => 1234,0000,Agent1_Name
agent => 1235,0000,Agent2_Name

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

exten => 700,1,AgentCallBackLogin(|${CALLERIDNUM}@local)

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

Узнайте больше

Нарождающаяся технология развивается с необычайной быстротой — за ней трудно уследить. Сайт http://www.voip-info.org - чудесный ресурс для каждого, кто работает с VoIP, даже если Asterisk не является «частью уравнения». Даже не пытайтесь настроить VoIP-телефон от Cisco или Polycom, не посетив этот сайт: без толкового руководства вы можете зря потратить время, пытаясь во всём разобраться.

Персональные инструменты
купить
подписаться
Яндекс.Метрика