Однажды в одну "бурно развивающуюся компанию" продолжили набирать сотрудников ;).
В частности, продажников команду цельнотянутую цельную, и помещение им пожаловали. А телефонов не пожаловали. А потому что кончились. То есть, совсем. Офисная АТС расширялась-расширялась и расширилась до 24 портов, коие благополучно и заюзались до последнего. А больше 24 портов эта АТС расширяться не умеет категорически.
Поскольку менять ее на подобную но побольше виделось нерентабельным и бесперспективным мероприятием, было решено провести эксперимент (который заодно будет и пилотным проектом по переходу) с VoIP: прикрутить в существующую инфраструктуру IP-PBX, на который через шлюз завести несколько линий со старой аналоговой станции, а там уже насоздавать внутренних номеров по вкусу и желанию для всего отдела. Ну и прочие плюшки от ip-телефонии приветствуются.
Выбор платформы был недолгим: поскольку денег в конторе на 3CX и прочие лицензии дают с превеликим скрипом, то нетрудно догадаться, что в качестве оной был взят asterisk. Ну и, понятно, чтоб сильно не мучаться, какая-либо его готовая сборка.
Сначала был trixbox, который всем, наверное, прекрасен, но поразил падением админского гуя после... даже не обновления, а только лишь выбора дополнительного репозитория. Такие причуды как-то сразу насторожили, посему было решение: ну его, такой триксбокс, поищем что-нибудь еще.
Поиски тут же привели к Elastix, в котором, кроме тех же CentOS и Asterisk, наворочены еще и почта, календари, IM и пара CRM-ок.
Для приведения аналоговых линий к цифровому состоянию был закуплен
Голосовой шлюз DVG-6004S с 4 портами FXO. Сервер для телефонии был выделен из имеющихся запасов - кусочек i7 960 (2 виртуальных процессора), 2 Гб ОЗУ и места на винчестере немножко по нынешним временам. И все это, не поверите, на MS Hyper-V.
Установка дистрибутива ничего интересного из себя не представляет, там все просто и автоматом, за исключением ввода сетевых настроек, которые стоит ввести сразу, чтоб потом больше не заходить в консоль, ну и паролей всяческих.
Первоначальные настройки системы довольно простые:
Заходим на новоявленную АТС по установленному адресу, соглашаемся на дуже опасное подключение и переходим в раздел PBX -> Extentions, где и создаем внутренние номера в необходимом количестве.
Всяческие подробности, типа CallerID и прочих приятностей покуда опустим, для начала они нам без надобности.
Нажимаем Add extention - Generic SIP Device - Create. Вводим номер в поля User Extention, Display Name, SIP alias, Outbound CID и пароль в secret. Остальное оставляем по умолчанию. Нажимаем Submit. Повторяем нужное количество раз и применяем настройки нажатием Apply Configuration Changes Here которая очень удачно к этому моменту появится сверху.
Потом из этих номеров делаем группу вызова, чтобы не отлавливать нужного манагера по неизвестному незанятому номеру, а перенаправить звонок сразу на группу: кто примет - тот и молодец. Покуда так, а там посмотрим. Для создания группы надобно пройти к пункту Ring Groups и создать ее. Там внутри все должно быть понятно, тем более, что каждый пункт имеет всплывающую подсказку, в которой доступно описано, что он там делает и как с ним можно поступать.
После этого как раз надо..
Настроить внешние линии
Идем в раздел Trunks и добавляем SIP Trunk. Тут, надо отметить, имели место некоторые трудности неизвестного происхождения, поскольку шлюз категорически отказывался регистрироваться на сервере, несмотря даже на точное следование
руководству от switch, за которое ему, конечно же, большое человеческое спасибо. Что характерно, в конфигурации, которая оказалась работоспособной, особых отличий от приведенной в руководстве не обнаружилось, но, тем не менее, опишу ее, ибо она работает. Итак, в настройках SIP-транка указываем Trunk Description, Outbound Caller ID, Trunk Name, которые для простоты приняты за номер линии в конфигурации шлюза, и PEER Details:
host=dynamic
username=701
secret=701
type=friend
dtmfmode=rfc2833
context=from-pstn
canreinvite=no
User Details очищаем за ненадобностью и нажимаем Send и применить настройки. Процедуру, в данном случае, повторяем 4 раза - по количеству используемых линий шлюза. Правила набора на картинке уже прописаны, но они у каждого будут свои, поэтому думать над ними все-равно каждому придется самостоятельно. В моем случае это набор номеров с прямым выбором исходящей линии аналоговой АТС (81 или 82 и тп. + 8 + код города и т.д.), набор городских и мобильных номеров через 9 (с автоматическим добавлением префикса - оператор 9 не набирает) и звонки на внутренние номера аналоговой АТС (трехзначные, начинаются на 1).
Кроме того, настраиваются исходящие и входящие правила. Соответственно, в разделах Outbound Routes:
(в Dial Patterns прописываются варианты номеров, для которых действует данное правило) и в Inbound Routes
тут вводится DID номер, который будет использоваться для адресации звонков, входящих на порт шлюза, и направление переадресации вызова, как раз на ту самую группу, в которую добавлены все наши сэйлы.
С этими настройками, кажется, план минимум выполнен. А параллельно с этим всем производилась
Настройка шлюза D-Link DVG-6004S для работы с asterisk
Среди всего пугающего многообразия настроек шлюза нас интересуют всего несколько пунктов.
В первую очередь необходимо, разумеется, задать сетевые параметры в Network Settings: IP-адрес WAN-порта (именно через него шлюз включен в сеть), маску, шлюз и DNS-серверы. Кроме того, на всякий пожарный, переключим шлюз в режим Bridge. Остальные параметры не трогаем - пусть будут по умолчанию. Нажимаем Accept и переходим дальше.
В CallerID расставляем галки как на картинке:
остальное не трогаем. Accept.
Telephony Settings:
тоже не меняем ничего кроме указанных пунктов. Hot Line No. - номера DID в созданных в настройках asterisk входящих маршрутах. На них будут перенаправлены входящие звонки на каждый порт шлюза. Жмем Accept и идем дальше.
В настройках SIP устанавливаем галки register и номера-имена-пароли для авторизации шлюза на сервере.
Кроме того, тут же надо включить параметры: Enable Support of SIP Proxy Server / Soft Switch и Enable SIP Proxy 1.
В трех полях необхходимо указать адрес сервера:
Остальные параметры, опять же, оставляем, как есть. Применяем и переходим в Advanced Options.
Здесь указываем имя и пароль администратора для доступа к настройкам шлюза (по умолчанию имя и пароль - пустые) и указываем предпочтительный кодек - G.711 u-law.
А так же снимаем галку в пункте Enable Non-SIP Inbox Call, чтобы шлюз не маршрутизировал исходящие вызовы: у нас все управление будет на совести сервера.
Больше нам тут делать нечего. применяем настройки.
Теперь идем в System Operation, выставляем обе галки и жмем Accept. Шлюз перезагрузится с сохранением настроек.
После этого все линии должны зарегистрироваться на сервере. Проверить это можно в меню Tools в панели настройки PBX, выполнив команду sip show peers в пункте Asterisk CLI.
На этом было принято волевое решение добавить к * русские звуки, как благосклонно поведано нам на
http://papa-admin.ru и закончить труды праведные до лучших времен.
Забэкапил VHD и пошел до дому.
Результатом этого этапа стала возможность звонить с внутренних номеров asterisk без набора префиксов как в город-межгород, так и на внутренние номера старой АТС.
Далее нужно будет подобрать адекватный софтфон для пользователей, возможно, настроить голосовое меню и пробросить порты на DFL-210, чтобы можно было пользоваться телефонами не только из офиса, но и извне.
Но это все потом, а теперь пора спать.
ЗЫ: Звиняйте за сумбур, зато работает :)