16. Настройка Asterisk сервера

Для того чтобы настроить Calculate Directory Server в качестве IP-АТС используется Asterisk. Asterisk — компьютерная ATC под лицензией GPL поддерживающая большое количество VoIP протоколов. Настройка Asterisk производится путем редактирования файлов находящихся в директории /etc/asterisk.

Разберем настройку Asterisk-сервера на примере несложной конфигурации.

Постановка задачи

  • Мы имеем один настроенный Asterisk-сервер в первом офисе, нам надо настроить второй сервер для нового офиса
  • На наш новый сервер мы получаем две телефонные линии по аналогу
  • Одна линия используется для телефонных разговоров, вторая для факсов
  • В сервере установлена плата Digium AEX804E — PCI-E плата на 8 портов, в которую установлен один модуль на 4 FXO-порта и модуль эхоподавления
  • Имеющийся сервер находится в Санкт-Петербурге, новый будет в Москве
  • Сервера должны быть связаны между собой и иметь единую систему нумерации внутренних номеров
  • На московском сервере должна быть следующая схема очередей звонков при поступающем вызове на основную линию:
    Поступил звонок → проигрываем приветствие и предлагаем набрать добавочный номер → если добавочный номер не был набран, то переводим звонок на секретаря в СПБ → если секретарь не ответил, то переводим звонок на абонентов московского сервера → если московские абоненты не ответили, то переводим звонок на петербургских абонентов.
  • При звонках поступающих на факсовую линию — они должны адресоваться на факс
  • Для подключения факса по SIP нам необходим FXS-шлюз, например, Linksys SPA2102
  • Исходящие звонки должны совершаться по первой свободной линии. Если основная телефонная линия занята, то звонок идет через факсовую.
  • Звонки с московского сервера в Санкт-Петербург(код 812) должны проходить через сервер в Петербурге
  • Все нижеприведенные настройки тестировались и применимы для следующих версий пакетов:
    • net-misc/asterisk-1.6.2.17.3
    • net-misc/dahdi-2.4.1
    • net-misc/dahdi-tools-2.4.1

Установка сервера Asterisk

Для начала работы нам необходимо установить в систему Calculate Directory Server пакет сервера Asterisk и сопутствующие пакеты.

Конфигурация USE-флагов для устанавливаемых пакетов

Создадим файл /etc/portage/package.use/asterisk — в нем мы пропишем все необходимые USE-флаги для нужных нам пакетов.

net-misc/asterisk alsa caps iconv jabber ldap samples speex ssl vorbis dahdi span
net-misc/asterisk-core-sounds alaw g722 g729 gsm siren14 siren7 sln16 ulaw wav
net-misc/asterisk-extra-sounds alaw g722 g729 gsm siren14 siren7 sln16 ulaw wav
net-misc/asterisk-moh-opsound alaw g722 g729 gsm siren14 siren7 sln16 ulaw wav
media-libs/speex sse ogg

Для пакета net-misc/asterisk мы добавляем флаги dahdi (для работы с платой телефонии), span (для факсов) и vorbis (опционально для поддержки кодека vorbis). У остальных пакетов мы прописываем поддержку всех доступных кодеков.

Установка пакетов

Теперь, когда мы установили необходимые USE-флаги, приступим к установке.
Вводим команду:

emerge -a asterisk dahdi dahdi-tools

Мы получим такой список пакетов для установки:

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N     ] net-libs/libpri-1.4.11.4
[ebuild  N     ] sys-libs/slang-2.2.2  USE="pcre png readline zlib -cjk" 
[ebuild  N     ] dev-libs/iksemel-1.3  USE="-gnutls" 
[ebuild  N     ] media-libs/spandsp-0.0.6_pre12-r1  USE="mmx sse sse2 sse3 -doc (-fixed-point) -static-libs
[ebuild  N     ] net-misc/dahdi-2.4.1  USE="flash" 
[ebuild  N     ] dev-libs/newt-0.52.12  USE="gpm nls -tcl" 
[ebuild  N     ] net-misc/dahdi-tools-2.4.1  USE="-ppp" 
[ebuild  N     ] net-misc/asterisk-1.6.2.17.3  USE="alsa caps dahdi iconv jabber ldap samples span speex ssl vorbis -doc -freetds -lua -newt -oss -postgres -radius -snmp -sqlite" 
[ebuild  N     ] net-misc/asterisk-extra-sounds-1.4.11  USE="alaw g722 g729 gsm siren14 siren7 sln16 ulaw wav" LINGUAS="fr" 
[ebuild  N     ] net-misc/asterisk-moh-opsound-2.03  USE="alaw g722 g729 gsm siren14 siren7 sln16 ulaw wav"[ebuild  N     ] net-misc/asterisk-core-sounds-1.4.19  USE="alaw g722 g729 gsm siren14 siren7 sln16 ulaw wav" LINGUAS="fr" 

Would you like to merge these packages? [Yes/No]

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

Базовая настройка SIP

Задача поставлена — приступим к настройке нашего нового сервера.

Создание учетных записей

Сперва добавим несколько локальных SIP-абонентов. Для этого нам необходимо редактировать файл /etc/asterisk/sip.conf

Сначала добавим шаблон для общих настроек sip-телефонов:

[office-phones](!) 
type=friend 
context=outcoming-sip 
secret=xxxxxxxx 
host=dynamic 
nat=no 
qualify=yes 
canreinvite=no 
callgroup=1 
pickupgroup=1 
dtmfmode=auto 
disallow=all 
allow=g722

Рассмотрим этот участок кода. Шаблон задается при помощи восклицательного знака в скобках около имени секции [phones](!)
  • type — тип соединения (peer — только исходящие вызовы, user — входящие вызовы, friend — входящие и исходящие вызовы)
  • context — контекст в /etc/asterisk/extension.conf в который будет выполняться при звонке с телефона
  • secret — пароль для SIP телефона
  • host — имя хоста телефона (dynamic динамическое имя хоста)
  • nat — сетевая трансляция адресов
  • qualify — проверка функционирования телефона
  • canreinvite — прямой доступ телефона к другому телефону минуя Asterisk
  • callgroup — номер телефонной группы
  • pickupgroup — номер группы захвата звонков
  • dtmfmode=auto — dtmf режим (auto|inband|info|rfc2833)
  • disallow=all — запрещает все кодеки
  • allow=g722 — разрешает использование кодека g722

Теперь добавим секции для каждого телефона:

[001](office-phones)
callerid="Менеджер 1" <800>
[002](office-phones)
callerid="Менеджер 2" <801>
[003](office-phones)
t38pt_udptl=yes
callerid="Факс МСК" <802>
disallow=all
allow=alaw
allow=ulaw

Для факса мы переопределяем используемые кодеки, т. к. факсовый сигнал нормально проходит лишь при использовании кодека g711(alaw и ulaw) и t38pt_udptl=yes разрешает использование протокола t.38 для передачи факсов.

Базовая настройка плана набора

Наши телефоны и FXS-шлюз теперь могут зарегистрироваться на сервере, но звонить пока они еще не могут. Для этого нам надо создать контекст [outcoming-sip ] в файле /etc/asterisk/extensions.conf

Конфигурация внутренних вызовов

Для удобства выделим локальные номера в отдельную секцию:

[msk-local-phones]
exten => 800,1,Log(NOTICE,"800 ACCOUNT")
exten => 800,2,Dial(SIP/001,120,Tt)
exten => 801,1,Log(NOTICE,"801 ACCOUNT")
exten => 801,2,Dial(SIP/002,120,Tt)
exten => 802,1,Log(NOTICE,"802 ACCOUNT")
exten => 802,2,Dial(SIP/003,120,Tt)

И сделаем секцию завершающую вызов:

[handup-sip]
exten => _X!,1,HangUp()

В секцию [outcoming-sip] теперь подключим наши секции:

[outcoming-sip]
include => msk-local-phones
include => handup-sip

Теперь перезагрузив настройки Asterisk мы сможем звонить по номерам внутри сервера 800, 801 и 802 соответственно. Перезагрузка настроек asterisk выполняется следующим образом. Запускаем консоль управления Asterisk-сервером командой asterisk -r и прописываем в консоли reload — это заставит Asterisk перечитать все настройки, либо же можно перечитать их по отдельности прописав sip reload для перезагрузки настроек sip и dialplan reload для перезагрузки настроек плана набора.
Введя команду sip show peers мы можем посмотреть, какие абоненты у нас могут присутствовать на сервере и кто сейчас зарегистрирован и с какого IP.

Настройка связи между двумя серверами и вызовов между ними

Наши абоненты уже звонят друг-другу, но у нас есть еще и абоненты на нашем сервере в Петербурге, нам надо чтобы они могли звонить и им тоже. Для этого нам надо для начала настроить связь между нашими двумя серверами Asterisk.

Установка связи между двумя Asterisk-серверами по протоколу SIP

На сервере в Москве прописываем в файле /etc/asterisk/sip.conf следующее:

В секции [general]:

register => msk_asterisk:XXXXXXXXX@192.168.0.30/spb_asterisk

И в конце создаем новую секцию:

[spb_asterisk]
type=friend
secret=XXXXXXXXX
context=spb_incoming
host=dynamic
qualify=yes
dtmfmode=rfc2833
disallow=all
allow=ulaw

На сервере в Санкт-Петербурге пишем очень похожим образом:

В секции [general]:

register => spb_asterisk:XXXXXXXXX@192.168.1.25/msk_asterisk

И в конце создаем новую секцию:

[msk_asterisk]
type=friend
secret=XXXXXXXXX
context=msk_incoming
host=dynamic
qualify=yes
dtmfmode=rfc2833
disallow=all
allow=ulaw

Теперь рассмотрим подробнее что-же мы такое написали и для чего.

register => msk_asterisk:XXXXXXXXX@192.168.0.30/spb_asterisk

Это указывает нашему московскому серверу зарегистрироваться на петербургском сервере 192.168.0.30/spb_asterisk с логином msk_asterisk и паролем XXXXXXXXX.
Эти логин и пароль мы как раз задали, создав секцию [msk_asterisk] на нашем сервере в Петербурге. И соответственно петербургский сервер регистрируется на московском 192.168.1.25/msk_asterisk с логином и паролем указанными секцией [spb_asterisk] в конфигурации московского сервера.

Конфигурация плана набора для связи между серверами

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

В файле /etc/asterisk/extensions.conf на московском сервере создаем секцию [spb-local-phones], в который мы пропишем наших петербургских абонентов:

[spb-local-phones]
exten => 500,1,Dial(SIP/spb_asterisk/500,120,Tt)
exten => 501,1,Dial(SIP/spb_asterisk/501,120,Tt)
(... и т. д.)

Отметим небольшую разницу с тем, как мы прописывали локальных абонентов.
Если локальным абонентам мы звонили exten => 800,2,Dial(SIP/001,120,Tt), то есть набрав номер 800 мы совершали абоненту, который зарегистрирован с логином 001, то в данном случае exten => 500,1,Dial(SIP/spb_asterisk/500,120,Tt) мы звоним абоненту находящемуся на сервере spb_asterisk с телефонным номером 500.

В имеющуюся секцию [outcoming-sip] добавляем включение новой секции с локальными номерами петербургского сервера:

[outcoming-sip]
include => msk-local-phones
include => spb-local-phones
include => handup-sip

И создаем секцию [spb_incoming] для обработки вызовов поступающих с петербургского сервера:

[spb_incoming]
include => msk-local-phones
include => handup-sip

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

[msk-local-phones]
exten => 800,1,Dial(SIP/msk_asterisk/800,120,Tt)
exten => 801,1,Dial(SIP/msk_asterisk/801,120,Tt)
exten => 802,1,Dial(SIP/msk_asterisk/802,120,Tt)

[outcoming-sip]
include => msk-local-phones
include => spb-local-phones
include => handup-sip

[msk_incoming]
include => spb-local-phones
include => handup-sip

Перегружаем настройки SIP и плана набора. Теперь наши абоненты в Москве и Петербурге (на обоих серверах установлена система Calculate Directory Server c пакетом Asterisk) могут общаться между собой.

Настройка платы Digium AEX804E и конфигурация плана набора

Наши абоненты звонят друг-другу, звонят абонентам петербургского сервера, но они пока еще не могут звонить на городские телефоны. Приступим к настройке нашей платы телефонии.

Настройка системы для работы с платой телефонии

Для работы платы телефонии необходимы пакеты net-misc/dahdi и net-misc/dahdi-tools.
Когда они установлены, то закоментируем строку с модулем для нашей платы в файле /etc/modprobe.d/dahdi.blacklist.conf для того чтобы модуль для нее загружался системой.

Файл примет следующий вид:

# blacklist all the drivers by default in order to ensure that
# /etc/init.d/dahdi installs them in the correct order so that the spans are
# ordered consistently.

blacklist wct4xxp
blacklist wcte12xp
blacklist wct1xxp
blacklist wcte11xp
#blacklist wctdm24xxp
blacklist wcfxo
blacklist wctdm
blacklist wctc4xxp
blacklist wcb4xxp
blacklist wcopenpci
blacklist zaphfc

В нашем случае нам необходим модуль wctdm24xxp — этот модуль используется платами TDM2400P/AEX2400, TDM800P/AEX800 и TDM410P/AEX410.

Теперь настроим каналы на нашей плате. Для этого нам необходимо отредактировать файл /etc/dahdi/system.conf

В нашей плате установлен модуль на 4 FXO канала, с номерами каналов от 5 до 8(если смотреть на плату, то это 4 левых гнезда. На этой плате нумерация каналов идет справа налево. Восьмой канал — крайний левый, первый канал — крайний правый.

В конфигурационном файле прописываем следующее:

fxsks=5
fxsks=6
fxsks=7
fxsks=8

Это указывает нам, что для каналов с 5-го по 8-й у нас используется сигнализация fxsks.

Объяснение понятий FXO и FXS

Немного отвлечемся и разберемся, что есть FXO и FXS и где какая сигнализация.
Порт FXO принимает телефонную линию с телефонной станции, то есть ведет себя как оконечное оборудование(телефонный аппарат) и использует сигнализацию fxsks.
Порт FXS генирирует сигнал готовности линии и выдает напряжение линии, то есть ведет себя как телефонная станция и использует сигнализацию fxoks.
Таким образом порты называются исходя из того, что к ним подключается и используют сигнализацию исходя из того, чем они являются сами.

Настройка FXO-каналов на Asterisk-сервере

Теперь мы запускаем демон dahdi /etc/init.d/dahdi start и смотрим, что у нас все работает как надо командой dahdi_cfg -vv

Вывод команды:

DAHDI Tools Version - 2.4.1

DAHDI Version: 2.4.1
Echo Canceller(s):
Configuration
======================

Channel map:

Channel 05: FXS Kewlstart (Default) (Echo Canceler: none) (Slaves: 05)
Channel 06: FXS Kewlstart (Default) (Echo Canceler: none) (Slaves: 06)
Channel 07: FXS Kewlstart (Default) (Echo Canceler: none) (Slaves: 07)
Channel 08: FXS Kewlstart (Default) (Echo Canceler: none) (Slaves: 08)

4 channels to configure.

etting echocan for channel 5 to none
Setting echocan for channel 6 to none
Setting echocan for channel 7 to none
Setting echocan for channel 8 to none

Теперь необходимо настроить каналы в самом Asterisk-сервере. Для этого мы редактируем файл /etc/asterisk/chan_dahdi.conf

В нем нам необходимо отредактировать секцию [channels]:

[channels]
usecallerid=yes
hidecallerid=no
callwaiting=no
threewaycalling=yes
transfer=yes
echocancel=yes
echotraining=yes
signaling=fxs_ks
context=incoming_fxo
group=1
channel=>7
context=incoming_fxo_fax
group=1
channel=>8

Рассмотрим параметры:
  • usecallerid=yes — активирует возможность передачи CallerID
  • hidecallerid=no — указывает, что для исходящих вызовов будет передаваться CallerID
  • callwaiting=no — деактивирует отложенный вызов
  • threewaycalling=yes — активирует возможность подключения третьего абонента
  • transfer=yes — разрешает переадресацию вызова
  • echocancel=yes — активирует эхоподовление
  • echotraining=yes — активирует режим измерения эха для ускорения настройки эхоподавления
  • signaling=fxs_ks — указывает на использование сигнализации fxs
  • group=1 — группа каналов

Первый контекст указывает как будет обрабатываться вызов для 7-го канала, второй для 8-го. Седьмой канал мы используем для основной линии, восьмой — для факсов. Параметр group=1 для обоих каналов объединяет их в одну группу. Это позволит нам совершать вызовы через первую свободную линию.

Конфигурация плана набора для приема вызовов

Настроим прием вызовов на наши линии.
Создаем контекст [incoming_fxo] в файле /etc/asterisk/extensions.conf:

[incoming_fxo]
exten => s,1,Answer()
exten => s,n,Ringing()
exten => s,n,Queue(welcome,n,,,12)
exten => s,n,GotoIfTime(19:15-8:00,*,*,*?allRing:default)
exten => s,n(allRing),NoOp()
exten => s,n,Queue(allNoFaxes,r,,,600)
exten => s,n,HangUp()
exten => s,n(default),NoOp()
exten => s,n,Queue(secretary,r,,,6)
exten => s,n,Queue(msk-manager1,r,,,10)
exten => s,n,Queue(spb-managers,r,,,600)
include => handup-sip

Здесь мы отвечаем на вызов и отправляем его в необходимую очередь.
Queue(welcome,n,,,12) отправляет звонок в очередь welcome на 12 секунд, параметр «n» позволяет набор во время нахождения в очереди и проигрывается музыка ожидания(Music On Hold, MOH). В очереди welcome мы проигрываем приветственное сообщение — это будет описано ниже.
GotoIfTime(19:15-8:00,*,*,*?allRing:default) — проверяется условие, если сейчас время от 19:15 вечера до 8:00 утра, то мы переходим к метке allRing, иначе к метке default. Это делается для того, чтобы в то время, когда большинства работников нет в офисе звонили все телефоны, а в рабочие часы — в установленном порядке. Далее под меткой default у нас звонок сначала на 6 секунд идет на секретаря, затем на 10 секунд на московских менеджеров и потом на 600 секунд на петербургских менеджеров. Параметр «r» в вызове Queue() отвечает за то, что вместо MOH звонящий слышит гудки, как при звонке (ringing).

Также нам нужен контекст для второй линии — создадим секцию [incoming_fxo_fax] в файле /etc/asterisk/extensions.conf:

[incoming_fxo_fax]
exten => s,1,Answer()
exten => s,2,NoOp()
exten => s,n,Ringing()
exten => s,n,Queue(msk-faxes,r,,,600)
include => handup-sip

На этой линии мы просто отправляем поступивший звонок на факс на 600 секунд.

Создание очередей вызова

Теперь рассмотрим, как именно описываются очереди. Они описываются в файле /etc/asterisk/queues.conf.

[welcome]
strategy = ringall
musicclass=welcome
context=all-local-sip

[secretary]
strategy = ringall
musicclass=default
context=all-local-sip
; Секретарь
member => SIP/spb_asterisk/550,1

[spb-managers]
strategy = ringall
musicclass=default
context=all-local-sip
; Менеджеры
member => SIP/spb_asterisk/500,1
member => SIP/spb_asterisk/501,1
; (… и т. д.)

[msk-faxes]
strategy = ringall
musicclass=default
context=all-local-sip
; Московский факс
member => SIP/002,1

[msk-manager1]
strategy = ringall
musicclass=default
context=all-local-sip
; Московские менеджеры
member => SIP/001,1

Основные параметры при описании очередей:
  • strategy — стратегия по которой обрабатываются поступающие вызовы, может принимать несколько значений:
    • ringall — вызываются все доступные участники до тех пор, пока кто-то из них не ответит на вызов (по умолчанию)
    • leastrecent — вызывается участник очереди, который вызывался меньшего всего
    • fewestcalls — вызывается участник очереди, ответивший на наименьшее количество звонков
    • random — случайным образом из участников очереди вызывается свободный
    • rrmemory — циклический вызов с памятью, запоминается последний ответивший участник очереди
  • musicclass — задает, какая музыка или сообщение проигрывается во время ожидания в данной очереди(задается в файле /etc/asterisk/musiconhold.conf)
  • context — задает, какой контекст будет обрабатывать набор номера во время ожидания.
  • member — задает участников очереди, обрабатывающих вызов. На каждого участника создается запись.

Для обработки добавочного номера в очереди welcome мы указали контекст [all-local-sip] — он должен включать в себя все локальные московские и петербургские номера, создадим для него запись в файле /etc/asterisk/extensions.conf

[all-local-sip]
include => msk-local-sip
include => spb-local-sip
include => handup-sip

Постановка звонка в очередь и обработка происходит следующим образом:
Функцией Queue(welcome,n,,,12) в плане набора мы отправляемый поступивший звонок на обработку в очередь welcome. В ней в течении 12 секунд звонящий слышит приветственное сообщение и, так как мы передали параметр "n", может набрать добавочный номер, который обрабатывается контекстом all-local-sip. По истечении 12 секунд, если не был набран добавочный номер, звонок выходит из данной очереди и идет на следующий шаг обработки в плане набора.
При вызове функции Queue(msk-manager1,r,,,10) звонок переходит на обработку в очередь msk-manager1 на 10 секунд. При нахождении в очереди, так как мы указали параметр "r", звонящий слышит гудки. В это время звонок обрабатывается в соответствии с заданной стратегией — в данном случае ringall (звонят телефоны у всех указанных членов очереди). Если кто-то из членов очереди берет трубку, то устанавливается соединение. В противном случае, если за 10 секунд трубка взята не была, то обработка вызова снова переходит к следующему шагу в плане набора.

Установка своей музыки (сообщения) ожидания (Music On Hold, MOH)

У нас уже обрабатываются входящие на наши городские линии и мы проигрываем приветственное сообщение, указав для очереди welcome музыкальный класс welcome — рассмотрим, как именно он задается. Музыка ожидания описывается в файле /etc/asterisk/musiconhold.conf

При установке asterisk он имеет следующий вид:

[general]

[default]
mode=files
directory=moh

Нам надо добавить в него следующую секцию:

[welcome]
mode=files
sort=alpha
directory=/etc/asterisk/moh1

В данной записи мы говорим Asterisk-серверу проигрывать файлы в алфавитном порядке из директории /etc/asterisk/moh1. В эту директорию мы помещаем записанное сообщение. Для уменьшения нагрузки на сервере предварительно сконвертируем при помощи ffmpeg (пакет media-video/ffmpeg предустановлен в системе Calculate Linux Desktop) наше сообщение в наиболее часто используемые кодеки alaw, ulaw, g722, g729, gsm и в Asterisk Native SLN из которого Asterisk сможет конвертировать сам налету.
Например конвертация в Native SLN при помощи ffmpeg делается следующим образом:

ffmpeg -i "[input file]" -ar 8000 -ac 1 -acodec pcm_s16le -f s16le "[output file].sln" 

Сконвертировать имеющиеся mp3 файлы в mono wav и ulaw pcm можно следующим образом:

for f in `ls *.mp3` ; do FILE=$(basename $f .mp3) ; ffmpeg -i $FILE.mp3 -ar 8000 -ac 1 -ab 64 $FILE.wav -ar 8000 -ac 1 -ab 64 -f mulaw $FILE.pcm -map 0:0 -map 0:0 ; done

Конфигурация плана набора для совершения исходящих вызовов

Теперь нам осталось настроить исходящие вызовы на городские номера. В файле /etc/asterisk/extensions.conf создаем секцию [city-calls]:

[city-calls]
exten => _98812XXXXXXX,1,Dial(SIP/spb_asterisk/${EXTEN})
exten => _98812XXXXXXX,2,Congestion
exten => _9XXXXXXX,1,Dial(DAHDI/g1/8495${EXTEN:1})
exten => _9XXXXXXX,2,Congestion
exten => _98.,1,Dial(DAHDI/g1/${EXTEN:1})
exten => _98.,2,Congestion

И подключаем ее к секции [outcoming-sip]:

[outcoming-sip]
include => local-sip
include => spb-local-sip
include => city-calls
include => handup-sip

Таким образом вызовы на петербургские номера (код 812) у нас отправляются на сервер spb_asterisk и обрабатываются уже там. Вызовы на городские номера (7 цифр) дополняются до 10 цифр с кодом города (в данном случае в начало номера добавляется 8495 — сервер у нас находится в Москве) и вызовы на межгород вызываются как есть.
В вызове команды Dial(DAHDI/g1/${EXTEN:1}:
  • DAHDI — указывает на то, что мы совершаем звонок через нашу FXO-плату
  • g1 — группа каналов 1 (мы это задавали при конфигурации FXO-каналов), звонок совершается через группу для того чтобы, если основная линия занят он шел через факсовую линию
  • ${EXTEN} и ${EXTEN:1} — номер, который был набран. Полный синтаксис команды ${EXTEN:x:y}, где x — начальное положение и y — количество возвращаемых цифр.

Заключение

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

Спасибо!