Asterisk не нуждается в специальном оборудовании для полноценной работы. Сегодня существует множество сервисов, способов и платформ для создания и настройки телекоммуникации для абсолютно разных целей и направлений. В данной статье сегодня пойдет речь о том, что такое Asterisk и для чего он нужен, а также подробно опишем, как настроить Asterisk для приема звонков.
Asterisk, в комплексе с необходимым оборудованием, имеет все возможности классической АТС: поддержка SIP, VoIP протоколов. Довольно много возможностей в себе содержит данное ПО Астериск.
Что такое Asterisk и для чего он нужен?
Asterisk – это гибрид OpenSource TDM, голосового пакета PBX и платформы IVR с функциональностью ACD. Неофициально Астериск можно назвать одним из сильнейших, гибких и распространённых интегрированных телекоммуникационных программных продуктов. Само его название произошло от символа звездочка (*), который в операционных системах UNIX, средах DOS и LINUX означает любую карту, подходящую к любому файловому имени. Подобно Asterisk PBX разработан под интерфейс любого программного обеспечения и совместим с любым телефонным приложением без состыковки. Установить Asterisk можно на:
- Ubuntu;
- Windows;
- CentOS;
- Debian;
- FreeBSD;
- Linux;
- Solaris;
- OpenBSD.
Для того что бы найти подробную инструкцию о том, как настроить Asterisk для приема звонков, просто сделайте запрос в интернете. Там имеется не малое количество хороших статей. В целом Астериск является промежуточным звеном между телефонными технологиями и приложениями, создавая тем самым устойчивую среду для использования смешанной телефонной среды. В телефонные технологии входят такие услуги как VoIP, SIP и другие.
Как настроить Asterisk для приема звонков?
Asterisk был разработан непосредственно для того, чтобы интерфейсы и технологии легко взаимодействовали друг с другом. Его основной целью, является том, чтобы поддерживать все возможные виды телефонных технологий. Для того что бы принимать или совершать звонки, необходимо настроить Астериск. Файл sip.conf содержит параметры, которые относятся к конфигурации доступа SIP к серверу Asterisk. Ниже представлена настройка asterisk, которые необходимо добавить в файл конфигурации sip.conf.
Данные настройки подходят в том случае, если Вы настроили переадресацию звонков на ваш SIP аккаунт, который был получен у нас. В случае если Вы хотите напрямую принимать звонки на Ваш сервер, где уже настроен Астериск, то для этого никаких настроек от нас не требуется. Все настройки Вы производите в своей системе самостоятельно под ваши требования.
Если будете принимать звонки при помощи нашего SIP аккаунта, который у Вас будет настроен в Asterisk, тогда в личном кабинете Вам нужно выбрать тип переадресации SIP и указать username. Username/номер телефона или имя, которое Вы хотите, чтобы отображалось в Вашей системе.
Инструкция, как настроить Asterisk для приема звонков.
После регистрации на почту придёт письмо с вашими "SIP-настройками". Добавляем необходимые настройки sip транка, чтобы выполнить его регистрацию.
Данные, которые будут указаны в примере настройка Астериск:
- Название – SIP_ID пользователя.
- Username – Ваш sip-логин из личного кабинета.
- Password – Ваш пароль от sip, из раздела "SIP-настройки" личного кабинета.
- Domain – IP адрес сервера или его имя с которого будут приходить звонки.
- Context= это имя сценария, которое указывает серверу Asterisk выполнить различные действия по обработки вызова в зависимости от того, откуда он поступил.
* CallerID (номер или имя звонящего) при входящих звонках передается провайдером в автоматическом режиме в пакете данных (VoIP пакет). Вы можете его увидеть в логе при звонке.
Вы всегда можете использовать Астериск для совершения звонков через наш SIP, но для этого необходимы отдельные настройки, в зависимости от вашей системы и потребностей.
Редактируем sip.conf
register => <sip account>:<yourpassword>@sip.freezvon.com
[freezvon]
host=sip.freezvon.com
insecure=invite,port
type=friend
fromdomain=sip.freezvon.com
disallow=all
allow=alaw
allow=ulaw
dtmfmode=auto
secret=<yourpassword>
username=<sip account>
context=freezvon-in
qualify=yes
directmedia=no
nat=force_rport,comedia
В данном случае freezvon название транка , <sip account> номер sip аккаунта который придёт в письме с настройками , <yourpassword> — пароль от sip аккаунта . Сохраняем файл и даем команду в консоле астериски sip reload перечитать его:
Вы можете проверить регистрацию вашего пир у провайдера с помощью команды:
sip show peers
Регистрацию транка командой:
sip show registry
Транк настроили, по сути подключили номер. Но этого не достаточно, чтобы совершать и принимать звонки. Необходимо отредактировать dialplan.
Dial-plan — план маршрутизации звонков
Для совершения исходящих и приема входящих звонков нужно отредактировать файл etc/asterisk/extensions.conf и привести его к следующему виду:
;Исходящие звонки
[freezvon-out]
;Звонок на трехзначные внутренние номера
exten => _XXX,1,Dial(SIP/${EXTEN})
;Звонок на внешний номер в которых четыре и более цифр через транк
exten => _XXX.,1,Dial(SIP/${EXTEN}@freezvon)
С таким диалпланом при наборе трехзначного номера вы позвоните на локальный номер. При наборе любого городского номера вы сможете позвонить на него без каких-либо добавочных цифр. Сразу набираете номер.
;Входящие звонки с транка freezvon
[freezvon-in]
;Входящие звонки с транка freezvon направлены на внутренний номер 100
exten => _X.,1,Dial(SIP/100)
Контекст [freezvon-in] описывает поведение при входящем звонке. В нашем случае все входящие звонки с транка freezvon будут направляться на внутренний сип номер 100
Сохраняем dial-plan и перезагружаем астериск единой командой reload, либо отдельно перезагружаем sip reload и dialplan reload командами:
Подключение абонентов и проверка внутренних звонков
Теперь нам нужно сделать некоторые общие настройки и добавить пользователей. Работать будем с файлом конфигурации /etc/asterisk/sip.conf
[general]
allowoverlap=no
udpbindaddr=0.0.0.0
tcpenable=no
transport=udp
srvlookup=yes
allowguest=no
[100]
type=friend
context=freezvon-out
secret=<hardpassword>
host=dynamic
nat=force_rport,comedia
qualify=yes
canreinvite=no
dtmfmode=auto
disallow=all
allow=alaw
allow=ulaw
Защита asterisk в CentOS с помощью fail2ban
Если ваш астериск имеет внешний ip адрес, либо на него сделан проброс портов с внешнего ip, то необходимо обеспечить защиту от перебора учеток и прочих множественных подключений. Организуем защиту с помощью известного и популярного средства fail2ban. Сделать это несложно, fail2ban поддерживает astersik из коробки. Достаточно просто установить его и активировать некоторые настройки.
Устанавливаем fail2ban на сервер с астериском:
#yum install -y fail2ban
Включаем запись в лог файл событий типа security. Для этого открываем файл /etc/asterisk/logger.conf и раскомментируем строку:
security => security
Перечитываем настройки хранения логов:
# asterisk -x "logger reload"
В папке /var/log/asterisk появился новый файл security. Его записи мы будем передавать в fail2ban для анализа. Открываем файл /etc/fail2ban/jail.conf, ищем там секцию [asterisk] и меняем путь к лог-файлу и добавляем строку активации джейла:
logpath = /var/log/asterisk/security
enabled = true
Запускаем fail2ban и добавляем в автозапуск:
# systemctl start fail2ban
# systemctl enable fail2ban
Чтобы fail2ban работал, у вас должен быть запущен и настроен iptables. Отмечу также, что по-умолчанию fail2ban в centos 7 использует команды firewalld. Если вы его отключили и используете голые iptables, то вам необходимо удалить файл /etc/fail2ban/jail.d/00-firewalld.conf и перезапустить fail2ban. Если этого не сделать, работать он не будет.
На этом подробная и многофункциональная настройка asterisk закончена.
Остались вопросы? Тогда смело обращайтесь в наш технический отдел. Наши специалисты не только ответят на все ваши вопросы, которые касаются IP телефонии, но и помогут вам решить трудности, которые у вас возникли, к примеру, при регистрации. Наши операторы работают круглосуточно. Свяжитесь с ними прямо сейчас!