1. Главная страница » Компьютеры

Ip телефония на базе asterisk

Автор: | 16.12.2019

Что такое IP-АТС Asterisk, как это работает, варианты использования и перспективы

На сегодняшний день покупать обычную или цифровую АТС в небольшой офис или Call-центр не выгодно. На смену традиционной телефонии пришла IP-телефония, которой свойственна низкая стоимость звонка, легкость развертывания, простота конфигурирования, масштабируемость и безопасность соединения.

IP АТС – телефонная станция, обеспечивающая передачу голоса через Интернет (на основе протокола Voice over IP).

В этой статье расскажем об IP-телефонии, организованной на базе программной IP АТС «Asterisk».

Аппаратная часть

Asterisk поддерживает любое оборудования для Voice over IP (VoIP). Устройства различных производителей VoIP-оборудования можно подключать без особых проблем.

Функциональные возможности

Asterisk обладает всеми возможностями классической АТС, поддерживает множество VoIP протоколов и предоставляет функции голосовой почты, конференций, интерактивного голосового меню (IVR), центра обработки вызовов (постановка звонков в очередь и распределение их по агентам используя различные алгоритмы), запись CDR и прочие функции. Asterisk не имеет ограничений по числу абонентов, каналов и функциональных возможностей.

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

Реализация

1. Начнем с того, что Asterisk устанавливается на Linux.

Первый вопрос – какой вариант реализации выбрать. Собственно, главный выбор – «плоский» Asterisk, управляемый через командный интерфейс (с помощью командной строки),

или система «Asterisk» с Web-интерфейсом (их, как уже упоминалось, написано достаточное количество).

Первый вариант предполагает больше гибкости и более широкие возможности, а второй – более простую настройку и управление.

Мы бы рекомендовали «плоский» Asterisk для колл-центров со сложной логикой очередей, с многочисленными особыми требованиями к коммутации вызовов.

Для офисных задач и задач малого предприятия реализация сложной логики не важна. Поэтому здесь ориентируемся на построение более простой системы, предназначенной для обслуживания до 100 внутренних телефонов при многоканальных входных линиях от одного или нескольких телефонных операторов.

2. Второй практический вопрос, который надо решить – какую платформу выбрать для использования Asterisk. Вариантов два: локальный сервер или «облако»?

Локальный сервер для IP-АТС в современных условиях, может обойтись почти бесплатно: допустим имеются старые (или не очень старые) компьютеры. Нужно всего: 2 GB ОЗУ и один процессор (можно даже какой-то старый и не очень мощный).

Но – внимание: если старый компьютер совсем уж барахло…То такой сервер может вас подвести, отказав в самый неподходящий момент. И тогда эффект экономии денег компании может оказаться совершенно обратным.

На сегодняшний день стоимость системного блока компьютера для развертывания IP – АТС в офисе не превышает $200.

Итак, вопрос с сервером либо решен, либо – направляемся «в облака».

Виртуальная АТС

Очевидный плюс облака – за надежность работы отвечает облачный провайдер и не надо тратить деньги на сервер. Ежемесячная плата за виртуальный «сервер» из одного ядра и 2 GB ОЗУ будет не высокой: около 1000 руб (или даже меньше). Также можно использовать облачную АТС (эксплуатация виртуального сервера и облачной АТС имеет незначительную разницу).

Немного о «подводных камнях» виртуальной АТС

Операторы телефонии предлагают разные условия использования своих облачных АТС. Есть ограничения. Это могут быть ограничения на количество внутренних номеров, всевозможные функциональные особенности. Например, не все такие системы предоставляют возможность записи разговоров, не все типы IP-телефонов обслуживаются, иногда страдает качество связи.

Существует набор ограничений, общий для виртуальных АТС всех телефонных операторов. Заключается он в следующем: виртуальные АТС не допускают одновременного подключения других телефонных операторов или перехода на другого оператора. Поэтому вы не сможете оптимизировать расходы, автоматически выбирая тарифы для конкретных соединений, или использовать другого оператора с текущей виртуальной АТС.

Т.е. телефонный оператор с помощью своей виртуальной АТС может на начальном этапе предоставить решение вопросов телефонии. Но при этом будет поставлен серьезный барьер на пути дальнейшего развития коммуникаций вашей компании.

Еще стоит обратить внимание на ситуацию, в которой одному внутреннему абоненту необходимо позвонить другому внутреннему абоненту. В этом случае разговор абонентов будет проходить по «большому кругу», то есть от аппарата внутреннего Абонента 1 сигнал пройдёт до маршрутизатора офиса с выходом во внешнюю сеть (на котором должны быть открыты соответствующие порты, что в свою очередь увеличивает «площадь атаки», поскольку требуется открывать SIP-порты для каждого аппарата), прийти на виртуальный сервер IP-АТС (облачную АТС), расположенный в некоем дата-центре, после чего вернётся на исходный маршрутизатор и из внешней линии будет отправлен на внутреннюю на аппарат внутреннего Абонента 2. Длинный путь не правда ли? А если таких соединений больше десятка?

Безопасность может стать проблемой, поскольку один внутренний абонент, разговаривая с другим внутренним абонентом, будет выходить во внешнюю сеть. Такую структуру часто взламывают и «прокачивают» через него звонки, скажем, из Нигерии в Палестину – на дорогие платные номера, причем по всем доступным каналам. За ночь ваша компания может потерять огромную сумму, и хорошо, если телефонный провайдер ввел ограничения для таких случаев, тогда потери будут не столь существенными. Вообще любой видимый в интернете SIP-порт (о необходимости открытия которых я говорил выше) подвергается атакам уже через несколько минут после появления, поэтому вопросы защиты должны прорабатываться тщательно и профессионально, поскольку чем больше портов открыто, тем больше «площадь атаки».

При этом «траффик», проходящий между внутренними абонентами, необходимо шифровать, поскольку в этом варианте все разговоры между внутренними абонентами не составит большого труда прослушать (перехватить).

IP-АТС c использованием сервера

В случае использования «своего» сервера (расположенного внутри сети) картина будет другой.

— минимизирует «площадь атаки» (поскольку сокращает количество открытых портов);

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

— позволяет использовать нескольких операторов связи или переключаться на другого оператора (имеющего более «интересные» тарифы) в любой момент, не настраивая заново АТС.

Если выбранный телефонный провайдер осуществляет соединение по SIP, это вызовет минимум затрат и минимум технических проблем.

3. Далее дело за малым – подключить IP-телефоны или использовать так называемые «софтфоны». Использование телефонных аппаратов, конечно, лучший вариант. У них всегда хорошее качество звука и большое количество разнообразных функций. При этом от марки и модели зависит удобство использования и цена, но основные качества с точки зрения телефонии будут отличаться не сильно.

«Софтфоны» – это программы, позволяющие использовать ваш компьютер в качестве телефона, нужны только наушники и микрофон.

Встречный голосовой поток от Боба обрабатывается по такой же схеме, но через Google voice recognition + Google translate + Google speech engine, такоим образом доходит до Алёны уже по-русски. Система работает в многопоточном режиме, т.е. нет необходимости ожидать завершения распознавания/перевода предыдущего фрагмента, чтобы наговаривать следующий.

Схема полностью модульна, позволяет гибко переключать все элементы, заменяя, например, всю цепочку только сервисами Google для обоих направлений, или, например, обрабатывая текстовый перевод в обоих направлениях облачным сервисом перевода Яндекс https://translate.yandex.ru.

Система начинает распознавание не дожидаясь окончания фрагмента и сама определяет его начало и конец по паузе в конце предложения. Отметим также простоту интеграции и скорость перевода близкую к реальному разговору.

К слову сказать, Google recognition заявляет об огромном списке языков для распознавания:

Language languageCode Language (English name)
Afrikaans (Suid-Afrika) af-ZA Afrikaans (South Africa)
አማርኛ (ኢትዮጵያ) am-ET Amharic (Ethiopia)
Հայ (Հայաստան) hy-AM Armenian (Armenia)
Azərbaycan (Azərbaycan) az-AZ Azerbaijani (Azerbaijan)
Bahasa Indonesia (Indonesia) id-ID Indonesian (Indonesia)
Bahasa Melayu (Malaysia) ms-MY Malay (Malaysia)
বাংলা (বাংলাদেশ) bn-BD Bengali (Bangladesh)
বাংলা (ভারত) bn-IN Bengali (India)
Català (Espanya) ca-ES Catalan (Spain)
Čeština (Česká republika) cs-CZ Czech (Czech Republic)
Dansk (Danmark) da-DK Danish (Denmark)
Deutsch (Deutschland) de-DE German (Germany)
English (Australia) en-AU English (Australia)
English (Canada) en-CA English (Canada)
English (Ghana) en-GH English (Ghana)
English (Great Britain) en-GB English (United Kingdom)
English (India) en-IN English (India)
English (Ireland) en-IE English (Ireland)
English (Kenya) en-KE English (Kenya)
English (New Zealand) en-NZ English (New Zealand)
English (Nigeria) en-NG English (Nigeria)
English (Philippines) en-PH English (Philippines)
English (Singapore) en-SG English (Singapore)
English (South Africa) en-ZA English (South Africa)
English (Tanzania) en-TZ English (Tanzania)
English (United States) en-US English (United States)
Español (Argentina) es-AR Spanish (Argentina)
Español (Bolivia) es-BO Spanish (Bolivia)
Español (Chile) es-CL Spanish (Chile)
Español (Colombia) es-CO Spanish (Colombia)
Español (Costa Rica) es-CR Spanish (Costa Rica)
Español (Ecuador) es-EC Spanish (Ecuador)
Español (El Salvador) es-SV Spanish (El Salvador)
Español (España) es-ES Spanish (Spain)
Español (Estados Unidos) es-US Spanish (United States)
Español (Guatemala) es-GT Spanish (Guatemala)
Español (Honduras) es-HN Spanish (Honduras)
Español (México) es-MX Spanish (Mexico)
Español (Nicaragua) es-NI Spanish (Nicaragua)
Español (Panamá) es-PA Spanish (Panama)
Español (Paraguay) es-PY Spanish (Paraguay)
Español (Perú) es-PE Spanish (Peru)
Español (Puerto Rico) es-PR Spanish (Puerto Rico)
Español (República Dominicana) es-DO Spanish (Dominican Republic)
Español (Uruguay) es-UY Spanish (Uruguay)
Español (Venezuela) es-VE Spanish (Venezuela)
Euskara (Espainia) eu-ES Basque (Spain)
Filipino (Pilipinas) fil-PH Filipino (Philippines)
Français (Canada) fr-CA French (Canada)
Français (France) fr-FR French (France)
Galego (España) gl-ES Galician (Spain)
ქართული (საქართველო) ka-GE Georgian (Georgia)
ગુજરાતી (ભારત) gu-IN Gujarati (India)
Hrvatski (Hrvatska) hr-HR Croatian (Croatia)
IsiZulu (Ningizimu Afrika) zu-ZA Zulu (South Africa)
Íslenska (Ísland) is-IS Icelandic (Iceland)
Italiano (Italia) it-IT Italian (Italy)
Jawa (Indonesia) jv-ID Javanese (Indonesia)
ಕನ್ನಡ (ಭಾರತ) kn-IN Kannada (India)
ភាសាខ្មែរ (កម្ពុជា) km-KH Khmer (Cambodia)
ລາວ (ລາວ) lo-LA Lao (Laos)
Latviešu (latviešu) lv-LV Latvian (Latvia)
Lietuvių (Lietuva) lt-LT Lithuanian (Lithuania)
Magyar (Magyarország) hu-HU Hungarian (Hungary)
മലയാളം (ഇന്ത്യ) ml-IN Malayalam (India)
मराठी (भारत) mr-IN Marathi (India)
Nederlands (Nederland) nl-NL Dutch (Netherlands)
नेपाली (नेपाल) ne-NP Nepali (Nepal)
Norsk bokmål (Norge) nb-NO Norwegian Bokmål (Norway)
Polski (Polska) pl-PL Polish (Poland)
Português (Brasil) pt-BR Portuguese (Brazil)
Português (Portugal) pt-PT Portuguese (Portugal)
Română (România) ro-RO Romanian (Romania)
සිංහල (ශ්රී ලංකාව) si-LK Sinhala (Sri Lanka)
Slovenčina (Slovensko) sk-SK Slovak (Slovakia)
Slovenščina (Slovenija) sl-SI Slovenian (Slovenia)
Urang (Indonesia) su-ID Sundanese (Indonesia)
Swahili (Tanzania) sw-TZ Swahili (Tanzania)
Swahili (Kenya) sw-KE Swahili (Kenya)
Suomi (Suomi) fi-FI Finnish (Finland)
Svenska (Sverige) sv-SE Swedish (Sweden)
தமிழ் (இந்தியா) ta-IN Tamil (India)
தமிழ் (சிங்கப்பூர்) ta-SG Tamil (Singapore)
தமிழ் (இலங்கை) ta-LK Tamil (Sri Lanka)
தமிழ் (மலேசியா) ta-MY Tamil (Malaysia)
తెలుగు (భారతదేశం) te-IN Telugu (India)
Tiếng Việt (Việt Nam) vi-VN Vietnamese (Vietnam)
Türkçe (Türkiye) tr-TR Turkish (Turkey)
اردو (پاکستان) ur-PK Urdu (Pakistan)
اردو (بھارت) ur-IN Urdu (India)
Ελληνικά (Ελλάδα) el-GR Greek (Greece)
Български (България) bg-BG Bulgarian (Bulgaria)
Русский (Россия) ru-RU Russian (Russia)
Српски (Србија) sr-RS Serbian (Serbia)
Українська (Україна) uk-UA Ukrainian (Ukraine)
עברית (ישראל) he-IL Hebrew (Israel)
العربية (إسرائيل) ar-IL Arabic (Israel)
العربية (الأردن) ar-JO Arabic (Jordan)
العربية (الإمارات) ar-AE Arabic (United Arab Emirates)
العربية (البحرين) ar-BH Arabic (Bahrain)
العربية (الجزائر) ar-DZ Arabic (Algeria)
العربية (السعودية) ar-SA Arabic (Saudi Arabia)
العربية (العراق) ar-IQ Arabic (Iraq)
العربية (الكويت) ar-KW Arabic (Kuwait)
العربية (المغرب) ar-MA Arabic (Morocco)
العربية (تونس) ar-TN Arabic (Tunisia)
العربية (عُمان) ar-OM Arabic (Oman)
العربية (فلسطين) ar-PS Arabic (State of Palestine)
العربية (قطر) ar-QA Arabic (Qatar)
العربية (لبنان) ar-LB Arabic (Lebanon)
العربية (مصر) ar-EG Arabic (Egypt)
فارسی (ایران) fa-IR Persian (Iran)
हिन्दी (भारत) hi-IN Hindi (India)
ไทย (ประเทศไทย) th-TH Thai (Thailand)
한국어 (대한민국) ko-KR Korean (South Korea)
國語 (台灣) zh-TW Chinese, Mandarin (Traditional, Taiwan)
廣東話 (香港) yue-Hant-HK Chinese, Cantonese (Traditional, Hong Kong)
日本語(日本) ja-JP Japanese (Japan)
普通話 (香港) zh-HK Chinese, Mandarin (Simplified, Hong Kong)
普通话 (中国大陆) zh Chinese, Mandarin (Simplified, China)

Встраиваем переводчик в Астериск

Обратная связь — опрос: Asterisk Usage Survey

Для тех, кто ещё меня не знает, меня зовут Мэтью Фредриксон (Matthew Fredrickson) и я руковожу проектом Asterisk. Во-первых, я хотел бы поблагодарить всех вас, кто вносит свой вклад в проект. Будь то на уровне разработчиков, или отвечая на вопросы на форумах и списках рассылки, или разрабатывая документацию, или просто в целом, выступая за это в своей сфере влияния. Требуется так много усилий людей, чтобы сделать проект тем, что он есть, и поддерживать такое большое и яркое сообщество пользователей и разработчиков.

Мы создали общий опрос о том, как люди используют Asterisk. Это займет всего 10-15 минут, но поможет нам лучше понять, как наши пользователи используют Asterisk и помогут нам понять, есть ли важные области Asterisk,
которые мы недооцениваем с точки зрения развития. Если вы не возражаете принять участие, мы были бы вам очень признательны. Еще раз большое спасибо за ваше время и наилучшие пожелания каждому из вас в ваших усилиях.

Это статья о компьютерной телефонии, см. также Звёздочка (типографика), Астерикс.

Asterisk
Логотип Asterisk
Тип IP-PBX
Автор Марк Спенсер
Разработчик Digium и сообщество
Написана на Си[5]
Операционная система кроссплатформенность и UNIX[6]
Первый выпуск 1999[1][2]
Последняя версия
  • 17.0.0 ( 25 октября2019 ) [3]
Кандидат в релизы
  • 17.0.0-rc3 ( 16 октября2019 ) [4]
Лицензия GNU GPL
Сайт asterisk.org

Asterisk — свободное решение компьютерной телефонии (в том числе, VoIP) с открытым исходным кодом от компании Digium, первоначально разработанное Марком Спенсером. Приложение работает на операционных системах Linux, FreeBSD, OpenBSD и Solaris и др. Имя проекта произошло от названия символа «*» (англ. asterisk — «звёздочка»).

Asterisk в комплексе с необходимым оборудованием обладает всеми возможностями классической АТС, поддерживает множество VoIP-протоколов и предоставляет богатые функции управления звонками, среди них:

  • Голосовая почта
  • Конференц-связь
  • IVR (интерактивное голосовое меню)
  • Центр обработки звонков (постановка звонков в очередь и распределение их по абонентам, используя различные алгоритмы)
  • Call Detail Record (подробная запись о вызове)

Для создания дополнительной функциональности можно воспользоваться собственным языком Asterisk для написания плана нумерации, написав модуль на языке Си, либо воспользовавшись Asterisk Gateway Interface — гибким и универсальным интерфейсом для интеграции с внешними системами обработки данных. Модули, выполняющиеся через AGI, могут быть написаны на любом языке программирования.

Asterisk распространяется на условиях двойной лицензии, благодаря которой одновременно с основным кодом, распространяемым по открытой лицензии GNU GPL, возможно создание закрытых модулей, содержащих лицензируемый код: например, модуль для поддержки кодека G.729.

Благодаря свободной лицензии Asterisk активно развивается и поддерживается тысячами людей со всей планеты.

Для того, чтобы уйти от проблем, создаваемых двойным лицензированием, был создан форк проекта, называющийся CallWeaver (в настоящее время «мёртв»).

Содержание

История [ править | править код ]

Марк Спенсер, создатель программы, основал компанию Linux Support Services. Спенсер хотел организовать 24-часовую службу голосовой поддержки, однако начальный бюджет компании в 4000 долларов не позволял приобрести крайне дорогие системы Call-центров. В 2001 в связи с кризисом доткомов у Linux Support Services начались проблемы, и Спенсер начал думать, что разработка программной АТС с открытыми исходными текстами может оказаться интереснее, чем поддержка пользователей Linux вообще. Джим Диксон из Zapata Telephony предложил бизнес-модель для Asterisk. Тогда же и поменялось название компании — с Linux Support Services на Digium [7] .

В нумерации версий Asterisk придерживаются принципа: версии в разработке — нечётные, стабильные — чётные.

  • 1.0 — Выпущена 23 сентября 2004 г [8] .
  • 1.2 — Выпущена 15 ноября 2005 [9]
  • 1.4 — Выпущена 26 декабря 2006 [10]
  • 1.6 — Выпущена 2 октября 2008 [11]

Начиная с версии 1.6, Asterisk более не поддерживает Zaptel, оставлена только поддержка DAHDI.

  • 1.8 — Выпущена 21 октября 2010 [12]

Отличие от предыдущих версий: Поддержка SRTP, поддержка IPv6 в SIP-драйвере, интеграция работы с календарём, новая система журналирования звонков «Channel Event Logging» (CEL), поддержка «Advice of Charge» — сервиса для информирования о стоимости звонка; интеграция Google Talk и Google Voice; поддержка изменения высоты звука ( англ. ) .

  • 10.0 — Выпущена 15 декабря 2011 [13]

Несмотря на смену нумерации, десятая версия не несёт кардинальных изменений. Появилась поддержка высококачественного звука, до 192 кГц; с помощью приложения ConfBr > ( англ. ) .

  • 11 — Выпущена 31 октября 2012 [14]

Добавлена поддержка WebRTC, которая позволяет совершать звонки прямо из браузера, без задействования каких-либо плагинов в браузере [15] ; новый драйвер chan_motif поддерживает протоколы Google Talk и Jingle, в том числе и видео; расширена поддержка IPv6.

  • 12 — Выпущена 20 декабря 2013 (новое в версии)

Ряд кардинальных изменений, таких, как новый драйвер канала SIP (основан на библиотеке PJSIP), новые механизмы Asterisk REST Interface, добавлена поддержка IPv6 в драйвер канала IAX2 и др.

  • 13 — Выпущена 28 октября 2014 [16]

LTS-релиз платформы. Передача событий безопасности через AMI. Расширение интерфейсов AMI и ARI, поддержка новых возможностей библиотеки PJSIP. Поддержка Asterisk 13 продлится до октября 2021 года. [17]

  • 14 — 28 cентября 2016 [18] Добавлены возможности использования различных доменных имён, для использования нескольких разных виртуальных АТС на одной системе, полноценной использование АААА записей для протокола IPv6, несколько srv записей, или NAPTR записей. Добавлена возможность удалённого проигрывания медиа-файлов интерактивного меню, поддержка плейлистов, и др.
  • 15 — 3 октября 2017 [19] Asterisk 15 отнесён к категории выпусков с обычной поддержкой, обновления для которых формируются в течение двух лет. Ключевые улучшения: встроены средства для организации проведения видеоконференций с несколькими участниками; обеспечена полноценная поддержка WebRTC; добавлена поддержка мультиплексирования потоков RTCP и скрепления между собой нескольких потоков, упрощающих обход трансляторов адресов и межсетевых экранов и сокращающих время настройки вызова; добавлена поддержка проброса видеопотоков с использованием кодека VP9; добавлен унифицированный план WebRTC, позволяющий использовать протокол SDP для согласования соединений между несколькими мультимедийными источниками; в основную поставку встроена библиотека pjproject, которая включена по умолчанию; добавлена поддержка режима systemd для активации сервиса при обращении к сокету. [17]

Оборудование [ править | править код ]

Asterisk может работать как с аналоговыми линиями (FXO-/FXS-модули), так и цифровыми (ISDN, BRI и PRI — потоки Т1/E1). С помощью определённых компьютерных плат (наиболее известными производителями которых являются Digium, Sangoma, OpenVox, Rhino, AudioCodes) Asterisk можно подключить к высокопропускным линиям Т1/E1, которые позволяют работать параллельно с десятками телефонных соединений. Полный список поддерживаемого оборудования для соединения с телефонной сетью общего пользования определяется поддержкой оборудования в модулях ядра, например:

  • ‘DUHDI’, акроним «Digium Asterisk Hardware Device Interface» (ранее назывался Zaptel) [20] , разрабатывается параллельно с Asterisk компанией Digium.
  • mISDN[21] , разрабатывается Карстеном Кайлом (англ. Karsten Keil ) из команды SuSE и компанией Beronet.
  • CAPI.

Протоколы [ править | править код ]

Поддерживаются следующие протоколы:

Возможно транслировать текст и видеосигналы (например, использовать видеофон). Кроме того, реализована работа с другими компьютерными протоколами:

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

Программирование [ править | править код ]

Настройка и программирование производится с помощью нескольких механизмов:

  • диалплан, который пишется на специальном языке. Доступна как старая версия, так и новая — AEL, а также на языке Lua.
  • AGI.
  • AMI.
  • Конфигурация из баз данных.

Расширение выполняемых функций также возможно путём написания на языке Си нового модуля, что возможно благодаря подробной Doxygen-документации.

Для работы с Asterisk создано множество дистрибутивов с графическим интерфейсом [ источник не указан 2804 дня ] .

Удаленное управление АТС также может осуществляться с помощью библиотеки libamc.

Читайте также:  Huawei p smart 4pda обзор

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *