16. Настройка Asterisk сервера¶
- Настройка Asterisk сервера
- Постановка задачи
- Установка сервера Asterisk
- Конфигурация USE-флагов для устанавливаемых пакетов
- Установка пакетов
- Базовая настройка SIP
- Создание учетных записей
- Базовая настройка плана набора
- Конфигурация внутренних вызовов
- Настройка связи между двумя серверами и вызовов между ними
- Установка связи между двумя Asterisk-серверами по протоколу SIP
- Конфигурация плана набора для связи между серверами
- Настройка платы Digium AEX804E и конфигурация плана набора
- Настройка системы для работы с платой телефонии
- Объяснение понятий FXO и FXS
- Настройка FXO-каналов на Asterisk-сервере
- Конфигурация плана набора для приема вызовов
- Создание очередей вызова
- Установка своей музыки (сообщения) ожидания (Music On Hold, MOH)
- Конфигурация плана набора для совершения исходящих вызовов
- Заключение
Для того чтобы настроить 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
— прямой доступ телефона к другому телефону минуя Asteriskcallgroup
— номер телефонной группы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
— активирует возможность передачи CallerIDhidecallerid=no
— указывает, что для исходящих вызовов будет передаваться CallerIDcallwaiting=no
— деактивирует отложенный вызовthreewaycalling=yes
— активирует возможность подключения третьего абонентаtransfer=yes
— разрешает переадресацию вызоваechocancel=yes
— активирует эхоподовлениеechotraining=yes
— активирует режим измерения эха для ускорения настройки эхоподавленияsignaling=fxs_ks
— указывает на использование сигнализации fxsgroup=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 и послужит фундаментом, основываясь на котором, вы сможете создавать свою собственную конфигурацию.