Asterisk — свободное решение компьютерной телефонии (в том числе, VoIP) с открытым исходным кодом от компании Digium, первоначально разработанное Марком Спенсером. Приложение работает на операционных системах Linux, FreeBSD, OpenBSD и Solaris и др. Имя проекта произошло от названия символа «*» (англ. asterisk — «звездочка»).
Asterisk в комплексе с необходимым оборудованием обладает всеми возможностями классической АТС, поддерживает множество VoIP-протоколов и предоставляет богатые функции управления звонками, среди них:
Голосовая почта Конференц-связь IVR (интерактивное голосовое меню) Центр обработки звонков (постановка звонков в очередь и распределение их по абонентам, используя различные алгоритмы) Call Detail Record (подробная запись о вызове) Для создания дополнительной функциональности можно воспользоваться собственным языком Asterisk для написания плана нумерации, написав модуль на языке Си, либо воспользовавшись AGI — гибким и универсальным интерфейсом для интеграции с внешними системами обработки данных. Модули, выполняющиеся через 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.
Версии В нумерации версий Asterisk придерживаются принципа: версии в разработке — нечётные, стабильные — чётные. 1.0 — Выпущена 23 сентября 2004 1.2 — Выпущена 15 ноября 2005 1.4 — Выпущена 26 декабря 2006 1.6 — Выпущена 2 октября 2008 Начиная с версии 1.6, Asterisk более не поддерживает Zaptel, оставлена только поддержка DAHDI. 1.8 — Выпущена 21 октября 2010 Отличие от предыдущих версий: Поддержка SRTP, поддержка IPv6 в SIP-драйвере, интеграция работы с календарём, новая система журналирования звонков «Channel Event Logging» (CEL), поддержка «Advice of Charge» — сервиса для информирования о стоимости звонка; интеграция Google Talk и Google Voice; поддержка изменения высоты звука. 10.0 — Выпущена 15 декабря 2011 Несмотря на смену нумерации, десятая версия не несёт кардинальных изменений. Появилась поддержка высококачественного звука, до 192 кГц; с помощью приложения ConfBridge появилась поддержка видеоконференций; Asterisk теперь может являться сервером текстовых сообщений по протоколам SIP и XMPP, поддержка работы шлюзом для передачи факсимильных сообщений по протоколу T.38; поддержка кодеков SILK и CELT. 11 — Выпущена 31 октября 2012 Добавлена поддержка WebRTC, которая позволяет совершать звонки прямо из браузера, без задействования каких-либо плагинов в браузере; новый драйвер chan_motif поддерживает протоколы Google Talk и Jingle, в том числе и видео; расширена поддержка IPv6. 12 — Выпущена 20 декабря 2013 (новое в версии) Ряд кардинальных изменений, таких, как новый драйвер канала SIP (основан на библиотеке PJSIP), новые механизмы Asterisk REST Interface, добавлена поддержка IPv6 в драйвер канала IAX2 и др. 13 — Выпущена 28 октября 2014 LTS-релиз платформы. Передача событий безопасности через AMI. Расширение интерфейсов AMI и ARI, поддержка новых возможностей библиотеки PJSIP.
Оборудование Asterisk может работать как с аналоговыми линиями (FXO/FXS модули), так и цифровыми (ISDN, BRI и PRI — потоки Т1/E1). С помощью определённых компьютерных плат (наиболее известными производителями которых являются Digium, Sangoma, OpenVox, Rhino, AudioCodes) Asterisk можно подключить к высокопропускным линиям Т1/E1, которые позволяют работать параллельно с десятками телефонных соединений. Полный список поддерживаемого оборудования для соединения с телефонной сетью общего пользования определяется поддержкой оборудования в модулях ядра, например:
DAHDI, акроним «Digium Asterisk Hardware Device Interface» (ранее назывался Zaptel), разрабатывается параллельно с Asterisk компанией Digium. mISDN, разрабатывается Карстеном Кайлом (англ. Karsten Keil) из команды SuSE и компанией Beronet. CAPI.
Протоколы Поддерживаются следующие протоколы: SIP, H.323, IAX2, MGCP, SIMPLE, Skinny/SCCP, XMPP (Google Talk), Unistim, Skype, через коммерческий канал. Возможно транслировать текст и видеосигналы (например, использовать видеофон). Кроме того, реализована работа с другими компьютерными протоколами:
DUNDi — протокол, также разработанный Digium. OSP. T.38, поддерживается передача факсов. Поддержка широкого спектра оборудования и компьютерных протоколов позволяет организовывать огромное количество сценариев взаимодействия сетей, получения и обработки информации.
Программирование Настройка и программирование производится с помощью нескольких механизмов:
диалплан, который пишется на специальном языке. Доступна как старая версия, так и новая — AEL, а также на языке Lua. AGI. AMI. Конфигурация из баз данных. Расширение выполняемых функций также возможно путём написания на языке Си нового модуля, что возможно благодаря подробной Doxygen-документации.
Для работы с Asterisk создано множество графических интерфейсов.
Удаленное управление АТС так же может осуществляться с помощью библиотеки libamc.
Для удобства инсталляции и использования существуют несколько готовых дистрибутивов, содержащих операционную систему, скомпилированый Астериск, необходимые модули и стандартную конфигурацию.
AsteriskNow — дистрибутив от компании Digium включает в себя 2 варианта веб-интерфейса на выбор: Asterisk GUI и FreePBX. AstLinux. AstPbx — русский дистрибутив с богатым преднастроенным функционалом с упором на .conf-файлы. Elastix — дистрибутив от компании PaloSanto Solutions OpenSource реализация идеологии унифицированных коммуникаций с локализованным WEB-интерфейсом. FreePBX — веб-интерфейс для конфигурации Asterisk. PBX in a Flash. PoundKey. Starfish PBX — не обновлялся с 2009 года. Switchvox — продукт компании Digium. Thirdlane PBX. Trixbox, бывший Asterisk@Home[25], основан на CentOS. VirtualPBX — решение для организации хостинга IVR и виртуальной АТС, с богатым набором функций voice 2.0. JamalSIP - российский программный комплекс для осуществления передачи QVN - вызовов. Бесплатен и активно обновляется.
Asterisk в комплексе с необходимым оборудованием обладает всеми возможностями классической АТС, поддерживает множество VoIP-протоколов и предоставляет богатые функции управления звонками, среди них:
Голосовая почта
Конференц-связь
IVR (интерактивное голосовое меню)
Центр обработки звонков (постановка звонков в очередь и распределение их по абонентам, используя различные алгоритмы)
Call Detail Record (подробная запись о вызове)
Для создания дополнительной функциональности можно воспользоваться собственным языком Asterisk для написания плана нумерации, написав модуль на языке Си, либо воспользовавшись AGI — гибким и универсальным интерфейсом для интеграции с внешними системами обработки данных. Модули, выполняющиеся через 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.
В нумерации версий Asterisk придерживаются принципа: версии в разработке — нечётные, стабильные — чётные.
1.0 — Выпущена 23 сентября 2004
1.2 — Выпущена 15 ноября 2005
1.4 — Выпущена 26 декабря 2006
1.6 — Выпущена 2 октября 2008
Начиная с версии 1.6, Asterisk более не поддерживает Zaptel, оставлена только поддержка DAHDI.
1.8 — Выпущена 21 октября 2010
Отличие от предыдущих версий: Поддержка SRTP, поддержка IPv6 в SIP-драйвере, интеграция работы с календарём, новая система журналирования звонков «Channel Event Logging» (CEL), поддержка «Advice of Charge» — сервиса для информирования о стоимости звонка; интеграция Google Talk и Google Voice; поддержка изменения высоты звука.
10.0 — Выпущена 15 декабря 2011
Несмотря на смену нумерации, десятая версия не несёт кардинальных изменений. Появилась поддержка высококачественного звука, до 192 кГц; с помощью приложения ConfBridge появилась поддержка видеоконференций; Asterisk теперь может являться сервером текстовых сообщений по протоколам SIP и XMPP, поддержка работы шлюзом для передачи факсимильных сообщений по протоколу T.38; поддержка кодеков SILK и CELT.
11 — Выпущена 31 октября 2012
Добавлена поддержка WebRTC, которая позволяет совершать звонки прямо из браузера, без задействования каких-либо плагинов в браузере; новый драйвер chan_motif поддерживает протоколы Google Talk и Jingle, в том числе и видео; расширена поддержка IPv6.
12 — Выпущена 20 декабря 2013 (новое в версии)
Ряд кардинальных изменений, таких, как новый драйвер канала SIP (основан на библиотеке PJSIP), новые механизмы Asterisk REST Interface, добавлена поддержка IPv6 в драйвер канала IAX2 и др.
13 — Выпущена 28 октября 2014
LTS-релиз платформы. Передача событий безопасности через AMI. Расширение интерфейсов AMI и ARI, поддержка новых возможностей библиотеки PJSIP.
Asterisk может работать как с аналоговыми линиями (FXO/FXS модули), так и цифровыми (ISDN, BRI и PRI — потоки Т1/E1). С помощью определённых компьютерных плат (наиболее известными производителями которых являются Digium, Sangoma, OpenVox, Rhino, AudioCodes) Asterisk можно подключить к высокопропускным линиям Т1/E1, которые позволяют работать параллельно с десятками телефонных соединений. Полный список поддерживаемого оборудования для соединения с телефонной сетью общего пользования определяется поддержкой оборудования в модулях ядра, например:
DAHDI, акроним «Digium Asterisk Hardware Device Interface» (ранее назывался Zaptel), разрабатывается параллельно с Asterisk компанией Digium.
mISDN, разрабатывается Карстеном Кайлом (англ. Karsten Keil) из команды SuSE и компанией Beronet.
CAPI.
Поддерживаются следующие протоколы:
SIP,
H.323,
IAX2,
MGCP,
SIMPLE,
Skinny/SCCP,
XMPP (Google Talk),
Unistim,
Skype, через коммерческий канал.
Возможно транслировать текст и видеосигналы (например, использовать видеофон). Кроме того, реализована работа с другими компьютерными протоколами:
DUNDi — протокол, также разработанный Digium.
OSP.
T.38, поддерживается передача факсов.
Поддержка широкого спектра оборудования и компьютерных протоколов позволяет организовывать огромное количество сценариев взаимодействия сетей, получения и обработки информации.
Настройка и программирование производится с помощью нескольких механизмов:
диалплан, который пишется на специальном языке. Доступна как старая версия, так и новая — AEL, а также на языке Lua.
AGI.
AMI.
Конфигурация из баз данных.
Расширение выполняемых функций также возможно путём написания на языке Си нового модуля, что возможно благодаря подробной Doxygen-документации.
Для работы с Asterisk создано множество графических интерфейсов.
Удаленное управление АТС так же может осуществляться с помощью библиотеки libamc.
Для удобства инсталляции и использования существуют несколько готовых дистрибутивов, содержащих операционную систему, скомпилированый Астериск, необходимые модули и стандартную конфигурацию.
AsteriskNow — дистрибутив от компании Digium включает в себя 2 варианта веб-интерфейса на выбор: Asterisk GUI и FreePBX.
AstLinux.
AstPbx — русский дистрибутив с богатым преднастроенным функционалом с упором на .conf-файлы.
Elastix — дистрибутив от компании PaloSanto Solutions OpenSource реализация идеологии унифицированных коммуникаций с локализованным WEB-интерфейсом.
FreePBX — веб-интерфейс для конфигурации Asterisk.
PBX in a Flash.
PoundKey.
Starfish PBX — не обновлялся с 2009 года.
Switchvox — продукт компании Digium.
Thirdlane PBX.
Trixbox, бывший Asterisk@Home[25], основан на CentOS.
VirtualPBX — решение для организации хостинга IVR и виртуальной АТС, с богатым набором функций voice 2.0.
JamalSIP - российский программный комплекс для осуществления передачи QVN - вызовов. Бесплатен и активно обновляется.