Asterisk установка и настройка windows

Обновлено: 04.07.2024

Ip-телефония дает неоспоримые преимущества перед обычной аналоговой атс (автоматизированной телефонной станцией). Даже для малого бизнеса, где количество сотрудников не превышает 15 человек, преимущества такого инструмента очевидны. Если у вас есть интеграция с сущеcтвующей CRM-системой (система управления с клиентами), то эффективность повышается в разы.

В данной статье речь пойдет о пошаговой настройки одной из популярных систем Asterisk+FreePBX. Данная статья носит информационный характер и предназначена для технических специалистов (системных администраторов). Отмечу, что речь пойдет о связке FreePBX + Voip-gsm шлюз. FreePBX версия 14.0.10.3 + Voip-gsm шлюз Portech av3404.

Оглавление

1. Введение

Речь пойдет о пакете SNG7-FPBX-64bit-1904-2, который можно будет скачать с сайта разработчика по пути https://www.freepbx.org/downloads/. Записываем образ на DVD-диск и устанавливаем. Сразу отмечу, что устанавливать телефонию необходимо на физический компьютер , т.к. мои игры с "виртуалкой" к хорошему результату не привели. Очень часто терялись голосовые пакеты и происходил обрывы связи.

2. Установка Asterisk

Установка Asterisk с использованием графического интерфейса FreePBX - не вызывает проблем. Записываем ISO-образ на флэш-носитель или компакт-диск. Установка занимает примерно 40 минут. За это время система предложит ввести пароль root - пользователя системы и еще несколько параметров.

3. Первичная настройка

После авторизации под пользователем root, необходимо установить статический ip-адрес на сетевом интерфейсе нашей новой АТС. Для этого вводим в консоли последовательно команды:

1. sudo ip link set eth0 up

2. sudo ip addr add 192.168.8.25/255.255.255.0 dev eth0

Где 192.168.88.25 адрес сервера FreePBX. Затем добавляем шлюз:

3. sudo ip route add default via 192.168.0.1

4. Настройка FreePBX в графической консоли

Далее в строке браузера вводим ip-адрес сервера и попадаем на web-интерфейс. Система предложит ввести логин и пароль для управления FreePBX, не путать с логином и паролем на консоль сервера (root). На следующем этапе система предложит произвести активацию. После ввода запрашиваемых данных система будет активирована . Теперь можно переходить к настройкам ip-телефонии.

5. Общие настройки системы и SIP-протокола

И так переходим к общим настройкам. Интерфейс FreePBX на первый взгляд простой, но тот функционал, который заложен в эту АТС - огромный и что бы понимать, что где находится - потребуется время и опыт. Перейдем в меню администрирование. Нас здесь будет интересовать раздел "системный администратор". В этом разделе отмечу особое внимание на раздел "обнаружение вторжений". Здесь есть белый и черный список. Сразу отмечу, что стоит добавить целиком всю подсеть или отдельные устройства, так например я добавил ip-телефоны, VOIP-GSM шлюзы. Если вдруг по какой-то причине у вас не может зарегистрироваться телефон - добро пожаловать в этот раздел. Еще отмечу, что перезагрузить вашу АТС можно в разделе " системный администратор" - power options.

В данной статье пошагово опишем как выполнить установку Asterisk. Статья предназначена для IT-специалистов, желающих самостоятельно выполнить настройку и установку Asterisk для компании.


Если Вас интересует профессиональное внедрение системы IP-телефонии Asterisk « под ключ», то обращайтесь к нашим специалистам по телефону 8 (495 ) 989-85-33 или 8 (800 ) 333-75-33. Доверьте свою телефонию профессионалам.

Ручная установка Asterisk

Перед началом установки рекомендуется произвести полное обновление операционной системы. Это улучшит стабильность работы и безопасность сервера.

yum update
reboot

Создаем директорию, в которую поместим исходные коды дистрибутива Asterisk.

mkdir -p /usr/src/asterisk
cd /usr/src/asterisk

Аналогичным образом выкачиваем все требуемые пакеты:

Для компиляции исходников потребуется сам компилятор. Устанавливаем его следующей командой ( кавычки должны быть те, где на клавиатуре размещена буква « Ё»):

yum -y install make gcc gcc-c++ kernel-headers-`uname -r` kernel-devel-`uname -r` ncurses-devel newt-devel libtiff-devel libxml2-devel sqlite-devel glibc-headers

Распаковываем предварительно скачанные с официального сайта пакеты.

tar -xvf asterisk-current.tar.gz
tar -xvf dahdi-linux-complete-current.tar.gz
tar -xvf libpri-1.4-current.tar.gz

В первую очередь устанавливаем библиотеку LibPRI.

LibPRI — это OpenSource библиотека, предназначенная для работы с потоковыми TDM-интерфейсами ISDN: PRI (Primary Rate Interface)и BRI (Basic Rate Interface). Первый (PRI ) часто используется в России для работы с операторами по каналам Е1.

cd /usr/src/asterisk/libpri-*
make clean
make
make install

Далее устанавливается драйвера каналов DAHDI.
Драйвера предназначены для взаимодествия Asterisk с платами цифровых интерфейсов: E1, FXO, FXS и пр.

cd /usr/src/asterisk/dahdi-linux-complete*
make all
make install
make config

Далее задаем автоматический запуск службы DAHDI при старте системы:

chkconfig dahdi on
service dahdi start

Это может означать, что не стоят исходные коды для ядра. Вернитесь на этап, где требовалось установить исходные коды ядра.

На этом этапе устанавливаем само телефонное ядро Asterisk.

cd /usr/src/asterisk/asterisk*
. /configure

Если на этом шаге у Вас отобразится такая заставка, значит все идет по плану:

На этом этапе можно выбрать модули, которые будут входить в состав сборки. Если требуется работа с MySQL или другими компонентами, их рекомендуется установить заранее.

Система выбора модулей выглядит следующим образом ( хотя, она может быть и на черно-белом фоне):


  • Перемещение — стрелками клавиатуры
  • Выбор — пробелом
  • XXX — модуль не доступен для установки. Необходимо установить недостающие зависимости и повторить все с шага». /configure»
  • F12 — сохраняем и выходим

Далее, оканчиваем установку:

make
make install

Создаем дефолтные конфиги и образцы.

make samples
make config

Добавляем Астериск в автозагрузку

chkconfig asterisk on

Запускаем Астериск консольно, количеством «v » в опции задавая плотность протоколирования (verbosity ). Убеждаемся, что Астериск запускается нормально, после чего останавливаем его.

asterisk -vc
stop now

Запуск будет сопровождаться таким списком загружаемых модулей:


Теперь Asterisk можно запустить как службу, после чего подключиться к нему штатно в режиме консоли.

service asterisk start
asterisk -rvvvv


Работа с DAHDi

После инсталляции карты, проверяем ее в системе

в /etc/dahdi/modules
комментим все модули, вписываем нужный нам, например, quasarm

в /etc/dahdi/system.conf

Указываем зоновую ( региональную) принадженость.

Настраиваем согласование потока между АТС оператора и Asterisk.

span = 1,0,0,CCS,HDB3,CRC4 //Задается источник синхронизации, тип кодирования и необходимость проверки четности
bchan=1-15,17-31 // Задаются тайм-слоты для голоса
dchan=16 //Задаются сигнальные тайм-слоты для данных (0 -й — по умолчанию)
echocanceller=mg2,1-15,17-31 // Указывается тип эхоподавителя и тайм-слоты, на которых он будет задействован.

Теперь чуть более подробно по опциям.

span = <span_num>,<timing>,<LBO>,< framing>,<coding>[,crc4]
где
span_num – номер порта E1 ( от 1 до максимального номера порта в плате)
timing – использовать ли порт как источник синхронизации
0 – порт адаптера ведущий по E1
1 и более – порт ведомый по E1 и является одним из источников
синхронизации адаптера. Чем больше число, тем меньше приоритет порта.
LBO – параметр не используется, ставить 0.
Framing – тип телефонной сигнализации, ставить ccs или cas.
Coding – кодирование в линии, может принимать значения ami или hdb3
Crc4 – разрешить проверку и генерацию crc4 ( не обязательный параметр)

Делаем рестарт dahdi

service dahdi stop
service dahdi status

Если не выгрузился, необходимо сначала остановить Asterisk:

service asterisk stop

service asterisk start

service dahdi start

Значения не ниже 99,9 — хороший результат. Он означает, что DAHDI-устройство не вынуждено конкурировать с другими процессами за прерывания и время процессора. Значения ниже 99.9 будут приводить к ухудшению качества звука, срыву синхронизации канала E1, скрежету и обрывам голоса.

В случае, если значения ниже 99,9 ( да и просто для профилактики), неободимо убедиться, что цифровая карта не делит прерывания с другими драйверами.

cat /proc/interrupts
[pbx.localdomain

wctdm занимает отдельный irq, это правильно
если с кем-то делит, то это может сказывать на работе карты и качестве голоса.

Чаще всего наблюдается ситуация, когда драйвера USB и DAHDI занимают одно прервывание. Это нежелательная ситуация, и в ней лучше всего либо разнести драйвера по разным прерываниям, либо отключить USB на уровне BIOS.

тут можно увидеть ошибки в работе карты:

показывать сведения о карте

показывает конфигурационный файл, который используется

затем в /etc/asterisk/chan_dahdi.conf
примерный конфиг:

language=ru
context=from-trunk
signalling=pri_cpe
rxwink=300 ; Atlas seems to use long (250ms ) winks
;
; Whether or not to do distinctive ring detection on FXO lines
;
;usedistinctiveringdetection=yes

usecallerid=yes
hidecallerid=no
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=yes
echotraining=800
rxgain=0.0
txgain=0.0
group=0
callgroup=1
pickupgroup=1
immediate=no
;busydetect=yes
;busycount=5
faxdetect=no

switchtype=euroisdn ; or qsig
immediate=no
context=from-trunk
resetinterval=100000000
signalling=pri_cpe ; or pri_net
group=0
channel ≥1-15,17-31

dahdi restart
dahdi show channels — проверяем что каналы поднялись
dahdi show channel 1

Установка Asterisk из YUM

Помимо компиляции Asterisk вручную, можно воспользоваться менеджером пакетов YUM, который является штатной утилитой RedHat-based дистрибутивов.

Вам требуется создать новый файл с названием «centos -asterisk.repo» в директории the» /etc/yum.repos.d». В него вы вносите следующую конфигурацию:

Сохраняете данный файл и создаете новый: «centos -digium.repo». Вносите в него следующий текст:

После того как репозитории добавлены, можно приступить к установке пакетов.

Запускаем Asterisk и подключаемся к нему:

service asterisk start
asterisk -rvvv

Астериск — конфигурационные файлы

Главный конфигурационный файл:

asterisk.conf: Сервер Asterisk берет из этого файла информацию о том, где какие файлы находятся в системе, включая директорию, где лежат все остальные файлы конфигурации. По умолчанию, Asterisk ищет файл asterisk.conf в директории /etc/asterisk, но Вы можете, с помощью параметров запуска Asterisk, задать другое расположение и имя этого файла.

Файлы конфигурации каналов Asterisk:

iax.conf: Файл с конфигурацией канала IAX2
sip.conf: Файл с конфигурацией канала SIP
chan_dahdi.conf: Файл с конфигурацией каналов DAHDi

Файлы конфигурации Диалплана ( Плана набора):

extensions.conf: Конфигурация плана набора
extensions.ael: План набора в новом формате AEL (Asterisk Extensions Language)
features.conf: Конфигурация Парковки вызовов, перевода вызова, перехвата и прочих сервисных функций Asterisk.

Файлы конфигурации специфичные для некоторых команд плана набора:

alarmreceiver.conf: Конфигурация для команды AlarmReceiver
dundi.conf: Конфигурация, используемая командой DUNDiLookup
festival.conf: Конфигурация, используемая командой Festival
indications.conf: Определение тонов для команды Playtones
meetme.conf: Файл с конфигурацией конференций для команды MeetMe
musiconhold.conf: для команды MusicOnHold
queues.conf: Определение очередей звонков и их параметров для команды Queue
voicemail.conf: Конфигурация голосовых почтовых ящиков для команды VoiceMail

Конфигурационные файлы не попадающие в какую-либо категорию:

Основная фишка во всех файлах конфигурации

Установка кодека g729 ( и g723)

Кодек G729 обременен патентными ограничениями, что не дает возможность команде разработчиков Asterisk включить его в стандартную сборку Asterisk. Тем не менее, данный кодек является самым популярным кодеком на низкоскоростных каналах связи. Поэтому нам необходимо установить его самостоятельно.

cli> core show translation

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

Например, для Сentos 32 бита, на платформе intel, подойдет:

затем загружаем модуль в астериск

cli> core show translation

если мы ошиблись в выборе нужного кодека, скорее всего астериск « упадет»

Запускаем астериск и видим на каком этапе он вываливается

Удаляем модуль и перезапускаем астериск.

Без удаления можно обойтись так: в файле modules.conf добавить строчку

это значит, что при старте этот модуль автоматически загружаться не будет

После нормальной загрузки кодека, выполните команду core show translations для того чтобы убедиться в корректности установки кодека.

Подключение SIP клиента

Теперь необходимо настроить со стороны Asterisk-а SIP-аккаунт для внутреннего абонента.

[general]
;глобальные значения переменных канала SIP
disallow=all
allow=gsm
allow=ulaw
allow=alaw
context=default
;……
register ≥ user:pass@host/callerid

Создаем номер для абонента, узказывая для него опции подключения.

[100]
deny=0.0.0.0/0.0.0.0 //указание сетей, из которых запрещено подключение
permit=0.0.0.0/0.0.0.0 //указание сетей, из которых разрешено подключение
type=friend //указываем тип абонента.
secret=asdff34tgg //задаем пароль на подключение
qualify=yes // Активируем KeepAlive
port=5060 // Задаем порт, на котором будет работать абонентское устройство ( используется, если не работает функция регистрации абонентского устройства)
pickupgroup=1 // Задаем принадлежность к группе перехвата
nat=yes // Указываем, будет ли устройство находиться за NAT-ом по отношению к серверу Asterisk
mailbox=100@device // Указываем номер и контекст ящика голосовой почты
host=dynamic // Задаем IP абонетского устройства или сообщаем с опцией dynamic, что для местоопределения будет использоваться механизм регистрации
dtmfmode=rfc2833 // Тип передачи DTMF-сигналов
disallow=all // Сначала запрещаем все кодеки
allow=ulaw // Тут указываем допустимые кодеки, перечисляя их построчно сверху вниз в порядке приоритета
allow=gy29
dial=SIP/100 // Задаем команду Dial, которая будет использоваться для вызова данного абонента
context=from-internal // Указываем принадлежность абонента определенному контексту.
canreinvite=no // Указываем возможность использования механизма CanReinvite. Не рекомендуется для устройств, которые могут быть отделены от сервера NAT-ом
callgroup=1 // Указываем группу набора
callerid=Alexey <100> // Задаем CallerID — имя и номер, которые будут высвечиваться у других абонентов, а также в CDR.
call-limit=2 // Задаем максимальное количество линий, которые одновременно могут использоваться абонентом. Рекомендуется задавать не более 2-3-х одновременных линий.

сохраняем и делаем в cli

sip show peers
100/100 (Unspecified ) D N A 5060 UNKNOWN
1 sip peers [Monitored: 1 online, 0 offline Unmonitored: 0 online, 0 offline]

Теперь настраиваем софтфон или SIP телефон. Простая и понятная инструкция по настройке софтфона X-Lite для Asterisk находится здесь. Указываем реквизиты из sip.conf
user
pass
ip-proxy — IP нашего Астериск
Когда телефон подключится, мы должны увидеть

100/100 192.168.0.10 D N A 5060 OK (111 ms)
1 sip peers [Monitored: 1 online, 0 offline Unmonitored: 0 online, 0 offline]

Настройки для конкретного SIP peer

sip show peer 100

Необходимо создать второй аккаунт для коллеги, чтобы пускать звонки и тестировать корректность настройки Asterisk.
Сделать действия аналогичные, создать второй номер и сообщить реквизиты для SIP клиента коллеге.

Полезные команды CLI Asterisk

sip show peers
sip show peer 100
sip show settings
sip reload
sip set debug on
rtp set debug on
core show translation
dahdi show channels
core show application Dial
core show application CALLERID
core reload
dialplan reload
dialplan show context
dialplan show 100@context

Простой диалплан. Файл extensions.conf

Файл Extensions.conf описывает логику работы Asterisk, а именно, обработку входящих вызовов, маршрутизацию исходящих вызовов, обработку звонков и событий по разнообразным правилам. В Asterisk это называется ДиалПланом (DialPlan ). Как говорят разработчики, диалплан — это сердце Asterisk.

За работу диалплана отвечает файл extensions.conf. Файл поделен на контексты, в каждом из которых прописана логика работы. Логика работы формируется с помощью приложений. Приложения — это функции Asterisk, запускаемые с параметрами. Последовательность выполнения приложений — построчная.

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

Например, в данном контексте, который назначен абоненту с номером 100, описана возможность выполнения трех действий:

  • звонка на внутренний номер 999, который выполняет какую-либо функцию
  • звонка другому внутреннему абоненту, номер которого начинается с цифры «1 » и состоящий из трех цифр
  • звонок на внешние телефонные линии через SIP-оператора

[from-internal]
;тестовый звонок на номер 999, с возможность донабрать 2,3,5
exten ≥ 999,1,Answer ( )
exten ≥ 999,n,Background (hello -world)
exten ≥ 999,n,Hangup ( )
exten ≥ 2,1,Playback (digits /2)
exten ≥ 3,1,Playback (digits /3)
exten ≥ 5,1,Playback (digits /5)

;звонок на внутреннего абонента 1XX подключенного по технологии SIP

exten ≥ _1XX,1,Dial (SIP/$,60)

;звонок на московский номер через транк провайдера, который подключен к Asterisk по технологии SIP

Предположим что у нас есть небольшая организация, где работает около 50 сотрудников. Все они используют Asterisk для связи внутри компании и звонков наружу. Все настройки буду проводить на свежей Asterisk 18. В своей предыдущей статье я рассмотрел процесс установки Asterisk 18 на Centos 8. Давайте рассмотрим как происходит настройка Asterisk с нуля.

Учитывая тот факт что библиотека chan_sip не актуальна, будем рассматривать настройку через PJSIP. Старую библиотеку необходимо отключить (если включена) для исключения конфликтов.

Отключение chan_sip

В файле /etc/asterisk/modules.conf необходимо найти и убрать ; перед строкой noload => chan_sip.so

Рассмотрим структуру Asterisk с кратким описанием конфигурационных файлов требуемых для настройки транка, пользователей, диалплана.

Структура Asterisk

Настройка Asterisk происходит путем редактирования конфигурационных файлов. Располагаются они в директории /etc/asterisk/ . Перечислю основные файлы которые нам потребуются для начальной настройки.

Я перечислил лишь основные конфигурационные файлы Asterisk. Но их значительно больше. В повседневной жизни используется только два файла exntensions.conf и pjsip.conf

Часть функций а также повторная загрузка данных из конфигурационных файлов происходит с помощью консоли Asterisk. Зайти в консоль можно так:

Для более детального вывода данных в консоль можно использовать ключ -v (я обычно использую -vvvvvv). Чем больше букв v указано, тем детальнее будет вывод информации в консоль. Запуск в режиме повышенной детализации:

Полный список консольных команд с описанием можно прочитать в моей статье

Подключение пользователей

Добавление новых пользователей происходит в файле pjsip.conf. Конфигурационный файл pjsip.conf состоит из секций. Имена секций указываются в квадратных скобках. Название секций может быть произвольным, кроме имен ENDPOINT и AOR которые должны быть одинаковые с заголовком SIP URI.

Перечислю возможные типы секций:

В каждой секции есть опция type содержащая назначение секции в общей конфигурации.

Создание первого пользователя

Создадим учетную запись нашего первого пользователя в Asterisk. Пользователь может подключаться с SIP телефона либо софтфона. Для удобства я заполняю конфигурационные файлы добавляя новые данные в конец файла. Также очень удобно удалить все и создать чистый файл для удобства чтения. Откроем файл pjsip.conf для редактирования

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

В данном пример я добавил минимально необходимую информацию о пользователе для его регистрации на сервере Asterisk. Давайте разберем подробнее что мы написали:

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

И введем команду повторной загрузки настроек из файла pjsip.conf

Теперь запустим SIP телефон и настроем учетную запись 1000 на нём. В работе я использую софтфон MicroSIP. Он мне нравится за свою компактность и возможность работы в portable режиме.

Как видно на изображении выше мы удачно подключились к АТС. Но что делать если нам необходимо добавить не одного, а 50 пользователей? Если писать такой конфиг по каждому пользователю, потом очень сложно будет что-то найти. Для таких случаев есть шаблоны. Разберемся как они работают.

Создание шаблона

Использование шаблонов также полезно для разделения сотрудников из разных отделов с разным уровнем доступа. Название шаблона указывается в квадратных скобках [] затем идет (!)

В шаблоне можно указывать все те же параметры что и при обычном создании пользователя. Я привел пример простого шаблона отдела маркетинга с указанием минимального набора настроек. Однако их может быть значительно больше, например: используемые кодеки, необходимость использования NAT, контекст, разрешенную лиюо запрещенную сеть для регистрации абонентов. В общем параметров может быль сколь угодно много, и писать все их для каждого пользователя дело не благодарное. Рассмотрим далее применение шаблона для создания пользователей.

Применение шаблона

Создадим трех пользователей отдела маркетинга с применением шаблона. Для использования шаблона необходимо справа от названия секции в круглых скобках добавить название шаблона.

Используя шаблон мы указываем только те параметры которые хотим поменять. Все параметры не указанные нами в каждой из секций будут браться из шаблона. Можно зайти под каждый из пользователей и проверить что все получилось.

Маршрутизация вызовов
Структура файла extensions.conf

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

Рассмотрим параметры секции [general]

Перейдем к параметрам секции [globals]

В Asterisk могут использоваться как глобальные переменные так и переменные канала. Есть еще переменные окружения, они обеспечивают доступ из Asterisk к переменным окружения unix.

Глобальные переменные могут быть определены в секции [globals] либо с помощью команды SetGlobalVar в плане набора номера. Глобальная переменная отличается тем, что работает для всего файла exntensions.conf. Переменные канала используются в том диалплане в котором они определены.

В глобальных переменных удобно хранить длинные добавочные номера, время работы (при использовании автосекретаря) и другие часто используемые переменные. Пример секции [globals]

В приведенном примере я задал две переменные с указанием времени работы и дней недели для автосекретаря и в третьей переменной указал добавочный номер и канал через который можно позвонить на ресепшен.

Диалплан в Asterisk пишется на основе контекстов. В каждом контексте мы определяем набор приложений с указанными параметрами. Давайте сразу рассмотрим на примере, как нам написать диалплан чтобы пользователи могли звонить на добавочный 1000.

Я написал контекст с названием from-internal далее указал что при звонке на добавочный 1000 будет происходить дозвон номера 1000 через интерфейс PJSIP. При создании пользователя Asterisk в файле pjsip.conf в разделе настройки endpoint мы указываем поле context=from-internal. Это означает что совершая вызов данный пользователь будет руководствоваться правилами указанными в контексте [from-internal] файла extensions.conf

Процесс вызова

Совершая вызов абонент будет искать в своем контексте правила набора указанного номера. В каждом контексте может быть большое количество добавочных номеров. К набираемому добавочному номеру правила применяются последовательно.

Формат записи такой: exten = имя,приоритет,приложение(параметры)

Расширим наш диалплан, добавив дополнительные пункты. И не забудьте, что при изменений файла extensions.conf необходимо чтобы Asterisk перечитал его. Для этого заходим в консоль и вводим команду dialplan reload

Как вы уже заметили, комментарии можно писать сразу после ;

При звонке на 1000 мы поднимаем трубку, проигрываем приветствие и последним действием будет звонок на добавочный 1000. Можно написать и так:

Приоритет можно заменить буквой n но первый приоритет указывать необходимо обязательно. Можно еще немного оптимизировать наш диалплан.

Используя same вместо exten можно не писать в каждой строке добавочный 1000. Но как и в случае с n в первой строке указывать exten обязательно.

Системные добавочные номера

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

Шаблоны номеров

Для удобства добавочные номера можно сопоставлять по шаблонам. Все шаблоны в диалплане начинаются со знака нижнего подчеркивания _

Шаблон для звонков внутри организации по всем добавочным из 4 цифр будет выглядеть так:

Вложение контекстов

Есть одна особенность, Asterisk сначала сортирует добавочные (exten) и затем ищет первое совпадение. Чтобы при совпадении шаблонов заставить Asterisk звонить по нужному будем использовать вложенные контексты.

В контексте from-internal сначала будет обрабатываться шаблон _XXXX затем вложенный контекст include=long

Увидеть в какой последовательности Asterisk обрабатывает диалплан можно введя в консоли команду dialplan show

Благодаря созданному диалплану все 4-х значные номера будут идти на локальных пользователей. Остальные номера пойдут через внешнего провайдера SIPNET. И чтобы все внешние звонки действительно пошли через SIPNET давайте его настроим в pjsip.conf

Настройка внешнего провайдера

Для проверки входящей и исходящей связи я буду использовать тестовый транк с регистрацией от SIPNET. Я настрою сам транк в файле pjsip.conf и правила маршрутизации звонков в extensions.conf

Открываем файл pjsip.conf

Добавляем в конец файла регистрацию транка провайдера

Тонкости настройки транка провайдера у каждого свои но приведенный пример как правило подойдет для большинства других.

После добавления новых данных в файл не забываем зайти в консоль asterisk и перечитать конфиги

Настроим входящую маршрутизацию

Добавляем настройки маршрутизации входящей связи при звонке снаружи на наш номер SIPNET

Вставим следующий текс в конец файла

Можно добавить обработку входящего вызова по времени.

В зависимости от текущего времени и дня недели если вызов совершен во временной промежуток указанный в GotoifTime будет переход на метку work. Все вызовы не попадающие под временной интервал будут отправляться на метку outwork.

На данном этапе мы создали обработку внутренних вызовов, входящих и исходящих внешних (городских) вызовов. В тестовом аккаунте проверить исходящие вызовы можно позвонив по телефону техподдержки 2009991

Считаю настройку для небольшой организации достаточной. Мы разобрали как происходит настройка Asterisk с нуля.

Смотрите видео по настройке

Настройка Asterisk с нуля не займет очень много времени даже у непрофессионала. Asterisk – программное обеспечение телефонии, которое превосходит по всем функциям другие серверы для осуществления ATC.

Лицензия Asterisk свободная, что позволяет пользоваться этой программой многим людям.

С каждым годом Астериск все больше и больше развивается, благодаря увеличению ресурсов.

Freepbx: настройка с нуля

Интерфейс Freepbhx нужен для более простой настройки Asterisk и управления VoIP-телефонией. Главное преимущество – человеку не надо исправлять самому все текстовые файлы. Эта программа помогает переводить язык программы в виде текста, который поймет пользователь. Для настройки Freepbhx надо установить программу на компьютер.

Для того чтобы установить интерфейс, требуется:


Замечание! Чтобы зайти с другого компьютера, нужно ввести IP-адрес и снова задать логин и пароль.

Установка Asterisk

Установка и настройка окажется простой, если соблюдать пошагово инструкцию.

Если нужна только VoIP-сеть, то можно установить только asterisk. Но лучшим вариантом станет установка трех пакетов.

Драйвер dahdi используется при цифровом оборудовании. Для обмена данными с периферийным оборудованием нужен драйвер. Принцип настройкиAsterisk заключается в следующем:

сервер Asterisk<->chan_dahdi<-> Драйвер dahdi<-> Карта <-> Телефон/Коммутатор/Телефонная сеть

Библиотека libpri необходима для использования TDM-интерфейсов ISDN: PRI (PrimaryRateInterface) и BRI (BasicRateInterface). Libri делится на каналы по времени – Time Division Multiplexing.

Можно рассмотреть установку Asterisk из исходников. Такой способ установки дает возможность установить Asterisk с нуля.

Важно! Есть несколько условий для установки и настройки программы.
  • Версия ядра системы должна быть не ниже 2.6.
  • Обязательное наличие файлов заголовков в системе.
  • Присутствие компилятора gccctermcap и openssl.

Проверив все эти моменты, можно приступать к установке. Для этого надо перейти на сайте в Download и загрузить такие архивы:

  • «asterisk»
  • «asterisk-sounds»
  • «asterisk-addons»
  • «zaptel»
  • «libpri»

После этого скопировать файлы на сервер и разместить их в папке «/usr/src/.».

Далее надо запустить терминал в сервере.

Затем распаковать каждый архив командой «tar-xzf<имя >tar.gz» .

Потом перейти в каждую папку при помощи команды «cd<имя>» .

Закончив, надо выполнить определенные команды для настройки:

  • «./configure» (это подготовит программу к сборке)
  • «make» (команда для сборки)
  • «makeinstall» (установка программы)

Для установки необходимых пакетов не нужно прилагать особых усилий. Астериск обладает автоматизацией пакетов, поэтому для этого нужен скрипт install_prereq, который можно найти в подкаталоге contrib/scripts, где есть исходные коды.

Нужно зайти в этот подкаталог и запустить скрипт. С помощью него необходимые пакеты будут установлены.

Таким образом, при соблюдении всех действий Asterisk для чайников будет готов.

Как настроить Asterisk на Ubuntu

Соблюдая пошаговую инструкцию, можно просто установить Asterisk на Ubuntu:

  1. Надо скачать на Ubuntu.
  2. Установить пакеты для корректной сборки DAHDI и LibPRI.
  3. Загрузить исходник (необходимо ввести «wget…» вместе со ссылкой на загрузку.
  4. Распаковать программу при помощи команды «tarzxvf».
  5. Зайти в директорию с Asterisk.
  6. Ввести «contrib/scripts/install_prereqinstall», чтобы загрузить утилиты из Asterisk.
  7. Для запуска программы надо написать эту команду, добавив «-unpackaged».
  8. Повторно зайти в каталог с программой.
  9. Заставка появится при вводе «. /configure».
  10. Повторить все то же самое, что делают при запуске Asterisk.


  1. Открыть конфигурационный файл: vi /etc/asterisk/asterisk.conf.
  2. Создать учетную запись asterisk в системе: useraddasterisk–m.
  3. Задать права: chown -R asterisk:asterisk /var/log/asterisk.
  4. Проверить конфигурацию: asterisk –c.

Запуск Астериск из скриптов загрузки:

[asterisk@newtmp]$ cd asterisk-1.0.1

[asterisk@new asterisk-1.0.1]$ cd channels/h323

[asterisk@new h323]$ make

g++ -g -c -fno-rtti -o ast_h323.o -march=i686 -DPBYTE_ORDER=PLITTLE_ENDIAN -DN

DEBUG -DDO_CRASH -

DDEBUG_THREADS -pipe -Wall -fPIC -DP_LINUX -D_REENTRANT -D_GNU_SOURCE -DP_HAS_S

EMAPHORES -DP_SSL -

DP_PTHREADS -DPHAS_TEMPLATES -DPTRACING -DP_USE_PRAGMA -I../../include

-I/home/asterisk/pwlib/include/ptlib/unix -I/home/asterisk/pwlib/include

-I/home/asterisk/openh323/include -Wno-missing-prototypes -Wno-missing-declarations ast_h323.cpp

chan_h323.h:31: warning: `sockaddr_inbindaddr' defined but not used arcr libchanh323.a ast_h323.o

[asterisk@new h323]$

[asterisk@new h323]$ cd ../..

Как установить Asterisk на Windows

Совет! Более подробно с настройкой телефонии Астериск можно ознакомиться здесь:

  1. Перейти в папку «contrib/scripts/» с помощью команды «cd».
  2. Открыть «get_mp3_source.sh».
  3. Ввести «makeinstall».
  4. Открыть консоль Asterisk.
  5. Сделать файлы при помощи «makesamples».
  6. Запустить функцию «service asterisk start».

Основным конфигурационным файлом является asterisk.conf. Отсюда берется информация о местоположении файлов в системе.

Файл конфигурации, который пригодится для набора некоторых команд:

  • conf (голосовые почтовые ящики при команде VoiceMail).
  • conf (конфедерация, применяемая установкой Festival).
  • conf (структура, необходимая для указания AlarmReceiver).
  • conf (настройка тонов с указанием Playtones).
  • conf (конфигурация, которая используется командой DUNDiLookup).
  • conf (конфигурация для того, чтобы установить очередь звонков и их параметров для команды Queue).

Файлы конфигурации каналов Asterisk:

  • conf (канал IАX2).
  • conf (канал SIP).
  • conf (канал DАHDi).

Частые ошибки в установке и настройке Asterisk

  • Не отключены анонимные звонки и использован контекст для плана нумерации.

Если не планируется принимать анонимные звонки, надо их отключить.

  • Отсутствие библиотеки sqlite или ее компонентов для разработчиков для сборки программ.

Чтобы решить эту проблему, надо использовать CentOS с пакетом sqlite-devel: yum -y install sqlite-devel

  • Не получается зарегистрировать Asterisk на сервере ru.

Для решения этой проблемы надо проверить правильность ввода пароля, SIP ID. Также необходимо проверить, как сотрудник создан в «Личном кабинете»: правильно или нет.

Надо проверить, находится ли пользователь в регистрации. Необходимо ввести команду sipshowregistry в консоле Астериск.

Нужно выбрать либо поддержку nat в Asterisk, либо поддержку SIP. Второй вариант решения проблемы – установка directmedia=nonat. Еще одним способом станет установка debug в Asterisk, с помощью которого можно будет отслеживать все запросы и аудио-трафик.

Для этого надо написать: exten => _XXXXXX,1,Dial(DAHDI/g1/$)

Изменив номер, можно решить проблему.

Заключение

Настройка Asterisk с нуля не окажется трудной как специалисту, так и новичку. Asterisk является отличным решением компьютерной телефонии.

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

Астериск доступен в Ubuntu, но его также можно установить и на Windows.

Для удобства можно использовать Freepbx, так как это функциональный интерфейс для настройки Астериска. Он переводит текст программы на понятный язык, что облегчает задачу. С помощью данной программы можно легко менять количество абонентов, так как платформа очень гибкая и многое позволяет.

Не надо ставить лишние пробелы и ошибаться в написании команд. Совсем незаметные ошибки могут не допустить работу программы.

Разобравшись в этой системе, можно получить много новых возможностей, которые не были доступны всем раньше.

Читайте также: