Астериск что это телефония
Астериск что это телефония
STIR/SHAKEN (Secure Telephony Identity Revisited / Signature-based Handling of Asserted information using toKENs) это новая технология, которую телекоммуникационная отрасль использует для борьбы с телефонным мошенничеством. Мы все получали спам-звонки, и некоторые из нас, возможно, даже получили звонок с Caller ID абонента, который нам хорошо известен, но в итоге оказывались кем-то другим. Это было серьезной проблемой в течение многих лет, но с помощью STIR/SHAKEN мы можем резко снизить вероятность того, что это произойдет.
Как это работает?
Identity: eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cDovL3Rlc3RpbmcxMjMifQ==.eyJvcmlnIjp7InRuIjoiMTIzNDU2NyJ9LCJhdHRlc3QiOiJCIiwib3JpZ2lkIjoiYXN0ZXJpc2siLCJpYXQiOjE1OTA1ODgzODV9.MEUCIQCmINlklk+fCxEEjgbbwE5X7DAEy19aPRfLvypXrKUwpwIgaDtEzKZoGRa/Omof9iC6tPQPzsKazN1hygDWOc9uWXQ=;info= alg=ES256;ppt=shaken
Заголовок, payload и подпись кодируются BASE64 и разделяются точками. Вот пример заголовка:
Если расшифровать BASE64 (через https://www.base64decode.org например) то получим:
После расшифровки BASE64 получим:
Payload является также JSON-объектом, который содержит номер caller ID, аттестацию, ID оригинатора и метку времени. Большая часть приведенной здесь информации будет использована для сравнения с условиями, которые необходимо выполнить для успешного выполнения вызова.
Подпись следует за payload (полезной информацией), вплоть до точки с запятой. После этого у нас есть:
Таким образом вся информация, которую мы разобрали в этих разделах, является необходимой и достаточной для проверки того, чтобы подтвердить что звонок действительно поступил оттуда, откуда он сказал, что поступил!
Конфигурация STIR/SHAKEN
Астериск уже имеет встроенный механизм поддержки STIR/SHAKEN. Это реализовано в виде опции в секции “endpoint” файла pjsip.conf:
По умолчанию для этого параметра установлено значение нет. Если вы хотите, чтобы ваши звонки поддерживали STIR/SHAKEN, вам нужно включить эту опцию для этих конечных пиров. Это все, что вам нужно сделать в pjsip.conf. Остальное настраивается в файле stir_shaken.conf. Вот пример того, как может выглядеть этот файл конфигурации:
Использование STIR/SHAKEN в Диал-плане
exten => example2,1,STIR_SHAKEN(0, verify_result)
exten => example3,1,STIR_SHAKEN(5, identity)
exten => example4,1,STIR_SHAKEN(2, attestation)
Вы уже знаете, что означает verify_result, но есть и другая информация, которую также можно получить и обрабатывать.
Если просто вызвать функцию count, она вернет, сколько существует идентификаторов STIR/SHAKEN.
Затем вы можете просмотреть их все и получить информацию по каждому. Вот тут-то и появляются цифры. Чтобы получить результат проверки, вы должны сначала ввести индекс удостоверения, для которого вам нужна информация, а затем имя нужной вам информации. В настоящее время вы можете получить verify_result, идентификацию и аттестацию.
Выводы
Вот и всё как это устроено! Настройка довольно минимальна, но влияние, которое она окажет на клиентов, огромно. Выполнив описанные выше действия по настройке Asterisk для STIR/SHAKEN, вы сможете предотвратить несколько спам-звонков, сэкономив время и деньги. В будущем, по мере дальнейшего развития технологий и промышленности, будет проделана дополнительная работа по STIR/SHAKEN, но основа уже заложена и может быть использована сейчас. Попробуйте и помогите нам улучшить Asterisk своими отзывами!
Стремительное развитие WebRTC
Приложения для видео-конференцсвязи во время пандемии получили гигантскую прибыль. WebRTC как механизм, лежащий в основе этого, обеспечивает одноранговую связь между браузерами. Разработчики WebRTC отмечают, что это базовая, но сложная технология. Прямолинейность сводится к простоте исполнения. Возможно использовать от пяти до десяти строк кода для сортировки общей видеосвязи между двумя программами. Одновременно с этим постоянно возникает «однако», когда мы занимаемся разработками в этой области. В случае WebRTC основным тестом является бэкэнд: разработчики должны гарантировать, что решение работает в разных компаниях.
Элементы защиты WebRTC:
Защита браузера:
Доступ к средствам массовой информации:
Шифрование:
Семь ошибок безопасности (инфраструктура как код)
26 января 2021 года |
Консорциум World Wide Web Consortium (W3C) и Целевая группа по разработке Интернета (IETF) объявили сегодня, что Web Real-Time Communications (WebRTC), которые поддерживают множество сервисов, теперь является официальным стандартом, обеспечивающим аудио-и видеосвязь в любом месте Сети.
WebRTC, состоящий из JavaScript API для веб-коммуникаций в реальном времени и набора коммуникационных протоколов, позволяет любому подключенному устройству в любой сети быть потенциальной конечной точкой связи в Интернете. WebRTC уже служит краеугольным камнем онлайн-коммуникаций и услуг совместной работы.
«Сегодняшнее знаковое достижение является своевременным. Столкнувшись с глобальной пандемией коронавируса COVID-19, мир становится все более виртуальным. Это делает Интернет еще более важным для общества в области обмена информацией, коммуникаций в реальном времени и развлечений»,-сказал д-р Джефф Джаффе, генеральный директор W3C. “Отрадно видеть, что наши технологии играют ключевую роль в создании такой критически важной цифровой инфраструктуры. Сочетание универсального охвата Интернета с богатством живых аудио-и видеопереговоров изменило то, как мир общается.”
Работа в офисе будет протекать иначе, чем раньше. Потому что пандемия подталкивает многие компании к внедрению новых защитных мер. В качестве примеров:
62% будут больше полагаться на видеоконференции
32% будут следить за тем, сколько людей находится в одном месте
30% будут использовать новые средства защиты, включая тепловые датчики и бесконтактное управление лифтом
Чтобы это произошло, ваша сеть должна быть более гибкой, чем когда-либо. Поэтому ваша команда должна быть уверена, что она готова поддерживать большую доступность и автоматизацию.
В кризис облака могут быть ключом к тому, чтобы все были на ногах. Когда вы распределяете свои приложения и рабочие нагрузки как по публичным, так и по частным облакам, вы можете быстрее развертывать сервисы и снижать риск сбоев в работе ваших систем. Пандемия уже побудила 21% организаций перенести больше рабочих нагрузок в общедоступные облака, чтобы получить больше мощностей.
Ваша сеть должна быть готова к неожиданным скачкам из любого места. Когда разразилась пандемия, нам в Cisco пришлось масштабироваться, чтобы справиться с 300-процентным увеличением использования WebEx почти за одну ночь. И мы не смогли бы справиться с этим всплеском вручную—мы полагались на автоматизированные инструменты, чтобы сделать такие вещи, как обеспечение большей пропускной способности, балансировка пропускной способности и массовое привлечение новых людей.
И вы можете сделать то же самое. В ближайшие пару лет 35% компаний планируют автоматизировать свою инфраструктуру и доступ к Сети Интернет на основе намерений — по сравнению всего с 4% в прошлом году.
Утечка конфиденциальных данных Sangoma Corp
Sangoma Technologies Corporation (TSXV: STC) объявила, что в результате кибератаки вымогателей на один из серверов компании вчера были раскрыты и опубликованы частные и конфиденциальные данные, принадлежащие компании.
Компания начала всестороннее расследование, чтобы полностью установить масштабы этого нарушения данных, и тесно сотрудничает со сторонними экспертами по кибербезопасности, чтобы поддержать эти усилия.
Нет никаких первоначальных указаний на то, что аккаунты клиентов были скомпрометированы, а также на то, что какие-либо продукты или услуги Sangoma были затронуты в результате этого нарушения. В то время как расследование продолжается, в рамках максимальной осторожности, компания рекомендует клиентам изменить свои пароли Sangoma.
Asterisk для дома
Что такое Asterisk и зачем он нужен дома
Asterisk это открытая виртуальная PBX (телефонный коммутатор). Подробнее про Asterisk можно почитать в блоге Asterisk IP-PBX. Началось все с того, что я получил довольно крупный счет от местной телефонной компании за меджугородные переговоры. Вариантов платить меньше было собственно два: либо покупать карты IP телефонии и звонить с домашнего телефона по карте, либо звонить с ПК через SIP провайдеров. Первый вариант неудобен тем, что надо искать и покупать карты нужного провайдера IP телефонии, а второй тем, что привязан к компьютеру. Решение пришло, когда я узнал про Asterisk. Его можно было подключить и к городской телефонной линии и к SIP провайдеру и к домашнему стационарному телефону. Дома у меня уже имелся сервер, на котором можно было все установить.
Установка и настройка
Итак, первым делом надо установить Asterisk. В дебиане это делается исключительно просто. Надо всего лишь установить пакет asterisk. Я рекомендую ставить версию 1.6 из squeeze(testing на данный момент, в последствии это будет версия 6.0) дистрибутива дебиана, так как для него есть addon chan_mobile, но об этом позже.
Про найстройку SIP подключений и dialplan’ов есть много рускоязычных статей, поэтому я не буду на этом останавливаться.
Во вторых надо подключить Asterisk к городской телефонной линии и к домашнему телефону. Для этого компания Digium выпускает специальные PCI и PCI-e карты. Стоят они достаточно дорого, но на eBay можно найти их аналоги выпущеные китайской компанией OpenVox, которые стоят намного дешевле. Я приобрел двухпортовую PCI-e карту OpenVox A400E с одним FXO портом и одним FXS портом.
Далее, настройка катры:
chan_dahdi.conf:
[trunkgroups]
[channels]
switchtype=national
usecallerid=yes
hidecallerid=no
callwaiting=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
echocancel=yes
busydetect=yes
;callprogress=yes
adsi=yes
context=phones
signalling=fxo_ks
faxdetect=both
channel => 1
context=incoming-city
signalling=fxs_ks
faxdetect=both
channel => 2
Настройка SIP:
sip.conf:
[general]
register => login:password@provider
[authentication]
[user_login]
type=friend
context=phones
host=dynamic
secret=user_password
callerid=»User»
[sip]
type=friend
username=sip_login
secret=sip_password
callerid=SIP
host=provider
nat=no
fromuser=
fromdomain=provider
dtmfmode=rfc2833
insecure=very
context=incoming-sip
disallow=all
allow=alaw
sip_login, sip_password, provider — это соответственно ваш логин пароль и провайдер.
user_login, user_password — логин и пароль для подключения SIP телефона к Asterisk.
Простой extensions.conf:
[globals]
[default]
exten => s,n,Answer()
exten => s,n,Playback(tt-weasels)
exten => s,n,Hangup()
[phones]
exten => s,n,Answer()
exten => s,n,WaitExten(30)
exten => _0.,1,NoOp()
exten => _0.,n,Goto(outbound-city,$
exten => _NXXXXXX,1,NoOp()
exten => _NXXXXXX,n,Goto(outbound-city,$
exten => _NXXNXXXXXX,1,NoOp()
exten => _NXXNXXXXXX,n,Goto(outbound-sip,$
exten => t,1,Playback(vm-goodbye)
exten => t,n,Hangup()
exten => i,1,Playback(invalid)
exten => i,n,Hangup()
[incoming-sip]
exten => s,n,Answer()
exten => s,n,Dial(SIP/user_login)
exten => s,n,Hangup()
[incoming-city]
exten => s,n,Answer()
exten => s,n,Dial(DAHDI/1)
exten => s,n,Hangup()
[outbound-sip]
exten => _XXXXXXXXXX,1,Dial(SIP/$[7$
exten => _XXXXXXXXXX,n,Hangup()
[outbound-city]
exten => _0.,1,Dial(DAHDI/2/$
exten => _0.,n,Hangup()
exten => _NXXXXXX,1,Dial(DAHDI/2/$
exten => _NXXXXXX,n,Hangup()
Такой extension.conf позволяет звонить с домашнего телефона на семизначные номера и номера начинающиеся на 0 через городскую телефонную сеть, а на междугородние номера через SIP провайдера.
Дополнительные возможности
1. Запись всех телефонных разговоров
Для этого надо в dialplan (extensions.conf) вставить вызов приложения MixMonitor.
[phones]
exten => s,n,Answer()
exten => s,n,MixMonitor(phone-$
exten => s,n,WaitExten(30)
Записи разговоров будут складываться в папку /var/spool/asterisk/monitor
2. Прием и передача факсов
exten => fax,1,ReceiveFax(/var/spool/asterisk/fax/$
exten => fax,n,Hangup()
Задержка на 5 секунд после Answer() необходима, для того, что бы Asterisk распознал сигнал входящего факса и переключился на extension fax.
Не забудте указать faxdetect=both в chan_dahdi.conf.
Входящие факсы будут складываться в формате TIFF в папку /var/spool/asterisk/fax
Существуют скрипты, позволяющие автоматизировать процесс приема/передачи факсов с конвертацией в PDF и обратно, а так же отправкой принятых факсов на e-mail.
3. Фильтрация звонков по CALLERID
Для того, чтобы работал CALLERID мне пришлось отдельно заказывать соответствующую услугу у телефонного оператора. К счастью она бесплатна, но подключали мне ее пару дней. Если CALLERID работает, то можно управлять исполнением диалплана в зависимости от номера с которого приходит звонок.
[incoming-city]
exten => s,1,Wait(2)
exten => s,n,GotoIf($[«$
exten => s,n,Dial(DAHDI/1)
exten => s,n,Hangup()
exten => s,1000,Wait(600)
exten => s,n,Answer()
exten => s,n,Congestion()
exten => s,n,Hangup()
В этом примере звонки с номера 5555555555 игнорируются.
Важное замечание: CALLERID передается до того как трубка поднята, а сигналы факса передаются после того как трубка поднята. Поэтому для устойчивого приема сигнала факса надо поставить задержку после Answer, я для устойчивого приема CALLERID иногда приходится добавлять задержку до Answer.
4. Подключение к сети GSM
[adapter]
id=blue
address=00:11:22:33:44:55
Где вместо 00:11:22:33:44:55 адрес вашего Bluetooth адаптера.
Запускаем консоль Asterisk и ищем телефон:
server*CLI> mobile search
Address Name Usable Type Port
66:77:88:99:AA:BB Nokia Yes Phone 13
Добавляем в mobile.conf секцию для телефона:
[GSM]
address=66:77:88:99:AA:BB
port=13
type=phone
adapter=blue
context=incoming-gsm
Где вместо 66:77:88:99:AA:BB адрес вашего телефона, а вместо port=13 надо вписать порт на котором ваш телефон работает. После этого можно перезагрузить модуль chan_mobile и проверить, что все работает.
server*CLI> module unload chan_mobile
server*CLI> module load chan_mobile
server*CLI> mobile show devices
ID Address Group Adapter Connected State SMS
GSM 66:77:88:99:AA:BB 0 blue Yes Free Yes
В диалплан надо добавить входящий и исходящий контексты:
[phones]
exten => _913NXXXXXX,1,NoOp()
exten => _913NXXXXXX,n,Goto(outbound-gsm,$
[incoming-gsm]
exten => s,n,Answer()
exten => s,n,Dial(DAHDI/1)
exten => s,n,Hangup()
[outbound-gsm]
exten => _NXXNXXXXXX,1,Dial(Mobile/GSM/$
exten => _NXXNXXXXXX,n,Hangup()
Звонки на мобильные номера сибирского региона будут направляться через GSM.
Важное замечание: не забудте спарить сервер с вашим телефоном. Это делается с помощью команды /usr/bin/bluetooth-agent
Заключение
У Asterisk много дополнительных возможностей, о которых не сказано в этом топике. Для примера можно привести: голосовые меню и интеграция с системой синтеза голоса Festival, голосовые почтовые ящики, постановка звонков в очередь, и т. д. Но этим возможностям сложно придумать применение в быту, поэтому мы их опускаем. Возможно читатели придумают как еще можно использовать домашний Asterisk PBX.
Asterisk от простого — к сложному
Вступление
Добрый день. На написание статьи меня сподвигла необходимость передать мои знания подчиненным, которым уже пора бы вникать в работу Asterisk.
Когда я заметил интерес к платформе с их стороны — я чрезвычайно обрадовался, но пришел в недоумение, когда все рвение остановилось на клацанье по триксбоксу и его подобным.
Я ничего не имею против надстроек к Астериску, которые облегчают жизнь, но я боюсь, что скоро появился поколение администраторов Астериска, которые консоли в живую не видели ниразу.
Целью моих статей является желание показать, что астериск красив сам по себе, без дополнительных надстроек, что можно, используя минимальные, ускоряющие работу скриптовые языки — творить чудеса. Хочется показать, ищущим и желающим познать новое, людям нюансы и тонкости работы системы.
Что такое Астериск
Про астериск есть множество статей с описанием функционала и возможностей. Новичку надо знать самое главное — на начальном этапе ( в качестве обучения ) Астериск в состоянии выполнять любые задачи связанные с телефонией, ну или практически любые.
Есть ряд неудобств, либо ограничений, которые присущи работе с Астериском, постараемся их устранять в процессе ознакомления с системой.
Также стоит понимать, что высоконагруженную систему на астериске построить крайне тяжело — для этого есть другие решения.
Для простоты можно считать, что астериск целесообразно использовать в системах, где количество одновременных звонков не превышает 100.
С цего начать
Честно просмотрев 10 страниц результатов поискового запроса Asterisk на хабре, понял, что начинать надо сначала, но без фанатизма. Рассказывать о установке не буду, но о структуре Астериска и тому, что нам понадобится при работе — будем говорить. Говорить мы будем о Asterisk 1.8, но принципы работают на всех версиях астериска.
Структура системы
Астериск, как любое приложение, работает на основании конфигурационных файлов, коих достаточно большое множество. Честно говоря, я до сих пор не знаю роли половины конфигов. Для нашей работы на начальном этапе нам понадобится знать и понимать настройки, хранящиеся в файлах sip.conf и extensions.conf. Отмечу, что при стандартной установке все файлы конфигов хранятся в /etc/asterisk/.
Файл sip.conf
Данный файл содержит описание базовых параметров работы протокола SIP, настройки NAT, кодеков и самое главное — учетных записей. Позже я буду рассказывать о том, каким образом хранить учетные записи в базе данных.
Дефолтный конфиг sip.conf позволяет запускать Астериск, при условии прописывания учетных записей, и он будет работать, слушая при этом входящие соединения на всех интерфейсах.
Учетные записи в sip.conf могут быть трех типов:
— user ( пользователь )
— peer ( пир )
— friend ( пользователь+пир )
Я почти всегда настраиваю учетные записи как friend, по причине того, что она сочетает в себе все функции как пира так и пользователя.
Простой пример учетной записи выглядет так:
[1001]; название пира, его будем использовать в дальнейшем, для работы с правилами звонков, ;cовпадение с логином необязательно
type=friend; тип учетной записи
host=dynamic; разрешаем логин с разных IP адресов
username=1001; имя пользователя
secret=1234; пароль
context=default; контекст, о нем чуть позже
disallow=all; запрещаем все кодеки
allow=alaw; разрешаем кодек G.711a ( alaw )
Такой записи достаточно, чтобы зарегистрироваться на свежем сервере с параметрами пользователя 1001 и паролем 1234.
Создаем две записи с названиями 1001 и 1002 в самом низу файла sip.conf.
Файл extensions.conf
Данный файл — ключевой файл в системе Asterisk, так как в нем описываются правила работы с любым голосовым трафиком, появившимся в системе. Это как статическая таблица маршрутизации. О хранении данных в базе данных будем говорить позже.
Структура файла вполне проста:
-внутри файла прописываются глобальные параметры, в том числе и переменные
-далее файл разбит на контексты, каждый из которых живет своей жизнью и правила работы звонков внутри каждого контекста могут быть своими.
Контексты нужны, для разграничения поведения телефонного звонка и отделения одних групп пользователей и их звонков от других. Контексты позволяют в пределах одной системы создавать множество подсистем со своими правилами и пользователями (аналог виртуальных машин).
Контексты обозначаются как [НАЗВАНИЕ КОНТЕКСТА].
Структура контекста следующая:
exten => МАСКА, ПОРЯДОК, ДЕЙСТВИЕ
, где
МАСКА — маска номера, либо статически заданный номер
ПОРЯДОК — порядок действия для конкретной МАСКИ (возможна последовательность действий)
ДЕЙСТВИЕ — команда, выполняемая системой в случае попадания звонка на данное правило.
Наши тестовые пользователи созданы в контексте default, поэтому, если просто запустить астериск и позвонить на любой номер, можно услышать тестовое демо-меню Астериска.
Открываем на редактирование extensiond.conf, делаем поиск по [default] и в следующей после строки [default] смело вносим правило локального звонка:
Статическое правило:
exten => 1001,1,Dial(SIP/1001)
exten => 1002,1,Dial(SIP/1002)
Динамическое правило:
exten => _XXXX,1,Dial(SIP/$
Данные правила позволят совершить локальный звонок между тестовыми пользователями.
Напоследок: Работа с консолью сервера
Для того, чтобы Астериск перечитал конфиги из консоли достаточно выполнить reload.
Домашняя работа
1.Совершить локальный звонок.
2.Ознакомиться с примерами конфигурации, которые находятся в sip.conf и extensions.conf
3.Добавить в закладки www.voip-info.org/wiki/view/Asterisk
Спасибо за внимание.
Огромное спасибо за отзывы и замечания.
Хочу отметить, что статья расчитана на людей, которые начинают изучать Asterisk и направлена на облегчение им жизни. В перспективе хочу учесть все замечания, и делать и писать новые статьи согласно пожеланий, при этом выдерживая общую линию развития от простых вещей к сложным.
Приятно получать критику, буду стараться, и в случае неточностей исправляться.
Спасибо.
Asterisk – система компьютерной телефонии уровня предприятия
Я хочу рассказать о свободном решении для компьютерной телефонии от компании Digium. Asterisk – это ATC созданная хакерами (в первоначальном смысле этого слова), а точнее, это супер конвергентная платформа компьютерной телефонии, распространяемая по лицензии GNU GPL, изначально разрабатываемая Марком Спенсером (Mark Spenser), позже ставшим президентом и техническим директором компании Digium. Благодаря коммерческой поддержке Его компании и лицензии GNU GPL Asterisk активно развивается и поддерживается тысячами людей со всей планеты.
Asterisk поддерживает
Протоколы
Аудио кодеки
Название | Скорость передачи, Кбит/с | Необходимость лицензии |
---|---|---|
G.711 | 64 | Не нужна |
G.726 | 16, 24, 32 или 40 | Не нужна |
G.729A | 8 | Нужна (не нужна для транзита) |
GSM | 13 | Не нужна |
iLBC | 13,3 (кадры по 30 мс) или 15,2 (кадры по 20 мс) | Не нужна |
Speex | Переменная между 2,15 и 22,4 | Не нужна |
G.723.1 | 6.4 Кбит/с (кадр имеет размер 189 битов, дополненных до 24 байтов) и 5,3 Кбит/с (кадр имеет размер 158 битов, дополненных до 20 байтов). Режим работы может меняться динамически от кадра к кадру | Нужна (не нужна для транзита) |
MP3 |
Видео кодеки
Asterisk работает с ОКС-7 (Общеканальная сигнализация №7, в Европе известной как SS7 – Signaling System №7) — это набор сигнальных телефонных протоколов, для организации мультисервисной (интеллектуальной) сети.
Презентация освещающая работу с SS7 с astricon.net Автор Мэттью Фредриксон (Matthew Fredrickson)An introduction to SS7 and its support in Asterisk — pdf
Важные моменты для выбора
Производительность Asterisk систем
Опытные данные производительности систем представлены на форуме [ru] и оригинальный текст [en].
Основные рекомендации такие 1
Назначение | Кол-во каналов | Минимальная конфигурация |
---|---|---|
Любительская система | не более 5 | 400 MГц, 256 МБ RAM |
SOHO-система | от 5 до 10 | 1 ГГц, 512 МБ RAM |
Малая бизнес система | до 25 | 3 ГГц, 1 ГБ RAM |
Средняя или большая система | более 25 | 2 ЦП или несколько серверов в распределенной архитектуре |
Иксы рекомендую не ставить, так как с Asterisk они будут конкурировать за ресурсы.
Установка и настройка Asterisk
ссылки на 32-bit версии, но доступны и 64–bit
Если планируется использовать только VoIP, то достаточно пакета Asterisk, но рекомендуется установить все пакеты.
Дополнительно, можно установить
Необходимые пакеты Linux
Небольшое отступление
Против всего выше описанного, существует также программный продукт AsteriskNOW доступна бета 1.5 – это специализированный дистрибутив Linux уже включающий Asterisk со всем необходимым ПО, плюс web–based GUI. Этот дистрибутив также распространяется по лицензии GNU GPL и свободен для скачивания 32-bit и 64-bit.
Скриншоты можно посмотреть на официальном сайте.
Особой популярностью и любовью пользуется дистрибутив Trixbox — это программный комплекс, основанный на CentOS и Asterisk, основной задачей которого является создание в кротчайшие сроки сервера IP телефонии.
На данный момент доступна версия 2.6.2. Этапы установки можно подсмотреть на сайте voiceip.com.ua.
Дистрибутив Elastix от PaloSanto Solutions по функциональности не намного обходит Trixbox Community Edition. Распространяется по лицензии GNU GPL. Основой Elastix послужил CentOS 5 с ядром 2.6.18. Основу системы VoIP составляет Asterisk 1.4.18, разработчики дополнили его утилитами собственной разработки и модулями сторонних производителей. В качестве системы биллинга использован переработанный A2Billing. В поставку входит и сервер Openfire 3.4.2 обеспечивающий обмен сообщениями по протоколу XMPP/Jabber. Также в комплекте дистрибутива поставляются две CRM (Customer relationship management) — SugarCRM и VTigerCRM
Обзор и установку можно подсмотреть в статье Linuxoid.
Продолжим
Загружать статью общими вопросами установки и настройки Asterisk не буду, тем более, что в сети есть замечательные статьи, подробно рассказывающие о каждом из этапов. Не смотря на то, что статьи написаны 3 – 4 года назад, поверьте, они не теряют своей актуальности, не спорю, версии сменились с 1.2 аж до 1.6, сменилось даже название телефонного драйвера и функционал существенно расширился, но Вас это не должно пугать.
Моя рекомендация – MUST READ:
Asterisk: организуем автоматическое распределение поступающих вызовов – рассматриваются вопросы организации очереди обработки вызовов, так необходимой в службах работающих с клиентами. Автор Сергей Яремчук
Вопросы безопасности Asterisk обсуждаются в статье Безопасный Asterisk Автор Максим Литницкий — ПРОШУ УДЕЛИТЬ ЭТОМУ БОЛЬШОЕ ВНИМАНИЕ
К сожалению, в статьи по разным причинам, не вошли важные аспекты Asterisk, поэтому попробую обратить Ваше внимание на них.
AGI, EAGI, DeadAGI и FastAGI
Asterisk Gateway Interface (AGI) – это шлюзовой интерфейс посредством которого внешние программы(сценарии) могут влиять на логику диалплана Asterisk. Сценарии AGI (по аналогии с CGI для http серверов) могут быть написаны практически на любом языке программирования, взаимодействуют с Asterisk посредством описателей файлов STDIN (стандартный ввод), STDOUT(стандартный вывод) и STDERR(стандартная ошибка) и реализуют расширенную логику работы с БД и внешними ресурсами.
EAGI – это AGI, который помимо всего дает возможность сценарию читать входящий аудиопоток, к примеру, для нужд распознавания речи.
DeadAGI – это AGI который корректно исполняется для «мертвого» — разъединенного канала.
FastAGI – позволяет запустить удаленный AGI сценарий через TCP сокет – это уменьшает нагрузку системы и перекладывает её на другой сервер, к примеру, множество серверов Asterisk, могут использовать единые AGI – сценарии.
Наиболее популярными языками программирования для AGI являются Perl, Python и PHP.
Скажу только, то, что для этих и других языков программирования существуют “обёртки” – фрэймворки, позволяющие абстрагироваться от логики запрос-ответ AGI и программировать на более высоком уровне абстракции.
Asterisk Manager Interface (AMI) – это программный интерфейс, позволяющий соединиться с Asterisk через TCP/IP и полностью контролировать Asterisk, используется для связи c CRM–системами.
Aynchronous Javascript and XML (AJAM) – доступен с Asterisk версии 1.4, предоставляет web-браузеру или любому другому приложению связаться с AMI через HTTP. Используется в web–based GUI для Asterisk плюс в том, что он использует библиотеку Prototype, что избавляет разработчиков от многих кросбраузерных проблем.
Интеграция с Базами Данных
Важным моментом является способность Asterisk хранить свою конфигурацию и состояние в БД. Эта ключевая особенность позволяет строить, по истине, потрясающие распределенные телефонные системы.
Asterisk архитектуры реального времени
Хранение файлов CDR в Базе Данных
Interactive Voice Response (IVR) – это уже неотъемлемая часть любой платформы и бизнеса занимающимся обслуживанием клиентов. Стоимость коммерческих IVR систем (Avaya, Cisco, Genesys, Nortel или Dialogic) достаточна, высока, а Asterisk просто создан для этого.
К сожалению, русского женского голоса для Asterisk нет (бесплатного). После инсталляции Asterisk говорит с нами голосом Эллисон Смит (Allison Smith) — это порядка 300 промтов, плюс еще 600 в дополнении asterisk–sounds.
На ресурсе ivrvoice.ru можно скачать и использовать в любых мирных целях, включая бизнес, русские промты для Asterisk.
Видео и Asterisk
Ссылки по работе с Видео в Asterisk [ru] и [en – оригинал].
Интересный ресурс sip.fontventa.com, жаль, что последнее обновление 19 января 2007 года, содержащий исходный код библиотеки для работы с протоколом H.324 использующимся в UMTS 3G видео звонках.
DUNDi
Distributed Universal Number Discovery(DUNDi), создан Марком Спенсером – “это одноранговая система для поиска интернет–шлюзов в сервисы телефонии, является полностью распределенным и вообще не имеет никакой централизованной службы”. В некотором роде – это протокол маршрутизации для VoIP.
DUNDi – позволяет запрашивать у равноправных участников сети альтернативный VoIP маршрут к добавочному номеру или телефонному номеру ТфОП. DUNDi можно использовать как в локальной сети – для упрощения управления добавочными номерами в системах Asterisk крупной компании, так и в глобальной сети, но тут для доступа нужно подписать Общее Пиринговое Соглашение (General Peering Agreement — GPA), его также можно найти в подпапке исходного кода doc/. GPA имеет обязательную юридическую силу, для защиты участников сети от людей злоупотребляющих протоколом.
Подробности — это темы будущих статей.
Книги
(Максим, чтоб мы без тебя делали 😉
[en] trixbox Without Tears The Dumb-Me guide — свободна для скачивания
Видеоматериалы
[en]Free Video Tutorials for trixbox FreePBX and Asterisk Systems
Информационные ресурсы
Форумы (малый список)
Магазины (малый список)
Компании предлагающие Asterisk — решения
Официальный mailing lists для тех, кому интересен Asterisk.
- Астериск что это такое
- астерия актриса чудо женщина