Разворачиваем IP-телефонию на базе Asterisk с использованием дистрибутива FreePBX Distro

Справочник системного администратора

Asterisk – это мощное и бесплатное решение для построения собственного сервера IP-телефонии, по сути является программной Мини-IP-АТС. В этой статье разберемся как развернуть такой сервер и поговорим о его настройках.

Для развертывания Asterisk мы с вами будем использовать готовый дистрибутив FreePBX Distro на базе операционной системы Sangoma Linux 7, которая в свою очередь сделана на базе CentOS. Система хорошо встает как на “железные” сервера, так и на виртуальные машины, системные требования не прихотливые – процессора на 2 ядра и 2 гигабайта оперативной памяти хватит для небольшого офиса на 30 абонентов. Если планируется большее количество абонентов, лучше увеличить количество оперативной памяти до 4 гигабайт и использовать процессор уровня Intel Core i5-6600T (или аналогичный). Скачать свежий дистрибутив можно отсюда.

Начинаем установку. Загрузочный экран встречает нас меню с выбором версии Asterisk, выберем версию 18, как он нам рекомендует, хотя я  больше предпочитаю 16 версию.

Далее нам предлагают выбор режимов установки, либо с выводом по VGA, либо можно подключиться через VNC и произвести установку удаленно. Мы выберем первый вариант.

Далее выбираем FreePBX Standart и запускаем установку . Во время установки нам предложат задать пароль root, сделаем это сразу.

После ввода пароля нажимаем кнопку Done в левом верхнем углу.

Дожидаемся окончания установки, в конце установщик сообщит нам об этом сообщением Complete! Нажимаем кнопку Reboot и перезагружаем сервер.

После перезагрузки нас поприветствует Sangoma Linux 7 и попросит ввести данные для входа в консоль. Вводим логин root и пароль, который мы задавали для root во время установки, попадаем в консоль. В самой консоли мы пока ничего делать не будем, так как для этого у нас есть полнофункциональный веб-интерфейс FreePBX, доступный по IP-адресу, который у вас высветится в консоли.

При первом входе в веб-интерфейс нас поприветствует FreePBX и предложит заполнить данные администратора. Заполняем под себя и нажимаем кнопку Setup System.

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

После входа мы увидим всплывающее окно, предлагающее нам пройти активацию. Не бойтесь, активация тут абсолютно бесплатная и добровольная. Она необходима для того, чтобы вы могли пользоваться коммерческими плагинами, которые мы с вами использовать не будем, а так же получать платную техническую поддержку. Все же я рекомендую активировать ваш сервер, так как это даст дополнительные бесплатные возможности, например, доступ к модулю System Admin, к тому же это не сложно и не требует от вас много действий. Для активации необходимо будет создать учетную запись с вашим адресом электронной почты, после чего активировать сервер. Напоминаю – это бесплатно!

Далее будет ряд всплывающих окон информационно-рекламного характера, на всех них нажимаем кнопку Skip, пока они все не исчезнут. Увы, бесплатные продукты любят такое.

Далее нас попросят выбрать язык голосовых подсказок, которые будут выводиться в телефонную линию, а так же язык интерфейса системы. Для России выбираем в обеих случаях – Russian, или то, что вам нужно, в конце нажимаем Submit. Кстати, Asterisk имеет неплохую русскую локализацию звуковых подсказок, сделанную на профессиональной студии.

Далее FreePBX уведомит нас о том, что активировал свой фирменный файрволл, который нам в локальной среде особо не нужен, но мы его отключать не будем, только позднее внесем в него некоторые правила.

Нажимаем Continue, соглашаемся со стандартными настройками, в конце нажимаем красную кнопку Apply Config в правом верхнем углу, применяем параметры.

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

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

Перед началом основной настройки астериска назначим ему статический IP-адрес. Для этого в веб-интерфейсе переходим в “Администратор – System Admin”, в правой части переходим на Network Settings, в строке IP Assignment ставим переключатель в положение Static и задаем астериску IP-адрес в строке Static IP с указанием маски в строке Netmask и адреса вашего маршрутизатора (шлюза) в строке Gateway.

Нажимаем снизу кнопку Save Interface, видим всплывающее окно с предупреждением, чтобы вы внимательно проверили свои сетевые настройки, нажимаем в окне Save and Apply.

Далее нажимаем справа DNS, в поле DNS Server list необходимо прописать DNS-сервер вашего маршрутизатора, или указать адреса общедоступных DNS, например Google.

После ввода DNS, нажимаем внизу кнопку “Сохранить”.

Теперь откроем встроенный в FreePBX файрволл и внесем в него некоторые настройки. Для этого в веб-интерфейсе переходим в “Подключения – Firewall”.

Переходим на вкладку Networks и пропишем в Network/Host вашу подсеть, в которой у вас будет работать астериск. Если подсетей несколько, указывайте все, иначе будут наблюдаться проблемы с подключением телефонов и прохождением голосового трафика. После ввода подсети, нажимайте справа зеленую кнопку с изображением плюса, подсеть добавится в исключения файрволла, далее добавляйте следующую подсеть (по необходимости). В поле Assigned Zone выбирайте по умолчанию Local (Local trusted traffic), но можете выбрать и Trusted (Excluden from Firewall)

Нажимаем внизу кнопку “Сохранить” и далее переходим на вкладку Interfaces, видим список ваших сетевых адаптеров, скорее всего он будет один, и тут необходимо в Default Zone выбрать следующее:

  1. Если ваша сетевая карта светит напрямую в интернет и имеет белый, доступный из интернета, IP-адрес, выбираем – Internet (Default Firewall).
  2. Если ваша сетевая карта находится внутри локальной сети, за маршрутизатором, выбираем Local (Local trusted traffic).

В конце нажимаем кнопку Update Interfaces, далее переходим в “Настройки – Установки Asterisk для SIP”.

В разделе “Настройки NAT” в поле “Внешний адрес” будет скорее всего уже определен и прописан ваш внешний на данный момент IP-адрес, через который вы выходите в интернет через ваш маршрутизатор.

В поле “Локальные сети” должна автоматически прописаться подсеть вашей локальной сети, если у вас есть еще подсети (например удаленных филиалов, подключенных через VPN), пропишите их здесь, нажав на кнопку “Добавить параметр адреса локальной сети”. В конце нажимаем внизу кнопку “Сохранить” и “Применить настройки” (Apply Config).

Теперь можно приступить к основной настройке астериска.

Шаг 1. Создание пула внутренних номеров (экстеншенов)

Переходим в веб-интерфейсе “Приложения – Внутренние номера”. Видим перед собой пустую таблицу, так как номеров у нас пока никаких нет. Создадим первый номер, нажимаем кнопку “Добавить новый номер” и выбираем SIP (chan_pjsip).

Откроется форма для создания нового абонента.

Вообще так сложилось, что внутренняя телефония еще со времен аналоговых АТС имела в себе трехзначные номера. Помните фильм “Иван Васильевич меняет профессию”, как Милославский звонил Шпаку на работу: “Стоматологическая поликлиника? Алло! Добавочный – Три Шестьдесят Две!”. Конечно в этой комбинации, которую назвал Милославский, была своя ирония, бутылка водки в те времена стоила 3 рубля 62 копейки. Но мы с вами сейчас не про цены на водку, которые были в 70е годы СССР, а про число цифр в номерах на внутренней телефонии, 362 – три цифры.

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

Я рекомендую начинать нумерацию с тройки, первым номером пусть будет 301, вторым 302 и т.д. 300 тоже можно, на него обычно вешают ресепшн или какой ни будь внутренний колл-центр.

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

Больше пока никаких параметров мы здесь указывать не будем и просто нажмем кнопку “Сохранить”.

Первый абонент у нас создан, а вверху появилась красная кнопка “Сохранить изменения” (Apply Config). Для применения изменений в Asterisk всегда надо нажимать эту кнопку, если она появилась. Можно это сделать сейчас, можно позже. Каждый раз, когда вы ее нажимаете, происходит полное применение конфигурации, которое может занять время, поэтому лучше сперва произвести несколько необходимых настроек, а уже потом нажимать кнопку, чтобы не ждать долго каждый раз.

Создадим по аналогии второго абонента с номером 302.

Теперь, когда у нас есть два абонента, можно нажать на кнопку “Применить изменения” и проверить телефонию, попробовав позвонить от одного абонента к другому.

Для проверки звонков можно использовать приложение MicroSIP для Windows или любой другой SIP-клиент, даже можно воспользоваться настоящим IP-телефоном или VoIP-шлюзом. Использовать MicroSIP для тестов удобно еще потому, что папку с дистрибутивом программы можно размножить и запускать несколько копий программы, одну с одним номером, другую – с другим. Лучше всего использовать Portable версию, тогда вам не нужно будет ее устанавливать, вы просто распакуете архив и создадите столько копий MicroSIP – сколько нужно.

Запускаем MicroSIP, нажимаем на кнопку со стрелочкой в правом верхнем углу, выбираем Add Account. В появившемся окне в поле Account Name указываем имя профиля (любое понятное нам, можно указать номер телефона), в строке SIP Server указываем IP-адреса астериска, в поле Username указываем внутренний номер подключаемого абонента, в поле Domain так же вводим IP-адрес астериска, в поле Login снова указываем номер абонента, в поле Password – пароль абонента.

По умолчанию в астериске, да и не только в нем, при использовании SIP применяется порт 5060/UDP. MicroSIP так же по умолчанию устанавливает подключение через этот порт. Если в дальнейшем будет нужда изменить этот порт на другой, то в настройках MicroSIP необходимо будет указывать IP астериска в таком виде – IP:PORT.

Должно получиться следующее:

После добавления аккаунта в MicroSIP, в нижней части программы должен загореться зеленый значок телефона и появиться статус Online. Если вы видите красный значок, значит где то ошиблись. Проверьте, правильно ли указали IP-адрес астериска, номер телефона, пароль, а так же проверьте настройки файрволла в FreePBX.

Запустим вторую копию MicroSIP с другим абонентом и попробуем позвонить от первого ко второму, в MicroSIP с номером 301 набираем номер 302 и жмем Call.

Если выскочила ошибка “Speakers and microphone both are required”, значит в вашей системе нет либо устройства вывода звука (колонок), либо устройства ввода (микрофон) и MicroSIP сообщаем нам, что без этих двух вещей поговорить по телефону не получится. Так как мы сейчас просто тестируем прохождение звонков, то в качестве микрофона (если его нет) можно использовать стерео микшер в Windows.

Если с звуковыми устройствами ввода и вывода все в порядке, то на второй MicroSIP должен прилететь звонок с определением номера и имени абонента.

Попробуем от второго абонента позвонить первому, в MicroSIP с номером 302 набираем 301 и звоним.

Если звонки проходят, значит связь работает. Если есть возможность поднять MicroSIP на разных компьютерах, или, например, использовать на Android-смартфоне, подключенному к вашей локальной сети по Wi-Fi, приложение Sipnetic, можно проверить голосовую связь из разных концов. В прочем, голосовую связь можно проверить и на одном компьютере, достаточно при звонке на другой MicroSIP поднять трубку и сказать что ни будь в микрофон, в колонках должны будете услышать свой голос. Главное постарайтесь поскорее завершить звонок, а то словите акустическую обратную связь (микрофонный эффект).

Если ваш голос слышен собеседнику, а его голос слышен вам – поздравляю, ваша IP-мини-АТС работает.

Шаг 2. Создание групп вызовов и очередей

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

Группа вызовов от очереди отличается тем, что распределяет звонки по всем свободным абонентам, добавленным в группу, пока кто ни будь из них не ответит на звонок. Если на звонок никто не ответит, то у звонящего по таймауту терминируется звонок (сбрасывается). Группа может принимать звонок только от одного звонящего, если на момент звонка в группу все абоненты будут заняты, то астериск сбросит абонента, или проиграет ему какое ни будь сообщение.

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

Чтобы добавить пользователей в группу вызовов, переходим в “Приложения – Группы вызова” и нажмем кнопку “Добавить группу вызова”. Нам предлагается заполнить и указать различные параметры, мы затронем только несколько основных.

В поле “Номер группы вызова” указываем номер, не пересекающийся с пулом внутренних и внешних номеров. Если у вас внутренние номера начинаются на 3, то группам и очередям лучше назначать номера, начинающиеся с 4, в нашем примере группа будет иметь номер 401.

В поле “Описание группы” пишем ее название, например название отдела, чьи телефоны она будет объединять, в нашем примере будет “Отдал продаж”.

Далее в поле “Лист внутренних номеров” указываем внутренние номера абонентов, которых мы будем собирать в группу. Можно прописать номера вручную, каждый с новой строки, а можно добавить из списка “Use Quick Select”.

Дальше идет выбор стратегии обзвона, нажав на знак вопроса рядом, можно почитать что из себя представляет та или иная стратегия. Мы выберем “Звонят все”, как наиболее универсальный вариант.

В поле “Время звонка” указывается время в течение которого телефоны будут звонить, а звонящий будет находиться в ожидании вызова. По окончании заданного количества времени (максимум 300 секунд) звонок терминируется (сбрасывается), по умолчанию стоит 20 секунд.

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

В поле Play Music On Hold выбирается, что будет слышать звонящий, либо обычные гудки, либо можно выбрать музыку. Для выбора музыкального сопровождения поставьте “По умолчанию”, так звонящему будет воспроизводиться плей-лист из стандартной музыкальной библиотеки астериска (неплохая музыка, кстати).

В параметре “Назначение, если никто не ответил” выбирается действие, которое происходит по истечении таймаута, заданного в поле “Время звонка”. Самое распространенное – это Terminate Call и ниже Hungup, у звонившего абонента сбросится звонок.

После указания всех настроек группы, нажимаем внизу Submit и вверху Apply Config.

Теперь, если позвонить по номеру 401, мы вместо гудков услышим музыку, а у абонентов 301 и 302 зазвонят телефоны и как только один из них поднимет трубку, астериск нас соединит. Если пройдет 20 секунд и никто трубку не возьмет, астериск нас сбросит.

Теперь создадим очередь. Для ее создания переходим в “Приложения – Очереди”, нажимаем кнопку “Добавить очередь”.

Тут у нас похожая настройка, как в случае с группой вызова, так же задаем внутренний номер для создаваемой очереди, пишем ее название. У нас будет очередь, которая так же будет называться “Отдел продаж”, а номер у нее будет 402.

В поле Music on Hold Class поставим значение “По умолчанию”, а ниже выберем MoH Only. Это позволить при звонке на номер очереди вместо гудков воспроизводить музыку, загруженную в библиотеку астериска.

В поле “Назначение при неответе” как и в случае с группами, выбираем Terminate call/Hungup.

Переходим на вкладку “Queue Agents” (Агенты очереди).

В поле “Статичные агенты” перечисляем номера внутренних телефонов абонентов, которых мы будем включать в данную очередь. В нашем случае наши два абонента – 301 и 302.

Переходим на вкладку “Параметры времени и операторов”.

В поле Agent Timeout указываем время, в течение которого звонки из очереди будут поступать на номера абонентов включенных в очередь (операторов), можно поставить “Неограничено”, тогда звонящий на линии будет находиться до тех пор, пока ему не ответит один из операторов, либо пока он сам не сбросит звонок.

В поле “Retry” указывается промежуток времени, через который звонки из очереди будут повторно приходить на номера операторов, если он решил не поднимать трубку, или сбросил звонок. По умолчанию – 5 секунд, я обычно ставлю 30 секунд, чтобы не сводить с ума операторов очереди.

Переходим на вкладку “Caller Announcements”.

В поле “Frequency” задается интервал, через который звонящему будет сообщаться о его позиции в очереди, я ставлю 1 минуту.

В поле “Minimum Announcement Interval” задается минимальный интервал времени, через который звонящему будет сообщаться его позиции в очереди, если его место в очереди изменилось.

В поле “Announce Position” указываем будет ли сообщаться звонящему о его позиции в очереди, “Да” или “Нет”. Я выбираю “Да”.

В поле “Announce Hold Time” указываем будет ли сообщаться звонящему о примерном времени до ответа оператора, я всегда ставлю “Нет”, но вы можете сделать по своему.

Основные параметры очереди мы настроили. Нажимаем снизу кнопку Submit и вверху Apply Config.

Теперь если позвонить по внутреннему номеру 402, звонок уйдет операторам 301 и 302, а мы останемся на линии пока кто ни будь из операторов не освободится и не возьмет трубку.

Шаг 4. Настройка конференций

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

Для создания конференции переходим в “Приложения – Конференции”, нажмем кнопку Add.

В поле Conference Number зададим номер создаваемой конференции, в нашем примере будет 888.

В поле Conference Name указываем название конференции, в нашем примере “Общая конференция”.

В поле User PIN можно задать пин-код, который должен будет ввести позвонивший в конференцию абонент. Можно оставить данное поле пустым, тогда вход в конференцию будет свободным.

В поле Admin PIN задается пароль организатора конференции, для его идентификации. Это поле так же не обязательно к заполнению, если только не включен режиме ожидания организатора, без которого конференция не начнется. В таком случае пин-код необходим и он должен отличаться от пин-кода остальных участников.

Параметр Leader Wait определяет ждать ли организатора, пока он не присоединился к конференции. Если включено, конференция не начнется пока организатор не войдет в конференцию.

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

Параметр Music on Hold позволяет включить музыкальное сопровождение, пока в конференции находится один участник.

В строке Music on Hold Class выбирается плей-лист, в нашем случае стандартная музыка в Asterisk “По умолчанию”.

Остальные параметры трогать не будем, должно получиться следующее:

Попробуем набрать номер конференции сперва у первого абонента, затем у второго. При подключении первого абонента, он услышит фразу “Вы являетесь первым участником конференции” и затем у него заиграет музыка. Как только подключится второй участник, музыка прекратит играть и раздастся звук присоединения к конференции нового участника.

Теперь все находящиеся в конференции абоненты могут общаться между собой.

 Шаг 5. Настройка SIP-транков для приема и совершения звонков во внешнюю телефонию

Переходим в веб-интерфейсе “Подключения – Транки”, нажимаем длинную кнопку с плюсом в начале и выбираем “Добавить SIP (chan_pjsip) транк”.

В качестве примера будем добавлять транк от провайдера Ростелеком.

В поле “Название транка” пишем его название, в нашем примере – Rostel. В поле “Исходящий CallerID” необходимо указать ваш внешний номер в виде 74951234567. В поле “Количество каналов” указываем максимально количество каналов на входящие и исходящие вызовы, у Ростелекома на одного пользователя доступно 2 входящих и 2 исходящих канала, ставим 2. В поле “Выключить транк” ставим переключатель в положение “Нет”, чтобы транк активировался после завершения настройки. Должно получится так:

Переходим на вкладку “pjsip Общие настройки”, заполняем данные в нижней вкладке “Общие”.

В поле “Имя пользователя” пишем имя вашего пользоваться в Ростелеком ВАТС, в поле Auth username повторяем ввод имени пользователя.

В поле “Секрет” пишем пароль пользователя в ВАТС.

В поле SIP-сервер пишем адрес вашего домена в Ростелеком ВАТС.

Порт SIP-сервера оставляем пустым, у Ростелекома он стандартный.

Если вы заполняете настройки под другого оператора и у него используется другой порт, как, например, в случае с Mango Telecom, пропишите его в поле “Порт SIP сервера”.

Транспорт оставляем UDP.

Переходим во вкладку “Расширенный”.

В поле “От домена” снова указываем ваш домен в Ростелеком ВАТС.

В поле “От пользователя” повторяем ввод вашего пользователя в ВАТС.

В поле “Клиентский URI” прописываем следующую строку:

sip:user_rostel@123456.19.rt.ru

В поле “URI сервера” повторяем эту же строку.

Переходим на вкладку “Кодеки” и ставим галочки на ulaw и alaw (используемые по умолчанию в Ростелеком), если у вашего оператора имеется поддержка других кодеков, отметьте их. Кодеки ulaw и alaw должны идти первыми в списке для обеспечения большей совместимости.

Нажимаем внизу кнопку “Сохранить” и кнопку “Применить изменения” вверху.

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

Чтобы узнать информацию о зарегистрированных в сети транках через веб-интерфейс, переходим в “Администратор – Командная строка Астериск” и выполняем там:

pjsip show registrations

Получаем ответ (адрес моего домена замылен), видим, что статус нашего транка – Registered.

Можно узнать состояние и через саму консоль Linux, вводим и выполняем:

asterisk -r

Далее вводим и выполняем:

pjsip show registrations

Получаем ответ (адрес моего домена здесь тоже замылен):

Транк добавлен в астериск и авторизован на серверах вашего провайдера.

Шаг 6. Создание входящей и исходящей маршрутизации вызовов

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

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

  1. Звонок поступает сразу на несколько абонентов, которые объединены в группу вызовов, или в очередь вызовов.
  2. Звонок поступает на интерактивное меню (IVR), где звонящему проиграется приветствие, а он может сделать выбор заданных направлений с помощью тональных клавиш, или набрать добавочный номер абонента.

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

Для начала нам нужно создать аудиозапись, которая будет проигрываться звонящему в интерактивном меню. Запись можно сделать на компьютере, на смартфоне, она может быть в формате wav или mp3, астериск сам ее сконвертирует в свой формат.

Переходим в “Администратор – Записи в системе”, нажимаем кнопку “Добавить запись”, в поле Name пишем название нашей записи, например “Основное приветствие”. Затем в Upload Recording нажимаем Browse, выбираем наш аудиофайл с приветствием. Внизу, в Convert To, выбираем параметры alaw, ulaw, waw и нажимаем Sumbit и Apply Config.

Запись загружена в астериск.

Теперь создадим интерактивное меню, переходим в “Приложения – Интерактивное меню (IVR)”, нажимаем “Добавить IVR”.

Пишем название интерактивного меню, например “Основное меню”.

В поле “Уведомление” выбираем нашу запись, которую только что загрузили.

В параметре “Разрешить прямые наборы” ставим Enabled, чтобы звонящий мог набирать добавочные номера.

В параметре “Таймаут” указываем промежуток времени, который предоставляется звонящему для выполнения каких либо действий (выбрать пункт меню, или набрать добавочный), после истечения данного времени сработает параметр указанный в поле “Назначение при таймауте”, например перевод звонка на телефон секретаря, или отбой вызова.

Если включить параметр “Добавить уведомление при неверном наборе”, то звонящий будет слышать голосовое уведомление об ошибке, если он набрал неверную комбинацию.

В самом низу можно составить схему интерактивного меню, куда будет направляться звонящий при нажатии тех или иных кнопок. В нашем примере при нажатии на 1 его отправит на группу вызова “Отдел продаж”, при нажатии на 2 его отправит в очередь “Отдел продаж”, при нажатии на 3 звонок уйдет абоненту с номером 301, при нажатии на 4 звонок уйдет абоненту с номером 302.

Можно создавать несколько интерактивных меню и пересекать их друг с другом.

Для сохранения меню нажимаем “Подтвердить”, после чего вверху нажимаем Apple Config. Интерактивное меню создано.

Теперь мы добрались до создания входящей маршрутизации. Переходим в веб-интерфейсе “Подключения – Входящая маршрутизация”, нажимаем кнопку “Добавить входящий маршрут”.

В поле “Описание” пишем название нашей входящей маршрутизации, например “Голосовое меню”, так как эта маршрутизация отправит всех звонящих на интерактивное меню, которое мы только что создали.

Внизу, в поле “Установить направление” выбираем “Интерактивное меню (IVR)” и ниже выбираем наше меню. Нажимаем “Сохранить” и “Применить изменения”.

Теперь попробуйте позвонить на свой внешний номер транка, астериск должен будет ответить на звонок и воспроизвести вам ваше голосовое приветствие. Попробуйте понажимать кнопки 1, 2, 3, 4, проверьте как работают сценарии в интерактивном меню, потом перезвоните и попробуйте набрать добавочные 301 и 302, проверьте как уходят звонки на них.

Если астериск успешно отвечает на входящие звонки и у вас правильно отработали сценарии в IVR, значит входящая маршрутизация и интерактивное меню настроено правильно.

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

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

Переходим в “Подключения – Исходящая маршрутизация”, нажимаем кнопку “Добавить исходящий маршрут”.

Пишем название маршрута, например “Россия”, далее в поле “Последовательность транков для совпавших маршрутов” указываем наш транк.

Переходим на вкладку “Правила набора” и вот тут нам надо указать шаблон набираемых номеров, которые астериск будет набирать в транк.

Для начала разберемся как работает исходящая маршрутизация в астериске, взглянем на таблицу:

В поле “Совпадение маршрута” (pattern) прописывается сам шаблон номера, набор которого будет уходить в транк.

При создании шаблонов используются следующие правила ввода:

  • X – совпадение любой цифры от 0 – 9
  • Z  – любая цифра от 1 до 9
  • N – совпадение любой цифры от 2 – 9
  • [1237-9] – совпадение любой цифры из набора в скобках, в том числе из указанного интервала (в данном напримере: 1,2,3,7,8,9)

Например, для совершения звонков через Ростелеком шаблон будет иметь следующий вид: 8XXXXXXXXXX

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

В поле “Приставка” указывается код, который астериск добавит к набираемому номеру перед отправкой в транк.

Примеры:

ПриставкаПрефиксСовпадение шаблона (pattern)Как набрано на телефонеКак отправлено в транк
8XXXXXXXXXX8123456789081234567890
8+7XXXXXXXXXX+7123456789081234567890
9XXXXXXXXXX912345678901234567890
+7495NXXXXXX1234567+74951234567

Так, с помощью приставок и префиксов можно производить различные конвертации набираемых номеров перед их отправкой в транк.

Для совершения городских звонков на 7-значные номера подойдет такое правило: NXXXXXX с указанием кода вашего города и кода страны в приставке.

Для совершения звонков на экстренные номера (полиция, скорая помощь, пожарная охрана) подойдет такое правило: 0[123]

Должна получится следующая таблица:

Нажимаем “Сохранить” и “Применить изменения”. Пробуем позвонить на внешний номер с телефона одного из абонентов, если звонок проходит – исходящая маршрутизация настроена верно.

Заключение

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

Tags: ,