Конфигурирование FreePBX

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

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

Сперва мы пользовались удобным сервисом, предоставляемым оператором MangoOffice, но пришло время сделать еще один шаг в пользу гибкости, удобства и экономии с помощью FreePBX.

Преимущества собственной IP-АТС

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

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

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

Например:

  • PCtel — все звонки по России 1 рубль — с него будем звонить на мобильные и в регионы
  • SipNet — бесплатные звонки на московские и питерские номера (акция) — с него звоним на городские
    Когда акция закончится можно переключиться на другого оператора, например кого-то из линейки BetaMax.
  • Zadarma — дешевые прямые номера. Бесплатные звонки на Московские городские (с некоторым лимитом).

Установка FreePBX

Итак, за основу было решено взять систему на Windows 2008 R2, с виртуальной машиной, на которой установлен сам FreePBX. Машина находится во внутренней сети, за роутером DIR-320, который имеет выделенный статический IP адрес.

FreePBX бесплатно скачивается с сайта разработчика в виде iso дистрибутива, и без проблем устанавливается на виртуальную машину. Процесс установки с дистрибутива полностью автоматизирован, система только поинтересуется настройками сети. Но, т.к. на нашем роутере работает DHCP-сервер заморачиватся с настройками особенно не пришлось. Хотя, вручную прописать сетевые настройки при установки операционной системы никакой сложности так же не представляет.

Настройка сети для IP-телефонии

В windows server 2008 сетевой адаптер настраивается таким образом, что бы виртуальная машина FreePBX могла его использовать параллельно с windows. Таким образом получаем отдельный внутренний IP адрес для виртуальной машины.

На этот внутренний адрес пробрасываем порты на роутере:

  • Порт 5060 — для подключений
  • Диапазон портов 10000 — 20000 — для голосовой информации

После установки FreePBX пришлось настроить внутренний firewall CentOS — это легко делается с помощью утилиты

system-config-securitylevel-tui

Без этой настройки FreePBX отказывалась принимать подключения даже из внутренней сети.

В панели управления FreePBX, в меню Settings -> Asterisk SIP Settings ставим:

  • NAT -> yes
  • IP Configuration -> Static IP
  • External IP -> ваш внешний IP адрес
  • Local Networks -> IP адрес машины внутри сети / маска

При тестировании, для просмотра событий и ответа сервера Asterisk можно воспользоваться командой

asterisk -r

или логом в FreePBX (Reports -> Asterisk Logfiles).

После этого настройку сети можно считать законченной. Вы сможете подключиться к АТС и из внутренней сети, и из внешней.

Если FreePBX устанавливается на виртуальную машину Huper-V могут возникнуть трудности с синхронизацией времени. А на АТС это особенно актуально, т.к. в зависимости от времени звонки могут распределятся по разным направлениям. Подробнее о решении этой проблемы тут.

Настройка FreePBX

  1. Создаем внутренние номера пользователей (Applications -> Внутренние номера)
    — После этой настройки подключенные абоненты уже смогут общаться с друг другом, но звонить на внешние телефоны пока не смогут.
    Так же нужно создать номер для голосовой почты. Для этого нужно создать новый SIP номер, например 500, и в его настройках, разделе «Голосовая почта», поле «Статус» поставить «Включен».
    Имя внутреннего номер ставим «VoiceMail» .
    После сохранения опять заходим в настройки этого номера, и в последнем разделе настроек «Опциональные назначения» ставим переадресацию во всех случаях на «Голосовую почту»:
    <500> VoiceMail (no-msg).
  2. Создаем SIP транки для входящих и (или) исходящих звонков (Connectivity -> Транки)
    Для этого необходимо зарегистрировать аккаунты у выбранных провайдеров SIP -телефонии. О настройке некоторых транков я уже писал тут.
  3. Создать правила для исходящих звонков (Connectivity -> Исходящая маршрутизация)
    Эти правила сводятся к тому, что необходимо выбрать параметры набора номера для выхода на того или иного оператора телефонии (например, можно при звонке через «0» — пользоваться услугами одного ператора, а через «9», или напрямую — другого. Так же возможны более сложные настройки) и порядок перебора этих операторов внутри маршрута.
    — После этой настройки абоненты внутренней телефонной сети смогут звонить на внешние — городские и сотовые номера.
  4. Загрузка приветствия
    Приветствия нам понадобятся для проигрывания при входящих звонках. Загрузить приветствие можно в формате wav, на странице Admin -> System Recording.
  5. Загрузка музыки при ожидании
    Для того, что бы ваши клиенты, при звонке к вам и ожидании в очереди слушали музыку, а не гудки, необходимо создать «музыкальный плей-лист», и загрузить туда записи. Это делается в разделе Settings -> Music On Hold. Тут Вы можете загрузить ваши записи в категорию «по умолчанию», или создать несколько музыкальных потоков.
    Несколько потоков может пригодится например, для проигрывания различной музыки при входящем звонке на разные номера.
  6. Создание группы вызовов (автоответчик)
    В данном случае мы применяем группы вызова для настройки автоответчика. Дело в том, что я не нашел, где настраивается приветствие, проигрываемое автоответчиком. Для решение этой проблемы была создана «Группа вызовов», при попадании в которую проигрывается сообщенее, далее звонок переадресовывается на голосовую почту. Уверен, что есть более разумные решения проблемы, предусмотренные создателями Asterisk и FreePBX, но мне их найти не удалось.
    Заходим в Aplications -> Ring Groups и создаем новую группу вызовов. Название: VoiceMail. В поле «Extension List» ставим несуществующий внутренний номер. В поле «Приветствие» (Announcement) — выбираем загруженное ранее нами приветствие. А в последнем разделе настроек «Назначение, если никто не ответил» (Destination if no answer) выбираем «Голосовая почта», и созданный нами для голосовой почты номер 500: <500> VoiceMail (no-msg). Сохраняем.
    Таким образом, при поступлении звонка на эту группу вызовов проигрывается сообщение, после Asterisk пытается его переадресовать на несуществующий номер, но у него ничего не получается и он переадресовывает вызов на голосовую почту, не проигрывая дополнительных сообщений. Со стороны звонящего это выглядит как обычный автоответчик.
  7. Создание очереди
    Если у вас несколько операторов, и нужно, что бы звонки обрабатывались по очереди, нужно ее создать. Делается это в Applications -> Queues. Создаем новую очередь, вводим название. В поле Static Agents вводим по одну на строке внутренние номера операторов, на которых будем переадресовывать звонок. Выбираем стратегию дозвона (Ring Strategy). Существует несколько стратегий. Можено задать, что бы телефоны всех операторов звонили одновременно, или обзвон шел линейно (по очереди) и т.д. У нас используется линейный обзвон. Ври необходимости ставим значение YES в свойстве «Пропускать занятых операторов» (Skip Busy Agents), и выбираем, какую музыку будем проигрывать при ожидании (Music on Hold Class). Так же необходимо задать сообщение при попадании (Join Announcement): это как раз недавно загруженное нами приветствие.
    Очереди имеют множество настроек, поэтому с остальными, при необходимости, придется познакомится самостоятельно.
    В самом конце странице ставим маршрут, куда будет переадресовываться вызов при отсутствии ответа операторов. Обычно вызовы адресуются на голосовую почту. Для этого в выплывающем списке выбираем «Группы вызова», и созданную нами группу, соответствующую голосовой почте.
  8. Создание временной группы
    Для того, что бы в рабочее время звонки переадресовывались на операторов, а в нерабочее на автоответчик, необходимо настроить временные группы и правила по времени.
    Для создания временной группы заходим в Applications -> Time Groups и создаем группу, согласно времени работы офиса. Например
    Название: Rabota-Otdih
    Время начала: 10:00, Время окончания: 20:00
    День недели начала: понедельник, День недели окончание: пятница
    И сохраняем созданную группу.
  9. Создание правила по времени
    Для того, что бы звонки переадресовывались согласно временной группе, необходимо создать правило по времени. Applications -> Time Conditions.
    Тут нужно задать название правила, Временную группу для него, и маршруты, куда будут переадресовываться звонки, при попадании в рабочее и не рабочее время.
    В рабочее время звонки переадресовываются в созданную очередь, а в нерабочее в «Группу вызовов» соответствующую голосовой почте.
  10. Создание правил для входящих звонков
    В разделе Connectivity -> Inbound Routes создаем новый входящий маршрут. Для этого указываем название маршрута и правило перенаправления. Например, для того что бы маршрут направления зависил от времени звонка, нужно в группе «правило по времени» (Time conditions) выбрать созданное на предыдущем этапе правило. Так же можно перенаправить звонок напрямую в очередь, или по указанному внутреннему номеру, или использовать другие возможности переадресации.
    Сохранив маршрут, все входящие вызовы поступающие на транки будут переадресовываться, согласно настройкам данного маршрута.
    Для разделения поступающих на транки вызовов по различным маршрутам (например, если необходимо, что бы при звонках на разные номера проигрывались различные сообщения, или звонки направлялись ра разные очереди), необходимо в настройках маршрута в соответствующее поле ввести номер DID, соответсвующий данному маршруту. Подробнее об этом тут.

Возможные проблемы

Возможные проблемы при настройке и работы FreePBX описаны в дополнительных статьях:

 

Обновление 13.02.2015

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

Who's online

There are currently 1 user and 1 guest online.