Пользователь
0,0
рейтинг
8 января 2012 в 19:01

Разработка → Бюджетный вариант виртуальной АТС с не бюджетными возможностями из песочницы

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


И так, изначально имеется:
  • пара десятков мелких офисов (арендаторы).
  • телефония приходящая им по сипу
  • пользовательские SIP телефоны и софтфоны.
  • желание некоторых клиентов вместо просто телефона на столе, иметь фичи: авто секретарь/расписание/голосовая почта/запись звонков и нежелание иметь настоящую PBX и администратора для этого дела.
  • наше желание сделать хорошо клиентам.
  • системный администратор который знает такие страшные слова как linux и asterisk.


попытка реализовать желания клиентов, вложившись только в сервер, под катом.



Погуглив, решено было копать в сторону asterisk или freeswitch.


Погуглив еще было обнаружено, что большое количество предложений 'виртуального офиса' для астериска это либо `пять пунктов одноуровнего IVR` либо астериск с FreePBX установленный в виртуальную машину ( почему то очень любят OpenVZ ). От FreePBX в виртуальной машине было решено пока отказаться — интерфейс ни сколько не для пользователя, и к каждому такому астериску надо прилагать администратора, да и рулить кучкой астерисков в виртуальных машинах не айс. Для FS есть интересная штука, которая вроде как может Multi-Tenant — blue.box, но на FS пока смотрим осторожно ( с астериском больше опыта работы ), поэтому тоже пока прошли мимо.


По запросу 'виртуальная атс' гугл отдает кучу ссылок, почти все из которых собственно предложения провайдеров, например, что то типа 'СВЕТЕЦ' который сейчас в octopus'e и ростелекоме — красиво, но у себя поставить не получится, либо дорого либо в принципе продают только услугу.


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


Судя по документации хотелки пользователей:
  • авто секретарь
  • расписание
  • голосовая почта
  • запись звонков


и наши:
  • asterisk + изоляция пользователей
  • управление из одного места
  • локальные звонки между офисами в одном здании


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

Собственно его и будем настраивать



Смотрим актуальную версию на главной странице ( latest VMWare image ) и качаем её.

Сейчас это: VM Ware образ с номером 8645 9613 ( virtual-pbx.ru/ru-downloads.html ).

Проверяем обновления и если есть тоже скачиваем последний .tgz.

Для тех у кого была установлена предыдущая версия обновление будет выглядеть примерно так:

cd /tmp
wget http://virtual-pbx.ru/updates/vpbx/VirtualPBX-8645.tgz
tar -xzvf VirtualPBX-8645.tgz
cd VirtualPBX-8645
rpm -Fvh *.rpm


Сделаем предварительную настройку, по документации, после чего заходим в интерфейс администратора:




_https://server_ip/ai_

в списке групп выберем группу default и поправим нужные нам настройки, у нас это было:
  • Dialout asterisk context ( поменяли на vpbx-local )
  • Maximum Number of Schedule items in ext
  • + лимиты
  • разрешаем использование всех дополнительных фичь.





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


  • зарегистрировать номер у провайдера ( перенести с IP-телефона на asterisk )
  • завести телефонные номера ( подключаем IP-телефоны и cофтфоны к нашему virtual-pbx )
  • входящая / исходящая маршрутизация
  • сделать шаблон стандартного IVR с:
    — расписание
    — black list
    — авто секретарь
    — роутинг по отделам
    — голосовая почта


Приступаем



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

tail -5 /etc/asterisk/extensions.conf
[vpbx-local]
; общий номер для всех
exten => 0999,1,Goto(xvb-main,${EXTEN},1)
; local DID's
exten =>_00XX,1,Goto(xvb-main,${EXTEN},1)


во вкладке users добавляем пользователя (так как каждый пользователь есть комбинация номера телефона + кода доступа, мы для себя заводим всех пользователей на номере '0999' — (если на него позвонить система попросит ввести код доступа ) и каждому офису прописываем 4-х значный внутренний дид ):



нажимаем 'создать' и получаем примерно это:




далее переходим в `кабинет` пользователя:




меняем часовой пояс / язык / устанавливаем имя пользователя / его почту / и тд.

Настроим регистрацию на оборудовании провайдера:




тут пропишем:
  • ip-адрес провайдера
  • имя пользователя на оборудовании провайдера ( у нас это телефон )
  • пароль
  • поставим галочку принимать звонки
  • поставим 0 в колонке 'на внутренний номер'


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


[root@n-test 5701]# asterisk -rx 'sip show registry'
Host                                    dnsmgr Username       Refresh State        Reg.Time                 
20-1325847688-14a91d6d49dc91d5c1a9967db N      xxxxxxxxxxxp       105 Registered   Sat, 07 Jan 2012 00:08:13
1-321ca7dfe1f5aeb15381dcb06a74368c:5060 N      2xxxxxxx            97 Registered   Sat, 07 Jan 2012 00:07:55
2 SIP registrations.
[root@n-test 5701]# 


Сделаем регистрацию оборудования клиента в нашем виртуальном офисе 403:




здесь мы создали профили для 2 пользовательских телефонов с номерами 101 и 102


так примерно выглядит подключение телефона Fanvil к нашему виртуальному офису ( в качестве номера 101 ):



далее также регистрируем софтфон на номере 102.

Создадим исходящий роутинг по умолчанию через провайдера SIP телефона:




то есть тут все номера, кроме 4-х значных начинающихся на 0, отправляем к провайдеру ( если в дальнейшем пользователь захочет отправлять звонки например через сипнет ему нужно просто сделать маршрут с более высоким весом )

Переходим к списку внутренних номеров:




И в частности к номеру 0:




мы установили тип внутреннего номера — 'Расписание' и создали простое расписание — с понедельника по субботу с 9 до 18 отправлять звонки на внутренний номер 1 ( тут у нас будет собственно сам IVR ) иначе на 600 ( голосовую почту )

далее здесь же настроим фильтрацию входящих звонков по номеру звонящего:




это означает, что при поступлении звонков с номеров 1234567890 и 0987654321 система повесит трубку.

Создадим номер 600 — голосовую почту:




( вместо системного сообщения лучше загрузить звуковой файл со своим приветствием. Из коробки, из русских голосов, доступны TTS голос festival и TTS от google.translate )

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




и номера для бухгалтерии ( 1*1 )




и технического отдела ( 1*2 )




Всё вместе это выглядит примерно так:



Далее, чтобы не повторять всё тоже самое для каждого пользователя идем во вкладку 'Профиль пользователя' и делаем бекап настроек ( в xml формате ) после чего его можно загрузить для нового пользователя ( предварительно подправив номера и пароли ).


Собственно всё. Разворачиваем новому пользователю приготовленный шаблон и отдаем рулить своим куском АТС.

Итак у нас есть:



  • система установленная у нас и контролируемая нами


У пользователя есть:


  • расписание для всех входящих звонков.
  • черный список телефонных спамеров и хулиганов.
  • авто секретарь.
  • запись разговоров.
  • голосовая почта.
  • возможность позвонить с 101 на 102 или в город.
  • редирект звонков для номеров 101 и 102 на мобильные ( через SIP провайдера ).
  • управление своим виртуальным офисом с возможностью расширения вышеперечисленных возможностей.
  • подробные CDR для каждого звонка:




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

Пару слов про неудобства:



  • Ставить на сервер с нуля из rpm несколько геморойно из за кучи зависимостей, поэтому проще копировать tar'ом прямо из vmare-имиджа.
  • В некоторые моменты возникает сильное желание записать таки свои голосовые сообщения ( из коробки идет TTS ) и поправить web интерфейс.
@g613
карма
6,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (32)

  • 0
    Недопонял, что за зверь этот VirtualPBX.
    Как именно он прикручивается к астериску, что «можно допилить что-то своё»?
    Реально ли его поставить отдельно от предлагаемой «коробки» rpmов с заточенной инфраструктурой?

    /* сейчас юзаем FreePBX который меня как админа бесит тем, что внаглую перерисовывает все конфиги, предполагает, что кроме него в системе вообще ничего нет, генерит баговые диалпланы и написан на говнопхп-без-поллитры-не-пофиксишь */
    • +1
      Ну раз вы лазаете в конфиги FreePBX руками, то наверняка в шапке видели указание, что эти файлы не предназначены для правки вручную. Для ручной правки конфигов есть файлы *_custom.conf: extensions_custom.conf, sip_additional_custom.conf и десятки других.

      А по поводу баговых диалпланов — это вы зря. Они местами несколько избыточны, но вполне работоспособны.
      • 0
        А, например, в файле indications.conf такая надпись появилась только после моего багрепорта о том, что для россии там неправильные данные. Баг провисел с полгода.
        Зачем переписывать этот файл данными, захардкодеными в пхп — загадка.

        Ну и да, есть *_custom.conf, *_general_custom.conf, *_additional_custom.conf, *_custom_post.conf — это весело и удобно.

        О баговых диалпланах посмотрите /var/log/asterisk/warn после регенерации файлов.
        • +1
          Те ошибки, что там могут проскакивать, на работу не сказываются.

          Хорош FreePBX или плох, тема для отдельной сложной дискуссии. Но факт один — нормальной альтернативы ему нет.
          • 0
            топик таки о некой альтернативе
            • 0
              Я под альтернативой предполагаю софт в такой же весовой категории. А так — таких «альтернатив» для Asterisk просто масса.
              • 0
                Наличие массы альтернатив говорит о том, что существующие решения устраивают далеко не всех
                • 0
                  Да! Не поверите, но и меня, проводящего бОльшую часть рабочего времени в панели FreePBX, там тоже много чего не устраивает. И при всем при этом, пока ни одна альтернативная панель управления не доросла до уровня.
              • 0
                Все (виденные мной) альтернативы построены по пирнципу «нажми на кнопку — получишь результат».
                Если кнопки для желаемого результата нет — надо лезть в недокументированные сорцы, писать плагины.
                Потому и делают альтернативы со своими блэкджэками.

                И, похоже, в этом году появится ещё одна альтернатива, но уже по принципу «навороченный редактор диалплана».
                • 0
                  Вот в этом плане FreePBX как раз и хорош: масса функционала устанавливается в виде модулей. Например, Custom Context или тот же Autoprovisionig.
              • 0
                FreePBX это гуй для всего астериска, если пытаться дробить им астериск на несколько пользователей, то проще сделать себе харакири. Как я писал выше, вариант поставить три десятка FreePBX в виртульных машинах не сильно радует, `виртуализация` про которую топик радует больше. Но мы таки понимаем, что такая `виртуализация` будет накладывать больше ограничений для тонкой настроки для каждого отдельно взятого клиента нежели отданный клиенту целый астериск.
                • 0
                  Asterisk — сам по себе не Multi-Tenant. Если вам нужно на один Астериск повесить тридцать офисов, но так, чтобы они не могли звонить друг другу и звонили через своих операторов — то проблем никаких — разносите их по контекстам, хоть вручную, хоть через FreePBX.
                  • 0
                    и какова конечная цена вопроса для 'разносите их по контекстам' в человеко-часах / зарплате? и как и кто это потом будет поддерживать? Я впринципе даже спорить не буду, что это можно и в FreePBX, только будет ли результат лучше того, что описано выше и будет ли этот результат хоть чем то похож на оригинальный FreePBX. Вот в чем вопрос.
                    • 0
                      Смотря что считать «конечной ценой вопроса».

                      То что вы поставили-настроили-проверили, и вроде бы проблем на старте не нашлось — здорово. Но когда они со временем начнут появляться, а спросить будет не у кого, то как это повлияет на цену вопроса, которая уже вроде как выплачена? Если бы вы написали, что поставили систему два года назад и все это время «ни единого разрыва» — то да, снимаю шляпу. Но если же не так, то в свой продакшн я бы побоялся ставить.
                      • 0
                        Риск есть, это да, но с альтернативами удовлетворяющими нашим ТТХ не густо. До астериска имел счастье видеть локально установленный светец с их гуем на php и voip скриптами на js и меровский IP-Centrex ( привет товарищам из тех-поддержки меры которые любили апдейтить наш PBX в середине рабочего дня ), проблемы там вылезали тоже в самый неподходящий момент и 5-ти значная сумма в $ заплаченная например за меру не гарантировала, что они в принципе это пофиксят и уж тем более пофиксят прям 'завтра'. Так, что всё относительно.
    • 0
      в том виде, в котором всё это отдают это больше напоминает черный ящик, внутри которого CentOS, asterisk,apache,mysql и скрипты. К астериску оно прикручено как include куска диалплана и sip конфига, то есть то, что было до этого оно не трогает. Отдельно поставить можно но смысла без 'заточенной инфраструктуры' не будет, проще оказалось к той инфраструктуре прикрутить свой диал-план и конфиги…
  • 0
    Устроился в фирму, а там астеров с freepbx 5 штук. Так не привычно в web все конфиги править, и плюс убивает, что freepbx подтерает, что руками правил.
    • +3
      Откройте для себя файлы _custom.conf
  • 0
    Чем этот набор скринов лучше консоли и конфигов?

    В вашем случае вообще Манго офис лучше.
    • 0
      лучше скриптов и конфигов для администратора нет ничего лучше. Скрипты и конфиги не отдать пользователям. Те пользователи которым можно отдать скрипты и конфиги просто ставят у себя полностью астериск.

      Манго офис можно поставить у себя?
      • 0
        Нет, и тут Вы не совсем правы.

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

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

        Так или иначе, бизнес клиента не находится под угрозой комментов к конфигу в голове у админа.
        • 0
          Мы на чистом asterisk внедряем и местному админу потом показываем как настраивать. Или предлагаем техподдержку. За 3-4 тр в месяц клиентам бывает интересно, что им в дальнейшем будут поддерживать грамотные специалисты.
    • 0
      Скорее всего, Вы не пользовались Манго офисом.
      А если пользовались, то наверное для Вашего бизнеса телефония — не критичный ресурс.

      Иначе бы ощутили на себе всю эту прелесть недоделанных псевдооблачных IP-PBX. У нас есть несколько клиентов, которые имеют номера от всяких там Манго и Октолайнов. По количеству отбоев как на вход, так и на выход — им просто нет равных! Логи полнятся 486-ми и 50x-ми отбоями, а техподдержка говорит «Да-да, знаем-знаем, работаем. Подождите еще часок.»

      Недавно даже был прецендент. У нашего клиента номер от Октолайна. Так вот обилие косяков настолько утомило клиентов, что даже сумели отобрать у Октолайна номер и получить его-же от вышестоящего оператора — НексТела.
  • +1
    Похоже, проклятие этого чудовищного интерфейса FreePBX будет вечно преследовать бесплатные и небесплатные PBX на астериске.
  • 0
    vim /etc/asterisk/extensions.conf
    vim /etc/asterisk/extensions_templates.conf
    vim /etc/asterisk/extensions_trunks.conf
    vim /etc/asterisk/extensions_peers.conf

    vim /etc/asterisk/sip.conf

    и никак иначе. Иначе война с freepbx за каждую инородную воипную железку, коих со смутных времен ещё в изобилии осталось.
    • +2
      (резервный канал через chan_dongle, входящий Skype через SipToSis, оповещения в корпоративный жаббер, связь со старой LDK100 через E1, два аппарата cisco spa8000 на удаленке, требующие отдельных настроек для sip и 729-го кодека (с преобразованием ulaw<-->729 есть свои заморочки). А также виртуальный факс, приходящий в виде файлов tif в общую папку. Chan_dongle заводит свой баланс в мониторинг, ну и в жаббер мне орет, если вдруг денег мало на нем осталось. Боевые телефоны — DECT KIRK, но есть и длинки, линксисы и две «чистокровных» циски. Ну такие простые вещи, как ведение статистики, mobile extension, роуминг трубок между филиалами и банальный перевод звонка с возможностью трехсторонней конференции в момент перевода. И всё это на несколько филиалов, в динамике и с синхронными обновлениями.

      Вроде ничего не забыл. Причем контора-то не особо большая. Просто порой телефония кажется очень простой штукой, а потом внезапно нужно то, то и ещё вот то, и это бы тоже неплохо. И диалплан из freepbx отправляется в мусорку, покупается вот эта книжка, и делается всё по-людски, без кучи extensions под каждый аппарат.
      • +1
        и не спрашивайте, почему я обо всём этом пишу в три часа ночи.
  • 0
    VirtualPBX на гавняном CentOSe ??!
  • 0
    Заказать виртуальный офис или виртуальную АТС — IP PBX можно на сайте Virtual Number, техподдержка вам поможет решить все вопросы, которые у вас возникли в процессе настройки и общения с клиентами.
    • 0
      давайте все по рекламируем свои фирмы с виртуальными АТС…
  • 0
    Уже давно есть оптимальные решения между чистым виртуальным офисом типа упомянутого тут манго и собственным серверов — hosted pbx на площадке телефонного провайдера. В этом случае провайдер отвечает и за телефонную станцию (поддерживает ее со всеми настройками), и за качество самой телефонии. Цена вопроса иногда ниже, чем поддержка на аутсорсе. Пример такого решения на хабре неоднократно обсуждали. Как пример нашей стратегии: saas hosted pbx от Док.Телеком
  • 0
    Из того, что еще доступно на даннй момент, заказать У-АТС можно еще на сайтах:

    Еще неплохой вариант для покупки фиртуального офиса — telnum.net

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