LXF82:Asterisk
|
|
|
Содержание |
Asterisk: замените вашу АТС
Душа горит желанием внедрить в своей организации VoIP взамен недешёвой АТС, но не уверены, что справитесь? Попробуйте эту открытую систему и добавьте отличные функции — например, конференции с интернет-вызовами.
Выход технологии за пределы круга своих приверженцев в коммерческий мир всегда волнителен. Это произошло с Интернетом в середине девяностых; с Linux незадолго до смены тысячелетий; и теперь это происходит с IP-телефонией. Поскольку «голос поверх IP» (Voice over IP, VoIP) — это сервис, работающий поверх общедоступного Интернета (или, возможно, сегмента частной LAN/WAN), большинство протоколов и стандартов, используемых данной технологией, открыты, и это способствует разработке широкой номенклатуры программ и оборудования. Есть несколько различных реализаций VoIP, каждая из которых имеет свои преимущества и недостатки.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Приложение, которое я здесь демонстрирую, 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.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Будем знакомы
Эта программа была разработана Марком Спенсером [Mark Spencer], чья телефонная компания Digium оказала проекту разработке 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 в виде модуля.
Устойчивая маршрутизация вызовов
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Теперь, после установки, самое время воспользоваться 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 имеет так много опций, что его замену обосновать очень трудно.
Управление очередью
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Теперь мы можем заняться третьей задачей 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, не посетив этот сайт: без толкового руководства вы можете зря потратить время, пытаясь во всём разобраться.