Настройка астериска с нуля. Установка и настройка Asterisk

Графический интерфейс администратора IP – АТС Asterisk – FreePBX, насчитывает огромное количество опций настройки, вариантов маршрутизации, подключения различного оборудования, начиная от телефонных аппаратов и заканчивая шлюзами. В статье мы опишем базовую настройку тринадцатой версии FreePBX сразу после .

Пошаговое видео

Подключение к FreePBX

Чтобы подключиться к графическому интерфейсу FreePBX, нужно ввести IP – адрес Asterisk, который вы указали на этапе установки. Если вы забыли, какой IP – адрес указали, то подключите монитор и клавиатуру к вашему серверу, а затем введите данные для пользователя root, как показано ниже:



При подключении, вам будет указан IP – адрес вашего сервера. Если версия вашего дистрибутива отличается, и вы не увидели аналогичного вывода, укажите следующую команду:

# ifconfig

Вывод команды позволит вам увидеть все доступные интерфейсы и их IP – адреса.

Активация и пароль администратора

Подключившись к FreePBX 13 через интернет – браузер вам будет сразу предложено создать учетную запись администратора указав логин, пароль и адрес электронной почты администратора системы. После успешного создания, выберите на главной страницу пункт FreePBX Administration и укажите созданные параметры:



Сразу после подключение, перейдите во вкладку Admin → System Admin и нажмите кнопку Activation




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


Настройки SIP

Модуль SIP Settings это графическая визуализация настроек в файле /etc/asterisk/sip_nat.conf. Здесь, с помощью графического интерфейса можно настроить важнейшие параметры, такие как настройки NAT, внешний IP – адрес и настройки кодеков. Чтобы перейти к настройке нажмите на вкладку Settings , а далее Asterisk Sip Settings .



Allow Anonymous inbound SIP Calls
Данная опция позволяет разрешить, или запретить входящие звонки с неизвестных номеров. Мы советуем запрещать данный вид звонков, так как потенциально, разрешенные анонимные звонки могут стать лазейкой для злоумышленников.

Local Networks
Введите локальные (находящиеся внутри вашей сети) адреса подсетей, которым Asterisk будет доверять. Например, 192.168.2.0/255.255.255.0

RTP Ranges
Укажите диапазон RTP портов. Рекомендуем все оставлять по умолчанию.

Strict RTP
Когда между двумя устройствами устанавливается RTP поток, то назначаются адреса источника и назначения. При включенной данной опции, все пакеты приходящие с другого IP – адреса буду отброшены. Мы рекомендуем не выключать данную опцию.

Codecs
Галочкой отметьте нужные кодеки.

Положение кодеков указывает их приоритет. Например, на скриншоте ниже приоритет отдан g.711 u-law, затем g.711 a-law, gsm и так далее. Более подробно про телефонные вы можете прочитать в наших прошлых статях.
Настройка NAT в FreePBX

В большинстве случаев, если администратор обнаруживает проблему односторонней слышимости, или то, что звонки обрываются спустя несколько секунд разговора – проблема в NAT. Вот что нужно сделать, чтобы избавиться от этой проблемы: в настройка модуля Asterisk SIP Settings , переходим во вкладку Chan SIP Settings и отмечаем следующее:

NAT - yes
IP Configuration - Static IP
Override External IP - введите ваш внешний IP - адрес

Reinvite Behavior - No
Обязательно укажите в настройках Local Networks в предыдущей вкладке вашу локальную подсеть. Помимо этого, пробросьте на вашем маршрутизаторе порт 5060 и диапазон портов из параметра RTP Ranges , по умолчанию равный 10000-20000

Настройка сетевых параметров FreePBX

Есть три важных пункта данной настройки:

  • Настроить статический IP – адрес для сервера
  • Настроить DNS
  • Настроить временную зону
  • Перейдем к настройке IP. Для этого, перейдите во вкладку Admin → System Admin → Network Settings

    Здесь мы настраиваем следующие опции:

    • Network Interface - сетевой интерфейс, то есть конкретная сетевая карта (NIC)
    • IP Assignment - выберите Static чтобы настроить статический IP - адрес
    • Static IP - введите IP – адрес сервера
    • Netmask - маска сети
    • Gateway - шлюз по умолчанию
    • Start Automatically - старт при загрузке сервера



    Настроим уведомления нашего сервера Asterisk, при таких сбоях, как например малое дисковое пространство или сбой в работе RAID массива:



    Производим настройку следующих опций:

    • From Address - адрес электронной почты, который АТС будет указывать как адрес отправителя при формировании письма
    • Storage Notifications - почта для уведомлений о проблемах с хранением данных (сбой RAID или нехватка места на дисках)
    • Intrusion Detection Notifications IP - почта для уведомлений о вторжениях или попытках взлома сервера

    Конфигурация системы безопасности

    В Asterisk встроена система обнаружения вторжений – Fail2Ban. Для настройки системы перейдите во вкладку Admin → System Admin → Intrusion Detection



    Система гибкая, и, порой реагирует когда не нужно:) Поэтому, советуем заранее вносить в Whitelist перечень нужных IP – адресов, таких как IP SIP – прокси, адреса шлюзов, например FXS. Порой, бывает так, что в бан попадает IP – адрес FXS шлюза, к которому подключены все офисные аналоговые телефоны.

    • Status - мы рекомендуем всегда контролировать состояние Fail2Ban, чтобы статус был running
    • Intrusion Detection - в данном пункте можно остановить и перезапустить службу.
    • Ban Time - время в секундах, которое IP – адрес будет находиться в статусе блокировки
    • Max Retry - количество попыток подключения к АТС, которое пользователь может осуществить в течение Find Time.
    • Find Time - время, в течение которого у пользователя есть Max Retry попыток подключения к системе.
    • E-mail: - адрес электронной почты, на которую будут отправляться уведомления о внесении нового IP – адреса в бан.
    • Whitelist - список заранее внесенных IP – адресов, которым доверяет администратор.

    Настройка внутренних номеров

    Для настройки телефонных аппаратов и создания внутренних номеров перейдите во вкладку Applications → Extensions . Процесс создания внутренних номеров (Extension) мы описали в статье по ссылке ниже:

    Настройка SIP - транка

    Подключение к провайдеру является важнейшим этапом в настройке вашего сервера IP - АТС Asterisk. Именно настройки провайдера, позволят нашим пользователям совершать исходящие, и принимать входящие вызовы. Для настройки SIP – транка перейдите во вкладку Connectivity → Trunks . Процесс создания SIP - транка подробно расписан в статье по ссылке ниже:

    Настройка маршрутизации

    После того, как мы настроили внутренние номера и SIP – транки для подключения к провайдеру, нам необходимо настроить маршрутизацию вызова. В рамках данной настройки, мы будем учить наш сервер Asterisk как обрабатывать входящий и исходящие вызовы. Connectivity Нам жаль, что статья не была полезна для вас:(Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

    Файл конфигурации для каналов в , как для входящих, так и для исходящих вызовов.

    Каждый SIP клиент или сервер определяется в этом файле как текстовый блок, по типу приведенного ниже:


    type=yyy
    parameter1=value
    parameter2=value

    Где xxx - это имя, ассоциируемое с SIP клиентом, или это может быть произвольным именем SIP устройства, на которое можно ссылаться из других конфигурационных фалов. Обычно, если SIP телефон имеет номер екстеншена 123, тогда, соответствующие ему настройки в этом файле начинается со строки . Обратите внимание, что для того, чтобы можно было позвонить на этот экстеншен 123, вы должны описать его в Вашем плане набора. может быть: "user", "peer" или "friend".

    Сервер Asterisk определяет соответствие входящего вызова с именем устройства, для клиентов с type=user, основываясь на заголовке From: имя пользователя (игнорируя SIP домен). Другой путь обработки входящих SIP запросов - это определение их соответствия секции в этом файле, используя IP адрес поступившего запроса для определения того, от кого этот запрос поступил, и поиск подходящего значения параметра Host= в секции пользователя . Если этот параметр задан как Host=dynamic, тогда не будет подходящих совпадений, до того как SIP клиент не зарегистрируется на сервере.

    Asterisk в роли SIP клиента В файле конфигурации в секции добавьте определение register:

    Формат:
    register => user [:secret[:authuser]] @host [:port]

    Пример:
    ; Зарегистрировать 2345 у sip провайдера, как номер 1234 на нашей стороне.
    register => 2345:[email protected]/1234

    user - идентификатор пользователя, используемый для SIP сервера (например, 2345) authuser - не обязательное имя пользователя для авторизации на SIP сервере secret - пароль пользователя host - имя домена или хоста SIP сервера. Этот SIP сервер должен быть определен в своей секции файла sip.conf, где должны быть заданы его параметры (mysipprovider.com). port - на какой номер порта посылать запросы на регистрацию на сервере host. По умолчанию - 5060 /1234 - номер екстеншена для приема вызовов в Вашем Asterisk. 1234 - вставляется в SIP заголовок contact, SIP запроса на регистрацию. Этот екстеншен используется удаленным SIP сервером, когда ему необходимо совершить вызов в сторону Вашего Asterisk. Смотри примеры, приведенные ниже. По умолчанию, используется контекстный "s".
    Это, конечно, все хорошо, но использование незашифрованных паролей в текстовом файле - не самая удачная идея, но что же можно еще сделать теперь.
    Вам необходимо регистрироваться, только если: a) должна быть возможность позвонить к Вам, и b) одна из сторон имеет динамический IP адрес. Проверить, удачно ли зарегистрировался Ваш сервер, можно с помощью CLI команды: "SIP SHOW REGISTRY", аналогично, можно получить список клиентов, зарегистрированных на Вашем сервере, с помощью команды: "SIP SHOW PEERS". Вы можете просмотреть более детальную информацию о зарегистрированном клиенте, при помощи команды: "SIP SHOW PEER ". Выполните команду "HELP SIP" в CLI консоли, чтобы получить список дополнительных команд.

    Определение сервера, для совершения исходящих вызовов, должно быть примерно таким:


    type=peer
    secret=password
    username=2345
    host=sipserver.mysipprovider.com
    fromuser=2345
    fromdomain=fwd.pulver.com
    nat=yes
    context=from-mysipprovider ; этот контест должен быть определен в extensions.conf

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

    Exten => _9.,1,Dial(SIP/${EXTEN:1}@mysipprovider-out,30,r)

    Обратите внимание, что конструкция ${EXTEN:1} извлекает все содержимое переменной, в которой содержится вызываемый екстеншен (совпавший с шаблоном), за исключением первой цифры, в данном случае: 9 + набор цифр. Обратитесь к разделу по работе с подстроками в описании , для более подробной информации.


    exten => 1234,1,Answer ; 1234 - екстеншен из контактной информации, по умолчанию - "s"
    exten => 1234,2,Dial(SIP/111,25,Ttr) ; входящий вызов перенаправляем на SIP телефон с номером 111
    exten => 1234,3,Hangup

    Конфигурация SIP - секция general Секция , файла sip.conf, включает в себя следующие переменные:

    = : Разрешенные кодеки, порядок выбора кодека, задается порядком их описания в этой команде (Сначала используйте: DISALLOW=ALL, перед тем, как разрешить какие то конкретные кодеки) allowtransfer= yes | no: Появилась, начиная с версии 1.4.0. При установке в значение "no" - запрещает все виды перевода вызовов. (за исключением тех, что разрешены в описании настроек пользователя). =all:Запрещает использование всех кодеков (глобальная настройка) allowguest = yes (по умолчанию) | no: Разрешить или запретить гостевые вызовы (по умолчанию - yes, в качестве значения можно указать параметр "osp", если asterisk собран с поддержкой OSP) = yes | no: Если разрешено, кто угодно может использовать сервер в качестве пира (без проверки на возможность доступа; может быть удобно, при работе с SER SIP прокси). bindaddr = 0.0.0.0:IP адрес, на который Asterisk будет принимать IP пакеты SIP вызовов bindport=5060:номер порта, на который Asterisk будет принимать IP пакеты SIP вызовов callerid = : Информация для Сaller*Id, используется, когда нет ничего из того, что можно было бы использовать в качестве этого значения. По умолчанию - "asterisk". (Возможность переназначить значение по умолчанию есть в версии Asterisk 1.0.9. Насчет других версий нет полной уверенности.) = update | yes | no (глобальная настройка). По некоторым причинам, значение по умолчанию - "Yes", будьте внимательны... context = :Это используемый по умолчанию, который используется, когда для клиента не определен свой . Этот , определенный для клиента, используется для маршрутизации вызовов от этого клиента до нужного места назначения. Содержимое описывается в файле плана набора - extensions.conf. defaultexpirey=120:Продолжительность периода входящей или исходящей регистрации. : inband | info | rfc2833 (глобальная настройка) = domains: Список доменов, разделенных запятыми, за которые отвечает сервер Asterisk. (появилось в Asterisk 1.2.x) = 200.201.202.203:IP адрес, который будет использоваться в SIP сообщениях, если наш сервер находиться за NAT. externhost = hostname.tld: (новый параметр в Asterisk 1.2.x) externrefresh = xxx: Этим параметром мы определяем, как часто будет производиться поиск записи в DNS имени хоста, определенном в параметре "externhost" (новый параметр в Asterisk 1.2.x) = 192.168.1.0/255.255.255.0: определение локальной сети и ее маски. fromdomain= : Установка домена по умолчанию в поле From: SIP сообщений, при работе в качестве SIP ua (клиента). maxexpirey=3600: Максимально разрешенная продолжительность регистрации. minexpiry=60: (Переменная появилась, начиная с версии Asterisk 1.4.0) Минимально разрешенная продолжительность регистрации. = yes | no (установка для соединений с пирами) Обратите внимание, что в Asterisk 1.0.x, параметр nat может принимать значения: no | never | route | yes. notifymimetype=text/plain:Позволяет переопределить mime type в сообщениях MWI NOTIFY, используемых в сообщениях, которые отправляются системой . pedantic = yes|no:Включить медленную, педантичную проверку полей Call-ID и всех строк в многострочном заголовке SIP сообщения и кодированных URI заголовков port = : SIP порт, используемый по умолчанию. (это не тот порт, на котором Ваш Asterisk ждет IP пакеты. Смотри параметр: bindport) promiscredir=yes | no: Включение поддержки сообщений 302 Redirects; (No - будет переадресовать все к локальному екстеншену, который получен в поле Contact, а не к екстеншену, который указан в поле назначения вызова.) realm = realm (Этой настройкой можно изменить realm для авторизации, со значения по умолчанию - Asterisk, на любое выбранное Вами. Работает, начиная с Asterisk версии 1.x) register => @ / :Зарегистрироваться на сервере SIP провайдера. = yes|no: Включить поиск для вызовов tos= : Данный параметр удален, начиная с версии Asterisk 1.4.0. Установка параметров IP QoS для исходящих медиапотоков. t1min= : (Переменная появилась, начиная с версии Asterisk 1.4.0) Минимальная задержка прохождения сообщений до хоста и обратно (roundtrip time), для которого отслеживается состояние (monitored host). Значение по умолчанию - 100 ms. = : (Переменная появилась, начиная с версии Asterisk 1.4.0) Установка параметров IP QoS для SIP пакетов. = : (Переменная появилась, начиная с версии Asterisk 1.4.0) Установка параметров IP QoS для пакетов, передающих аудиоданные по протоколу RTP. = : (Переменная появилась, начиная с версии Asterisk 1.4.0) Установка параметров IP QoS для пакетов, передающих видео данные по протоколу RTP.
    videosupport=yes|no: Включает поддержку SIP видео : Параметр позволяет изменить значение SIP заголовка "User-Agent". = yes|no: Если включено, то полученному значению Remote-Party-ID можно доверять.

    Конфигурация SIP - клиенты и пиры Нижеприведенные переменные могут быть заданы в описании каждого SIP клиента:

    : Пользователь может быть ассоциирован с неким кодом доступа (accountcode). Используется для . : Разрешенные и запрещенные кодеки. : Категория для CDR записей. Можно выбрать: default, omit, billing, documentation. Смотри: .allowoverlap: Начиная с версии 1.4.x. Значения: yes/no, по умолчанию: yes. Установка в "no" запрещает поддержку "overlap dialing".allowsubscribe: Начиная с версии 1.4.x. Значения: yes/no, по умолчанию: no. Установка в "no" запрещает отслеживание состояние (subscriptions) данного клиента.allowtransfer: Начиная с версии 1.4.x. Разрешить (yes) или запретить (no) перевод вызова для этого пользователя.auth: Начиная с версии 1.4.x. Ссылка на запись из секции (только для типа peer).autoframing: Начиная с версии 1.4.x. Включение (yes) или выключение (no) autoframing"a.buggymwi: Начиная с версии 1.4.x. Значения: yes/no, по умолчанию: no. Cisco SIP firmware не полностью поддерживает RFC для индикации наличия новой голосовой почты (MWI). Установите значение этого параметра в "yes", чтобы не получать сообщения об ошибке, при отправке MWI телефонам с данной проблемой. : Определяет группу вызовов (call group) для вызовов через это устройство.callingpres: Начиная с версии 1.4.x. Режим публикации CallerId, значения смотри в файле doc/callingpres.txt из дистрибутива asterisk.call-limit: Начиная с версии 1.4.x__. Ограничение на кол-во вызовов для пользователя. Для типа "peer" - на исходящие, для "user" - на входящие. : Включайте, если только на клиенте поддерживается функция: .cid_number: Начиная с версии 1.4.x. Номерная часть поля CallerID.context: Контекст плана набора, в который попадают вызовы, поступающие от данного клиента. : IP адрес клиента по умолчанию, когда host= определен, как DYNAMIC. Используется, если клиент еще не зарегистрировался, при необходимости его вызова. : Как клиент обрабатывает сигнализацию DMTF. : Указываем имя пользователя для поля "from", когда происходит вызов с использованием этой записи. = : Установка домена по умолчанию в поле From:, SIP сообщений, когда происходит вызов с использованием этой записи.fullname: Начиная с версии 1.4.x. Часть с именем, поля CallerID.g726nonstandard: Начиная с версии 1.4.x. Значения: yes/no, по умолчанию: no. Если клиент собирается для сеанса связи "договориться" использовать звуковой кодек G726-32, с использованием компрессии AAL2, вместо RFC3551 (что требуется для аппаратов фирмы Sipura и шлюзов от Grandstream, и может другим). То это противоречит спецификации RFC3551, клиент _должен_ вместо этого "договориться" использовать AAL2-G726-32:-(host: Как нам найти нашего клиента - IP адрес или имя хоста. Если Вам нужно, чтоб телефон самостоятельно зарегистрировался, используйте значение dynamic вместо IP адреса или имени хоста. : Ограничение на число одновременных соединений с нашим SIP клиентом. Эти параметры устарели, в версии 1.4.x - не используются. : very|yes|no|invite|port: Определяет как обрабатывать соединения с пирами. По-умолчанию значение "no" (аутентификация для всех соединений включена). (invite и port добавлено в версии 1.2.x). : Код языка, которые определены в файле indications.conf - где определяется язык приветствий и специфичные для каждой страны настройки сигналов телефонов. : Екстеншен голосового ящика (для работы индикатора новых сообщений)maxcallbitrate: Начиная с версии 1.4.x. Максимальный битрейт для видео в kbit/s. По умолчанию: 384 kbit/s.mohsuggest: Начиная с версии 1.4.x. Назначение см. в sip.conf. : MD5-Hash строки: " :asterisk: " (может использоваться вместо параметра secret).musiconhold: Устанавливает класс музыки ожидания (musiconhold) для вызовов с данного SIP телефона. Для вызовов, которые поступают на данный телефон, задание этого класса необходимо делать командой , расположенной выше по приоритету (меньшее значение приоритета в плане набора), чем команда Dial в плане набора. Параметр MusicOnHold устанавливается для совершаемых вызовов, а не для телефонов, и если для обработки вызова для екстеншена используется команда , то она переопределит, заданное этим параметром значение, для этого вызова. : Эта переменная изменяет образ действия сервера Asterisk для клиентов находящихся за файрволом с трансляцией адресов (NAT). Но этот параметр не решает проблемы, если сам Asterisk находится за таким файрволом, а клиент снаружи (в сети internet с нормальным IP адресом).outboundproxy: Адрес прокси сервера для исходящих вызовов (только для типа peer).permit, deny: Ограничения по IP адресу и IP сети для клиента. Примечание: в версии 1.4.x параметр mask уже не используется. : Группа для "pickup" вызовов поступающих вашим сослуживцам, используя комбинацию "*8" и приложение Pickup() для работы с екстеншеном *8.port: SIP порт клиента.progressinband: Начиная с версии 1.4.x. Значения: yes/no/never, по умолчанию: never. Должен ли asterisk генерировать самостоятельно звуковой сигнал вызова для вызывающего абонента (in-band ringing). Используйте значение "never", чтобы никогда не производилась генерация этого сигнала, даже в случае, когда некоторые странные устройства не могут генерировать его самостоятельно.promiscredir: Начиная с версии 1.4.x. Значения: yes/no, по умолчанию: no. Если установлено в значение "yes", то этим мы разрешаем отправлять SIP сообщения с кодом 302 или сообщения для переадресации вызова, для SIP клиентов с не локальными IP адресами. Стоит отметить, что поведение promiscredir при совершении переадресации вызова, который производиться в локальной системе, может привести к зацикливанию вызова, т.к. Asterisk не умеет обрабатывать "hairpin" вызовы. : Периодическая проверка доступности клиента. restrictcid: (yes/no) Этот параметр не используется, вместо него используйте callingpres. rfc2833compensate: Начиная с версии 1.4.x. Значения: yes/no, по умолчанию: no. Включение компенсации передачи DTMF сигналов с других серверов asterisk версии до 1.4.*. В данных случаях, Вы должны включить эту функцию или прием DTMF сигналов не будет работать должным образом. : Прерывать вызов, если нет активности RTP медиапотока более чем x секунд и если линия не находиться в режиме удержания (hold). : Прерывать вызов, если нет активности RTP медиапотока более чем x секунд, в режиме удержания линии (hold) (значение должно быть больше, чем rtptimeout)secret: Если Asterisk выступает в роли SIP сервера, тогда данный SIP клиент должен автризироваться с данным паролем (shared secret). Если же Asterisk выступает в роли SIP клиента, работающим с удаленным SIP сервером, для которого требуется авторизация для запросов "SIP INVITE", тогда это поле будет использовано для авторизации в сообщениях "SIP INVITE", которые наш Asterisk будет отправлять удаленному SIP серверу.sendrpid: Отправлять или нет заголовок Remote-Party-Id этому SIP клиенту. Значения: yes/no, по умолчанию: yes.setvar: Начиная с версии 1.4.x. В значении указывается пара "переменная=значение" для переменной канала, при вызовах с данного девайса.subscribecontext: Начиная с версии 1.4.x. Указывается название контекста, в котором будут обрабатываться SIP запросы SUBSCRIBE.subscribemwi: Начиная с версии 1.4.x. Значения "yes" и "no". Назначение см. sip.conf.t38pt_udptl: Начиная с версии 1.4.x. Значения: yes/no, по умолчанию: no. Включить/выключить поддержку T.38 для данного клиента. : Значения: yes/no, по умолчанию: no. Устанавливается в "yes", если можно доверять полученному от SIP клиента Remote-Party-ID. : Тип клиента - только исходящие вызовы, только входящий или все вместе?useclientcode: Начиная с версии 1.4.x. Значения: yes/no, по умолчанию: no.usereqphone: Начиная с версии 1.4.x. Значения "yes" и "no". Добавить или нет ";user=phone" в URI, которое содержит нормальный вызываемый номер. : Если Asterisk выступает в роли SIP клиента, работающим с удаленным SIP сервером, для которого требуется авторизация для запросов "SIP INVITE", тогда это поле будет использовано для авторизации в сообщениях "SIP INVITE", которые наш Asterisk будет отправлять удаленному SIP серверу. А также, для пиров, которые регистрируются на нашем сервере Asterisk, если это имя пользователя используется в сообщениях INVITE, до тех пор, пока он зарегистрирован на сервере.videosupport: Значения: yes/no, по умолчанию: yes. Параметр для включения поддержки SIP видео. Вам может понадобиться включить поддержку видео для конкретного SIP клиента, если, например, в глобальной части конфигурации она выключена, и Вы хотите выборочно ее включить только для конкретных пользователей.vmexten: Начиная с версии 1.4.x. Назначение см. sip.conf (только для типа peer).

    Обратите внимание Asterisk (пока) не поддерживает протокол SIP через TCP транспорт. Поддерживается только через UDP протокол. Для телефонов Grandstream: устанавливайте параметр dtmfmode=info, а для GXP2000 dtmfmode=inband Asterisk использует входящий поток, в качестве источника для тайминга (timing) для отправки исходящего потока. Если входящий поток прерывается из-за работы функции подавления тишины (silence suppression), тогда качество музыки ожидания (musiconhold) будет очень плохим. Как следствие, Вы не можете использовать функцию подавления тишины в паузах (silence suppresion). Обязательно убедитесь, что у ВСЕХ SIP телефонов выключена возможность подавление тишины (silence suppression).Примеры Каждый SIP клиент, который должен работать с Asterisk, должен быть определен в файле SIP.CONF. Ниже приводиться несколько примеров:


    type=friend ; может быть: "friend" (это: peer+user), "peer" или "user"
    context=from-sip
    username=grandstream1 ; обычно, этот параметр совпадает с названием секции -
    fromuser=grandstream1 ; переназначает callerid, например,
    ; бывает необходимо для форварда вызовов - FWD
    callerid=John Doe
    host=192.168.0.23 ; У нас используется статический но интранетовский IP адрес
    nat=no ; между нашим телефоном и Asterisk нет трансляции IP адресов (NAT)
    canreinvite=yes ; заставляет весь голосовой RTP трафик проходить через Asterisk
    dtmfmode=info ; может быть, как INBAND, так и INFO, например, для телефонов BudgeTone
    mailbox=1234@default ; у клиента есть голосовой ящик 1234 в контексте голосовых ящиков: "default"
    disallow=all ; необходимо задать disallow=al, перед тем, как использовать параметр allow=
    allow=ulaw ; Обратите внимание: в клиентских секциях, порядок выбора кодека
    ; описанный в параметре allow= не имеет никакого значения!
    ;allow=alaw
    ;allow=g723.1 ; Asterisk поддерживает кодек g723.1 только в режиме pass-thru!
    ;allow=g729 ; Только в режиме Pass-thru , если у Вас нет лицензии на использование кодека g729


    Выключите функцию подавления тишины (silence suppression) в клиенте X-Lite ("Transmit Silence"=YES)!
    ;Обратите внимание, что Xlite сам посылает NAT пакеты keep-alive, следовательно, надобности в qualify=yes нет.
    type=friend
    username=xlite1
    callerid="Jane Smith"
    host=dynamic
    nat=yes ; клиент X-Lite находиться за роутером с трансляцией IP адресов (NAT)
    canreinvite=no ; Обычно, устанавливается в "NO", если клиент находиться за NAT
    disallow=all
    allow=gsm ; Кодек GSM требует намного меньшую полосу пропускания, тем ulaw.
    allow=ulaw
    allow=alaw


    type=friend
    secret=blah
    host=dynamic
    dtmfmode=inband ; Можно выбрать из: inband, rfc2833, или info
    defaultip=192.168.0.59
    mailbox=1234,2345 ; Голосовой ящик для работы индикатора "полученных новых сообщений"
    disallow=all
    allow=ulaw ; если режим для dtmf установлен "inband",
    allow=alaw ; то мы должны использовать только кодек g.711


    type=friend
    username=user2_pingtel
    secret=blah
    host=dynamic
    qualify=1000 ; Рассматриваем клиента как неработающего,
    ; если ответ от него идет более 1 сек.
    callgroup=1,3-4 ; Клиент является членом групп вызовов: 1, 3 и 4
    pickupgroup=1,3-4 ; Мы можем совершать "pick-up" вызовов, нажатием *8,
    ; для вызовов из групп 1, 3 и 4
    defaultip=192.168.0.60
    disallow=all
    allow=ulaw
    allow=alaw
    allow=g729

    Type=friend
    username=user3_cisco
    secret=blah
    nat=yes ; Этот телефон находиться за роутером с NAT
    host=dynamic
    canreinvite=no ; Аппараты Cisco иногда подвисают,
    ; через некоторое кол-во reinvite запросов
    qualify=200 ; Рассматриваем пир как нерабочий,
    ; если отклик от него приходит дольше, чем 200ms
    defaultip=192.168.0.4
    disallow=all
    allow=ulaw
    allow=alaw
    allow=g729


    type=friend

    Username=user4_cisco
    fromuser=markster ; Определяем имя пользователя, помещаемого в поле "from" вместо callerid
    secret=blah
    defaultip=192.168.0.4 ; используйте или host=dynamic или defaultip=...
    amaflags=default ; Может быть: default, omit, billing, documentation
    accountcode=markster ; Пользователь ассоциирован с accountcode для упрощения билинга.
    disallow=all
    allow=ulaw
    allow=alaw
    allow=g729
    allow=g723.1

    Нижеприведенное описание взято с Digium Asterisk handbook.

    После того, как Вы определите эти SIP аккаунты для Ваших клиентов в файле SIP.conf, то у этих клиентов появляется возможность зарегистрироваться на сервере asterisk и совершать исходящие вызовы. Для того, чтоб они могли принимать вызовы, Вам необходимо описать екстеншены для них в Вашем файле плане набора . Пример:

    Exten => 1010,1, Dial(SIP/user3_cisco,10,t)

    Если кто-нибудь совершит вызов на номер 1010, тогда будут совершена попытка вызвать SIP клиента, зарегистрированного как user3_cisco.

    Замечания Переменная ${VXML_URL} может быть использована для добавления дополнительного элемента в заголовке SIP сообщения "To:". Значение этой переменной будет добавлено, через точку с запятой, в конец заголовка "To:" SIP сообщения. Обратите внимание, что предыдущее описание использования этой возможности содержало ошибки; использование этой переменной не имеет никакого эффекта при загрузке сообщений в телефон Cisco 7960 (что-то в данный момент отключено в SIP firmware телефонов Cisco). Это проблема описана в: author"s e-mail Переменная ${ALERT_INFO} может использоваться для создания нового заголовка с именем "Alert-Info:", он может использоваться для задания определенного типа звонка на телефонных аппаратах фирмы Cisco, работающих с протоколом SIP, на которых установлено firmware версии 6.0 или выше. Для телефонов , переменная ALERT_INFO может принимать следующие значения, для задания определенного встроенного сигнала вызова: - Bellcore-BusyVerify
    - Bellcore-Stutter
    - Bellcore-MsgWaiting
    - Bellcore-dr1
    - Bellcore-dr2
    - Bellcore-dr3
    - Bellcore-dr4
    - Bellcore-dr5
    На данный момент нет возможности определить другой вызовов, можно выбрать только варианты проигрывания какого-либо вызова. Нужно весьма тщательно слушать, чтобы сказать, что сигналы вызова действительно чем-то отличаются. Существует багрепорт к Cisco: Cisco bug ID CSCec42938 , в котором предлагается доделать возможность выбора сигналов вызова.Пример 1 John Todd, loligo.com: http://www.loligo.com/asterisk/current/sip.conf Соединение с Free World Dialup (без использования NAT) [ general ]
    disallow=all
    allow=gsm
    allow=ulaw
    allow=alaw
    context=from-sip
    maxexpirey=180
    defaultexpirey=160
    tos=reliability
    register => : @fwd.pulver.com/CONTACT

    [ fwd.pulver.com ]
    type=friend
    secret=
    username=
    host=fwd.pulver.com
    insecure=very ; необходимо для поддержки входящих FWD вызовов

    Теперь идем к описанию файла , и смотрим как нам настроить контексты и в плане набора.

    Пример 2 Использование Asterisk в связке с SIP прокси SER [ general ]
    context=OUTGOING
    autocreatepeer=yes

    [ Provider ]
    type=friend
    username=XXXXX
    secret=XXXXX
    host=xxxxx.FakeProvider.com

    Итак, теперь когда Asterisk получает вызов с SER, то он выполняет действие "autocreatepeer" и позволяет обработать этот вызов в контексте OUTGOING.

    Управление sip.conf из внешних источников : использование механизма RealTime для SIP каналов. Так же, как и в других.conf файлах, может использоваться директива #include, для включения другова файла в конфигурацию sip.conf.Замечания для различных версий: Дополнительные возможности, добавленные, начиная с версии 0.7.2 2004-01-23: Добавлена CLI команда "sip reload", для перезагрузки sip канала, чтобы изменения внесенные в файл sip.conf вступили в силу, без перезагрузки сервера Asterisk. 2004-01-25: Поддержка хранения определений SIP пиров в базе данных. Хранение конфигурации в базе данных на этот момент было реализовано не полностью, но работает. Смотри: 2004-06: Поддержка хранения определений SIP пользователей в базе данных.

    Настройка 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 правами администратора.
  • User Control Panel – настройки пользователя (детализация вызовов, сервисных кодов, доступ к голосовой почте).
  • Get Support – техническая поддержка и обновление FreePBX.
  • Для доступа к первым двум разделам придется ввести логин и пароль, которые вы задали при установке. Есть возможность настройки FreePBX на русском языке. Для этого нажмите кнопку Language справа в верхнем углу окна и выберите нужный язык.

    Краткий обзор имеющихся модулей: управление модулями

    В этом разделе можно управлять модулями FreePBX. То есть предусмотрена возможность установки новых, обновление и удаление имеющихся, а также отключение работающих модулей. Новые доступны в 4 источниках:

    • Basic – фундамент системы. Обновлением и обслуживанием его разработчики озабочены сильнее всего.
    • Extended – модули из этого источника пользуются меньшим приоритетом, чем из предыдущего.
    • Unsupported – разработчики FreePBX не несут ответственности за его работоспособность. Так как модули отсюда разрабатывают сторонние программисты.
    • Commercial – коммерческие модули или поддержка.

    Есть возможность использовать в качестве источника и ваш ПК. Для этого предусмотрена кнопка Uploud modules. А чтобы установить или обновить модуль, следуйте пошаговой инструкции:

    1. Выберите подходящий источник.

    2. Воспользуйтесь функцией Check Online.

    3. После обновления списка доступных модулей напротив каждого из них появится один их следующих комментариев:

    • not installed – не установлен;
    • online upgrade available – можно обновить;
    • enabled and ap to date – модуль включен и обновлен до последней версии.

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

    Внутренние номера

    Этот раздел позволяет создать внутренние номера FreePBX. Сначала выберите технологию для подключения. Оптимальный вариант – использовать протокол SIP. Для новичков при создании внутреннего номера достаточно задать 3 настройки:

    • User Extension – сам номер. Запрещается указывать следующие: 600-699 (зарезервирован для групп вызовов) и 70-79 (зарезервирован для парковки вызовов).
    • Display Name – имя, под которым номер отображается в списке номеров. Это имя на экране телефона увидит абонент, принимающий звонок.
    • Secret – пароль FreePBX для внутреннего номера (будет сгенерирован автоматически).

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

    Группы вызова

    Функция позволяет объединить внутренние номера в группу. Набрав единственный номер, можно одновременно позвонить хоть на все внутренние номера из этой группы. Это очень удобно, когда нужно постоянно связываться сразу с несколькими абонентами. По умолчанию используется номер 600-699. Это функция работает по следующему принципу:

  • Вы добавляете в группу определенное количество внутренних номеров.
  • После этого совершаете звонок на номер 6ХХ.
  • Звонок проходит на внутренние номера в этой группе по схеме, которую вы выбрали.
  • Доступно несколько схем распределения вызовов:

    • ringall – звонок идет одновременно на все номера группы;
    • hunt – звонок распределяется в случайном порядке по доступным номерам;
    • memoryhunt – звонок идет последовательно на первый номер, потом на первый и второй и так далее;
    • firstunavailable – звонок идет по первому доступному номеру;
    • firstnotonphone – звонок идет по первому номеру, у которого не снята трубка;
    • *-prim – звонок помечается как не отвеченный, если первый номер занят.

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

    Транки

    Модуль позволяет настроить внешние линии - транки, через которые будут идти звонки в телефонную сеть общего пользования. Подробно по настройкам можно проконсультироваться у оператора связи, который и предоставляет доступ к этим линиям. Для наших целей достаточно ознакомиться с настройками SIP транка FreePBX. По умолчанию доступны следующие опции:

  • Trunk name – наименование транка.
  • Outbound CallerID – CallerID для исходящих звонков.
  • CID Options – CallerID для входящих звонков.
  • Maximum Channels – установление максимального количества каналов связи.
  • Asterisk Trunk Dial Options – дополнительные настройки вызова.
  • Continue if Busy – возможность позвонить через другой транк в случае ошибки.
  • Disable Trunk – отключение транка.
  • Dialed Number Manipulation Rules – правила, по которым формируется номер при исходящем вызове.
  • Outgoing Settings – настройки исходящих вызовов.
  • Incoming Settings – настройки входящих вызовов.
  • PEER Details and USER Details – указание настроек, полученных от провайдера.
  • Registration – задание строки регистрации для входящей связи.
  • Входящая маршрутизация

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

    Исходящая маршрутизация

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

    Custom Context

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

    Follow Me

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

    IVR – голосовое меню

    Это система по управлению голосовыми сообщениями. С подобной системой сталкивался каждый, когда для доступа к соответствующему пункту меню приятный голос просил нажать ту или иную цифру. Автоответчик формирует у клиента благоприятное первое впечатление. Это электронный секретарь, который вежливо классифицирует вопрос пользователя и только затем соединяет его с нужным специалистом. Подобная тактика позволяет избавиться от так раздражающих клиентов фраз: «Вы попали не в тот отдел, позвоните по такому-то номеру».

    Очереди

    Опция представляет собой аналог «групп вызовов». Но при этом она дает широкие дополнительные возможности.

    Пошаговая инструкция по настройке интерфейса FreePBX

    Чтобы подробно изучить все модули, придется ознакомиться с официальным руководством по работе с системой. Скачать его можно на официальном сайте Asterisk. Однако ниже приведена простая пошаговая инструкция по настройке FreePBX с нуля, которая позволит использовать базовые опции и приступить к работе:

    • Нажимаем меню Admin, переходим на вкладку System Admin и активируем FreePBX. Активация необходима для того, чтобы получить доступ к платным модулям и поддержке. Если процедура проведена верно, то при повторном переходе на вкладку System Admin вы увидите меню, представленное на фото.
    • Настраиваем сеть так, как показано на изображении. Это не сложно.

    • Переходим на вкладку DNS. На первой строке вводим 127.0.0.1, на нижней – публичный DNS от Google 8.8.8.8, остальные параметры оставляем без изменений.

    • Нажимаем Submit – сохраняем настройки.
    • Переходим на вкладку Time Zone. Выбираем часовой пояс. Нажимаем Submit и сохраняем настройки.
    • На вкладке Storage вводим e-mail, куда будут приходить отчеты о системных ошибках, связанных с жестким диском. Также система предупредит, когда доступное дисковое пространство подойдет к концу.
    • Выбираем пункт меню Settings, вкладка Asterisk SIP Settings и переходим к настройкам этого модуля. На первой вкладке все оставляем по умолчанию, кроме пункта Local Networks. Заполняем его так, как показано на скриншоте. Первое поле – адрес Сети, второе – маска.

    • После этого нажимаем Submit, ждем обновления настроек и нажимает кнопку Apply Config в правом верхнем углу. Далее таким же образом будет необходимо подтверждать все действия.
    • Следующий этап – создание и настройка внутреннего номера. Для этого выбираем меню Applications и переходим к модулю Extension. Когда модуль прогрузится, нажимает Quick Create Extension и заполняем поля, следуя пошаговой инструкции на экране. Вы можете видеть на фото первый шаг.

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

    • После того как номер создан, переходим к настройке. Для этого нажмите значок с карандашом. Проверяем правильность всех настроек.
    • Регистрируем софтфон. Для этого скачиваем и устанавливаем на компьютер нужное приложение. Мы рассмотрим процесс на примере бесплатного софтфона MicroSIP. Запускаем программу и вводим необходимые параметры, как показано на фото.

    • Нажимаем кнопку «Сохранить». Если все сделано верно, статус в софтфоне должен измениться на онлайн.
    • Теперь переходим к настройке SIP транка – номера, с которого можно звонить на внешние телефоны. Для этого переходим в меню Connectivity и выбираем пункт Trunks.
    • Чтобы создать новый транк, нажимаем Add Trunk. Выбираем SIP Trunk и вводим настройки, которые можно получить у провайдера.
    • В поле Peer Details на вкладке SIP Settings вводим данные, как на скриншоте.

    • Переходим на вкладку Incoming. Здесь в поле Register String вводим нужные данные, как указано на изображении.

    • Нажимаем Submit и применяем настройки.
    • Настраиваем исходящую маршрутизацию. Для этого переходим в меню Connectivity и выбираем пункт Outbound Routes. Далее нажимаем кнопку Add Outbound Routes и вводим нужные данные.

    • Прокручиваем страницу вниз и ставим необходимые настройки. Процесс вы можете видеть на скриншоте.

    • Теперь записываем звуковой файл с приветствием от имени вашей компании. Его будут слышать абоненты, которые позвонят вам. Для записи можно использовать стандартные средства Windows.
    • Далее переходим в меню Admin и выбираем пункт System Recordings. Вводим нужные настройки и загружаем звуковой файл с приветствием.
    • Теперь создаем голосовое меню. Для этого переходим в меню Applications и выбираем пункт IVR. Нажимаем кнопку Add IVR и заполняем нужные данные.
    • Сохраняем и применяем изменения.
    • Создаем входящий маршрут. Для этого переходим в меню Connectivity и выбираем пункт Inbound Routes. Далее нажимаем кнопку Add Inbound Routes и заполняем необходимые поля. Остается сохранить и применить изменения.

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

    Linux-программа Asterisk нужна для создания серверов телефонии и АТС. У неё много полезных функций, которые будут к месту в любом офисе. Конференции, автоответчики, распределение звонков, текстовые сообщения , видео, голосовое меню и голосовая почта. Утилита поддерживает популярные протоколы связи. Их можно коммутировать. Но установка Asterisk на Ubuntu - дело не самое простое. Приложение загружается и настраивается через терминал. Поэтому надо изучить консольные команды.

  • Перейдите в папку «contrib/scripts/» при помощи команды «cd».
  • Откройте скрипт «get_mp3_source.sh».
  • Введите «make install».
  • Подождите, пока загрузятся архивы.
  • Установленный Asterisk надо настраивать и через меню, и через терминал. Поэтому откройте консоль.

  • Сделайте конфигурационные файлы. Можно в качестве теста. Команда - «make samples».
  • Активируйте функцию автозапуска - «make config ldconfig».
  • Теперь можно запустить сервис - «service asterisk start».
  • Или сразу открыть его в качестве демона - «/etc/init.d/asterisk start». Чтобы включить его консоль, введите команду «sudo asterisk -rvvvcd».
  • Пока для работы с Астериском вам нужны права суперюзера. Но лучше создать отдельного пользователя и предоставить ему доступ к функциям программы. Для этого:

  • Временно отключите утилиту - «service asterisk stop».
  • Добавьте нового юзера - «adduser [Имя]». Можете создать группу, которой предоставите нужные права. Она пригодится, если вы решите сделать нескольких пользователей для работы с разными службами Астериска.
  • Теперь нужна директория для запуска. Добавьте её при помощи команды «mkdir». После неё напишите параметр «-p» и путь к папке «/var/run/asterisk».
  • Чтобы приложение открывалось сразу под нужным юзером, отредактируйте файл «/etc/default/asterisk». Установите там следующие параметры: «AST_GROUP=»dialout»» и «AST_USER=»asterisk»».
  • Можно сделать это проще - впишите скрипт «sed -i ‘s/#AST_USER=»asterisk»/AST_USER=»asterisk»/g’ /etc/default/asterisk».
  • Предоставьте пользователю доступ ко всем папкам программы - «chown -R [Имя-юзера] [Путь-к-каталогу]».
  • Откройте файл «asterisk.conf», найдите в нём параметр «runuser» и укажите в нём только что созданного пользователя. Если делали группу, также перепишите строчку «rungroup».
  • Перезагрузите систему - «reboot».
  • Зайдите под именем Asterisk-юзера - «su [Имя]».
  • И запустите программу.
  • Чтобы посмотреть информацию о ней, введите «asterisk -rvvvv».
  • Утилита готова к работе. Дальнейшие действия зависят от того, в каких условиях будет использоваться станция. Есть несколько файлов, в которых расписана конфигурация:

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

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

    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"
    disallow=all
    allow=alaw
    allow=ulaw
    language=ru
    callgroup=1
    pickupgroup=1
    qualify=yes
    canreinvite=yes
    call-limit=4
    nat=no

    В данном примере приведен простейший список 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. Наши контакты .




    Есть вопросы?

    Сообщить об опечатке

    Текст, который будет отправлен нашим редакторам: