Установка Asterisk: пошаговая инструкция
Если Вас интересует профессиональное внедрение системы IP-телефонии Asterisk «под ключ», то обращайтесь к нашим специалистам по телефону 8 (495) 989-85-33 или 8 (800) 333-75-33. Доверьте свою телефонию профессионалам.
Содержание
1. Ручная установка Asterisk
2. Работа с DAHDi
3. Установка YUM
4. Астериск — конфигурационные файлы
5. Установка кодека g729
6. Подключение SIP клиента
7. Полезные команды CLI Asterisk
8. Простой диалплан. Файл extensions.conf
1. Ручная установка Asterisk
Перед началом установки рекомендуется произвести полное обновление операционной системы. Это улучшит стабильность работы и безопасность сервера.
yum update
reboot
Создаем директорию, в которую поместим исходные коды дистрибутива Asterisk.
mkdir -p /usr/src/asterisk
cd /usr/src/asterisk
Далее загружаем с официального сайта Asterisk текущие пакеты в исходных кодах. Это можно сделать простым способом. В браузере открываем сайт www.asterisk.org, переходим в раздел Download, находим ссылки на требуемые пакеты и правой кнопкой копируем адрес ссылки в буфер обмена. Далее, в консоли сервера используем команду wget и ссылку, ведущую на сайт:
wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-11.0.0.tar.gz
Аналогичным образом выкачиваем все требуемые пакеты:
1. Asterisk
2. DAHDI
3. LibPRI
Для компиляции исходников потребуется сам компилятор. Устанавливаем его следующей командой (кавычки должны быть те, где на клавиатуре размещена буква «Ё»):
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 — это 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
** Если на данном этапе у Вас выдалось сообщение следующего характера:
You do not appear to have the sources for the 2.6.32-220.el6.i686 kernel installed.make[1]: *** [modules] Error 1make[1]: Leaving directory `/usr/src/asterisk/dahdi-linux-complete-2.6.1+2.6.1/linux'
make: *** [all] Error 2
Это может означать, что не стоят исходные коды для ядра. Вернитесь на этап, где требовалось установить исходные коды ядра.
На этом этапе устанавливаем само телефонное ядро Asterisk.
cd /usr/src/asterisk/asterisk*
. /configure
Если на этом шаге у Вас отобразится такая заставка, значит все идет по плану:
На этом этапе можно выбрать модули, которые будут входить в состав сборки. Если требуется работа с MySQL или другими компонентами, их рекомендуется установить заранее.
make menuselect
Система выбора модулей выглядит следующим образом (хотя, она может быть и на черно-белом фоне):
Управление:
- Перемещение — стрелками клавиатуры
- Выбор — пробелом
- 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
2. Работа с DAHDi
После инсталляции карты, проверяем ее в системе
lspci -v
Компилируем нужный пакет для нашей карты, Парабел, например, тут http://parabel.ru/d/dahdi_2.6.0%2B2.6.0-parabel_2.6.0.tar.bz2
в /etc/dahdi/modules
комментим все модули, вписываем нужный нам, например, quasarm
в /etc/dahdi/system.conf
Указываем зоновую (региональную) принадженость.
loadzone=ru
defaultzone=ru
Настраиваем согласование потока между АТС оператора и Asterisk.
span = 1,0,0,CCS,HDB3,CRC4 //Задается источник синхронизации, тип кодирования и необходимость проверки четности bchan=1-15,17-31 // Задаются тайм-слоты для голоса
dchan=16 //Задаются сигнальные тайм-слоты для данных (0-й — по умолчанию)
echocanceller=mg2,1-15,17-31 // Указывается тип эхоподавителя и тайм-слоты, на которых он будет задействован.
Теперь чуть более подробно по опциям.
span = ,,,< framing>,[,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
запускаем DAHDI:
service dahdi start
Проверка:
dahdi_test dahdi_test Opened pseudo dahdi interface, measuring accuracy… 99.999% 99.995% 99.999% 99.999% 99.999% 99.999% 99.999% — Results after 7 passes —
Best: 99.999 — Worst: 99.995 — Average: 99.998506, Difference: 99.998507
Значения не ниже 99,9 — хороший результат. Он означает, что DAHDI-устройство не вынуждено конкурировать с другими процессами за прерывания и время процессора. Значения ниже 99.9 будут приводить к ухудшению качества звука, срыву синхронизации канала E1, скрежету и обрывам голоса.
В случае, если значения ниже 99,9 (да и просто для профилактики), неободимо убедиться, что цифровая карта не делит прерывания с другими драйверами.
cat /proc/interrupts [pbx.
localdomain ~]# cat /proc/interrupts CPU0 CPU1 0: 1326273128 0 IO-APIC-edge timer 1: 8959 0 IO-APIC-edge i8042 4: 2796129 0 IO-APIC-edge serial 6: 6 0 IO-APIC-edge floppy 7: 2 0 IO-APIC-edge parport0 8: 1 0 IO-APIC-edge rtc 9: 1 0 IO-APIC-level acpi 14: 50338541 0 IO-APIC-edge ide0 50: 0 0 IO-APIC-level uhci_hcd:usb3 58: 7369 23441503 PCI-MSI ahci 114: 1326250778 0 IO-APIC-level wctdm 146: 28024883 0 PCI-MSI eth0 169: 0 0 IO-APIC-level uhci_hcd:usb5 225: 0 0 IO-APIC-level uhci_hcd:usb4 233: 0 0 IO-APIC-level ehci_hcd:usb1, uhci_hcd:usb2 NMI: 0 0 LOC: 1325416311 1325416314 ERR: 0
MIS: 0
wctdm занимает отдельный irq, это правильно
если с кем-то делит, то это может сказывать на работе карты и качестве голоса.
Чаще всего наблюдается ситуация, когда драйвера USB и DAHDI занимают одно прервывание. Это нежелательная ситуация, и в ней лучше всего либо разнести драйвера по разным прерываниям, либо отключить USB на уровне BIOS.
тут можно увидеть ошибки в работе карты:
dahdi_tool
показывать сведения о карте
dahdi_scan
показывает конфигурационный файл, который используется
dahdi_cfg -v
затем в /etc/asterisk/chan_dahdi.conf
примерный конфиг:
[trunkgroups] [channels] 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
====================
В Астериск CLI
dahdi restart
dahdi show channels — проверяем что каналы поднялись
dahdi show channel 1
3. Установка Asterisk из YUM
Помимо компиляции Asterisk вручную, можно воспользоваться менеджером пакетов YUM, который является штатной утилитой RedHat-based дистрибутивов.
Установку Asterisk мы будем производить из самых «аутентичных» источников — репозитория Asterisk.Org.
Краткая инструкция по работе с данным репозиторием находится здесь: http://www.asterisk.org/downloads/yum
Вам требуется создать новый файл с названием «centos-asterisk.repo» в директории the» /etc/yum.repos.d». В него вы вносите следующую конфигурацию:
[asterisk-tested] name=CentOS-$releasever — Asterisk — Tested baseurl=http://packages.asterisk.org/centos/$releasever/tested/$basearch/ enabled=0 gpgcheck=0 #gpgkey=http://packages.asterisk.
org/RPM-GPG-KEY-Digium [asterisk-current] name=CentOS-$releasever — Asterisk — Current baseurl=http://packages.asterisk.org/centos/$releasever/current/$basearch/ enabled=1 gpgcheck=0 #gpgkey=http://packages.asterisk.
org/RPM-GPG-KEY-Digium
Сохраняете данный файл и создаете новый: «centos-digium.repo». Вносите в него следующий текст:
[digium-tested] name=CentOS-$releasever — Digium — Tested baseurl=http://packages.digium.com/centos/$releasever/tested/$basearch/ enabled=0 gpgcheck=0 #gpgkey=http://packages.digium.com/RPM-GPG-KEY-Digium [digium-current] name=CentOS-$releasever — Digium — Current baseurl=http://packages.digium.com/centos/$releasever/current/$basearch/ enabled=1 gpgcheck=0
#gpgkey=http://packages.digium.com/RPM-GPG-KEY-Digium
После того как репозитории добавлены, можно приступить к установке пакетов.
yum install asterisk18 asterisk18-configs asterisk18-voicemail dahdi-linux dahdi-tools
Запускаем Asterisk и подключаемся к нему:
service asterisk start
asterisk -rvvv
4. Астериск — конфигурационные файлы
Главный конфигурационный файл:
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
Источник: https://VoxLink.ru/kb/asterisk-installation/from-source/
FreePBX – настройка с нуля: инструкция
Настройка c нуля FreePBX – современного полнофункционального веб-интерфейса для управления VoIP телефонией Asterisk – не представляет сложности даже для рядового пользователя. Достаточно следовать пошаговой инструкции, которая приведена в нашей статье.
Зачем нужен Web-интерфейс FreePBX?
Интерфейс упрощает управление VoIP телефонией и настройку Asterisk за счет визуального представления данных. Но прежде чем перейти к установке, нужно иметь хотя бы общее представление о предмете. Сразу же отметим, что основное удобство названной системы заключается в том, что пользователю нет нужды исправлять множество текстовых файлов с настройками вручную, как это было раньше.
Последней версией пакета является FreePBX 13. По сути, это программная оболочка. Она позволяет управлять VoIP телефонией и выполнять настройку Asterisk без специальных знаний в области программирования.
Если говорить упрощенно, она переводит программный язык, понятный машине, в визуальную информацию, которая понятна пользователю, и наоборот.
Чтобы выполнить настройку FreePBX с нуля, оболочку нужно установить на компьютер, который будет использоваться для работы с VoIP телефонией.
Установка графического интерфейса
Вот пошаговая инструкция:
1. Скачайте дистрибутив FreePBX 13 Distro. Существует несколько версий продукта: для разной разрядности операционной системы. Выбор 32 или 64-битной версии зависит от вашего программного обеспечения. Новичкам лучше не экспериментировать и обойти beta-версии Asterisk PBX стороной.
2. Запишите на диск или флешку образ системы. Для этого используйте стандартные утилиты, которые есть в каждом компьютере.
3. После записи загрузите машину с этого диска. Для этого измените параметры загрузки системы. Порядок действий зависит от конкретной версии BIOS. Обычно всю необходимую информацию можно найти в документации к своему компьютеру. Если все сделано правильно, то появится меню установки программы.
4. Выберите версию сервиса Asterisk PBX и режим, в котором будут работать жесткие диски. Доступны следующие варианты:
- Full install – автоматически удалит всю информацию с жестких дисков и создаст единый RAID-массив. Такой режим повышает надежность работы системы и уменьшает вероятность отказов.
- Full install NO RAID – установка системы без автоматического создания RAID.
- Full install Advanced – установит систему и позволит выполнить ручное разделение диска.
- HA Install – для дисков емкостью более 250 ГБ.
5. Выбрав нужный режим, переходим к настройкам Сети. Если вы используете DHCP-сервер (динамические IP-адреса), а в большинстве случаев это именно так, то просто нажмите ОК. При статическом IP укажите настройки для вашей Сети.
- После этого остается выбрать часовой пояс и установить пароль для пользователя с особыми правами и полным доступом – root.
- Ждем, пока система установит и обновит файлы Asterisk FreePBX. Перезагружаем компьютер, переходим в консольный режим и авторизуемся как пользователь с правами root.
- Также в интерфейс можно зайти с другого компьютера, используя любой браузер. Для этого просто введите IP-адрес машины, где произведена установка FreePBX.
- Тут придется еще раз задать логин и пароль. Важно помнить, что в целях безопасности они должны отличаться от пароля пользователя с правами root.
Установка FreePBX завершена. Теперь можно перейти непосредственно к настройке телефонии.
Как попасть в Web-интерфейс FreePBX?
Адрес веб-интерфейса тот же, что и адрес компьютера с установленным FreePBX. Чтобы его узнать, выполните команду ifconfig в консоли компьютера, на котором установлен веб-интерфейс. Так вы увидите настройки всех сетевых интерфейсов машины. Просто введите нужный IP-адрес в строке браузера и нажмите enter.
Описание Web-интерфейса FreePBX
Главная страница включает 3 основных раздела:
- FreePBX Adminisration – позволяет управлять системой c правами администратора.
Источник: https://www.nastroy.net/post/freepbx—nastroyka-s-nulya-instruktsiya
Настройка Asterisk*
username – SIPID до собачки domain – SIPID после собачки т.е. у “[email protected]” username = “name” domain = “domain.mangosip.ru”
Шаг 1./etc/asterisk/sip.conf – настраиваем для регистрации sip-транка на сервере и входящих звонков и для регистрации sip-клиентов на PBX-Asterisk*
[general] defaultexpiry=360 transport=udp disallow=all allowguest=no allow=alaw dtmfmode=inband useragent=JopAster nat=force_rport directmedia=yes alwaysauthreject=no bindport=60000 alwaysauthreject = yes
register = user:password*******@domain.mangosip.ru/line1 // данная строка описывает, каким образом Asterisk* будет регистрироваться на сервере MANGO-OFFICE. /line1 – это название линии на стороне Asterisk*
// ниже указаны рекомендуемые настройки для SIP-транка (исходящие вызовы через MANGO-OFFICE)
[line1]
type=peer // данная строка определяет, какой тип SIP-клиента настривается для данной линии, подробнее об этом ниже. Для исходящих звонков обязательно указывать type=peer
secret=******* // пароль от SIP-учетной записи username=user host=domain.mangosip.ru fromuser=user fromdomain=domain.mangosip.ru insecure=invite nat=force_rport
context=incoming // это название правила обработки входящих звонков в extensions.conf
dtmfmode=inband
// ниже указаны настройки для внутренних пользователей
[123] secret=123456 type=friend host=dynamic disallow=all allowguest=no allow=alaw dtmfmode=inband nat=force_rport alwaysauthreject=yes
Шаг 2.Далее рекомендуется настроить контекст для входящих звонков в /etc/asterisk/extensions.conf
[general] [globals] [default]
//для исходящих звонков
exten => _8XXXXXXXXXX,1,Dial(SIP/line1/${EXTEN}) //звонок на номер, состоящий из 11 цифр и начинающийся на 8 пойдёт через линию line1
//для входящих
[incoming]
exten => line1,1,Dial(SIP/123) //любой звонок, поступивший на line1, будет переадресован на внутреннего пользователя 123
exten => line1,n,Hangup() // отбой, если внутренний пользователь не отвечает
Для Asterisk*, начиная с 1.6 версии, регистрации транка у MANGO-OFFICE должна выглядеть следующим образом:
username – SIPID до собачки domain – SIPID после собачки т.е. у “[email protected]” username = “name” domain = “domain.mangosip.ru”
Шаг 1./etc/asterisk/sip.conf – настраиваем для регистрации sip-транка на сервере и входящих звонков и для регистрации sip-клиентов на PBX-Asterisk* Формат:
register => user [:secret[:authuser]] @host [:port] [/extension]
Шаг 2.Далее рекомендуется настроить контекст для входящих звонков в /etc/asterisk/extensions.conf
[incoming]
exten => line1,1,dial(SIP/worktest) //любой звонок, поступивший на line1, будет переадресован на внутреннего пользователя worktest
exten => line1,2,hangup// отбой, если внутренний пользователь не отвечает
Внимание! Техническая поддержка Asterisk* не осуществляется
Вы нашли ответы на все свои вопросы в данной статье?
Источник: https://www.mango-office.ru/support/tekhnicheskaya_podderzhka/nastroyki_softfonov/linux/asterisk/nastroyka_asterisk/
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
Источник: https://www.calculate-linux.org/main/ru/configuration_of_asterisk_server
Ip телефония с нуля. Установка AsteriskNOW
23.02.2012 15:56
Статья, позволяющая начинающим программистам выполнить базовую настройку asterisk
Asterisk является одним из самых распространенных серверов ip-телефонии наряду с такими системами, как Switchwox и 3CX. Большую популярность данная система обрела с распространением в нашей стране качественного интернета, а также множества телефонных провайдеров, предоставляющих телефонные номера в SIP-формате или так называемые SIP-номера.
Одной из таких компаний является Датагруп, которая зарекомендовала себя одним из лидеров рынка услуг связи. С удешевлением SIP-номеров появился смысл использовать современные телефонные системы ip-телефонии взамен старым аналоговым мини-атс. Это связано с широкими функциональными возможностями call-центров на базе Asterisk.
При этом стоимость оборудования и настройка Asterisk практически не уступает в денежных затратах.
Установка asterisk производится путем скачивания и дальнейшей компиляции бесплатно распространяемого исходного кода, разработанного компанией Digium.
Исходники asterisk существуют только для unix-совместимых операционных систем, самыми распространенными из которых являются Linux и FreeBSD. Установка asterisk под Windows возможна только путем реализации виртуальной машины.
Скачать последние версии asterisk можно по следующей ссылке . На данный момент развивается сразу 4 версии этого сервера. Наибольшую стабильность всех модулей имеют версии asterisk 1.4 и asterisk 1.6. С другой стороны, в функциональном плане выгодно отличается версия asterisk 1.
8, в которой есть поддержка множества новых модулей и функций, среди которых можно отметить поддержку протокола SRTP, работу с IPv6 и улучшенные показатели при работе SIP и ISDN.
В данной статье будет рассмотрена установка asterisk v 1.6.22 на Linux Fedora Core.
Для начала установки, скачаем исходники asterisk. Для этого, выполняем в консоли сервера команды:
# wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.6.2.22.tar.gz
# tar -xzvf asterisk-1.6.2.22.tar.gz
Перед тем как компилировать исходники, установим все необходимые сопутствующие модули и утилиты:
# yum install gcc
# yum install gcc-c++
# yum install make
# yum install libxml2-devel
# yum install ncurses-devel
После того, как все дополнительные утилиты установлены, производим установку самого asterisk:
# cd asterisk-1.6.2.22
После удачной установки в каталоге /etc/asterisk вы обнаружите конфигурационные файлы asterisk”a. Настройка asterisk осуществляется путем редактирования файлов конфигурации, имеющих очень специфическую структуру и операторы. Основу конфигурации при настройке астериск составляют файлы sip.conf и extensions.conf. Изучив и отредактировав эти файлы, можно добиться правильной работы сервера.
Файл sip.conf включает в себя настройки всех sip-устройств, зарегистрированных на сервере, который в последствии взаимодействуют между собой путем соединения двух и более sip-каналов, благодаря чему инициируется телефонное соединение – то есть звонок.
Пример файла sip.conf:
qualify=yes
nat=no
defaultexpiry=3600 disallow=all allow=alaw allow=ulaw fromuser=044XXXXXXX host=80.91.169.2 insecure=invite,port secret=xxxxxxxxxxx type=peer username=044XXXXXXX context=incoming language=ru qualify=yes
dtmfmode=auto
type=friend host=dynamic insecure=invite,port username=fxo secret=xxxxxxxx context=incoming qualify=yes nat=no canreinvite=no allowtransfer=no dtmfmode=auto disallow=all allow=alaw
allow=ulaw
type=friend regexten=101 secret=xxxxxxxxxxxxx context=internal host=dynamic
callerid=”101″
В данном примере приведен простейший список sip-устройств. Несложно заметить, что в конфигурации имеются блоки, заключенные в квадратные скобки. Именно такими блоками описывается конфигурация любых устройств (пиров) при настройке Asterisk. Пройдемся вкратце по блокам и по самым основным параметрам.
Блок является обязательным. В него входят настройки и параметры, которые применяются ко всем блокам по умолчанию. Другими словами, если при описании того или иного устройства не указан какой-либо параметр, то Asterisk читает его из этого блока.
Следующие три блока описывают непосредственно sip-устройства. Для наглядности все три устройства имеют разные предназначения. Блок описывает параметры для sip-номера компании Датагруп, блок описывает параметры, для соединения с VOIP-шлюзом, а блок описывает параметры обычного внутреннего sip-устройства, которым может программный или аппаратный ip-телефон.
Пробежимся по основным параметрам sip устройств. Параметр context определяет какой алгоритм действий применять к тому или иному устройству.
Callerid определяет номер и имя пира, которые будут высвечиваться при исходящем звонке с него. Опции disallow и allow определяют, какие кодеки использовать для связи. Опция secret – это пароль для регистрации данного пира.
Пароли желательно составлять достаточно сложными во избежание взломов недоброжелателями.
Файл extensions.conf описывает взаимодействия между контекстами и каналами связи, которых может быть большое множество. По сути, этот файл является основным при настройке asterisk.
Пример файла extensions.conf:
exten => _XXX,1,Dial(SIP/${EXTEN},120,tT)
exten => _XXX,n,Hangup
Exten => _X.,1,Dial(SIP/datagroup/${EXTEN},120,tT)
exten => _X.,n,Hangup
exten => _X.,1,Dial(SIP/101,60,tT)
exten => _X.,2,Hangup
Exten => h,1,Hangup
В данном простейшем примере мы имеем два алгоритма действий (контекста) – internal и incoming. Напомним, что привязка к контекстам осуществляется при создании пиров в файле sip.conf и в дальнейшем присваивается уже в extensions.conf при попытке инициации связи с пиром.
Опишем подробнее два контекста. Уже по их названиям становится понятно, что они применяются для алгоритмов внутренних абонентов (internal) и входящих звонков (incoming). Разобраться в конструкции этого файла поможет обобщенный пример, который можно выразить строкой:
Exten => _XXX,n,Command(Options)
Расшифровываются эти опции так:
Exten => _XXX – служебный префикс, с которого начинаются практически все строчки в данном файле. Он описывает представление входящего контекста.
Другими словами, если на этот контекст обратился пир с номером 101, то алгоритм для него должен начинаться с конструкции exten => 101. Префикс поддерживает регулярные выражения и может указываться обобщенно.
Например, exten => _XXX говорит о том, что под данный алгоритм попадают все пиры, которые состоят из трех цифр.
N – номер строчки алгоритма. В любом программном коде имеется последовательность операторов, которые выполняются по очереди. Точно также и в настройках asterisk есть такая последовательность. Единственное отличие – команды, выполняемые asterisk’ом, нумеруются. Обязательным является указание первой сточки явно. Как вы успели заметить, все контексты начинаются со строчек:
Exten => _XXX,1,….. exten => _X.,1,…..
exten => h,1,……
А вот дальнейшие строчки могут нумероваться неявно, то есть так:
Exten => _XXX,n,….. exten => _X.,n,…..
exten => h,n,……
При неявном указании номера строчки, asterisk выполняет их последовательно сверху вниз, как это происходит с любым другим кодом.
Command – команда выполняемая asterisk’ом. Основных команд не так уж много. Для базовой настройки достаточно знать синтаксис команды Dial (позвонить), на примере которой мы рассмотрим оставшиеся опции.
Например: exten => _X.,1,Dial(SIP/101,60,tT) – asterisk наберет внутренний номер 101 и будет пытаться дозвониться до абонента в течении 60 секунд с возможностью перехвата звонка со стороны звонящего и принимающего пиров (опции tT)
exten => _X.,1,Dial(SIP/datagroup/${EXTEN},120,tT) asterisk наберет номер, которые передан в переменной ${EXTEN} с помощью пира datagroup ранее указанного в sip.conf
Первый пример применялся в контексте incoming. Это говорит о том, что все входящие звонки, приходящие на этот контекст перенаправляются на внутреннего абонента, который отвечает на эти звонки. Второй пример в свою очередь показывает, как осуществляется исходящий звонок передавая набранный номер в служебной переменной ${EXTEN}.
Примеры файлов можно напрямую скопировать с этой статьи и вставить в ваши sip.conf и extensions.conf и подредактировать некоторые опции (логины, названия пиров, пароли и т.д). После настройки asterisk, запускаем сервер простой командой:
Дальнейшие действия могут производиться из командной строки астериска, которая запускается командой:
# asterisk -rvvvvd
Попав в консоль вы можете проверить работу вашего сервера. В ней будут отображаться все действия, которые он выполняет.
P.S. В случае, если у вас не получилось настроить сервер, либо же вам нужна более сложная конфигурация, с радостью поможем в настройке asterisk. Наши контакты .
По установке системы.
Наконец тем или иным образом у нас появился установленный Asterisk и FreePBX.
Источник: https://comuedu.ru/linux/ip-telephony-from-scratch-installing-asterisknow.html
Быстрая настройка Asterisk и SIP провайдера
В командной строке выполните следующее:
1) Войти в систему в режиме суперпользователя, указав «root», после — пароль (по умолчанию «1»):
$ root
Password: [пароль]
2) Перейти в папку с конфигурационными файлами Asterisk: $ cd /etc/asterisk
3) Изменить конфигурационные файлы Asterisk. Создать подключение к провайдеру и к Asterisk. Для этого отредактировать файлы:
$ nano sip.conf
$ nano extensions.conf
3.1) Для соединения Asterisk с провайдером обычно достаточно указать поля «username», «secret», «host» в файле «sip.conf» (раздел внешних транков) и логин подключения в файле «extensions.conf» (см. ниже).
3.2) Для соединения с Asterisk в АТС обычно достаточно указать значения из полей «username», «secret» (раздел внутренних транков) и IP-адрес виртуальной машины Debian.
3.3) После внесения изменений в файлах нажать «Ctrl + O» (для сохранения изменений), «Enter», «Ctrl + X» (для выхода из редактора).
4) После настройки файлов требуется перезапустить Asterisk: 4.1) Войти в консоль Asterisk:
$ asterisk -rvvv
4.2) В консоли Asterisk выполнить команду перезапуска:
CLI> core restart now
5) Проверить подключение, совершив тестовые звонки: исходящий и входящий.
5.1) подключить софтфон к Asterisk;
5.2) совершить исходящий и входящий звонок.
6) Настроить АТС для подключения к Asterisk (см. п. 3.2). Проверить подключение, совершив тестовые звонки: исходящий и входящий.
Настройка подключения к одному внешнему аккаунту/провайдеру
;внешние транки (авторизация у провайдера)
[provider-01](global-users)
username=login
secret=password
host=provider.com
context=in-provider-01
callbackextension=trunk-provider-01
;внутренние транки (авторизация у астериска)
[user1](local-users)
; пользователь астериска
context=out-provider-01
username=user1 ; это имя, которое атс будет использовать для авторизации в астериске
secret=password ; пароль для авторизации в астериске
1. Файл «sip.conf» — файл настроек каналов sip (отрывок).
контекст исходящих звонков к провайдеру (исходящие номера должны начинаться с цифры)
[out-provider-01] exten => _X.,1,Set(CALLERID(num)=login)
exten => _X.,n,Macro(confer,SIP/provider-01/${EXTEN})
контекст входящих звонков от провайдера [in-provider-01]exten => trunk-provider-01,1,Macro(confer,SIP/user1)
2. Файл «extensions.conf» — файл настроек плана набора (отрывок).
Настройка подключения к двум внешним аккаунтам/провайдерам
; внешние транки (авторизация у провайдера) [provider-01](global-users)
username= login_1
secret=password
host=provider1.com
context=in-provider-01
callbackextension=trunk-provider-01
[provider-02](global-users)
username= login_2
secret=password
host=provider2.com
context=in-provider-02
callbackextension=trunk-provider-02
; внутренние транки (авторизация у астериска)
[user1](local-users)
; первый пользователь
context=out-provider-01
username= user1
secret= password
[user2](local-users)
; второй пользователь
context=out-provider-02
username= user2
secret= password
1. Файл «sip.conf»—файл настроек каналов sip (отрывок).
; контекст исходящих звонков к провайдеру (исходящие номера должны начинаться с цифры)[out-provider-01]exten => _X.,1,Set(CALLERID(num)=login_1)
exten => _X.,n,Macro(confer,SIP/provider-01/${EXTEN})
[out-provider-02]exten => _X.,1,Set(CALLERID(num)=login_2)
exten => _X.,n,Macro(confer,SIP/provider-02/${EXTEN})
; контекст входящих звонков от провайдера [in-provider-01]
exten => trunk-provider-01,1,Macro(confer,SIP/user1)
[in-provider-02]exten => trunk-provider-02,1,Macro(confer,SIP/user2)
2. Файл «extensions.conf»—файл настроек плана набора (отрывок)
Пояснения к настройкам Asterisk
Файл настроек каналов sip.conf:внешний транк:
• provider-01 — имя внешнего транка для подключения к sip-провайдеру.
• username — логин для подключения к sip-провайдеру.
• secret — пароль для подключения к sip-провайдеру.
• host — адрес sip-провайдера.
• context — имя контекста, на который будут адресованы входящие звонки от sip-провайдера к АТС.
• callbackextension — номер, на который будут адресованы входящие звонки от sip-провайдера к АТС.
внутренний транк:
• user1 — имя внутреннего транка для подключения офисной АТС к Asterisk.
• context — имя контекста, на который будут адресованы внутренние звонки от АСТ к sip-провайдеру.
• username —логин для подключения к Asterisk (должен совпадать с именем внутреннего транка).
• secret — пароль для подключения к Asterisk.
Файл настроек плана набора extensions.conf:
• out-provider-01 – имя контекста исходящих звонков (должен совпадать с именем, указанным в поле «contex» внешнего транка в файле «sip.conf»). В этом контексте нужно указать логин, зарегистрированный у провайдера, и имя внешнего транка (см. файл «sip.conf»).
• in-provider-01 – имя контекста входящих звонков (должен совпадать с
именем, указанным в поле «contex» внутреннего транка в файле «sip.conf»). В этом контексте нужно указать логин, зарегистрированный у Asterisk, и номер, указанный в поле «callbackextension» (см. файл «sip.conf»).
При использовании нескольких SIP-провайдеров необходимо для каждого из них создать внешний и внутренний транки, а также контексты для входящих и исходящих звонков согласно образцу. Имена транков и контекстов (т. е. все подсвеченные имена) должны быть уникальными.
Источник: http://zaycev.me/index.php/myblog/entry/2016/02/23/bystraya-nastrojka-asterisk-i-sip-provajdera