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 перечитать его:

asterisk_cli

Вы можете проверить регистрацию вашего пир у провайдера с помощью команды:

sip show peers

asterisk_cli

Регистрацию транка командой:

sip show registry

asterisk_cli

Транк настроили, по сути подключили номер. Но этого не достаточно, чтобы совершать и принимать звонки. Необходимо отредактировать 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 командами:

asterisk_cli

Подключение абонентов и проверка внутренних звонков

Теперь нам нужно сделать некоторые общие настройки и добавить пользователей. Работать будем с файлом конфигурации /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 телефонии, но и помогут вам решить трудности, которые у вас возникли, к примеру, при регистрации. Наши операторы работают круглосуточно. Свяжитесь с ними прямо сейчас!