Asterisk

Это статья о компьютерной телефонии, см. также Звёздочка (типографика), Астерикс.
Asterisk
Логотип программы Asterisk
Логотип Asterisk
Тип IP-PBX
Автор Марк Спенсер
Разработчики Digium, сообщество и Russell Bryant[вд][3]
Написана на Си[4]
Операционные системы кроссплатформенность и UNIX[5]
Первый выпуск 1999[1][2]
Последняя версия 21.0.0
Репозиторий github.com/asterisk/aste…
Лицензия GNU GPL
Сайт asterisk.org (англ.)
Логотип Викисклада Медиафайлы на Викискладе

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

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

Для создания дополнительной функциональности можно воспользоваться собственным языком 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[6].

Версии

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

  • 1.0 — Выпущена 23 сентября 2004 г[7].
  • 1.2 — Выпущена 15 ноября 2005[8]
  • 1.4 — Выпущена 26 декабря 2006[9]
  • 1.6 — Выпущена 2 октября 2008[10]
Начиная с версии 1.6, Asterisk более не поддерживает Zaptel, оставлена только поддержка DAHDI.
  • 1.8 — Выпущена 21 октября 2010[11]
Отличие от предыдущих версий: Поддержка SRTP, поддержка IPv6 в SIP-драйвере, интеграция работы с календарём, новая система журналирования звонков «Channel Event Logging» (CEL), поддержка «Advice of Charge» — сервиса для информирования о стоимости звонка; интеграция Google Talk и Google Voice; поддержка изменения высоты звука[англ.].
  • 10.0 — Выпущена 15 декабря 2011[12]
Несмотря на смену нумерации, десятая версия не несёт кардинальных изменений. Появилась поддержка высококачественного звука, до 192 кГц; с помощью приложения ConfBridge появилась поддержка видеоконференций; Asterisk теперь может являться сервером текстовых сообщений по протоколам SIP и XMPP, поддержка работы шлюзом для передачи факсимильных сообщений по протоколу T.38; поддержка кодеков SILK и CELT[англ.].
  • 11 — Выпущена 31 октября 2012[13]
Добавлена поддержка WebRTC, которая позволяет совершать звонки прямо из браузера, без задействования каких-либо плагинов в браузере[14]; новый драйвер chan_motif поддерживает протоколы Google Talk и Jingle, в том числе и видео; расширена поддержка IPv6.
Ряд кардинальных изменений, таких, как новый драйвер канала SIP (основан на библиотеке PJSIP), новые механизмы Asterisk REST Interface, добавлена поддержка IPv6 в драйвер канала IAX2 и др.
  • 13 — Выпущена 28 октября 2014[15]
LTS-релиз платформы. Передача событий безопасности через AMI. Расширение интерфейсов AMI и ARI, поддержка новых возможностей библиотеки PJSIP.
Поддержка Asterisk 13 продлится до октября 2021 года[16].
  • 14 — 28 cентября 2016[17] Добавлены возможности использования различных доменных имён, для использования нескольких разных виртуальных АТС на одной системе, полноценной использование АААА записей для протокола IPv6, несколько srv записей, или NAPTR записей. Добавлена возможность удалённого проигрывания медиа-файлов интерактивного меню, поддержка плейлистов, и др.
  • 15 — 3 октября 2017[18] Asterisk 15 отнесён к категории выпусков с обычной поддержкой, обновления для которых поддерживается в течение двух лет. Ключевые улучшения: средства для организации проведения видеоконференций с несколькими участниками; обеспечена полноценная поддержка WebRTC; добавлена поддержка мультиплексирования потоков RTCP и коммутации между собой нескольких потоков, упрощающих преодоление трансляции адресов и межсетевых экранов и сокращающих время настройки вызова; добавлена поддержка проброса видеопотоков с использованием кодека VP9; добавлен унифицированный план WebRTC, позволяющий использовать протокол SDP для согласования соединений между несколькими мультимедийными источниками; в основную версию встроена библиотека pjproject, которая включена по умолчанию; добавлена поддержка режима systemd для активации сервиса при обращении к сокету[16].
  • 16 — 8 августа 2018
  • 17 — 28 августа 2019
  • 18 — 20 октября 2020
  • 19 — 2 ноября 2021
  • 20 — 28 сентября 2022
  • 21 — 18 октября 2023
  • 22 — 26 сентября 2024

Оборудование

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

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

Кроме применения описанного оборудования, для полноценной работы АТС Asterisk используется и другое оборудование:

  • FXO-шлюзы — для подключения и настройки аналоговых телефонных номеров (ТСоП);
  • FXS-шлюзы — для настройки и подключения аналоговых телефонных аппаратов и факсовых аппаратов;
  • VoIP GSM-шлюзы — для звонков через SIM-карты сотовых операторов;
  • IP-телефоны — для совершения телефонных звонков через Asterisk.

Протоколы

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

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

  • DUNDi — протокол, также разработанный Digium.
  • OSP.
  • T.38, поддерживается передача факсов.

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

Программирование

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

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

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

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

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

См. также

Ссылки

Примечания

  1. https://wiki.asterisk.org/wiki/display/AST/A+Brief+History+of+the+Asterisk+Project
  2. https://github.com/asterisk/asterisk/commits/master?after=1376aa3f2999a760e983d5761cf608bfe15a38b8+30570
  3. https://www.aosabook.org/en/intro1.html
  4. The asterisk Open Source Project on Open Hub: Languages Page — 2006.
  5. https://wiki.asterisk.org/wiki/display/AST/Beginning+Asterisk
  6. История создания содержится во вступлении в книге Asterisk™: The Future of Telephony, Second Edition by Jim Van Meggelen, Leif Madsen, and Jared Smith ISBN 978-0-596-51048-0 PDF
  7. Asterisk 1.0 released. TMCnet (23 сентября 2004). Дата обращения: 26 марта 2009. Архивировано из оригинала 2 июня 2012 года.
  8. Keating, Tom Asterisk 1.2 released. TMCnet (16 ноября 2005). Дата обращения: 26 марта 2009. Архивировано из оригинала 2 июня 2012 года.
  9. Asterisk 1.4.0 released. Asterisk.org (20 декабря 2006). Дата обращения: 26 марта 2009. Архивировано из оригинала 2 июня 2012 года.
  10. Asterisk 1.6.0 released. Asterisk.org (2 октября 2008). Дата обращения: 26 марта 2009. Архивировано из оригинала 2 июня 2012 года.
  11. Asterisk 1.8.0 Now Available! Asterisk.org (21 октября 2010). Дата обращения: 24 октября 2010. Архивировано 2 июня 2012 года.
  12. Asterisk 10.0.0 Is Released! Asterisk.org (15 декабря 2011). Дата обращения: 26 декабря 2011. Архивировано 2 июня 2012 года.
  13. Asterisk 11.0.0 Now Available! Дата обращения: 1 ноября 2012. Архивировано 31 октября 2012 года.
  14. Разработка Asterisk 11: Поддержка WebRTC Архивировано 14 октября 2012 года.
  15. Asterisk 13.0.0 Now Available! — Inside the Asterisk. Дата обращения: 31 октября 2014. Архивировано из оригинала 31 октября 2014 года.
  16. 1 2 Asterisk Versions. wiki.asterisk.org. Дата обращения: 9 июня 2018. Архивировано 12 июня 2018 года.
  17. 14 анонсирован в Хантсвилле, Алабама (недоступная ссылка)
  18. "Open Source Asterisk 15 Released - Inside the Asterisk". Inside the Asterisk (англ.). 2017-10-03. Архивировано 12 июня 2018. Дата обращения: 7 июня 2018.
  19. «Zaptel project being renamed to DAHDI». Дата обращения: 11 октября 2008. Архивировано из оригинала 11 октября 2008 года.
  20. mISDN. Дата обращения: 4 мая 2022. Архивировано 29 декабря 2018 года.
  21. Chanskype. Дата обращения: 4 мая 2022. Архивировано 8 марта 2022 года.
  22. Asterisk GUI: Graphical user interfaces. Дата обращения: 3 марта 2021. Архивировано 27 февраля 2021 года.