Начальная настройка Asterisk

Февраль3

Asterisk

После удачной установки asterisk — нам нужно настроить его до работоспособного состояния. Конфигурационные файлы asterisk’a находятся в каталоге /etc/asterisk . Настройка осуществляется путем прямого редактирования файлов конфигурации. Изучив и отредактировав эти файлы, мы можем добиться правильной работы сервера.

Конфигурационные файлы.

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

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

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

amd.conf: Параметры приложения для определения автоответчиков.
features.conf: Конфигурация парковки вызовов и других возможностей.
followme.conf: Параметры для трансфера вызовов системы findme/followme.
func_odbc.conf:  В этом файле определяются параметры доступа к sql базам данных.
http.conf:  Конфигурация встроенного мини http сервера в asterisk.
logger.conf: Настройка логирования в Астериск
manager.conf: Конфигурация для Asterisk manager API
modules.conf: Конфигурация загрузки модулей Asterisk
odbc.conf: Конфигурация UnixODBC? драйверов для Asterisk
res_snmp.conf: Включение поддержки snmp в asterisk и определение статусов агентов full/sub.
rtp.conf: Конфигурация протокола передачи media информации RTP, порты и настройки
say.conf: Определения правил произношения цифр, дат и т.д. Для различных языков.
sla.conf:  Конфигурация Shared Line Appearance.
smdi.conf:  Конфигурация обмена сообщениями SMDI.
udptl.conf:  конфигурация для транспорта T38 udptl.

Основная прелесть Астериска заключается в том, что во всех файлах конфигурации Asterisk, мы можем включать в эти друг в друга с частями конфигурации, используя директиву #include. Для того, например, чтобы в основном файле конфигурации SIP канала описать все глобальные настройки, а аккаунты SIP пользователей включать из другого файла. Это очень удобно для сложной настройки большого офиса или группы офисов между собой. Т.к. настройки каждого офиса(подразделения\отдела\кабинета) можно хранить в отдельном файле и подключать его к основной конфигурации директивой #include.

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

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

cli> core show translation

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

cli>!cd /usr/lib/asterisk/modules/

»!» в CLI означает, что команду нужно выполнить в консоли LINUX
на сайте http://asterisk.hosting.lv/ выбираем версию нашего астериск, платформу (i386 или x86_64) и тип использованного компилятора (IPP или GCC4).
Например, для Сentos 32 бита, на платформе intel, подойдет:

cli>!wget http://asterisk.hosting.lv/bin/codec_g729-ast18-gcc4-glibc-pentium4.so

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

cli>module load codec_g729-ast18-gcc4-glibc-pentium4.so

проверяем

cli> core show translation

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

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

asterisk -vvvvvvvvvvvvvvvvvvvc

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

noload ≥ codec_g729-ast18-gcc4-glibc-pentium4.so

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

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

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

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

Структура sip.conf:

[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 reload

проверяем

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

Отлично! Первый номер в нашем астериске - добавлен!

Полезные команды 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/${EXTEN},60)
;звонок на московский номер через транк провайдера, который подключен к Asterisk по технологии SIP
exten ≥ _495ZXXXXXX,1,Dial (SIP/provider/8${EXTEN},60)

Поделиться в соц. сетях

Метки:
Copyright © 2013-2017. All rights reserved.

Опубликованно Февраль 3, 2014 by Feanor184 в категории Linux

Об Авторе

Постигаю Linux, учу Python, пытаюсь программировать)

17 комментарий(ев) к записи “Начальная настройка Asterisk

  1. radiopod23@gmail.com

    Неоднократно доводилось читать подобные посты на англоязычных блогах, но это не значит что ваш пост мне не понравился

  2. dokpor908@gmail.com

    Слушайте, давайте махнем в ближайшие выходные за город и там все это обсудим. Вы ведь из Москвы?

  3. Porohovoj

    Вот так везде описано — exten => _1XX,1,Dial (SIP/${EXTEN},60)
    А вот так будет ли работать (ни в одной статье не сказано, ни на одном сайте) — exten => _1XX,1,Dial (DAHDI/${EXTEN},60) ???

    1. Feanor184 Автор поста

      Вы уверены что вам это нужно?) Dahdi используют с интерфейсными картами) Вам сначала нужно точно знать, как устроен ваш канал.

  4. Alina

    По вашей статье настроить Asterisk получилось даже у меня) А я в этом полный чайник…Спасибо огромное за подробное описание))

Оставьте комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

=

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