База знаний

В данном разделе представлены руководства и другая техническая информация для инженеров по информационным технологиям, которая будет полезна при внедрении 3CX Phone System for Windows. База технических знаний постоянно пополняется. Также рекомендуем ряд полезных ресурсов:

FAQ по технологии VoIP

3CX Phone System в крупных организациях - тест производительности

eozf4bno3CX Phone System отлично зарекомендовала себя как надежная система для организаций малого и среднего бизнеса. Но как она будет работать в крупных компаниях или в больших инсталляциях? Выдержит ли постоянную высокую нагрузку?

Польский партнер 3CX HaloKwadrat провел нагрузочное тестирование самой старшей версии 3CX Phone System 10 Enterprise Edition 512SC в реальном рабочем окружении со следующими параметрами:

  • 3000 внутренних пользователей (Extensions), которые, кстати, были созданы за 15 минут с помощью импорта из CSV файла
  • Сложная конфигурация сервера 3CX, размещенного на виртуальной машине, так, как это обычно бывает в больших компаниях
  • SIP генератор и SIP терминатор для создания большого количества одновременных вызовов
  • SIP транк на телефонного оператора
  • Сложные правила входящей маршрутизации вызовов
  • Запись разговоров
  • Сложное голосовое меню (Автосекретарь)

Тестирование производилось на сервере Dell PowerEdge 1950 MKII с 2-мя Intel Xeon E5320 CPU @ 1.86Ghz каждый, и с 16GB RAM. На этом сервере для 3CX была создана виртуальная машина с параметрами: 8GB RAM, 4 ядра от 1 Xeon CPU. Остальные ресурсы сервера были отданы еще двум виртуальным машинам, на которых работали другие серверные приложения, используемые в организации.

Статистика производительности фиксировалась с помощью Microsoft Performance Monitor в каждом цикле тестирования. Средняя нагрузка была такова:

  • 8 вызовов в течении 10 секунд средней продолжительностью 800 секунд
  • HTTP запросы от 3000 клиентов MyPhone
  • Передача RTP аудиопотока между конечными точками

По результатам тестирования сделан следующий вывод:

“Система, без проблем обслуживающая 512 одновременных вызовов, может быть уверенно рекомендована для внедрения в организации до 3000 пользователей. Это говорит о том, что 3CX Phone System спроектирована на весьма высоком инженерном уровне. Лицензия на 512 одновременных вызовов – это не маркетинговый ход для “заманивания” крупных клиентов, а реальное предложение для больших организаций, решивших внедрить унифицированные коммуникации. Учитывая сказанное, не стоит забывать, что стоимость приобретения и внедрения 3CX Phone System на сегодняшний день, возможно, самая доступная на рынке.” 

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

Загрузить тестовую версию 3CX можно отсюда.

3CX SIP сервер + SIP домен + внешние подключения на динамическом IP адресе

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

  1. Создать для компании собственный SIP адрес вида sip.домен_фирмы (например, sip.3cx.com.ua).
  2. Принимать SIP вызовы непосредственно на SIP адреса пользователей (например, igor@sip.3cx.com.ua)
  3. Подключаться к офисной 3CX и работать удаленно, имея при этом динамический IP адрес
  4. Принимать вызовы от VoIP провайдеров, имея динамический IP адрес

Будем исходить из предположения о том, что небольшая фирма имеет только доменное имя, но не имеет собственного или провайдерского DNS сервера. Предположим также, что фирма не готова оплачивать фиксированный IP адрес, либо он не предусмотрен условиями ее интернет-подключения. Я также предполагаю, что читатели в общих чертах знакомы с принципами работы DNS, настройкой файрволов и протоколом SIP. Для определенности, определим наше доменное имя как 3cx.com.ua.

Вначале разместим наше доменное имя на одном из самых популярных бесплатных DNS сервисов Zoneedit. Подробная инструкция по подключению домена на Zoneedit имеется здесь. В данной статье эта процедура обсуждается только применительно к SIP адресам (хостам).

После регистрации нашего домена в Zoneedit, создадим хост sip.3cx.com.ua и направим его на текущий IP адрес нашего сервера 3CX. Наш текущий IP адрес можно узнать по этой ссылке.

image 

Внимание! Для чего я создал этот хост? Дело в том, что я мог бы и не создавать хост (поддомен), а использовать DNS SRV запись. Тогда SIP адреса пользователей имели бы вид igor@3cx.com.ua, то есть соответствовали адресам E-mail. И это, в общем, предпочтительнее. Но, к сожалению, Zoneedit не поддерживает SRV записи! С другой стороны, по стандарту, если SIP клиент не находит SIP сервер по SRV записи, он пытается подключиться к A записи домена на порт 5060. В моем случае это будет 3cx.com.ua:5060. Но, A запись 3cx.com.ua указывает на мой WEB сервер (на web сайт), который находится на внешнем хостинге и не предоставляет, разумеется, никаких SIP сервисов. Итак, вам не нужно создавать хост (поддомен) вида sip.имя_домена, если:

  • вы не имеете web сервера (web сайта)
  • web сервер доступен только по адресу www.имя_домена, а не имя_домена
  • вы размещаете сайт на том же сервере, или за тем же роутером, за которым расположен сервер 3CX
  • ваш DNS сервер или DNS вашего провайдера поддерживают SRV записи (обычно, это не актуально для динамических IP адресов и требует квалифицированного / платного обслуживания)

Создав хост sip.3cx.com.ua я должен побеспокоиться о том, чтобы автоматически обновлять его IP адрес в Zoneedit тогда, когда меняется мой динамический IP. Zoneedit, к счастью, поддерживает Dynamic DNS! Итак, скачаем и запустим программу zeDyn от Zoneedit для динамического обновления IP адреса нашего сервера (хоста). Запустить ее можно непосредственно на сервере 3CX, либо на любом компьютере, находящемся внутри вашей сети. Ее также можно запустить как сервис Windows – необходимые для этого файлы входят в архив программы.

В программе просто укажите логин и пароль доступа к Zoneedit и имя хоста, которое следует обновлять. Все!

image

Закончив с хостом sip.3cx.com.ua и Dynamic DNS для него, настроим 3CX для корректной обработки внешних вызовов на наш домен. Делается это в консоли 3CX в Settings > Advanced > Local SIP Domain – sip.3cx.com.ua.

image

Теперь нужно открыть необходимые порты на вашем файерволе (или “опубликовать” порты через NAT, как это еще называется) для того, чтобы входящие “прямые” SIP вызовы успешно принимались 3CX сервером. 3CX требует публикации порта 5060 (TCP + UDP) для SIP сигнализации и портов 9000 (UPD) и выше (см. русскую документацию, стр. 19). Процедура публикации портов на каждом роутере своя, но наглядный пример представлен здесь.

Открыв порты на файерволе, мы делаем два дела сразу. Во-первых, как было сказано выше, мы позволяем входящим “прямым” SIP вызовам от других пользователей успешно достигать нашего 3CX сервера, а во-вторых, мы можем подключиться программой 3CX Phone к 3CX серверу извне и зарегистрироваться на нем. Для этого 3CX Phone настраивается следующим образом.

image

Итак, теперь можно смело указать в визитке рядом с номером телефона свой SIP ID. У меня он igor@sip.3cx.com.ua. Любой пользователь любой SIP службы в мире может позвонить на него, при условии, что такие звонки разрешены администратором этой службы. Также, можно регистрировать адрес sip.3cx.com.ua у ваших VoIP провайдеров, если вы планируете принимать городские номера через SIP. И, наконец, вы запросто можете подключаться к вашей офисной системе из командировки, из дома, да откуда угодно!

D-link DSA - 3110 PBX Edition в качестве филиальной АТС для крупной 3CX инсталляции

В данной статье мы рассмотрим использование VoIP АТС D-link DSA - 3110 PBX Edition в связке с 3CX Phone System.

Внимание! Данный материал устарел и приведен исключительно с познавательной целью. Это не рекомендуемая конфигурация! C выходом 3CX Phone System 7 используйте в филиалах 3CX Mini Edition. Таким образом, вы получите унифицированную и корректно работающую телефонную систему.

D-link DSA - 3110 PBX Edition - это небольшая (размером с 8 портовый настольный свитч) станция, представляющая собой аппаратную платформу на базе процессора Intel Xscale 533MHz с прошитым во Flash ROM Asterisk сервером.

Аппаратные характеристики DSA - 3110:

  • Процессор: Intel Xscale 533MHz
  • 64MB RAM
  • 16 MB Flash ROM
  • 7 портов 10/100Base-TX Fast Ethernet
  • 4 независимо конфигурируемых интерфейса 10/100Base-TX
  • Внешний блок питания 5В 3A
  • Светодиодные индикаторы питания и состояния подключений к интерфейсам
  • Консольный порт RS-232

Программное обеспечение DSA - 3110:

  • Базовая операционная система: Linux
  • Встроенный сервер SIP
  • Поддержка кодеков ulaw, alaw, g729, gsm
  • Поддержка до 50 пользователей в локальной базе
  • Поддержка до 10 групп пользователей в локальной базе
  • Поддержка до 5 внешних подключений в локальной базе
  • Поддержка до 5 одновременных звонков
  • WEB-интерфейс управления
  • SSH-сервер
  • Интерфейс командной строки CLI
  • Telnet сервис (по умолчанию отключен)
  • Многочисленные возможности iptables, ip и других утилит, доступные для настройки через стандартную командную строку встроенного Linux.

Таким образом, мы имеем надежное и функциональное решение для организации VoIP сети в небольшой фирме или филиале крупной компании. Для организации полноценной связи также потребуются VoIP телефоны, например, D-link DPH-150S и, возможно, голосовые шлюзы для телефонных линий. 

Однако, больший интерес представляет подключение филиальных DSA - 3110 к 3CX серверу в головном офисе. Почему я обратил внимание на это решение? Ведь можно просто приобрести в каждый филиал версию 3CX Mini или SMB, и наслаждаться отличным функционалом и сервисами 3CX. Но тут возникает три вопроса, на которые стоит ответить.

1. Стоимость. Чтобы запустить 3CX SMB (8 одновременных вызовов) в филиале нам потребуется потратить:

300$ - стоимость отдельного системного блока

150$ - стоимость лицензии Windows XP Professoinal

725$ - стоимость 3CX SMB

110$ - минимальная стоимость телефона Grandstream, рекомендованного 3CX

Итого 1175$, не считая телефонов.

Чтобы запустить DSA - 3110 (на практике до 10 одновременных вызовов) в филиале нам потребуется потратить:

300$ - стоимость DSA - 3110

84$ - стоимость телефона D-link DPH-150S

Итого, экономия только на VoIP АТС, не считая телефонов, составляет 875$! А если у нас 10 филиалов?

2. Надежность. DSA - 3110 - это одноплатная, заключенная в металлический корпус конструкция, без движущихся частей и проводных соединений, размером с книгу. У нее есть консольный порт, WEB и SSH интерфейсы управления! Станцию можно разместить в каком угодно месте в офисе, совершенно не беспокоясь об ее обслуживании. Ей даже не нужно резервное питание, т.к. все важные данные хранятся в энергонезависимой памяти!

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

3. Функциональность. Тут, безусловно, DSA - 3110 проигрывает 3CX. Я не буду перечислять, в чем именно - все написано в документации. Но нужна ли небольшому филиалу функциональность системы корпоративного класса? Голосовая почта, сложные правила маршрутизации звонков, голосовое меню. Ведь все эти функции имеет 3CX в головном офисе, и, зачастую, это действительно нужно только для "ядра" компании. Таким образом, каждая фирма сама для себя решает, необходима ли ей полная функциональность 3CX в каждом филиале или нет.

А что, если взять лучшее из двух решений, пойдя на некоторые компромиссы? Поставить в центре 3CX и подключить к ней филиальные DSA - 3110 стандартными SIP транками. Таким образом, мы получим:

  • Независимую от качества Интернет канала на головной офис телефонную связь в филиале
  • Экономию Интернет трафика благодаря тому, что не нужно подключать филиальные VoIP телефоны напрямую к головной 3CX
  • Единый, общий номерной план во всех филиалах и головном офисе
  • Прямые звонки через Интернет между абонентами в филиалах и головном офисе без выхода в телефонную сеть
  • Контроль и учет вызовов в филиалах
  • Возможность совместного (филиалами и головным офисом) использования дорогих шлюзов Analog - VoIP, GSM - VoIP и E1 - VoIP.
  • Возможность совместного (филиалами и головным офисом) использования общего голосового меню компании
  • Возможность головному офису использовать внешние телефонные линии своего филиала в другом городе и наоборот
  • Значительно более низкую начальную стоимость и стоимость обслуживания, при несколько урезанной функциональности в филиалах

Звучит заманчиво? Тогда рассмотрим непосредственно процесс соединения станций.

Для упрощения положим, что между головным офисом и филиалами проложены VPN туннели (или своя сеть) и задача настройки файерволов не стоит. Также, в тестовой системе обе станции находятся в одной подсети (в то время как в филиалах могут быть разные подсети). 3CX сервер имеет адрес 192.168.0.10, а DSA - 3110 192.168.0.3.

Итак, cоздадим 3CX Bridge в интерфейсе 3CX. В разделе Bridges нажмем Add Bridge и укажем следующие параметры:

Virtial Extension Number - оставим тот, который предложила 3CX. У меня 10008

Name of bridge - я указал Branch Office 1

Type of 3CX Bridge - Slave (Direct-UDP), то есть 3CX - это узел-клиент с прямой связю по UDP

Remote end of Bridge/Tunnel (Public IP of Remote 3CX) 192.168.0.3 - IP адрес DSA - 3110 в первом филиале.

Остальные поля оставляем без изменений, нажимаем Next.

Создадим правило для этого филиального транка. Пусть, сотрудники головного офиса выходят на первый филиал через префикс 1. Добавляем 1 в Calls to numbers starting with (Prefix) и затем обрезаем его, чтобы в филиале зазвонил номер без префикса. Нажимает Finish.

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

Транк со стороны 3CX на первый филиал готов.

Теперь проделаем аналогичные действия со стороны DSA - 3110 в первом филиале.

Для создания транка, вначале следует завести в базе DSA - 3110 хотя бы одного пользователя. Процесс создания пользователя здесь не рассматривается - он описан в инструкции.

Для создания транка нажмите Add Trunk и укажите Inter PBX trunk. Нажмите Next.

В поле Connection name укажите номер Virtual Extension, который этому транку присвоила в свое время 3CX. У меня этот номер 10008. Next.

В поле Prefix укажите префикс, с которым будут набираться номера при звонках в головной офис. Я указал 0. Next.

В этом окне просто поставьте галочку Server. Next.

В этом окне введите Login и Password 10008, как имя транка. Нажмите Finish, Close и Apply changes.

Вы увидите, что SIP транк между DSA - 3110 и 3CX успешно установлен.

Также это видно в интерфейсе 3CX.

Аналогично устанавливается связь с другими филиалами.

Теперь пользователи филиалов могут подключить VoIP телефоны D-link DPH-150S к своим локальным DSA - 3110 и звонить друг другу и в головной офис.

В результате тестирования было замечено, что Caller ID (фамилия сотрудника) корректно передается от абонента DSA - 3110 к абоненту 3CX, то есть из филиала в головной офис. Из головного офиса абоненту DSA - 3110 передается только имя межфилиального транка. На рисунке изображен вызов из головного офиса абоненту, подключенному программным VoIP телефоном к DSA - 3110.

 

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

Просьба оставлять отзывы замечания об этой статье!

Microsoft Office Communication Server и 3CX Phone System - зачем платить больше?

Многие компании, выбирающие систему голосовых коммуникаций под Windows, обращают внимание на широко рекламируемый продукт Office Communication Server 2007 R2. Это естественно - за OCS R2 стоит вся маркетинговая мощь корпорации Microsoft, и, кроме этого, OCS 2007 R2 действительно замечательный программный комплекс. С одной оговоркой - для крупных компаний с развитой IT-инфраструктурой и штатом компетентных IT-специалистов. Также очень желательно, чтобы в этих компаниях были внедрены другие коммуникационные продукты Microsoft - Exchange Server и Sharepoint Server. Добавлю, что вся эта система должна поддерживаться СУБД Microsoft SQL Server. А на десктопах у пользователей должен стоять Microsoft Office, причем последней версии.

Как видите, начинает вырисовываться довольно противоречивая картина - фирма, возможно, хочет всего лишь VoIP АТС под знакомую систему Windows, а получает в довесок целое семейство дорогих и сложных продуктов Microsoft. Конечно, все вместе эти продукты, возможно, улучшат коммуникации в большой корпорации, наполненной квалифицированными пользователями, которые запросто смогут работать с web конференциями, порталами Sharepoint и тому подобным. А что делать небольшим фирмам, для которых даже обычный сервер - дорогое удовольствие, в которых работают обычные немолодые люди, а не сертифицированные специалисты по Office? Что делать компаниям, которые используют Windows в качестве операционной системы, но остальные продукты у них не от Microsoft? Скажем, вместо Exchange Server - простой и удобный Kerio Connect. Вместо Sharepoint – 1С:Предприятие, вместо Microsoft Office – бесплатный Lotus Symphony, а вместо коммерческой системы корпоративного “чата” – замечательный сервер Openfire? И последнее – поддержка имеющегося на рынке недорогого SIP оборудования. Oops! OCS использует свой закрытый нестандартный протокол коммуникаций…

Итак, IT-специалист, принимающий решение о внедрении VoIP системы / системы унифицированных коммуникаций должен задать себе несколько простых вопросов:

  • нужен ли нам весь функционал OCS 2007 R2 вообще ?
  • смогут ли наши сотрудники с имеющимся уровнем подготовки им действительно воспользоваться?
  • готовы ли мы внедрять все дополнительные серверы Microsoft, чтобы получить максимум от OCS?
  • есть ли у нас подготовленные IT-специалисты для такого внедрения?
  • есть ли у нас финансовые ресурсы для такого внедрения?
  • готов ли я лично отвечать, если что-то в такой сложной и глубоко взаимосвязанной системе “пойдет не так”?

Чтобы помочь не ошибиться с выбором, я подготовил таблицу сравнения сложности внедрения Microsoft OCS 2007 R2 и 3CX Phone System. Читайте, думайте, действуйте!

Office Communication Server 2007 R2

3CX Phone System for Windows

OCS использует закрытый коммуникационный протокол. Для того, чтобы работать с аналоговой телефонией или VoIP провайдером требуется установка Mediation Server, который будет транслировать закрытый протокол Microsoft в стандартные протоколы VoIP.

3CX использует открытый стандартный SIP протокол по RFC 3261. Не используются никакие закрытые нестандартные кодеки. Не используются никакие “расширения” к RFC 3261, которые делают другие SIP продукты несовместимыми с 3CX.

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

Полная свобода выбора недорогих стандартных SIP телефонов от Yealink, Grandstream, Linksys, D-link и других популярных в СНГ брендов. Наличие собственного бесплатного программного телефона.

Для использования функций телефонии требуется OCS Enterprise CAL на каждого пользователя и аппаратное устройство.

Никаких клиентских лицензий! Одноразовое приобретение северной лицензии на количество одновременных коммутаций.

OCS требует установку как минимум ТРЕХ отдельных серверов. Это означает – три лицензии Windows Server, три недешевых компьютера и три дополнительных точки обслуживания (и, не дай Бог, сбоя).

Один 3CX сервер выполняет все необходимые функции. Может работать на Intel Atom и Windows Home.

OCS требует лицензию на Microsoft SQL Server

3CX использует свободный Postgress SQL.

OCS не рекомендуется виртуализировать

3CX отлично виртуализируется на VMware или HyperV.

Ограниченный выбор SIP провайдеров (то есть возможностей подключения по SIP к общей телефонной системе). В СНГ таких провайдеров просто нет. Причина – нестандартный протокол и требование сертификации от Microsoft.

3CX может работать с практически любым SIP провайдером.

Поддерживаются только голосовые шлюзы Dialogic и подобные, малораспространенные в СНГ А-бренды, которые в несколько раз дороже популярных стандартных SIP шлюзов.

Поддерживается большинство недорогих, распространенных VoIP шлюзов от Grandstream, D-link, Patton. Поддерживаются VoIP карты Beronet и Sangoma.

OCS требует развертывания PKI (Public Key Infrastructure) в вашей сети.

PKI не требуется.

Требуется приобретение нескольких недешевых публичных сертификатов (Public Sertificate / Key), которые требуют периодического обновления

Публичных сертификатов не требуется.

Согласно рекомендациям самой Microsoft, для внедрения средней системы требуется как минимум 40 часов платных консультаций от сертифицированного специалиста Microsoft (MCP / MCSA) по системе OCS.

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

Дальнейшее конфигурирование и сопровождение довольно сложны и требуют специально подготовленных, опытных IT-специалистов.

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

Skype на флешке. Звоним на 3CX Skype Gateway из любого места!

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

  1. Установить 3CX Skype шлюз.
  2. Создать портативную версию Skype, носимую на флешке
  3. Использовать флешку и маленькую складную гарнитуру везде, где есть компьютер с Интернет

Такой подход имеет ряд преимуществ, даже по сравнению с "родным" 3CX Phone.

  • Не нужно использовать свой ноутбук
  • Не нужно устанавливать VPN туннель, либо открывать порты на корпоративном файерволе для входящего VoIP трафика
  • Меньше проблем с прохождением голосового трафика, особенно, если у вас мало опыта настройки файерфолов под RTP
  • Полная конфиденциальность разговора
  • Возможность звонить другим Skype абонентам
  • Возможность звонить любому абоненту в компании или вне компании через обычную телефонную сеть, используя новую функцию 3CX DISA

Чтобы создать портативную версию Skype сделайте следующее:

  1. Установите Skype на свой ПК и войдите в сеть со своими учетными данными
  2. Создайте на флешке папку, в которой будет размещена портативная Skype, например, SkypePortable, и скопируйте в нее файл skype.exe со своего компьютера.
  3. В папке SkypePortable создайте папку Data и скопируйте в нее ваш профиль Skype из папки C:\Documents and Settings\<your_username>\Application Data\Skype
  4. В папке SkypePortable создайте .bat файл, например skypestart.bat с такой сторокой skype.exe /datapath:"Data" /removable
  5. Запустите командный файл. После запуска Skype, добавьте в список контактов Skype имя вашего корпоративного 3CX Skype шлюза
  6. Звоните на шлюз, а затем - любому абоненту.

VoIP провайдеры и шлюзы: теоретические основы взаимодействия с 3CX

Данная статья рекомендуется всем специалистам, настраивающим 3CX Phone System для работы с различными VoIP провайдерами и голосовыми шлюзами. Она рассматривает важные аспекты, на которые следует обратить внимание в процессе настройки:

  • конфигурация NAT
  • работа STUN сервера
  • работа DNS сервера в VoIP сети
  • особенности конфигурации для различных топологий сети
  • различные типы VoIP провайдеров
  • идентификация источника (Source Identification) при работе с VoIP провайдером или шлюзом
  • заголовки Via и Record Route

Конфигурация NAT
Начиная настройку 3CX для работы с любым VoIP провайдером, прежде всего следует обратить внимание на корректную публикацию (или “проброс”) портов на вашем NAT роутере. В стандартной схеме подключения, которая присутствует в большинстве компаний, 3CX работает в сети за одним NAT роутером. NAT роутер должен уметь корректно “пробросить” нужные пакеты на 3CX сервер из сети Интернет. Пробрасывать нужно UDP пакеты протоколов SIP (сигнализацию вызова) и RTP (голосовой поток). Если 3CX настроена на стандартный SIP порт 5060, то NAT должен “пробрасывать” UDP порт 5060. Для голосовых данных, по умолчанию, следует пробросить порты 9000-9049. Эти порты устанавливаются в разделе Settings > Network в консоли 3CX.
image
C другой стороны, 3CX сервер также должен иметь возможность отсылать запросы в Интернет:

  • порт 5060 (источника и получателя) – SIP сигнализация
  • порты 9000-9049 (источника) – отправка RTP данных
  • порт 3478 (получателя) – отправка STUN запросов

Как правило, в начале настройки рекомендуется открыть все порты “на исход” с сервера 3CX во избежание лишних проблем.
Работа STUN сервера
Для нормального прохождения сигнальных и голосовых данных через NAT, 3CX сервер должен иметь информацию о своем внешнем IP адресе (на внешнем интерфейсе NAT роутера) и типе NAT роутера. Эта информация необходима 3CX для того, чтобы “понять”, как он выглядит со стороны сервера VoIP провайдера. Получение 3CX сервером такой информации обеспечивается благодаря внешнему STUN серверу. Записи об успешном STUN разрешении появляются в логе 3CX сразу после старта системы и выглядят следующим образом.

14:40:27.703 StunClient::process [CM506002]: Resolved SIP external IP:port (64.233.167.99:5060) on Transport 192.168.0.1:5060
14:40:27.265 StunClient::onInitTests [CM506001]: STUN request to resolve SIP external IP:port mapping is sent to STUN server 64.69.76.23:3478 over Transport 192.168.0.1:5060

Если ответ от STUN сервера не приходит, в логе появляется сообщение об ошибке.

11:14:38.687 StunClient::onTestTout [CM506004]: STUN request to STUN server 64.69.76.23 has timed out; used Transport: 10.172.0.132:5060

Внимание! В некоторых случаях следует отключать STUN сервер в 3CX. Например, в том случае, если 3CX имеет “белый” IP адрес и NAT не используется. Подробнее о том, когда следует отключать STUN можно прочитать здесь. Для отключения STUN сервера, удалите его из раздела Settings > Network > STUN в консоли 3CX.
image 
Из сообщений об успешном ответе STUN сервера, приведенных выше, можно увидеть, что строка Resolved SIP external IP:port содержит правильный внешний IP адрес 3CX сервера, который дополнительно может быть проверен на странице статуса NAT роутера (большинство NAT устройств имеют страницу статуса, на которой, в числе прочего, можно увидеть WAN IP адрес). Если в NAT роутере “проброс” портов настроен корректно, не происходит подмены порта источника (PAT -  Port Address Translation). То есть, когда 3CX связывается со STUN сервером, 3CX передает свой внешний SIP порт 5060, а не какой-либо другой порт, назначенный NAT устройством. Если “проброс” порта 5060 не сделан, существует вероятность того, что NAT устройство подменит порт источника 5060 на другой динамический порт. Таким образом, при прохождении SIP запроса через NAT будет изменен и IP адрес и порт источника. Эта ситуация может привести к различным проблемам со связью. Ниже показан пример такой нежелательной трансляции.

14:40:27.703 StunClient::process [CM506002]: Resolved SIP external IP:port (64.233.167.99:24842) on Transport 192.168.0.1:5060
14:40:27.265 StunClient::onInitTests [CM506001]: STUN request to resolve SIP external IP:port mapping is sent to STUN server 64.69.76.23:3478 over Transport 192.168.0.1:5060

Внимание! Работа с VoIP провайдером без “проброса” порта 5060 также возможна. Тем не менее, из-за не всегда высокого качества реализации NAT у того или иного производителя, возможны проблемы с прохождением VoIP трафика. Поэтому конфигурация без проброса порта не рекомендуется, хотя и допустима.
Полученный, благодаря STUN серверу, внешний IP адрес и порт используется системой 3CX для связи с VoIP провайдером. Если ваш внешний IP часто меняется (динамический IP адрес) – весьма вероятны перебои в голосовых коммуникациях. Поэтому использование динамического IP крайне нежелательно. Если этого нельзя избежать, уменьшите параметр Query STUN server every (sec) в опциях STUN сервера.
image
Изменение внешнего IP адреса можно увидеть на странице статуса вашего NAT устройства, либо в логе сервера 3CX.
Работа DNS сервера в VoIP сети
Для успешной связи с VoIP провайдером, 3CX сервер должен определить его IP адрес по FQDN имени, указанном в настройках этого провайдера в консоли 3CX (если IP адрес провайдера не указан явным образом).
image
Определение IP адреса VoIP провайдера происходит так: сначала 3CX делает запрос специальной SRV записи для SIP сервиса в домене провайдера и если ее не обнаруживает, то делает запрос А записи. Процесс разрешения (DNS resolution) A записи выполняется стандартным образом в пространстве имен DNS. SRV записи, с другой стороны, очень напоминают MX записи для почтовых серверов. Например, если VoIP провайдер назван в консоли 3CX как example.com, 3CX ищет SRV запись _sip._udp.example.com в домене example.com.
В ответ может быть получены как одна A запись SIP сервера, так и список А записей, упорядоченных по приоритету (точно так же, как в MX записи).

_sip._udp.example.com. 86400 IN SRV 10 60 5060 bigbox.example.com.
_sip._udp.example.com. 86400 IN SRV 10 20 5060 smallbox1.example.com.

_sip._udp.example.com. 86400 IN SRV 10 10 5060 smallbox2.example.com.

_sip._udp.example.com. 86400 IN SRV 10 10 5066 smallbox2.example.com.

_sip._udp.example.com. 86400 IN SRV 20 0 5060 backupbox.example.com.

Получив набор A записей SIP серверов, 3CX пытается подключиться к первому серверу (с наименьшим приоритетом), предварительно получив его IP адрес стандартным способом.
Совет. Чтобы вручную получить список SIP серверов для данного домена, используйте команду Nslookup с ключами.

Nslookup -q=srv _sip._udp.3cx.com
Server:  UnKnown
Address:  192.168.0.1
Non-authoritative answer:
_sip._udp.3cx.com       SRV service location:
          priority       = 0
          weight         = 1
          port           = 5060
          svr hostname   = sip.3cx.com
sip.3cx.com     internet address = 78.158.130.238

Особенности конфигурации для различных топологий сети
Какой сетевой интерфейс использует 3CX для отправки SIP запросов? 3CX использует таблицу маршрутизации Windows для отправки SIP запросов. Таким образом, если на сервере установлено несколько сетевых адаптеров, следует правильно настроить локальную таблицу маршрутизации. Получить ее можно с помощью команды route print.
Как 3CX определяет локальные и внешние подсети (устройства)? По умолчанию, 3CX считает все подсети (и устройства в них) локальными, если они соответствуют RFC 3330: 10.0.0.0/8,169.254.0.0/16,172.16.0.0/12,192.168.0.0/16
Если у вас имеются дополнительные подсети, которые должны восприниматься 3CX как локальные, укажите их в файле 3CXPhoneSystem.ini в разделе [Network], параметр localSubnets. Тут укажите список подсетей, разделенный запятой, в формате a.b.c.d/maskLen. Обратите внимание, что следует перечислить все локальные подсети, включая и сети по RFC 3330!
Пример файла 3CXPhoneSystem.ini по умолчанию:

[Network]
localSubnets=
; IP will be treated as local only if it is directly accessible (residing in the same network as PBX host).

Пример модифицированного файла 3CXPhoneSystem.ini:

[Network]
localSubnets=172.99.95.0/24,45.23.68.0/24
; IP will be treated as local if it is directly accessible (IP Address in same subnet as PBX)
; or has IP in range 172.99.95.0/24 or 45.23.68.0/24

Различные типы VoIP провайдеров
1. VoIP провайдеры с регистрацией по имени пользователя / паролю.
При подключении к таким VoIP провайдерам, 3CX пытается зарегистрировать VoIP линию на провайдере так же, как это делает обычный программный IP телефон. При этом отсылается запрос REGISTER. Регистрация VoIP АТС на VoIP провайдере необходима для того, чтобы провайдер получил данные о расположении (IP адресе) 3CX сервера. После успешной регистрации, провайдер знает куда направлять входящие вызовы, адресованные этой АТС. Запрос REGISTER, как правило, сопровождается отправкой данных аутентификации VoIP линии. Таким образом гарантируется, что VoIP провайдер будет обслуживать только авторизованных пользователей.
Перед регистрацией 3CX обращается к STUN серверу, и если ответ STUN не будет получен, попыток регистрации не делается. В случае, если ответ STUN получен, начинается процесс регистрации VoIP линии на VoIP провайдере:  
 

12:35:31.675 ClientRegs::Register [CM504003]: Sent registration request for 10000@sipgate

Если ответа на запрос REGISTER не поступает, возможны три ситуации:

  1. Сервер VoIP провайдера не получил запрос регистрации
  2. Сервер VoIP провайдера не отправил подтверждение регистрации
  3. Подтверждение регистрации по какой-то причине не дошло до 3CX

В таком случае рекомендуется проверить следующее:

  • Работает ли STUN разрешение? Проверьте взаимодействие 3CX со STUN в Server Activity Log.
  • Запрос REGISTER должен выглядеть следующим образом: адрес хоста (Host Part) в заголовке Contact (Contact Header) SIP URI должно содержать внешний (публичный) IP адрес и порт вашего NAT роутера.
  • “Проброс” портов на вашем NAT роутере должен быть выполнен корректно.

Обычно, на запрос REGISTER VoIP провайдер отвечает запросом авторизации (407 Proxy Authentication Required). В ответ 3CX отсылает новый запрос REGISTER, который включает Proxy-Authorization Header и Call Sequence Header. VoIP провайдер сравнивает хеш, полученный от 3CX со своим хешем, и, если они совпадают, авторизует 3CX VoIP линию. Подробнее о SIP авторизации можно узнать из соответствующей литературы.
В конечном счете, в логе 3CX должно появиться сообщение об успешной или неуспешной регистрации на VoIP провайдере.

13:40:08.953 ClientRegs::onFailure [CM504005]: Registration failed for: 10000@sipgate
13:41:53.328 ClientRegs::onSuccess [CM504004]: Registration succeeded for: 10000@sipgate

Если регистрации неуспешна, причина скорее всего кроется в несовпадении логина и пароля в консоли 3CX с этими данными у VoIP провайдера. Попробуйте напрямую подключиться к провайдеру обычным программный IP телефоном, например, 3CX Phone.
2. VoIP провайдеры без регистрации (или с регистрацией по IP адресу) – SIP (VoIP) транки
VoIP провайдеры без регистрации, которые также называются SIP (VoIP) транками, не трубуют регистрации со стороны VoIP АТС. Это связано с тем, что IP адрес 3CX сервера явно указывается в настройках VoIP провайдера. Обычно, пользователю предоставляется некий WEB интерфейс, в котором он прописывает IP адрес своего сервера (и другие настройки, если необходимо). Кроме отсутствия регистрации, SIP транк также не требует авторизации. Авторизация не нужна, т.к. VoIP провайдер автоматически доверяет всем вызовам, приходящим с IP адреса сервера (с заданного IP адреса источника - Source IP). При создании SIP транка в консоли 3CX не требуется задавать пароль (в версии 8 пароль и логин могут быть любыми). 3CX не предпринимает никаких попыток регистрации / авторизации VoIP линии – SIP транка. Успешное подключение к VoIP провайдеру “подразумевается” по умолчанию.

13:41:53.328 ClientRegs::onSuccess [CM504004]: Registration succeeded for: user@siptrunkprovider

Идентификация источника (Source Identification) при работе с VoIP провайдером
При регистрации на VoIP провайдере, по логину / паролю или IP адресу, провайдер присваивает вашей VoIP линии SIP номер. Этот номер и другую полезную информацию можно увидеть в вашем “личном кабинете” на сайте провайдера. Когда на ваш SIP номер откуда-то извне приходит вызов, провайдер точно знает, куда этот вызов направить. Провайдер направляет на IP адрес вашей АТС 3CX запрос INVITE (“приглашение к разговору”), который можно увидеть в логе 3CX.

INVITE sip:8632606@72.14.207.99:5060;rinstance=7303026702615448 SIP/2.0
Record-Route: <sip:217.10.79.23;lr=on;ftag=as21013b10>

Record-Route: <sip:172.20.40.4;lr=on>

Record-Route: <sip:217.10.79.23;lr=on;ftag=as21013b10>

Via: SIP/2.0/UDP 217.10.79.23:5060;branch=z9hG4bK11d4.8a4bf394.0

Via: SIP/2.0/UDP 172.20.40.4;branch=z9hG4bK11d4.8a4bf394.0

Via: SIP/2.0/UDP 217.10.79.23:5060;received=217.10.68.6;branch=z9hG4bK7d2a0377

Via: SIP/2.0/UDP 217.10.66.71:5060;branch=z9hG4bK7d2a0377;rport=5060

From: “0015552368″ <sip: 0015552368@sipgate.co.uk>;tag=as21013b10

To: <sip: 8632606@sipgate.co.uk>

Contact: <sip: 0015552368@217.10.66.71>

Call-ID: 38b34a2512c9c1903d5d5940348c18f4@sipgate.co.uk

CSeq: 102 INVITE

Max-Forwards: 67

Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY

Supported: replaces

Content-Type: application/sdp

Content-Length: 446

Рассмотрим процесс идентификации сервером 3CX запроса INVITE.
1. Идентификация источника по умолчанию
Когда АТС 3CX получает запрос INVITE, она пытается идентифицировать источник этого запроса. Идентификация источника необходима для того, чтобы выяснить, корректен ли запрос в целом и из разрешенного ли он домена. По умолчанию 3CX проверяет User Part в заголовке Request Line запроса INVITE на соответствие Authentication ID, указанному в настройках VoIP линии в 3CX. Только после прохождения этой начальной проверки 3CX продолжает обрабатывать запрос в соответствии с входящими правилами, указанными для этой линии. Для примера, рассмотрим процедуру идентификации источника так, как она происходит по умолчанию. Положим, VoIP линия настроена в 3CX следующим образом:
External Number : 415551234
Authentication ID : 8632606
Authentication Pass : $ecret_W0rd
Request Line в запросе INVITE от этого провайдера выглядит следующим образом:

INVITE sip:8632606@72.14.207.99:5060;rinstance=7303026702615448 SIP/2.0

В этом запросе User Part имеет значение 8632606. Это значение соответствует значению Authentication ID 8632606 в настройках VoIP линии в 3CX.
Итак, по умолчанию 3CX использует следующие правила идентификации источника:
1. Для PSTN провайдеров должны совпадать следующие поля:

  • LineID в заголовке Contact ИЛИ User Part в заголовке Request Line
  • Gateway host/port в заголовке Contact

2. Для VoIP провайдеров должны совпадать следующие поля:

  • AuthID в заголовке Contact ИЛИ User Part в заголовке Request Line
  • External number в заголовке To ИЛИ  User Part в заголовке Request Line

2. Идентификация источника, установленная пользователем
К сожалению, не все VoIP провайдеры отправляют запрос INVITE в строгом соответствии со стандартом SIP (в поле Request Line). Для таких провайдеров 3CX предусматривает ручную настройку правил (полей) идентификации источника в свойствах шлюза или VoIP провайдера в консоли 3CX.
image 
В левой части создаваемого правила выставляются SIP поля (заголовки), а в правой – значения, с которыми эти поля следует сравнивать. Если SIP поле соответствует полученному значению (из запроса INVITE провайдера), идентификация источника (т. е. провайдера) считается успешной и 3CX продолжает обработку вызова. Можно указать несколько правил соответствия и сравнивать их по принципу ИЛИ (Match any fields) или И (Match all fields). Если используется принцип И, то несовпадение хотя бы одного правила в списке приведет к отказу идентификации источника. Такие отказы можно увидеть и проанализировать в логе событий 3CX сервера.
Для успешного создания правил идентификации вручную следует проанализировать запрос INVITE от провайдера и выяснить, какие поля этого запроса постоянны, то есть не изменяются от вызова к вызову и однозначно могут идентифицировать провайдера или шлюз. Можно порекомендовать использовать следующие поля:

  • Authentication ID
  • External number (DID)
  • домен или IP адрес VoIP провайдера, если провайдер использует единственный IP адрес для своего SIP сервера

Например:

  • Request Line URI: User Part сравнивается с  LineNumber external number of line. Такое правило работает, если VoIP провайдер вставляет DID номер или внешний номер VoIP линии в поле (заголовок) Request Line вместо поля Authentication VoIP аккаунта, как того требует SIP стандарт.

   IDINVITE sip: 0015552368@ 72.14.207.99:5060;rinstance=800f2f60c40d1d10 SIP/2.0

  • TO: User Part сравнивается с LineNumber external number of line. Такое правило работает, если VoIP провайдер вставляет внешний номер VoIP линии (т.е. 0015552368) в User Part заголовка To в запросе INVITE.

To: <sip: 00495552368@myexampleprovider.de>

  • From: Host Part сравнивается с GWHostPort gateway/provider host/port. Такое правило сравнивает IP адрес и порт SIP сервера провайдера, указанные в 3CX, с Host Part заголовка SIP URI в запросе INVITE от VoIP провайдера.

Заголовки Via и Record Route
Заголовок Via в SIP запросе указывает количество хостов (хопов - hops) через которые этот запрос прошел. Последние хосты указываются в верху списка. Ответы на такие SIP запросы отсылаются назад по тому же маршруту, определенному списком хостов. То есть, коммуникации между двумя SIP устройствами всегда проходят по маршруту, указанному в списке “хопов", начиная с верхнего.
Заголовок Record Route выполняет ту же функцию, что и заголовок Via, но с некоторыми отличиями. Via, как было сказано, указывает по какому маршруту отсылать ответы на SIP запросы. Заголовок Record Route, наоборот, указывает, по какому маршруту направлять новые SIP запросы. То есть, хост A указывает хосту B маршрут, по которому хост В должен отправлять новые запросы для хоста А.
Заголовок Record Route может быть вставлен одним из транзитных SIP Proxy серверов для того, чтобы этот сервер всегда участвовал в обмене сообщениями между SIP абонентами. Так, заголовок Record Route используется в технологии 3CX SIP Bridge. 3CX SIP Bridge служит для объединения нескольких АТС 3CX в разных офисах с помощью своеобразного VPN туннеля. Благодаря заголовку Record Route, SIP клиент в одном офисе отправляет запросы другому клиенту не напрямую, а через 3CX SIP Bridge, т.е. через серверы 3CX в обоих офисах.

Windows Server 2008 Foundation - отличная платформа для телефонной системы

Компания Microsoft представила новинку в серии Windows Server 2008, ориентированную на малый бизнес – организации численностью до 15 человек. Продукт носит название Windows Server 2008 Foundation (WSF). Согласно предположениям Microsoft, "типовая" небольшая организация не имеет специального IT-персонала, но хочет иметь общее хранилище файлов, сетевой доступ к принтерам, работать с серверными программами (включая телефонную систему 3CX) и поддерживать собственный шлюз доступа к Интернет.

Microsoft преследовала цель – предложить небольшим предприятиям недорогое решение, способное избавить заказчика от лишних проблем. Интересная особенность нового продукта заключается в том, что он будет поставляться только вместе с оборудованием, причем комплект из программ и железа должен стоить в пределах 1000 долларов. В частности, компания HP уже заявила о намерении выпустить сервер с предустановленной системой WSF 2008 по цене менее 1000 долларов (замечу, что это брендовый сервер, на котором 3CX будет чувствовать себя просто отлично).

Вообще говоря, компания Microsoft уже давно предлагает специальные версии серверных платформ Windows для малого бизнеса. Так, платформа Windows 2008 SBS (Small Business Server) поддерживает до 75 пользователей, но она стоит 1089 долларов без учета стоимости оборудования и дополнительных клиентских лицензий сверх 5, что входят в комплект поставки. Как говорит Стив Балмер (Steve Ballmer), генеральный директор Microsoft, если компания может купить серверное оборудование на 500 долларов, то вряд ли она захочет тратить более 500 долларов на серверную операционную систему.

Из прочих особенностей платформы WSF стоит отметить полное отсутствие клиентских лицензий доступа (CAL – Client Access License), обязательных в других версиях Windows Server 2008 (они уже включены в стоимость!). В то же время, сервер оснащен специальными технологиями, которые просто ограничивают число пользователей – их должно быть не более 15. Несмотря на урезанные возможности, в том числе отсутствие сервера электронной почты, сервер WSF поддерживает не только такие базовые функции, как файловый и принт-сервер, но и службы терминалов, а также контроллер домена и сервер службы каталогов Active Directory. Кроме того, на сервере WSF 2008 можно запускать бизнес-приложения, сертифицированные для работы с Windows Server 2008, например, 1С:Предприятие. Также поддерживается запуск приложений Microsoft Office по сети и регулирование доступа пользователей к Интернет из локальной сети.

Главные аппаратные ограничения платформы Windows Server Foundation таковы: поддерживает только один физический процессор (многоядерные процессоры поддерживаются) и до 8 Гбайт оперативной памяти. Гипервизор Hyper-V не поддерживается. Отмечу, что WSF 2008 поставляется только в 64-битной версии – вообще все платформы серии Windows Server будут поставляться только в 64-битных вариантах, начиная с 2010 года.

Поставляться система WSF 2008 будет только в предустановленном виде вместе с сертифицированным оборудованием авторизованных партнеров Microsoft. Дополнительно о платформе Windows Server Foundation, ее особенностях и возможностях можно узнать на официальной странице.

Лично я рекомендую даже не думать о покупке отдельной АТС, а сразу скачать и установить на этот сервер нашу 3CX Phone System. Экономия средств и скорость ввода всей системы в строй - потрясающая! Возможности такой комбинированной универсальной платформы, как можно догадаться, неслабые. И все это по цене 1000$ + стоимость лиценизии 3CX, и все - лицензионное!

Автоматизация исходящих вызовов. Используем 3CX и Yealink

Иногда возникает большое желание набрать увиденный номер телефона одним кликом мышки. Этот номер может находиться на каком-то web сайте или в полученном электронном письме. Номер также может содержаться в карточке клиента в вашей CRM системе. Короче говоря, как сделать так, чтобы телефон сам позвонил на номер, по которому вы кликнули?

Такая технология является элементом CTI (компьютерно-телефонной интеграции), раньше стоила очень дорого и выполнялась специально обученными инженерами. А теперь, с появлением 3CX Phone System и телефонов Yealink, она становится простой и бесплатной!

Основная идея заключается в том, что телефон Yealink может инициировать вызов по специальной ссылке (HTTP запросу).

Внимание! Такая возможность в телефонах Yealink появилась с версии прошивки X.43.X.XX Обновите прошивку!

Формат этой ссылки следующий:

http://admin:admin@192.168.0.27/cgi-bin/ConfigManApp.com?Id=34&Command=1&Number=0679586868&Account=@192.168.0.2

В этом примере:

  • admin – имя пользователя в web интерфейса телефона (по умолчанию – admin)
  • admin – пароль пользователя в web интерфейса телефона (по умолчанию – admin)
  • 192.168.0.27 – IP адрес телефона Yealink, с которого будет инициирован вызов
  • Command=1 – тип команды (1 – позвонить, 3 – повесить трубку)
  • Number=0679586868 – номер который нужно набрать (этот параметр и передается телефону при клике!)
  • Account=@192.168.0.2 – адрес сервера 3CX Phone System

Теперь рассмотрим, как сформировать и передать эту ссылку из наших приложений.

Фирменный клиент 3CX Phone System – 3CX Assistant позволяет инициировать вызов по HTTP запросу.

Внимание! Для версии 3CX Assistant, актуальной на 3.04.2010 требуется установка патча. Скачайте патч, закройте приложение 3CX Assistant и в папку C:\Program Files\3CX Assistant\ скопируйте файл tcx.assistant.client.exe поверх имеющегося.

 image

После этого, запустите Assistant и введите строку инициализации вызова

http://admin:admin@192.168.0.27/cgi-bin/ConfigManApp.com?Id=34&Command=1&Number=%number%&Account=%account%

%number% – параметр, которому присваивается номер, который вы наберете в Assistant

%account% – параметр, которому автоматически присваивается значение IP адреса сервера 3CX.

image

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

Тут же замечу, что такой запрос может передаваться не только из 3CX Assistant, но и из любого вашего приложения. Например, 1С:Предприятие может иметь кнопку “Позвонить” в карточке клиента, при нажатии на которую передается HTTP запрос, приведенный выше. 

А теперь рассмотрим, как набирать номера с web страничек. Вам потребуются:

  1. Mozilla Firefox (в Internet Explorer я не нашел простого способа реализации задачи. Если у вас есть наработки в этой области – прошу поделиться!)
  2. Add-on к Firefox, называющийся Telify.

После установки дополнения, настройте его для передачи Custom URL.

image

  • $0 – параметр передает номер телефона в web страницы
  • $1-3 – могут передавать любые пользовательские значения

Несмотря на то, что IP адрес телефона Yealink и сервера 3CX можно было “закодировать” в строке, я решил передать их в качестве параметров $1 и $2.

Теперь я звоню по номерам не поднимая трубки!

image 

У данного решения есть и несколько недоработок, которые, видимо, связаны с его “молодостью”. Во-первых, отсутствует версия под Mozilla Thunderbird. Во-вторых, нет возможности сохранить несколько профилей с разными Custom URL и выбирать из из списка.

А в остальном – все в порядке!

Автоматический заказ звонка с вашего сайта или Web CallBack

Иногда возникает потребность автоматизировать обратный звонок клиенту с вашего сайта. Сценарий примерно таков: клиент заинтересовался вашей услугой и хочет пообщаться. Он вводит свой номер телефона в форму на сайте и нажимает OK. После этого вызов клиенту инициируется с доп. номера (Extension) сотрудника, ответственного за общение с клиентами. На столе сотрудника звонит телефон, сотрудник снимает трубку и слышит примерно следующее: "Ожидайте соединения с клиентом". У клиента тоже звонит телефон, клиент снимает трубку и связь устанавливается.

Схема довольно непростая в реализации на первый взгляд. Но с помощью 3CX HTTP API и нескольких строк PHP кода она реализуется элементарно!

Вначале определим переменные.

config.php

<?php
// Имя сервера 3CX. Используйте IP адрес или имя DNS имя.
$host = 'http://localhost';
// Номер порта IVR. Должен быть открыть на файерфоле, если сайт хостится снаружи.
$port = ':5484';
// Extension с которого будет выполнятся вызов
$ext = '1000';
// PIN этого Extension
$ext_pin = '1000';
// Префикс линии, если он используется для выхода "наружу"
$prefix = '9';
?>

Теперь реализуем вызов с помощью 3CX HTTP API. См. http://wiki.3cx.com/api/http-api

call.php

<?php
require ('config.php');
$number = $_POST["number"];
$url = "$host$port/PbxAPI.aspx?func=make_call&from=$ext&pin=$ext_pin&to=$number";

$handle = fopen("$url", "r");
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
?>

А это страничка, в которой клиент будет вводит свой номер. Конечно, она сильно упрощена, зато наглядна.

index.php

<html>
<body>

<form action="call.php" method="post">
Number: <input type="text" name="number" />
<input type="submit" />
</form>

</body>
</html>

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

Хороших вам продаж!

Автонастройка IP телефонов в 3CX - просто включай и работай!

Данный материал будет интересен всем системным администраторам, заинтересованным в максимально быстром и безошибочном подключении новых IP телефонов к системе 3CX Phone System. Речь пойдет о функции автоматической настройки IP телефонов в соответствии с конфигурацией, указанной в консоли управления 3CX. Рай для ленивого админа! Для конкретики рассмотрим автоматическую настройку наиболее популярных у нас моделей телефонов – Grandstream и Yealink.

Как работает технология Autoprovisioning? Конфигурируя параметры Extension в 3CX, вы указываете на закладке Autoprovisioning модель и MAC адрес IP телефона, который будет подключен к этому номеру. Затем 3CX формирует специальный конфигурационный файл для данного телефона и помещает его в папку c:\ProgramData\3CX\Data\Http\Interface\provisioning (в Windows 7). В имени файла присутствуют символы, соответствующие MAC адресу телефона. Файлы могут иметь разную маску имени (например, cfg000b821ea4a2 у Grandstream, 001565121045.cfg у Yealink) и разную внутреннюю структуру. Структура представляет набор полей конфигурации телефона и их значений. Например, полю SIP server телефона присваивается значение IP адреса сервера 3CX. Полям User Name и Password присваиваются значения, настроенные в 3CX для этого Extension. А в поле Display Name помещаются имя и фамилия пользователя. То есть, в файле задаются, причем правильно задаются, все важные параметры, необходимые для успешного подключения телефона к 3CX. Это весьма важный момент! Во-первых, сисадмину не нужно помнить все тонкости настройки телефона. Во-вторых, ему не нужно каждый новый аппарат настраивать вручную!

Естественно, для каждого конкретного аппарата 3CX формирует свой собственный конфигурационный файл. А телефон при старте (и, если настроить, через определенные промежутки времени) загружает этот файл и "самонастраивается". Тут нужно отметить, что конфигурационные файлы в 3CX формируются на основании шаблонов для конкретного производителя телефонов. 3CX позволяет редактировать эти шаблоны в разделе Settings > Provisioning Templates. Например, в шаблоне для телефонов Grandstream можно задать дополнительные поля пользователя, скажем, тип мелодии вызова. Я еще остановлюсь на этой важной возможности чуть ниже.

Наряду с загрузкой конфигурации происходит еще одно важное действие – загрузка (или синхронизация) серверной адресной книги 3CX. Серверная адресная книга представляет собой список имен, фамилий и номеров Extension всех заведенных в 3CX пользователей, а также телефонных номеров, добавленных вручную в разделе Settings > Company Phonebook.

Адресная книга – это также файл в папке c:\ProgramData\3CX\Data\Http\Interface\provisioning и также с собственной структурой для каждого производителя телефонов. Для Grandstream файл называется gs_phonebook.xml, а для Yealink - yealink_phonebook.xml.

Рассмотрим процесс автоматической настройки телефона со стороны 3CX.

  1. Заполните все поля для нового Extension как обычно.
  2. В разделе Provisioning укажите MAC адрес подключаемого телефона и его модель. Если данная модель поддерживает BLF (кнопочную панель с индикацией статуса пользователей), следует закрепить за кнопками телефона нужных пользователей. Эта настройка также будет загружена в телефон!
  3. Нажмите OK. Аналогично настройте Autoprovisioning для других Extensions.

Теперь перейдем к настройке телефонов. Все что нужно сделать – это указать телефону WEB адрес, по которому он будет "искать" свой файл конфигурации. Указать его можно двумя способами – вручную и с помощью DHCP сервера. Если использовать последний способ – вам вообще не нужно касаться настроек телефона – все произойдет автоматически!

Рассмотрим ручную настройку аппаратов Grandstream.

В интерфейсе телефона в разделе Advanced Settings установите значения полей

Firmware Upgrade and Provisioning > HTTP > Firmware Server Path в IP_сервера _3CX:5481/provisioning

Firmware Upgrade and Provisioning > HTTP > Config Server Path в IP_сервера _3CX:5481/provisioning

Если у вас в качестве WEB сервера для 3CX используется IIS, то значения должны иметь другой вид IP_сервера _3CX /management/provisioning

Опция Allow DHCP Option43 and Option 66 to override server должна иметь значение No

Config Server Path – отсюда телефон будет брать свой файл конфигурации.

Firmware Server Path – тут все интереснее. Если скачать свежую прошивку телефона с сайта Grandstream и распаковать ее в папку c:\ProgramData\3CX\Data\Http\Interface\provisioning, мы получим автоматическое обновление прошивки телефона по сети! Теперь вам не нужно перепрошивать каждый телефон в отдельности. Как только вы выложите новую прошивку в указанную папку, телефоны загрузят ее при первой перезагрузке. Вы всегда будете иметь весь парк телефонов с самой свежей прошивкой!

Кстати, как это автоматизировать, то есть заставить все телефоны искать прошивку по адресу IP_сервера _3CX:5481/provisioning? Помните про редактирование шаблона для телефонов Grandstream. Внесите в шаблон изменения, как показано на скриншоте. Значения полей, которые я менял, можно легко узнать, просмотрев исходный код WEB страницы интерфейса телефона.

Теперь в файле настройки телефона появится информация о значении поля Firmware Server Path. Телефоны будут знать, где им искать новую прошивку. Очень удобно!

Вернемся к настройке телефона. Когда вы нажмете OK в интерфейсе телефона он, возможно, перегрузится несколько раз. Сначала он загрузит свои настройки, перегрузится, затем загрузит новую прошивку и перегрузится снова. Напоследок он загрузит серверную адресную книгу. Телефон полностью готов к работе!

А теперь рассмотрим аналогичную настройку телефонов Yealink.

В интерфейсе телефона в разделе Обновление > Дополнительно укажите:

Способ запросаСсылка

URL - http://IP_сервера _3CX:5481/provisioning (для IIS IP_сервера _3CX /management/provisioning)

Внимание! Обязательно указывайте http:// в строке загрузки конфигурации!

Проверять обновленияПри включении + Повторно

Интервал (минуты) – я указал 1440, то есть, раз в сутки

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

Как было сказано, существует еще более автоматизированный и простой способ настройки телефона с помощью DHCP сервера. В этом случае ваш DHCP должен выдать телефону не только IP адрес, то и строку вида IP_сервера _3CX:5481/provisioning. И Grandstream и Yealink получают эту строку через Option 66 DHCP сервера.

Вначале настроим DHCP сервер, добавив в него Option 66. Вот пример настройки Option 66 для IIS сервера.

Не забудьте перезапустить DHCP сервер после изменения конфигурации!

Теперь, если вы достаете новый телефон Grandstream с установками по умолчанию (DHCP Option43 and Option 66 to override server = Yes), он вначале получит по DHCP строку для автонастройки (в данном случае 10.172.0.2/management/provisioning), а затем "самонастроится". Аналогичная ситуация с аппаратами Yealink.

Напоследок рассмотрим правильную установку часового пояса для телефонов. Для Украины он равен +2, а в "терминах" Grandstream значение P64 = 840. Однако мы не будем менять этот параметр в шаблоне телефона, а изменим его в Settings > Advanced > Custom Parameters, как рассматривается здесь.

Итак, включай и работай!

Анализ эффекта эха в VoIP сетях

Я прошу всех потенциальных покупателей систем IP телефонии 3CX, вернее, их технических специалистов, внимательно прочитать представленный материал.

Анализ эффекта эха в VoIP сетях дает определение эффекта эха и объясняет, где он появляется. Статья рассматривает основные аспекты анализа эффекта эха и объясняет влияние различных компонентов сети на эффект эха. Также, в статье рассматриваются методы измерения эха и работа эхокомпенсаторов - устройств, которые автоматически измеряют и удаляют эхо. Рассматриваются требования к уровню эха со стороны конечных пользователей и сервис-провайдеров, и настройка VoIP оборудования для минимизации эффекта эха. Подчеркивается, что даже в идеальной (дорогостоящей) VoIP сети могут проявится скрытые проблемы, которые имели место а аналоговой телефонной сети компании. Затем статья рассматривает методы поиска и устранения "громкого эха" и "долгого эха". И в заключении приводится пример реального устранения эха в международной VoIP сети. Читать на сайте Cisco. 

Антивирусная защита для 3CX Phone System

О том, что Microsoft выпускает бесплатный антивирус, стало известно достаточно давно. Однако, до сегодняшнего дня антивирус не был доступен пользователям из СНГ. Сегодня все изменилось.

Теперь MSE могут использовать все желающие (напомню – речь идет о пользователях, использующих легальное ПО Microsoft). Антивирус можно скачать здесь (альтернативная ссылка на ту же страницу). Microsoft Security Essentials совместим с операционными системами Windows XP SP2 и SP3, Windows Vista, Windows 7, в 32-битной и 64-битной версиях.

Стоит сказать, что небольшая отсрочка запуска антивируса на русском языке в каком-то смысле пошла ему на пользу, поскольку в ИТ-прессе и тематических форумах успело сформироваться вполне однозначное мнение о достоинствах антивируса. Если в двух словах, то он действительно надежный, удобный и нетребовательный к системным ресурсам. Как раз такой, какой нужен пользователю, который озабочен вопросом безопасности своего компьютера, но не готов посвятить несколько часов (дней?) своего времени изучению сравнительных характеристик популярного антивирусного ПО.

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

В декабре 2009 года бесплатный антивирус Microsoft Security Essentials наряду с коммерческим продуктом Microsoft Forefront Client Security принял участие в сравнительном тесте антивирусных программ на ОС Windows 7, проводимом авторитетным журналом Virus Bulletin. Оба антивируса обнаружили 100% вирусов из мировой вирусной коллекции, используемой при проведении теста.

Важное обновление безопасности 3CX V.9 SP2

В последнее время участились хакерские атаки на инсталляции 3CX Phone System. Они стали возможными потому, что, по умолчанию, 3CX генерирует очень простые пароли для внутренних Extension, PSTN шлюзов и FAX Extensions. Пароль соответствует номеру Extension. Если эти пароли, созданные по умолчанию, сразу не поменять, и, при этом, держать порт 5060 открытым, хакер запросто подключается через порт 5060 как внутренний абонент и звонит за ваш счет куда угодно! Даже если вы поменяли все пароли, остается FAX Extension, про который обычно забывают…

Как средство первой помощи, я рекомендую не открывать входящий порт 5060 на файерволе. Порт 5060 имеет смысл открывать только в трех случаях:

  • К системе подключаются внешние Extension по SIP, и нет возможности использовать 3CX Tunnel и обычный VPN
  • Вы используете DID без авторизации, либо ваш NAT роутер некорректно поддерживает соединение с VOIP провайдером
  • Вы используете входящие вызовы по Direct SIP

Тем не менее, ситуацию со слабыми паролями нельзя считать нормальной. В связи с этим 3CX выпустила обновление безопасности, которое решает эту и некоторые другие проблемы. Обновление называется 3CX Phone System Service Pack 2.

Устанавливается SP2 через консоль Winforms (не через web броузер), как и другие обновления ядра системы.

SNAGHTML198c9f31

Основные улучшения безопасности 3CX SP2:

  • Создаются безопасные пароли для Fax Extension по умолчанию (888) и других Fax Extensions
  • Все обычные Extensions, которые будут созданы с этого момента, будут иметь безопасные пароли и безопасные PIN коды для доступа к голосовой почте
  • Появляется функция “Regenerate passwords”, которая создает случайные, безопасные пароли для всех, уже существующих Extensions

   32dj42zm

На рисунке выше показана эта кнопка и три Extension с небезопасным паролем, PIN или SIP ID. Они отмечены красным. Выделите эти номера и нажмите кнопку. При этом происходит следующее:

  • Создается безопасный пароль
  • Создается безопасный Voicemail PIN
  • Обновляются файлы Autoprovisioning для телефонов
  • Если в настройках Extension пользователя указан электронный адрес, ему отправляется электронное письмо с уведомлением

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

Полезные ссылки.

Выбор интернет маршрутизатора (роутера) для 3CX Phone System

Правильный выбор и настройка маршрутизатора являются принципиальными для корректной работы VoIP АТС, какой является 3CX Phone System. Это связано с, прежде всего, некорректной работой NAT сервиса в некоторых моделях устройств. Основные симптомы некорректной работы роутера – одностороння слышимость, или отсутствие звука вообще. При этом телефон может звенеть. Также могут возникать различные ошибки при регистрации на SIP провайдерах.

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

Port Forwarding – маршрутизатор должен обеспечивать перенаправление (проброс) портов на внутренние адреса (с WAN в LAN) не меняя оригинальных номеров портов.

Outbound Traffic Control – сервер (IP адрес), на котором расположен сервер 3CX, должен иметь возможность отсылать трафик на любой внешний адрес.

Static Port Forwarding – маршрутизатор должен быть настроен на статическое перенаправление (проброс) портов, как указано в таблице:

Входящий WAN трафик Перенаправить на

Описание

TCP port 5000 PBX LAN IP port 5000 Remote HTTP
UDP, TCP port 5060 PBX LAN IP port 5060 SIP
TCP port 5061 PBX LAN IP port 5061 Secure SIP
UDP, TCP port 5090 PBX LAN IP port 5090 3CX Tunnel
UDP ports 9000-9049 PBX LAN IP ports 9000-9049 RTP Streams
UDP ports 10000-10009 PBX LAN IP ports 10000-10049 T38 Streams

Application Layer Gateway (ALG) – ALG, или SIP ALG, в настоящее время присутствует в большинстве моделей роутеров, либо появляется при обновлении прошивки роутера. К сожалению, функционал ALG у различных производителей реализован по разному, иногда не совсем корректно. В любом случае, SIP ALG модифицирует порты входящего и исходящего VoIP трафика, что влечет ошибки в работе SIP протокола (ошибки при установлении SIP сессии или обменом RTP трафиком). В связи с этим, мы настоятельно рекомендуем выбирать маршрутизатор без SIP ALG, или, как минимум, с опцией его отключения. К сожалению, даже в тех устройствах, в которых есть опция отключения SIP ALG, последний иногда все равно продолжает работать. Это приводит к дополнительным сложностям при настройке 3CX Phone System.

IP based restrictions – правильная и безопасная инсталляция VoIP системы подразумевает возможность блокирования внешнего входящего трафика от определенных IP адресов или подсетей. Это позволит отсечь опасный трафик (попытки удаленного подключения, взлома и т.п.) на уровне WAN интерфейса роутера. Например, вы можете разрешить SIP трафик на 3CX только от вашего провайдера SIP телефонии.

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

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

Sonicwall – http://www.3cx.com/blog/voip-howto/sonicwall-firewall-configuration/

Draytek – http://www.3cx.com/blog/voip-howto/draytek-firewall-voip/

Linksys – http://www.3cx.com/blog/voip-howto/linksys-router-configuration/

Делаем невозможное, или Как получить локальный номер по SIP в любом городе Украины

ykivk211Вы наверняка знаете, что получение городского номера по протоколу SIP для вашей офисной АТС 3CX Phone System сейчас совершенно не составляет проблемы. О преимуществах такого способа подключения я рассказывал здесь, а список компаний-операторов приведен здесь.

Однако, при всех своих преимуществах, прямой SIP номер имеет один неприятный недостаток – он не может быть получен в любом городе Украины. Только в достаточно крупных городах! Если Вы житель небольшого городка, эта удобная и современная технология Вам просто недоступна, и придется тянуть провода и покупать IP шлюзы.

Казалось бы, проблема нерешаема. Но мы попробуем что-нибудь придумать! В небольших городах телефонная сеть принадлежит, как правило, Укртелекому. Давайте использовать это важное преимущество!

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

Решение первое, которое предусматривает наличие Интернет подключения (проводного или 3G / Wi-Fi).

  1. Закажите городской телефонный номер обычным образом, но без физической установки
  2. Закажите SIP номер ОГО! Телефония и подключите его к 3CX, как описано здесь
  3. Включите переадресацию с городского номера на номер ОГО! Телефонии (стоимость вызовов на SIP номер (0892 ххххх) 0,054 грн. в мин.)
  4. Готово! Вы получили городской номер в вашем (или любом другом) городе по SIP! Не совершенно бесплатно, но за 5,4 коп. в минуту.

Решение второе, которое не предусматривает Интернет подключения. При большом количестве входящих и исходящих звонков оно может выть выгоднее решения №1!

  1. Закажите городской телефонный номер обычным образом, но без физической установки
  2. Закажите GSM номер Укртелеком Мобильный (Utel)
  3. Включите переадресацию с городского номера на мобильный по сниженным тарифам, активировав тарифный план Довгі розмови, или используйте стандартный тариф 25 коп. в мин.
  4. Установите и настройте ПО Oktell SIP GSM Gateway и соответствующее количество модемов
  5. Готово! Вы получили городской номер в вашем (или любом другом) городе по GSM за 60 грн. в месяц.

Комментарии, тесты – приветствуются!

Звоним на E-mail, или как работает Direct SIP

Определение

Технология Direct SIP – это телефонный вызов абонента по его SIP номеру, который может совпадать с адресом электронной почты. SIP телефоны делают вызовы такому абоненту, используя его электронный адрес. В инструкции к телефону эта функция также называется Direct SIP или Direct URL Dialing.
 
Как работает Direct SIP?
 
Вызовы Direct SIP осуществляются по тому же принципу, что и отправка электронной почты. Звонящий может использовать независимый SIP телефон, без подключения к SIP АТС или VoIP провайдеру. Также звонящий может использовать SIP телефон, подключенный к SIP АТС или VoIP провайдеру, которые поддерживают технологию Direct SIP.
Если пользователь вызывает другого пользователя с SIP адресом robert@voipproducts.org, используя независимый SIP телефон, SIP телефон делает DNS запросы для того чтобы узнать IP адрес SIP сервера для домена voipproducts.org. После успешного определения адреса SIP сервера, SIP телефон устанавливает SIP сессию с этим SIP сервером.
Если пользователь вызывает абонента с SIP адресом robert@voipproducts.org, используя SIP телефон, подключенный к SIP АТС или VoIP провайдеру, происходит следующее. Локальный SIP сервер получает запрос на установление вызова INVITE и определяет, что домен voipproducts.org им не обслуживается. Тогда он делает DNS запросы на установление IP адреса SIP сервера для домена voipproducts.org и устанавливает сессию с ним от своего имени.
 
DNS запросы в Direct SIP вызовах
 
Для приема Direct SIP вызовов, DNS сервер пользователя, принимающего вызов, должен иметь хотя бы одну запись типа SRV, которая указывает на SIP сервер домена, ответственный за обработку VoIP вызовов. Эта SRV запись содержит поля, описывающие тип сервиса, SIP порт, приоритет сервиса и его «вес» и другие стандартные поля.
 
Разбор DNS SRV записи для Direct SIP
 
sip._udp.voipproducts.org.
Из этой записи можно извлечь следующую информацию:
_sip – тип сервиса, указанного в записи
_udp – интернет протокол, используемый для транспорта сообщений протокола, указанного выше (т.е. SIP)
voipproducts.org – домен, который обслуживает данная запись
 
Пример ответа DNS сервера на запрос SIP SRV записи
 
_sip._udp.voipproducts.org. 86400 IN SRV 10 5 5060 sip.voipproducts.org.
Из этого ответа можно извлечь следующую информацию:
_sip._udp.voipproducts.org – запрашиваемая SRV запись
86400 – Time To Live (TTL) записи
IN – поле класса (DNS class field)
10 – приоритет записи. Сервер с меньшим приоритетом должен первым обслужить запрос
5 – вес. Относительная нагрузка, которая должна приходиться на серверы с равным приоритетом
5060 – порт, по которому будет инициирована SIP сессия. По умолчанию всегда 5060
sip.voipproducts.org – запись хоста (host (A) record), указывающая имя узла, обслуживающего VoIP вызовы в домене voipproducts.org.
 
Тестирование наличия и правильности SIP SRV записи
 
Для проверки наличия и корректности SIP SRV записи для данного домена, рекомендуется использовать стандартную Windows утилиту nslookup. После запуска nslookup введите следующие команды:
> set q=srv – указываем тип искомой записи
> _sip._udp.voipproducts.org – указываем, по какой записи проводить поиск
Ответ DNS сервера:
Server: server1.voipproducts.org
Address: 65.111.185.13
_sip._udp.3cx.com   SRV service location:
priority = 10
weight = 1
port = 5060
svr hostname = sip.voipproducts.org
Как видно из ответа, мы получили полную информацию о SIP сервере, отвечающем за VoIP в данном домене, включая IP адрес сервера, номер порта, приоритет, вес и т.п.
 
Обратите внимание!
 
1.       Большинство коммерческих SIP клиентов одновременно запрашивают и TCP (_sip._tcp)  и UDP (_sip._udp_) записи.
2.       Если в данном домене SRV запись не обнаружена, клиент будет запрашивать A запись (A record) для данного домена, и пытаться подключиться к полученному IP на порт 5060. Это удобно в том случае, если DNS сервер домена не поддерживает SRV записи.
3.       Если в SIP SRV записи не указан порт, будет использоваться стандартный порт для SIP протокола 5060.
 
Вызов с независимого SIP телефона
 
Рассмотрим пошагово, что происходит, когда пользователь вызывает другого пользователя  robert@voipproducts.org, используя SIP телефон, который не зарегистрирован на SIP АТС или VoIP провайдере.
1.       SIP клиент телефона делает DNS запрос на SRV запись для домена voipproducts.org. В данном случае запрашиваемая строка имеет вид _sip._udp.voipproducts.org.
2.       Получив ответ DNS сервера, SIP клиент знает имя хоста  (sip.voipproducts.org) и порт (5060) узла, предоставляющего SIP (VoIP) сервис.
3.       SIP клиент делает повторный DNS запрос для определения IP адреса хоста sip.voipproducts.org
4.       После определения IP адреса сервера и имея номер порта, SIP клиент телефона делает SIP вызов на этот сервер.
 
Вызов с телефона, подключенного к SIP АТС или VoIP провайдеру
 
Рассмотрим пошагово, что происходит, когда пользователь вызывает другого пользователя  robert@voipproducts.org, используя SIP телефон, зарегистрированный на SIP АТС или VoIP провайдере.
1.       SIP клиент посылает запрос INVITE к своей SIP АТС, желая связаться с robert@voipproducts.org.
2.        SIP АТС определяет, что voipproducts.org не является локальным доменом и делает DNS запрос записи _sip._udp.voipproducts.org к домену voipproducts.org.
3.       Получив ответ, SIP АТС узнает имя хоста (sip.voipproducts.org) и порт (5060) сервера, предоставляющего SIP (VoIP) сервис для домена voipproducts.org .
4.       SIP АТС делает повторный запрос для определения IP адреса хоста sip.voipproducts.org.
5.       После определения IP адреса сервера и имея номер порта, SIP АТС делает SIP вызов на этот сервер.
6.       Как только SIP вызов установлен, включая выбор общего RTP (голосового) кодека, RTP поток направляется напрямую от SIP телефона звонящего к SIP телефону получателя вызова (robert@voipproducts.org), который зарегистрирован на «чужой» SIP АТС sip.voipproducts.org.
 
Обработка Direct SIP вызовов на SIP АТС
 
В большинстве SIP АТС администратор должен составить список SIP доменов, которые АТС будет считать локальными. Таким образом, АТС знает, как обрабатывать вызов – направить ли его на другой зарегистрированный локальный номер, либо начать процедуру DNS поиска внешнего SIP домена.
Аналогично обрабатываются и входящие на SIP АТС внешние вызовы. Если домен, указанный в INVITE запросе, определяется АТС как локальный – он направляется локально зарегистрированному абоненту. Если домен определяется как «чужой» - запрос игнорируется. Игнорирование запроса необходимо для того, чтобы локальная АТС не маршрутизировала «чужие» вызовы – то есть, как мера безопасности.
 

 

Импорт пользователей 3CX (Extensions) из Windows Active Directory

SIP АТС 3CX Phone System позволяет системному администратору легко импортировать пользователей Windows Active Directory и превратить их в пользователей 3CX Phone System (Extensions). При этом импортируется имя и фамилия пользователя, номер мобильного телефона, электронный адрес и исходящий Caller ID. Возможность автоматического импорта пользователей из Windows Active Directiry экономит администратору массу времени и сил, уберегая его при этом от ошибок.

Чтобы “перетянуть” пользователей из Windows AD в 3CX выполните следующие действия.

1. Откройте 3CX Management Console и выберите Extensions

2. Кликните кнопку Download Active Users в строке меню.

3. В появившемся окне укажите параметры, необходимые для подключению к LDAP серверу

  • Domain Controller – IP адрес контроллера домена AD. В нашем примере 3CX установлена непосредственно на контроллере домена.
  • Domain – имя вашего домена AD, например stefan.local
  • Authentication type – тип аутентификации AD. Для Windows Server 2003 по умолчанию – Negotiate, для Windows Server 2008 по умолчанию – Basic.
  • Username, Password – учетные данные пользователя с правами запроса к LDAP (Query LDAP right)

4. Нажмите Search. Появится таблица – список всех пользователей, имеющихся в Active Directory.

How to Import an Active Directory User into 3CX Phone System

5. Выберите пользователей, которых вы хотите импортировать и нажмите Next. Появится таблица 3CX Extensions с импортированными из Active Directory данными First Name, Last Name, Email Address, Mobile Number и Outbound Caller ID (если указан в свойствах пользователя AD). Соответствие свойств пользователя Windows AD и Extension 3CX Phone System показано на рисунке.

Mapping Active Directory Users to 3CX Phone System

6. Нажмите Finish. Выбранные пользователи AD станут 3CX Extensions – внутренними номерами 3CX Phone System. При импорте каждому Extension будет присвоен сложный пароль SIP аутентификации и случайно сгенерированный PIN авторизации пользователя в голосовой почте и приложении Myphone (Voicemail / 3CX MyPhone Pin).

После первого импорта, 3CX сохраняет соответствие пользователей Windows AD и 3CX Extensions. Если свойства пользователей AD изменились, администратор должен просто повторить процедуру импорта. Новые пользователи AD станут новыми 3CX Extensions, а измененные свойства имевшихся пользователей AD также изменятся и у 3CX Extensions. 3CX Extensions у которых произошло обновление свойств отмечаются в таблице импорта красным цветом.

Использование платформы Intel Atom в качестве 3CX сервера

Многие пользователи обращаются к нам с вопросом о параметрах сервера для 3CX Phone System. Компания 3CX провела тестирование производительности 3CX Phone System на платформе Intel Atom N270. Эта, в общем, устаревшая платформа была выбрана с целью проверить нагрузку 3CX сервера на самые бюджетные и экономичные устройства. Цена выделенного сервера на Intel Atom может находится в пределах 200$!

В данный момент мы рекомендуем следующие материнские платы для выделенного сервера:

Intel D510

В качестве корпуса для выделенного сервера рекомендуем рассмотреть хорошо себя зарекомендовавшие mini-ITX корпуса компании CFI Group.

Корпус CFI Group

Вначале, на компьютер с платой D945GSEJT и 2 Gb памяти мы установили Windows 7 и проверили индекс производительности системы. Также, для улучшения производительности, был отключен UAC.

Загрузка процессора и потребляемая мощность

В режиме “холостого хода” с установленной 3CX и сервером IIS загрузка процессора была не более 3-6%. Все сервисы 3CX потребляли не более 34 Mb памяти. В случае использования 3CX с сервером Cassini, сервер Cassini занимал в памяти не более 10 Mb. В нормальном режиме процессор потреблял 34 Ватта; при полной загрузке – 55 Ватт;  в спящем режиме – 1 Ватт.

Производительность базы данных

В этом тесте проверялась производительность обновления базы данных системы 3CX, а именно: создание новых Extensions в Web интерфейсе, скорость отображения созданных Extensions в Web интерфейсе, удаление Extension из базы и удаление Extensions из Web интерфейса. Мы создали 1000 Extensions, а затем удалили их. Этот процесс порождает множество операций с базой данных и уведомление остальных сервисов 3CX об изменениях в базе. Создание и удаление 1000 Extensions заняло 80 секунд. 

Регистрация

Регистрация пользователей оказывает серьезную нагрузку на SIP север, хотя со стороны кажется, что это простой и быстрый процесс. Во время регистрации могут происходить множество различных процессов: аутентификация, перерегистрация, запросы keep alive, кэширование ресурсов, кэширование регистрационных данных, регистрация таймаутов и т.п. Тест показал, что Atom N270 способен поддерживать 1000 Extensions, с интервалом перерегистрации 3600 сек. Мы уменьшили время перерегистрации до 1200 сек. и заметили существенную нагрузку на процессор. Таким образом, рекомендуемое время перерегистрации для Extensions (Register timeout на телефоне) – 3600 сек.  

Производительность системы при вызовах

Этот тест проверял производительность Queue (Очереди вызовов), производительность звонков на VoIP провайдеров и производительность обычных звонков между Extensions. Скрипт создавал определенное количество вызовов и оставлял из активными на 120 секунд. Вызовы создавались и разъединялись случайным образом, с задержкой 10-40 секунд.

Производительность Очереди вызовов

Вызовы между Extensions

Обычные вызовы между Extensions, при которых аудио поток передается напрямую между IP телефонами показали превосходные результаты на платформе Intel Atom. 500 одновременных вызовов проходили с еле уловимыми задержками (jitter). 400 одновременных вызовов проходили без заметных задержек. Напомню, что речь идет о не самом последнем Atom. На Atom D510 этот показатель будет еще выше!

Внимание! Во время теста параметры Re-Invites и Replaces были включены (SDP информация передается напрямую между Extensions). Также, запись вызовов была отключена. При включенной записи максимальное количество одновременных вызовов составляло 30, что тоже очень неплохо!

Входящие и исходящие вызовы через VoIP провайдера

Внешние вызовы через VoIP провайдера не сильно загружают процессор. В тесте вызовы привязывались к 3CX Media Server (проксировались) для уменьшения проблем, связанных с прохождением NAT. При проксировании вызовов проблемы из-за NAT возникают по статистике только в 2% случаев. В связи с ограничением пропускной способности внешнего канала количество VoIP вызовов было ограничено 20. Мы добавили еще 20 одновременных вызовов между Extensions, чтобы получить всего 40 одновременных вызовов. Загрузка процессора при этой составила 19%. Экстраполируя, можно утверждать, что Atom N270 способен пропускать до 90 одновременных вызовов на VoIP провайдера без заметных искажений (задержек).

Выводы

Тесты показали, что платформу Intel Atom N270 можно смело рекомендовать совместно с версиями 3CX до 24 одновременных вызовов. Платформу Atom D510 можно рекомендовать для 3CX до 32 одновременных вызовов + Skype коннектор.

Как выбрать или запретить конкретную линию в FXO шлюзе Grandstream

К нам часто обращаются с вопросами:

  • Как отправить исходящие вызовы на определенный порт FXO шлюза?
  • Или наоборот: как запретить определенным внутренним номерам выбирать тот или иной порт шлюза, т.е. определенную линию.
  • Как установить линию только на входящие, или только на исходящие вызовы?

В общем, мы не рекомендуем закреплять группы пользователей за определенными линиями шлюза, поскольку это уменьшает пропускную способность телефонной системы. Допустим, у нас имеется 4 портовый FXO шлюз в организации, состоящей из 20 сотрудников. Можно разбить сотрудников на 4 группы по 5 человек и за каждой группой закрепить одну отдельную линию. Но, вероятность того, что 20 человек займут все 4 линии как правило ниже вероятности того, что кто-то из 5 человек займет одну линию и заблокирует звонки всем остальным.
Тем не менее, закрепление групп внутренних абонентов за определенными линиями необходимо, если:

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

Возможность выбора конкретной линии в шлюзе Grandstream обеспечивается простым правилом: перед номером, который нужно набрать, следует добавить трехзначный номер вида 99 + номер порта (1,2,3…8).
Итак, чтобы выбрать третий порт шлюза, перед номером следует добавить 993. Тут же замечу, что цифры 99 можно поменять на любые другие, удобные вам, в настройках шлюза во вкладке Channels.
image
Вначале подключим шлюз стандартным способом. При этом пропустим этап создания исходящего правила, т.к. оно создается одно для всех портов шлюза, а это нам не подходит.
image
А теперь создадим правила в зависимости от того, какой порт шлюза требуется адресовать. В правиле, приведенном ниже, мы определяем, что группа номеров 200-299 будет занимать только первый порт шлюза. Просто добавляем к набранному номеру префикс 991.
image
В следующем правиле мы зададим дополнительные маршруты для групп номеров 300-399. Это будут маршруты через FXO порты 3 и 4.
image
Все правила, связывающие конкретные группы номеров с конкретными портами, рекомендуется ставить первыми в списке правил 3CX.
image
А теперь рассмотрим, как явным образом запретить всем внутренним или внешним абонентам получать доступ к определенной линии. Это полезно, если следует выделить линию только для входящих, или исходящих вызовов. Включите или отключите галочки в соответствии с вашими задачами.
image

Как изменить длительность записи голосового сообщения Voice Mail

Некоторые заказчики задают вопрос – как уменьшить или увеличить длительность голосового сообщения, которое можно оставить пользователю?

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

Чтобы изменить длительность, проделайте следующие шаги.

1. В строке запуска Strat / Run введите %allusersprofile%\3CX\Data\Http\Interface\ivr для Windows 7 / 2008 или %allusersprofile%\Application Data\3CX\Data\Http\Interface\ivr для Windows XP / 2003 и найдите файл RecVmail.vxml

2. Я рекомендую установить текстовый редактор Notepad++ и в нем открыть указанный файл. В файле поищите раздел record name, а в нем параметр maxtime. Именно этот параметр отвечает за максимальную длительность голосового сообщения. Я установил его в 250 сек. или 4 минуты.

 

3. Сохраните файл RecVmail.vxml и запустите web сервер. Теперь пользователю можно оставлять голосовые сообщения длительностью до 4 минут.

Как подключить к 3CX аналоговый VoIP шлюз D-link или GSM шлюз Portech

1. Подключитесь к 3CX. Перейдите в раздел PSNT devices > Add Gateway Wizard и укажите следующие параметры:

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

Please Select a Gateway model - Generic Gateway Device

Нажмите Next.

2. На странице Specify VoIP Gateway Details укажите следующие параметры:

Gateway Hostname or IP - IP адрес шлюза, в моем случае 192.168.0.9

Number of ports - количество аналоговых портов у шлюза. Я указал 8, так как использую для примера шлюз D-link DVG - 6008S

Остальные параметры оставьте по умолчанию и нажмите Next.

3. 3CX создаст пул внешних линий (Virtual Extensions), на которые (и с которых) будут маршрутизироваться звонки на этот шлюз (то есть на оператора Ukrtelecom!). Нажмите Next.

4. После небольшой задержки появится страница создания правила (или принципа), по которому 3CX будет направлять звонки на Укртелеком. Подробно создание правил описано в инструкции к 3CX. В данном случае, я укажу, что все номера, имеющие от 6 до 11 цифр (актуально для только для Днепропетровска!) должны направляться на оператора Ukrtelecom. При этом пользователям не нужно набирать никаких префиксов - просто номер! Нажмите Finish.

5. Появится страница с рекомендациями по настройке различных шлюзов. Но нашего шлюза там, естественно, нет. Теперь следует "подкрутить" некоторые настройки в описании шлюза в 3CX. Кликните по PSTN devices > Ukrtelecom > Advanced. Здесь установите следующие параметры:

Supports Re-Invite - включено

Support 'Replaces' - включено

PBX Delivers Audio - выключено (!)

Нажмите OK.

6. Настройте собственно шлюз, как указано здесь.

7. Подключите шлюз к сети и подождите немного, пока он зарегистрируется на 3CX. Кликните по Ports/Trunks Status и убедитесь, что все аналоговые линии, относящиеся к этому шлюзу (то есть к оператору Ukrtelecom, в нашем случае) успешно зарегистрировались на шлюзе.

Шлюз готов к работе!

Как самостоятельно записать качественное голосовое меню

Недавно появился превосходный синтезатор речи Alyona производства Acapela Group. Воспользуемся им для записи всех наших голосовых сообщений.

1. Скачайте и установите Infovox Desktop engine и Pro voice for Infovox Desktop с названием Russian Alyona отсюда http://www.acapela-group.com/downloads.php

2. Скачайте и разархивируйте утилиту для записи звука DSpeech отсюда http://dimio.altervista.org/eng/

3. Запустите DSpeech и сделайте настройки Voice Select как показано на рисунке.

4. Вводите текстовые сообщения на русском языке (со знаками препинания и без ошибок!) и сохраняйте их как WAV файлы.

Оцените качество!

Качество и надежность внешних телефонных линий

 Одна из возможностей 3CX, от которой я «балдею» - VoIP транки (линии). Можно легко создавать VoIP линии для разных целей, например для международных звонков, или, наоборот, для привязки прямого зарубежного номера к 3CX АТС. Это необычайно привлекательная возможность для пользователя!

Однако, часто приходится слышать два опасения насчет VoIP линий

  • Плохое качество, в связи с тем, что голос передается по общей сети Интернет

  • Если Интернет «пропадет» – пропадает не только передача данных, но и голосовая связь

Однако, из моего опыта, обе эти проблемы решаемы и вот как.

Обеспечение качества VoIP линий

Очевидная вещь, которую стоит сделать сразу, – обеспечить достаточную, постоянную полосу пропускания для VoIP трафика. И второе. Выберите хорошего международного VoIP провайдера, например Betamax. Однако, такая схема подключения не позволяет контролировать качество VoIP трафика (то есть, фактически, голоса) от вас к VoIP провайдеру. Кроме того, международные VoIP провайдеры не решают проблему с городскими линиями.

Однако, в последнее время некоторые Интернет провайдеры становятся также и VoIP провайдерами. Они размещают VoIP PSTN шлюзы непосредственно у себя. Таким образом, провайдер контролирует как качество VoIP линии, так и качество сопряжения с телефонной сетью. У провайдеров обычно устанавливаются дорогие профессиональные VoIP PSTN шлюзы.

Я думаю, - в ближайшее время многие Интернет провайдеры начнут предлагать телефонные линии по VoIP. Такие линии стоят дешевле, чем аналоговые, не говоря уже о PRI потоке. Поэтому, если вы планируете заказ новых телефонных линий – обязательно уточните возможность заказа VoIP номеров у своего интернет провайдера!

Обеспечение отказоустойчивости VoIP линий

Часто заказчики подозрительно относятся к VoIP линиям, опасаясь их невысокой надежности – несмотря на значительно более низкую стоимость. Действительно, если пропадает Интернет, пропадают и VoIP линии. Поэтому, если вам требуется абсолютная надежность телефонных линий, резервируйте VoIP транки с помощью нескольких обычных телефонных линий и недорогих VoIP PSTN шлюзов. Подключение поддерживаемого PSTN шлюза к 3CX– дело нескольких минут. После этого вы получите резервный маршрут для исходящих вызовов.

Чтобы обеспечить резервирование в 3CX, укажите в правилах исходящих звонков этот шлюз  как вторичный маршрут для правила. Таким образом, в обычном режиме все звонки направляются по VoIP линии (первичный маршрут), а в случае отказа VoIP – на PSTN шлюз (вторичный маршрут). Теперь отказ VoIP линий будет практически незаметен для пользователя.

А как быть с входящими вызовами?

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

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

А как быть, если обрезали кабель, и вообще нет никакой связи?

Тут на помощь приходит VoIP GSM (или CDMA) шлюз. Он так же просто добавляется в 3CX и указывается третьим маршрутом – когда ни VoIP, ни PSTN не доступны!

Настройка CRM модуля интеграции Google Contacts

du2fi1b4Компания 3CX делает еще один шаг навстречу пожеланиям клиентов и выпускает CRM модуль интеграции IP АТС 3CX Phone System с сервисом Google Apps / Gmail!

Модуль интеграции с Gmail реализован как один из компонентов CRM модуля 3CX Phone System. При входящем звонке CRM модуль Google Contacts запрашивает информацию из Google и открывает окно с данными звонящего клиента. Затем можно открыть этот контакт в браузере или создать новый контакт, если номера позвонившего нет в адресной книге. Информация о входящих звонках сохраняется как заметки (Contact Notes) к данному контакту.

Загрузить модуль CRM интеграции можно отсюда. После загрузки запустите дистрибутив и укажите в мастере модуль Google Contacts.

Стоимость CRM модуля 3CX - 35 Евро за одно рабочее место. Вы можете совершенно свободно тестировать 3CX CRM модуль в течении 30 дней.

Рассмотрим процесс инсталляции модуля подробнее.

Инсталляция CRM модуля интеграции Google Contacts 

Модуль интеграции IP АТС 3CX Phone System с Google Contacts представляет собой коробочное решение для создания простейшей CRM системы на базе сервисов Google. Загрузить модуль CRM интеграции можно отсюда.

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

Исходящие вызовы из Google Contacts делаются с использованием стандартной функции Myphone – Hotkey (горячей клавиши). Просто выделите номер контакта мышью и нажмите сконфигурированную в MyPhone горячую клавишу. 3CX соединит вас с указанным номером.

Для успешной интеграции 3CX и Google Contacts вы должны иметь аккаунт Gmail, либо аккаунт Google Apps с активированным сервисом Contacts. Если вы пользуетесь сервисом Google Apps, войдите под аккаунтом администратора по адресу (например, http://www.google.com/a/example.com), перейдите в раздел Organization & Users > Services и активируйте сервис контактов.

Настройка CRM модуля интеграции Google Contacts

В мастере настройки CRM модуля выберите Google Contacts и включите Enable Google Contacts Plugin. Если вы хотите регистрировать вызовы для этого контакта, включите также Store Call Information in Google Contacts. Эта опция добавляет новую запись о совершенном вызове в заметки данного контакта.

Также укажите ваши учетные данные аккаунта Gmail и таймаут в течении которого модуль будет ожидать ответ сервера Google.

Setting up login information for Google Contacts integration with 3CX Phone System

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

Вы также можете указать в каком браузере открывать контакт. Изначально установлен браузер по умолчанию.

Если Google изменит ссылку по которой происходит открытие страницы контакта, 3CX подготовит новый конфигурационный файл. Этот файл можно будет получить, нажав кнопку Check for updated settings.   

How to configure Google Contacts plugin of 3CX CRM Integration module

После настройки модуля CRM интеграции начнется 30-дневный тестовый период. По завершении этого периода для продолжения пользования продуктом следует ввести регистрационный ключ, нажав кнопку Activate License.

Обработка входящих вызовов

При входящем вызове модуль интеграции пытается сопоставить Caller ID звонящего с контактом Gmail. Если совпадение найдено, то в зависимости от настроек модуля, информация о контакте сразу откроется в браузере, либо появится ссылка для открытия этой информации.

Если совпадение не найдено, появится ссылка с предложением создать новый контакт. Кликните по ссылке и заполните данные нового контакта в Gmail.

3CX Phone System Integration with Google Contacts

По завершении разговора, если опция Store Call Information in Google Contacts включена, в заметках контакта появится новая строка с информацией о вызове.

Обработка исходящих вызовов

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

Настройка подключения IP телефонов к 3CX Phone System по технологии OpenVPN (SSL VPN) на примере аппаратов Yealink

В версиях прошивки телефонов Yealink (только модели SIP-T26 и SIP-T28) X.60.14.5 и выше появилась замечательная возможность подключения к серверу 3СX по технологий OpenVPN (SSL VPN).

Как это работает? При включении телефон сперва устанавливает защищенный шифрованный VPN туннель с сервером 3CX, а затем весь голосовой трафик передает по этому туннелю. Технология напоминает фирменную технологию 3CX Tunnel, но стандартизована сообществом и пригодна для подключения аппаратных IP телефонов.

Подключение удаленных телефонов по OpenVPN решает те же задачи, что и 3CX Tunnel, а именно:

  • Упрощение настройки файервола (требуется пробросить единственный UDP порт 1194
  • Полная безопасность и конфиденциальность переговоров
  • Безопасность корпоративной сети от SIP атак, поскольку не требуется открывать SIP порт 5060, который так любят телефонные хакеры

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

  1. Настройка VPN сервера и создание файлов конфигурации клиента
  2. Тестирование конфигурации клиента на удаленном ПК – установка успешного VPN соединения
  3. Модификация файлов настройки клиента для телефонов Yealink, загрузка их в телефон и установка VPN подключения с телефона

Итак, приступим.

В данном описании предполагается, что OpenVPN сервер будет работать на том же компьютере, на котором установлена 3CX Phone System. IP адрес компьютера 192.168.0.2, операционная система Windows 7.

image

Часть I. Установка дистрибутива OpenVPN и создание сетевого моста

1. Загрузите OpenVPN сервер отсюда. Я использовал файл Windows Installer.

2. Установите приложение. Все опции установки оставьте по умолчанию. На этапе установки появится запрос установки TAP адаптера. Соглашайтесь.

image

3. Зайдите в Сетевые подключения и переименуйте созданное сетевое подключение в простое слово tap. Это переименование нам потребуется в дальнейшем. Именно к этому подключению привязан OpenVPN сервер.

image

4. Теперь следует создать Мост из двух имеющихся сетевых подключений.

image

Внимание! После создания Моста подключение по локальной сети к компьютеру будет потеряно!

image

5. Подключитесь к компьютеру удобным вам способом и заново настройте IP адрес созданного моста, поскольку изначально он будет настроен на получение адреса по DHCP. Я снова установил адрес 192.168.0.2.

image

6. Перегрузите компьютер для восстановление нормальной работы сервисов 3CX Phone System.

Часть II. Создания SSL сертификатов CA, сервера и клиента (или клиентов)

Поскольку OpenVPN использует SSL сертификаты для взаимной аутентификации узлов, следует создать ряд сертификатов

  • Сертификат Certificate Authority, т.е. корневой сертификат
  • Сертификат Server, т.е. сертификат сервера 3CX
  • Сертификат Client, т.е. сертификат клиента (IP телефона)

Внимание! Сертификаты создаются из командной строки Windows.

1. Создадим корневой сертификат Certificate Authority (CA). Перейдите  в папку C:\program files\OpenVPN\easy-rsa\ и в командной строке введите init-config.

image

2. Отредактируйте переменные в файле vars.bat, который тоже находится в папке C:\program files\OpenVPN\easy-rsa\. Для редактирования рекомендую использовать Notepad++.

image

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

3. Откройте файл openssl.cnf и закомментируйте в нем строки, связанные с пакетным режимом.

image

и сертификатами PKCS#11.

image

Это особенность последней версии OpenVPN (v. 2.2.0), которую я использовал.

4. В командной строке последовательно введите vars и clean-all (См. процедуру создания сертификатов в файле Readme.txt в папке C:\program files\OpenVPN\easy-rsa\.)

image

5. Введите build-ca. Эта команда создаст корневой сертификат CA в папке c:\Program Files\OpenVPN\easy-rsa\keys\, используя значения из файла vars.bat. На все вопросы отвечайте нажатием клавиши Enter. В качестве Common Name укажите имя сервера (хоста) OpenVPN или любое подходящее название. Я указал просто server.

image

6. Создайте параметры Diffie-Hellman. Введите build-dh.

image

7. Создав сертификат CA, можно создать сертификат хоста, на котором установлены OpenVPN и 3CX (сертификат сервера). Этот сертификат будет подписан корневым сертификатом CA. Введите build-key-server server. На вопросы о подписании сертификата и на загрузке его в базу сертификатов ответьте y. Common Name также укажите server, для простоты решения.

image

8. Теперь сгенерируйте сертификат клиента. Введите build-key client. Common Name также укажите client.

image

9. После этого в папке keys должны присутствовать все необходимые сертификаты.

image

Часть III. Установка параметров конфигурации OpenVPN сервера

1. В папке c:\Program Files\OpenVPN\sample-config\ откройте файл server.ovpn и укажите следующие параметры:


#################################################
# Sample OpenVPN 2.0 config file for            #
# multi-client server.                          #
#                                               #
# This file is for the server side              #
# of a many-clients <-> one-server              #
# OpenVPN configuration.                        #
#                                               #
# OpenVPN also supports                         #
# single-machine <-> single-machine             #
# configurations (See the Examples page         #
# on the web site for more info).               #
#                                               #
# This config should work on Windows            #
# or Linux/BSD systems.  Remember on            #
# Windows to quote pathnames and use            #
# double backslashes, e.g.:                     #
# "C:\\Program Files\\OpenVPN\\config\\foo.key" #
#                                               #
# Comments are preceded with '#' or ';'         #
#################################################

# Which local IP address should OpenVPN
# listen on? (optional)
;local a.b.c.d

# Which TCP/UDP port should OpenVPN listen on?
# If you want to run multiple OpenVPN instances
# on the same machine, use a different port
# number for each one.  You will need to
# open up this port on your firewall.
port 1194

# используем стандартный порт 

# TCP or UDP server?
;proto tcp
proto udp

# используем протокол UDP

# "dev tun" will create a routed IP tunnel,
# "dev tap" will create an ethernet tunnel.
# Use "dev tap0" if you are ethernet bridging
# and have precreated a tap0 virtual interface
# and bridged it with your ethernet interface.
# If you want to control access policies
# over the VPN, you must create firewall
# rules for the the TUN/TAP interface.
# On non-Windows systems, you can give
# an explicit unit number, such as tun0.
# On Windows, use "dev-node" for this.
# On most systems, the VPN will not function
# unless you partially or fully disable
# the firewall for the TUN/TAP interface.
dev tap
;dev tun

# используем туннель Ethernet, т.к. мы создавали сетевой мост

# Windows needs the TAP-Win32 adapter name
# from the Network Connections panel if you
# have more than one.  On XP SP2 or higher,
# you may need to selectively disable the
# Windows firewall for the TAP adapter.
# Non-Windows systems usually don't need this.
dev-node tap

# используем имя, назначенное виртуальному OpenVPN адаптеру в I части. 

# SSL/TLS root certificate (ca), certificate
# (cert), and private key (key).  Each client
# and the server must have their own cert and
# key file.  The server and all clients will
# use the same ca file.
#
# See the "easy-rsa" directory for a series
# of scripts for generating RSA certificates
# and private keys.  Remember to use
# a unique Common Name for the server
# and each of the client certificates.
#
# Any X509 key management system can be used.
# OpenVPN can also use a PKCS #12 formatted key file
# (see "pkcs12" directive in man page).
ca "c:\\Program Files\\OpenVPN\\easy-rsa\\keys\\ca.crt"
cert "c:\\Program Files\\OpenVPN\\easy-rsa\\keys\\server.crt"
key "c:\\Program Files\\OpenVPN\\easy-rsa\\keys\\server.key"  # This file should be kept secret

# используем пути к файлам сертификатов. Обратите внимание на двойные \\ и кавычки!

# Diffie hellman parameters.
# Generate your own with:
#   openssl dhparam -out dh1024.pem 1024
# Substitute 2048 for 1024 if you are using
# 2048 bit keys.
dh "c:\\Program Files\\OpenVPN\\easy-rsa\\keys\\dh1024.pem"

# используем путь к файлу параметров DH

# Configure server mode and supply a VPN subnet
# for OpenVPN to draw client addresses from.
# The server will take 10.8.0.1 for itself,
# the rest will be made available to clients.
# Each client will be able to reach the server
# on 10.8.0.1. Comment this line out if you are
# ethernet bridging. See the man page for more info.
;server 10.8.0.0 255.255.255.0

# мы используем Ethernet мост

# Maintain a record of client <-> virtual IP address
# associations in this file.  If OpenVPN goes down or
# is restarted, reconnecting clients can be assigned
# the same virtual IP address from the pool that was
# previously assigned.
ifconfig-pool-persist ipp.txt

# Configure server mode for ethernet bridging.
# You must first use your OS's bridging capability
# to bridge the TAP interface with the ethernet
# NIC interface.  Then you must manually set the
# IP/netmask on the bridge interface, here we
# assume 10.8.0.4/255.255.255.0.  Finally we
# must set aside an IP range in this subnet
# (start=10.8.0.50 end=10.8.0.100) to allocate
# to connecting clients.  Leave this line commented
# out unless you are ethernet bridging.
server-bridge 192.168.0.2 255.255.255.0 192.168.0.100 192.168.0.254

# адрес моего сервера OpenVPN 192.168.0.2, маска 255.255.255.0

# пул адресов, которые будут выдаваться VPN подключениям клиентов (телефонов) 192.168.0.100-192.168.0.254

# исключите эти адреса из пула адресов своего корпоративного DHCP сервера!

# Configure server mode for ethernet bridging
# using a DHCP-proxy, where clients talk
# to the OpenVPN server-side DHCP server
# to receive their IP address allocation
# and DNS server addresses.  You must first use
# your OS's bridging capability to bridge the TAP
# interface with the ethernet NIC interface.
# Note: this mode only works on clients (such as
# Windows), where the client-side TAP adapter is
# bound to a DHCP client.
;server-bridge

# Push routes to the client to allow it
# to reach other private subnets behind
# the server.  Remember that these
# private subnets will also need
# to know to route the OpenVPN client
# address pool (10.8.0.0/255.255.255.0)
# back to the OpenVPN server.
;push "route 192.168.10.0 255.255.255.0"
;push "route 192.168.20.0 255.255.255.0"

# To assign specific IP addresses to specific
# clients or if a connecting client has a private
# subnet behind it that should also have VPN access,
# use the subdirectory "ccd" for client-specific
# configuration files (see man page for more info).

# EXAMPLE: Suppose the client
# having the certificate common name "Thelonious"
# also has a small subnet behind his connecting
# machine, such as 192.168.40.128/255.255.255.248.
# First, uncomment out these lines:
;client-config-dir ccd
;route 192.168.40.128 255.255.255.248
# Then create a file ccd/Thelonious with this line:
#   iroute 192.168.40.128 255.255.255.248
# This will allow Thelonious' private subnet to
# access the VPN.  This example will only work
# if you are routing, not bridging, i.e. you are
# using "dev tun" and "server" directives.

# EXAMPLE: Suppose you want to give
# Thelonious a fixed VPN IP address of 10.9.0.1.
# First uncomment out these lines:
;client-config-dir ccd
;route 10.9.0.0 255.255.255.252
# Then add this line to ccd/Thelonious:
#   ifconfig-push 10.9.0.1 10.9.0.2

# Suppose that you want to enable different
# firewall access policies for different groups
# of clients.  There are two methods:
# (1) Run multiple OpenVPN daemons, one for each
#     group, and firewall the TUN/TAP interface
#     for each group/daemon appropriately.
# (2) (Advanced) Create a script to dynamically
#     modify the firewall in response to access
#     from different clients.  See man
#     page for more info on learn-address script.
;learn-address ./script

# If enabled, this directive will configure
# all clients to redirect their default
# network gateway through the VPN, causing
# all IP traffic such as web browsing and
# and DNS lookups to go through the VPN
# (The OpenVPN server machine may need to NAT
# or bridge the TUN/TAP interface to the internet
# in order for this to work properly).
;push "redirect-gateway def1 bypass-dhcp"

# Certain Windows-specific network settings
# can be pushed to clients, such as DNS
# or WINS server addresses.  CAVEAT:
# http://openvpn.net/faq.html#dhcpcaveats
# The addresses below refer to the public
# DNS servers provided by opendns.com.
push "dhcp-option DNS 192.168.0.1"
;push "dhcp-option DNS 208.67.220.220"

# здесь я назначаю клиентам по DHCP адрес своего DNS сервера

# можно назначить и другие опции DHCP

# Uncomment this directive to allow different
# clients to be able to "see" each other.
# By default, clients will only see the server.
# To force clients to only see the server, you
# will also need to appropriately firewall the
# server's TUN/TAP interface.
client-to-client

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

# Uncomment this directive if multiple clients
# might connect with the same certificate/key
# files or common names.  This is recommended
# only for testing purposes.  For production use,
# each client should have its own certificate/key
# pair.
#
# IF YOU HAVE NOT GENERATED INDIVIDUAL
# CERTIFICATE/KEY PAIRS FOR EACH CLIENT,
# EACH HAVING ITS OWN UNIQUE "COMMON NAME",
# UNCOMMENT THIS LINE OUT.
duplicate-cn

# я разрешаю телефонам использовать единственный общий сертификат, который был сгенерирован в Части II

# это менее безопасно, но значительно упрощает весь процесс 

# The keepalive directive causes ping-like
# messages to be sent back and forth over
# the link so that each side knows when
# the other side has gone down.
# Ping every 10 seconds, assume that remote
# peer is down if no ping received during
# a 120 second time period.
keepalive 10 120

# For extra security beyond that provided
# by SSL/TLS, create an "HMAC firewall"
# to help block DoS attacks and UDP port flooding.
#
# Generate with:
#   openvpn --genkey --secret ta.key
#
# The server and each client must have
# a copy of this key.
# The second parameter should be '0'
# on the server and '1' on the clients.
;tls-auth ta.key 0 # This file is secret

# Select a cryptographic cipher.
# This config item must be copied to
# the client config file as well.
;cipher BF-CBC        # Blowfish (default)
;cipher AES-128-CBC   # AES
;cipher DES-EDE3-CBC  # Triple-DES

# Enable compression on the VPN link.
# If you enable it here, you must also
# enable it in the client config file.
comp-lzo

# The maximum number of concurrently connected
# clients we want to allow.
;max-clients 100

# It's a good idea to reduce the OpenVPN
# daemon's privileges after initialization.
#
# You can uncomment this out on
# non-Windows systems.
;user nobody
;group nobody

# The persist options will try to avoid
# accessing certain resources on restart
# that may no longer be accessible because
# of the privilege downgrade.
persist-key
persist-tun

# Output a short status file showing
# current connections, truncated
# and rewritten every minute.
status openvpn-status.log

# By default, log messages will go to the syslog (or
# on Windows, if running as a service, they will go to
# the "\Program Files\OpenVPN\log" directory).
# Use log or log-append to override this default.
# "log" will truncate the log file on OpenVPN startup,
# while "log-append" will append to it.  Use one
# or the other (but not both).
;log         openvpn.log
;log-append  openvpn.log

# Set the appropriate level of log
# file verbosity.
#
# 0 is silent, except for fatal errors
# 4 is reasonable for general usage
# 5 and 6 can help to debug connection problems
# 9 is extremely verbose
verb 3

# Silence repeating messages.  At most 20
# sequential messages of the same message
# category will be output to the log.
;mute 20


2. Сохраните отредактированный файл в папке c:\Program Files\OpenVPN\config\

3. Установите автоматический запуск для сервиса OpenVPN и запустите его.

image

4. Убедитесь, что сервис стартовал успешно. Проверьте файл server.log в папке c:\Program Files\OpenVPN\log\.

image

Часть IV. Установка параметров конфигурации OpenVPN клиента

1. В папке c:\Program Files\OpenVPN\sample-config\ откройте файл client.ovpn и укажите следующие параметры:


##############################################
# Sample client-side OpenVPN 2.0 config file #
# for connecting to multi-client server.     #
#                                            #
# This configuration can be used by multiple #
# clients, however each client should have   #
# its own cert and key files.                #
#                                            #
# On Windows, you might want to rename this  #
# file so it has a .ovpn extension           #
##############################################

# Specify that we are a client and that we
# will be pulling certain config file directives
# from the server.
client

# Use the same setting as you are using on
# the server.
# On most systems, the VPN will not function
# unless you partially or fully disable
# the firewall for the TUN/TAP interface.
dev tap
;dev tun

# Windows needs the TAP-Win32 adapter name
# from the Network Connections panel
# if you have more than one.  On XP SP2,
# you may need to disable the firewall
# for the TAP adapter.
;dev-node MyTap

# Are we connecting to a TCP or
# UDP server?  Use the same setting as
# on the server.
;proto tcp
proto udp

# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote 3cx.dlinkddns.com 1194
;remote my-server-2 1194

# укажите внешний IP адрес или DNS имя вашего сервера OpenVPN. Я указал DDNS имя нашего офисного сервера.

float

# укажите параметр float, если ваш роутер меняет порт исходящих пакетов.

# в моем роутере Zyxel наблюдалась данная особенность, что влекло к проблемам взаимной аутентификации. См. документацию к OpenVPN.

# Choose a random host from the remote
# list for load-balancing.  Otherwise
# try hosts in the order specified.
;remote-random

# Keep trying indefinitely to resolve the
# host name of the OpenVPN server.  Very useful
# on machines which are not permanently connected
# to the internet such as laptops.
resolv-retry infinite

# Most clients don't need to bind to
# a specific local port number.
nobind

# Downgrade privileges after initialization (non-Windows only)
;user nobody
;group nobody

# Try to preserve some state across restarts.
persist-key
persist-tun

# If you are connecting through an
# HTTP proxy to reach the actual OpenVPN
# server, put the proxy server/IP and
# port number here.  See the man page
# if your proxy server requires
# authentication.
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]

# Wireless networks often produce a lot
# of duplicate packets.  Set this flag
# to silence duplicate packet warnings.
;mute-replay-warnings

# SSL/TLS parms.
# See the server config file for more
# description.  It's best to use
# a separate .crt/.key file pair
# for each client.  A single ca
# file can be used for all clients.

ca "c:\\Program Files\\OpenVPN\\easy-rsa\\keys\\ca.crt"
cert "c:\\Program Files\\OpenVPN\\easy-rsa\\keys\\client.crt"
key "c:\\Program Files\\OpenVPN\\easy-rsa\\keys\\client.key"

# используем пути к файлам сертификатов. Обратите внимание на двойные \\ и кавычки!

# в данном случае я установлю клиентскую часть OpenVPN на другой компьютер для тестирования связи

# при использовании не компьютера, а IP телефона, эти пути будут отличаться!

# пути для каждой марки телефона отличаются, см. пояснения далее. 

# Verify server certificate by checking
# that the certicate has the nsCertType
# field set to "server".  This is an
# important precaution to protect against
# a potential attack discussed here:
http://openvpn.net/howto.html#mitm
#
# To use this feature, you will need to generate
# your server certificates with the nsCertType
# field set to "server".  The build-key-server
# script in the easy-rsa folder will do this.
ns-cert-type server

# If a tls-auth key is used on the server
# then every client must also have the key.
;tls-auth ta.key 1

# Select a cryptographic cipher.
# If the cipher option is used on the server
# then you must also specify it here.
;cipher x

# Enable compression on the VPN link.
# Don't enable this unless it is also
# enabled in the server config file.
comp-lzo

# Set log file verbosity.
verb 3

# Silence repeating messages
;mute 20


2. Сохраните файл в папке c:\Program Files\OpenVPN\config\. Папка должна иметь примерно такой вид.

image

Часть V. Тестирование VPN подключения

1. Установите на другой компьютер (VPN клиент) пакет OpenVPN отсюда.

2. На Интернет-роутере опубликуйте порт UDP 1194. Я опубликовал этот порт для внутреннего IP адреса 192.168.0.2, на котором у меня установлены серверы 3CX и OpenVPN. Пример для Zyxel.

image

3. С серверного компьютера скопируйте в идентичные папки клиентского компьютера следующие файлы:

c:\Program Files\OpenVPN\easy-rsa\keys\client.crt

c:\Program Files\OpenVPN\easy-rsa\keys\client.key

c:\Program Files\OpenVPN\easy-rsa\keys\ca.crt

c:\Program Files\OpenVPN\config\client.ovpn

4. Запустите соединение, нажав на иконку OpenVPN GUI.

image

5. Если все вышеуказанные пункты выполнены надлежащим образом, VPN соединение должно установиться, и ему должен быть присвоен IP адрес из пула, указанного в конфигурации сервера в Части III.

image

Часть VI. Модификация конфигурации клиента для использования в IP телефоне и подготовка TAR архива (tarball) для телефона

После того, как мы успешно протестировали VPN соединение на двух компьютерах, можно перенести эту конфигурацию (речь идет только о конфигурации клиента) в IP телефон с поддержкой OpenVPN. Для этого нужно:

  • узнать из документации к телефону пути (в телефоне!), по которым должны быть найдены файлы конфигурации
  • модифицировать файл конфигурации клиента
  • заархивировать файл конфигурации клиента и сертификаты клиента в архив нужного формата
  • загрузить архив в телефон
  • протестировать подключение телефона по OpenVPN к серверу 3CX

Итак, приступим.

1. Для телефонов Yealink загрузить пример конфигурации OpenVPN клиента можно отсюда.

2. Открыв файл, я увидел следующие особенности конфигурации OpenVPN для Yealink

  • архив конфигурации имеет имя client.tar
  • файл конфигурации OpenVPN клиента называется vpn.cnf (а для компьютера этот файл называется client.ovpn)
  • сертификаты лежат в папке keys
  • открыв файл vpn.cnf, я увидел, что пути по которым телефон ищет файлы конфигурации, следующие

ca /yealink/config/openvpn/keys/ca.crt
cert /yealink/config/openvpn/keys/client1.crt
key /yealink/config/openvpn/keys/client1.key

image

3. Вооружившись этой информацией, можно подготовить файл конфигурации телефона. Для этого откройте файл client.ovpn, который был подготовлен в Части IV и измените строки

ca "c:\\Program Files\\OpenVPN\\easy-rsa\\keys\\ca.crt"
cert "c:\\Program Files\\OpenVPN\\easy-rsa\\keys\\client.crt"
key "c:\\Program Files\\OpenVPN\\easy-rsa\\keys\\client.key"

на строки

ca /yealink/config/openvpn/keys/ca.crt
cert /yealink/config/openvpn/keys/client.crt
key /yealink/config/openvpn/keys/client.key

4. Сохраните файл под именем vpn.cnf

5. Скопируйте с клиентского компьютера папку c:\Program Files\OpenVPN\easy-rsa\keys\.

6. Папку keys и файл vpn.cnf добавьте в архив client.tar. Для этого я использовал архиватор 7-Zip.

image

Часть VII. Загрузка TAR архива (tarball) в IP телефон и включение VPN туннеля

1. Загрузите в телефон последнюю версию прошивки. Для телефонов Yealink прошивки следует загружать отсюда.

2. Убедитесь, что ваша модель телефона поддерживает OpenVPN. У Yealink это модели SIP-T28P и SIP-T26P. Версия прошивки – не ниже 2.60.14.5.

3. Зайдите в web интерфейс телефона в раздел Сеть > Дополнительно.

4. В разделе VPN нажмите укажите расположение файла client.tar, созданного в Части VI, и нажмите Импорт.

image

5. После импортирования конфигурации, установите VPN Использование – Включено и нажмите Подтвердить.

Внимание! Включить VPN туннель можно и через экранное меню телефона! При этом предварительно следует загрузить файл конфигурации client.tar.

6. Если все прошло успешно, на экране телефона загорится индикатор VPN.

image

7. Если вы хотите использовать автонастройку телефона (Autoprovisioning), сперва укажите MAC адрес телефона в настройках Extension 3CX.

image

8. Затем в интерфейсе телефона, в разделе Обновление > Дополнительно, укажите строку автонастройки http://192.168.0.2:5000/provisioning (для 3CX Phone System v.10), установите Автонастройка – Включено и нажмите Подтвердить.

image

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

image

10. В консоли 3CX телефон должен отображаться как зарегистрированный.

image

Часть VIII. Заключение. Обнаруженные проблемы.

Если посмотреть на последний рисунок (Часть VII, пункт 10), можно заметить странную вещь – телефон зарегистрировался не с адресом, который ему должен был выдать OpenVPN сервер (например, 192.168.0.100), но с адресом той сети, в которой телефон находится с данный момент (в моем случае - 192.168.100.100). Это значит, что телефон зарегистрировал на сервере 3CX свой WAN интерфейс, но не виртуальный VPN интерфейс, как следовало бы ожидать. Практически это означает, что телефон зарегистрировался неправильно и вызовы принимать не сможет!

После обращения в поддержку Yealink, я выяснил, что это все-таки проблема в прошивке телефона, которая должна быть устранена. Поэтому, к сожалению, данная обширная статья еще не окончена и продолжение следует.

В заключение скажу, что аппараты Yealink – не единственные, которые поддерживают подключение по OpenVPN. Его также поддерживают телефоны SNOM и некоторые другие.

Настройка файрволов для работы с 3CX

1. Если в вашей сети все порты "на исход" по умолчанию закрыты, откройте "на исход" для всей сети следующие порты:

  • 9000-9015 (RTP, UDP) Внимание! Уточните примерное количество одновременных вызовов через VoIP провайдера. На каждый вызов открывается по два дополнительных RTP порта. То есть, по умолчанию, можно делать до 8 одновременных вызовов (9000 - 9001, 9002-9003 и т.п.). Если требуется делать больше одновременных вызовов, что достаточно редко, расширьте диапазон открытых портов на файрволе  и в настройках 3CX сервера. Например, для 10 одновременных вызовов от должен быть 9000-9019.
  • 5060 (SIP, UDP) SIP протокол
  • 3478 (STUN, UDP) STUN протокол, для корректной работы через NAT

2. Откройте "на вход" (публикация портов) для сервера 3CX следующие порты:

  • 9000-9015 (RTP, UDP) Внимание! Уточните примерное количество одновременных вызовов через VoIP провайдера. На каждый вызов открывается по два дополнительных RTP порта. То есть, по умолчанию, можно делать до 8 одновременных вызовов (9000 - 9001, 9002-9003 и т.п.). Если требуется делать больше одновременных вызовов, что достаточно редко, расширьте диапазон открытых портов на файрволе  и в настройках 3CX сервера. Например, для 10 одновременных вызовов от должен быть 9000-9019.
  • 5060 (SIP, UDP) SIP протокол
  • 5090 (UDP) - если необходимо использовать 3CX Brige (интерконнект между станциями) или 3CX Tunnel (внешние подключения Extensions).

3. Если вы используете только 3CX Brige, 3CX Phone и 3CX Proxy Manager (все они поддерживают туннелирование), достаточно открыть на вход только один порт

  • 5090 (UDP)

Обновление прошивки на шлюзах и телефонах Grandstream

1. Скачайте утилиту Tftpd32.

2. Скачайте прошивку для вашей модели телефона или шлюза отсюда и разархивируйте в папку.

3. Отключите на компьютере файрвол.

4. Запустите утилиту Tftpd32 и укажите в поле Current Directory папку, в которой лежат файлы прошивки.

5. В интерфейсе шлюза, в разделе Advanced Settings > Firmware Upgrade and Provisioning, укажите тип и адрес сервера. Этот адрес соответствует Server Interface в утилите Tftpd32 (в нашем случае 192.168.0.4).

6. Нажмите Update и Reboot и подождите несколько минут. Затем снова зайдите в интерфейс телефона или шлюза, и в разделе Status проверьте версию новой прошивки: Software Version: Program -- версия_новой_прошивки.

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

Обработка входящих и исходящих вызовов в 3CX Phone System

Программный клиент 3CX Phone System – 3CX Assistant предназначен, как известно, для удобного графического управления вызовами, мониторинга вызовов, а также для обмена текстовыми сообщениями между пользователями 3CX. Кроме очевидных возможностей, 3CX Assistant имеет ряд “продвинутых” опций, о которых стоит рассказать более подробно. Я буду использовать оригинальный английский интерфейс 3CX Assistant, т.к. все компоненты системы 3CX могут быть легко локализованы на любой удобный вам язык.

Уведомление о входящих вызовах пользователя

Галочка Notify on my incoming calls выводит на рабочем столе пользователя уведомление с номером и именем звонящего абонента.

image

Если вызов приходит с внутреннего номера, в всплывающем окне выводится номер и имя звонящего.

Если вызов приходит с внешней линии, в всплывающем окне выводится номер звонящего “Caller ID”.

Это вызов может быть принят, переадресован, направлен на голосовую почту или завершен.

Функция уведомления о вызове на экране монитора особенно полезна в следующих случаях:

  • используется настольный аппаратный IP телефон без дисплея
  • пользователь не хочет переводить взгляд на дисплей аппаратного IP телефона, а сразу видеть номер звонящего
  • используется аналоговый телефон, подключенный через FXS порт

Уведомление о входящих вызовах внешнего приложения

Если требуется передать входящий номер внешнему приложению, например, вашей CRM системе, наиболее простой способ – вызвать внешнюю утилиту и передать этот номер ей в качестве параметра. Утилита, в свою очередь, должна передать номер вашему приложению принятым в данной CRM системе способом. Я продемонстрирую эту технологию на простом BAT файле notify.bat, который запишу в корень диска С.

C:\notify.bat

@echo off
echo Incoming Call Notification – Caller: %1%
pause

Затем я включу опцию Notify external program on my incoming calls, укажу путь к программе и специальную системную переменную %callid%, значение которой будет передано внешнему приложению.

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

Другой интересный способ – использовать универсальный метод передачи входящего номера в любое ваше приложение, позволяющее ввести номер телефона или делать поиск в базе по номеру телефона. Я написал небольшую программу на Visual Basic Script, которая передает номер в окно Notepad и нажимает Enter. Я разместил ее в корне диска С и в 3CX Assistant установил External Program path to executable в c:\sendkeys.vbs

C:\sendkeys.vbs

set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad" 'Запускаем Notepad
WScript.Sleep 100 'Выдерживаем паузу для инициализации приложения
WshShell.AppActivate "Notepad" 'Устанавливаем фокус на окне Notepad
WScript.Sleep 100
WshShell.SendKeys Wscript.Arguments(0) + "{ENTER}" 'Передаем номер телефона и “нажимаем” Enter

Интеграция входящих вызовов с Microsoft Outlook

Для включения интеграции 3CX Assistant с Microsoft Outlook установите галочку Enable CRM integration.

Зайдите в File > CRM Settings и установите опцию Manually close screen pop-up.

Во вкладке CRM Plugins выберите слева Microsoft Outlook и справа Enable Microsoft Outlook Plug-in и Store Call Information in Microsoft Outlook (эта опция сохраняет информацию о вызовах в Журнале Outlook). Нажмите Refresh справа, чтобы увидеть список папок контактов Outlook и выберите нужную папку. Вы можете устанавливать приоритет поиска для разных папок контактов стрелками справа.

При входящем вызове на экране появится окно, в котором будет виден номер и ссылка внизу Create a new contact record, для того, чтобы вы могли добавить этот новый контакт в Outlook.

Если входящий номер присутствует в базе Outlook, вы увидите карточку клиента с краткими данными и ссылкой Open the contact record. По этой ссылке можно открыть полную карточку контакта в Outlook.

В журнале Outlook также будет сделана соответствующая запись.

Интеграция исходящих вызовов с Microsoft Outlook

Чтобы выполнить исходящий вызов из Outlook, щелкните правой кнопкой мыши контакт, к которому вы хотите позвонить и выберите Call Contact…

Внимание! Пункт меню Call Contact with 3CX следует использовать только при работе в терминальном режиме.

Отметьте, если нужно, Create new Jurnal Entry when starting new call и нажмите кнопку Dialing Options…

Установите Connect using line в 3CX TAPI Service Provider (это нужно сделать только один раз после установки Assistant), нажмите OK и Start Call.

Откроется запись в Журнале Outlook, в которой вы сможете сделать заметки по текущему вызову. Одновременно зазвенит ваш телефон. Вы должны снять трубку и ожидать соединения с вашим контактом.

Приятной работы!

Организация корпоративной телефонии на базе 3CX и VoIP оборудования D-link

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

Поддерживаются различные типы устройств, такие как обычные аналоговые телефоны, сотовые телефоны и софтфоны. Пользователь может быть на связи не зависимо от того, какими средствами связи он пользуется. Система поддерживает гибко настраиваемые автоматическую обработку вызовов, систему голосовых меню (IVR) , функцию fax-to-email и многое другое. Так же система позволяет отслеживать присутствие любого пользователя в сети и выбирать наилучший способ связи с ним.

Все устройства интегрированы в единую телефонную сеть с единым номерным пространством. Оборудование обеспечивает высочайшее качество мультимедийного сервиса для любых типов существующих IP сетей, за счет использования новейших алгоритмов обеспечения уровня качества (QoS). Межсетевой экран DFL-260 обеспечит не только защиту от проникновения из вне, но и защитит сеть от компьютерных вирусов. Всё оборудование фирмы D-Link имеет современный дизайн, поддерживает новейшие протоколы для передачи голосовых данных. Данные устройства прекрасно подходят для установки в офисах различных компаний, правительственных учреждениях, школах или институтах и являются идеальным решением для организации унифицированных коммуникаций корпоративного пользователя.

Используемое в решении оборудование:

  1. IP PBX 3CX ENT 32 (32 одновременных вызова) - $2333
  2. IP Gateway DVG-2032S - $1658.88
  3. IP Gateway DVG-6008S - $460.80
  4. IP Gateway DVG-2101S - $56.88
  5. IP Phone DPH-150S – $86.02
  6. IP Phone DPH-540 - $261.12
  7. Switch DES-3028 - $307.20
  8. Firewall DFL-260 - $691.20
  9. ADSL Router DSL-G804V$153.60
  10. ADSL Router DSL-2500U/BRU - $33.18

Цены указаны без скидки!

Внимание! Проверьте наши цены!

Основы безопасности в 3CX Phone System

В последнее время, по мере увеличения количества инсталляций 3CX Phone System, к нам чаще стали обращаться клиенты с криками о помощи. Эти крики о помощи мы классифицировали на два основных типа:

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

Как избежать подобных ситуаций, сберечь нервы, время и деньги? Тут стоит поговорить о грамотной, безопасной эксплуатации системы 3CX.

Правила безопасности в данном случае должны быть хорошо известны любому IT специалисту, ведь 3CX – это такое же приложение Windows, как, например, почтовый сервер. Кроме того, стоит заметить, что проблемы безопасности VoIP общие для всех производителей подобных SIP АТС, независимо от платформы. И, тем не менее, мы обсудим рекомендованные механизмы обеспечения безопасности именно для 3CX Phone System.

Мы постарались перечислить все используемые нами средства, начиная от физического уровня (“железо” сервера), продолжая сетевым (защита сети) и завершая уровнем приложений (опции безопасности 3CX).

Выбор надежной аппаратной платформы

Несмотря на то, что 3CX может работать на любом персональном компьютере, мы рекомендуем не экономить на производителях материнской платы и корпуса. Материнскую плату желательно брать максимально интегрированную, а корпус – с качественным блоком питания. Мы получали хорошие результаты с фирменными материнскими платами Intel и корпусами CFI Group. Лучшей альтернативой такому сборному компьютеру может служить только брендовый ПК или сервер (HP, Dell и т.п.). На рисунке ниже изображен промышленный корпус CFI.

3gyboxfc 

Выбор операционной системы и антивируса

Мы рекомендуем использовать лицензионную 32 или 64 битную ОС Windows 7 или Windows Server 2008 R2, прежде всего, благодаря их высокой стабильности. Обязательно установите антивирус. На лицензионную Windows 7 можно установить бесплатный антивирус Microsoft Security Essentials, который отлично справляется со своими задачами, несмотря на то что бесплатный.

SNAGHTMLdc40c38

Резервное копирование операционной системы и резервное копирование конфигурации 3CX Phone System

Если отказоустойчивость телефонной системы должна быть высокой, однозначная рекомендация – использовать систему резервного копирования, создающую образ раздела или всего жесткого диска. Таким образом, просто вставив диск восстановления и указав в мастере место расположения созданного образа, вы через несколько минут получите полностью восстановленную и работоспособную систему. Причем восстановление можно произвести и на другой аппаратной конфигурации (“железе”). Мы перепробовали несколько подобных утилит и остановили свой выбор на решении Symantec Norton Ghost / Symantec Backup Exec System Recovery.

SNAGHTMLdd42cd2

Кроме этого, вы можете делать систематическое резервное копирование всех настроек 3CX Phone System, истории вызовов, записей, содержимого папки Autoprovisioning и т.п. с помощью прилагаемой к 3CX утилиты резервного копирования c:\Program Files\3CX PhoneSystem\Bin\3CXBackup.exe. Она имеет графический интерфейс и, что более важно, интерфейс командной строки. На рисунке ниже представлен графический интерфейс для однократного резервного копирования вручную. Такое резервное копирование мы рекомендуем делать после любого изменения настроек 3CX!

image

А на этом рисунке показано окно справки командного режима утилиты 3CXBackup.

image

Как видите, синтаксис весьма прост. Создайте командный файл и установите его в планировщике задач Windows на систематическое выполнение.

Напомним очевидную вещь – все резервные копии должны делаться на внешнее дисковое хранилище, а не на тот же компьютер, на котором стоит 3CX (то есть, не так, как на предыдущем рисунке!).

Сложный пароль доступа к административному интерфейсу 3CX

Интерфейс администрирования 3CX Phone System может быть доступен как через web браузер, так и через локальное Winforms приложение. Мы рекомендуем использовать локальное Winforms приложение, подключаясь к удаленному рабочему столу сервера 3CX через безопасное соединение. Однако, если вы предпочитаете использовать браузер (http://имя_сервера:5000), создайте сложный пароль администратора (не менее 8 символов, заглавные и прописные символы, и цифры). Необходимо отметить, что в последних версиях 3CX браузерная сессия завершается автоматически через несколько минут простоя, если нет никаких действий со стороны пользователя. Это дополнительно повышает безопасность администрирования. На рисунке показано подключение к серверу 3CX с помощью программы удаленного доступа RealVNC. Используется Winforms приложение администрирования.

SNAGHTML12e208d9 

Разрешение входящих соединений на сетевом экране или роутере только с доверенных IP адресов

Прежде чем задействовать защитные механизмы самой 3CX Phone System, используйте все доступные средства защиты периметра сети.

  • Разместите 3CX на NAT и сетевым экраном
  • Разрешите входящие соединения на 3CX только от доверенных IP адресов. В частности, если вы пользуетесь услугами SIP оператора, разрешите входящие SIP соединения только с IP адреса этого SIP оператора!

image 

Сложные пароли для внутренних номеров (Extensions), виртуальных факсов, шлюзов (Virtual Extensions), VoIP транков и провайдеров, и 3CX Bridges (межстанционных транков)

В последних версиях 3CX все создаваемые Extensions, Virtual Extensions, факсы и встроенный факс сервер автоматически получают сложные пароли SIP авторизации и неодинаковые ПИН коды авторизации пользователя. Все объекты со слабым паролем выделяются в интерфейсе 3CX красным цветом. Таким образом, администратор может оперативно изменить пароль на более сложный. На рисунке показаны Extensions со слабыми паролями.

image 

Также в свойствах Extension слабый пароль или PIN код подсвечивается красным цветом.

image

Почему же так важно иметь сложные пароли, несмотря на то, что есть соблазн сделать из попроще?

Сложные пароли критически необходимы в том случае, если у вас используются внешние SIP линии от телефонных операторов или внешние подключения пользователей (ваших сотрудников). В этом случае, вам будет необходимо открыть (пробросить) на сервер 3CX ряд портов, а именно 5060 UDP, 9000-9049 UDP. Именно через эти порты 3CX принимает вызовы от операторов и ваших удаленных пользователей.

Однако, ничто не мешает подключиться через эти порты и хакеру! И наговорить за ваш счет на огромную сумму!

image 

Дополнительные ограничения, устанавливаемые на внутренние номера (Extensions)

В последних версиях 3CX всем вновь создаваемым Extensions по умолчанию запрещено подключаться извне. Посмотрите на опции раздела Другие в свойствах Extension.

image

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

Не использовать внутренний номер за LAN – об этом было сказано выше. На рисунке эта опция выключена, то есть номеру разрешено подключаться снаружи. Это небезопасно, поэтому в последних версиях 3CX эта опция по умолчанию всегда включена.

Блокировка удаленного подключения по туннелю – правильно: “Разрешение удаленного подключения только через туннель”. Позволяет подключаться к 3CX извне, но только по технологии 3CX Tunnel. Это гораздо безопаснее (см. далее).

Использование безопасного туннеля 3CX Tunnel

В 3CX Phone System используется собственная технология безопасного туннелирования голосового трафика 3CX Tunnel, которая решает сразу несколько проблем:

  • Позволяет использовать для SIP сигнализации и голоса (RTP поток) всего один нестандартный TCP порт 5090.
  • Позволяет решить проблему корректного прохождения голосового трафика через различные NAT, роутеры и межсетевые экраны.
  • Обеспечивает дополнительный уровень безопасности для удаленных подключений. Используется сложный пароль туннеля.
  • Обеспечивает упрощенную настройку соединений (транков) между серверами 3CX.

image

Блокирование всех исходящих вызовов в нерабочие часы и блокирование исходящих вызовов из системного голосового меню

3CX позволяет просто заблокировать все исходящие вызовы в нерабочее время. Это дополнительно обезопасит вашу компанию как от хакеров, так и от собственных несознательных сотрудников. Кроме того, вы можете запретить исходящие вызовы из системного голосового меню. Запрет вызовов из системного голосового меню позволяет заблокировать перенаправление входящих вызовов снова на внешние линии (см. подробнее здесь). В этом же разделе есть опция Показывать внутренние номера со слабым паролем, которая подсвечивает красным цветом все слабые пароли на внутренних номерах (Extensions). Почему важно исключить слабые пароли было сказано выше.

image

Интеллектуальное распознавание хакерских атак и других попыток нелегитимного подключения

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

image

Также, администратору может быть выслано соответствующее уведомление на e-mail.

image 

Ручное занесение IP адресов или диапазонов IP адресов в черный список 

Наряду с автоматическим занесением подозрительных IP адресов в черный список, вы можете занести любые IP адреса или диапазоны IP адресов в этот список вручную. Например, вы можете занести диапазоны IP адресов, выделенные странам или компаниям с плохой репутацией. К большому сожалению в текущей версии 3CX нельзя, наоборот, задать белый список только разрешенных IP адресов. В следующих версиях системы это упущение будет исправлено.

image

Грамотная настройка исходящих правил

Большую роль в обеспечении безопасности может сыграть правильная настройка Исходящих правил в 3CX Phone System. Мы рекомендуем настраивать их таким образом, чтобы предоставить доступ к внешним линиям только определенным пользователям и группам, и только на определенные направления. Мы рекомендуем включить все ваши внутренние номера в группы и определить, какой группе доступ к каким направлениям разрешен. Мы также рекомендуем создать Исходящие правила с префиксами, которые бы явно запрещали вызовы на нежелательные номера.

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

SNAGHTML670d0f6 

А на этом рисунке группе Менеджеры явно разрешены вызовы через 0, т.е. на межгород. Остальным группам они по умолчанию будут запрещены.

image

Надеемся, эти, в общем, несложные меры, обеспечат вам долгую, стабильную и безопасную работу 3CX Phone System.

Обращаем ваше внимание, что аудит безопасности установленной 3CX Phone System необходимо проводить после каждой переустановки, восстановления из резервной копии и изменения нижележащего сетевого и системного окружения!

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

Отказоустойчивость 3CX Phone System. Некоторые соображения.

Введение

В данной статье мы рассмотрим несколько способов обеспечения отказоустойчивости телефонной системы, построенной на 3CX Phone System. Мы благодарны нашим немецким коллегам, на основании статьи которых был подготовлен этот материал.

SIP АТС 3CX Phone System – это такое же сетевое приложение, как, скажем, почтовый сервер или сервер баз данных, и методы обеспечения отказоустойчивости у этих приложений в целом схожи. С другой стороны, нужная отказоустойчивость программной SIP АТС 3CX может быть достигнута с куда меньшими расходами, чем отказоустойчивость любой аналоговой АТС и даже аппаратной SIP АТС. Прежде всего, вам не нужен затратный сервисный договор на оперативную замену вышедших из строя электронных плат. Также, вам не нужно проходить дорогостоящее обучение, которые предлагают некоторые вендоры SIP АТС, – отказоустойчивость обеспечивается стандартными средствами Windows Server. И, наконец, даже при наличии сервисного контракта, компания – поставщик может прописать длительные сроки поставки комплектующих. Это связано с тем, что в странах СНГ далеко не всегда интеграторы в состоянии оперативно поддерживать большой склад подменных комплектующих. Таким образом, простой вашей аппаратной АТС может составить несколько дней, а то и недель.

Покажем размер убытков компании среднего размера в результате 8 часового сбоя в работе АТС (невозможности принимать и делать вызовы).

  • В компании работают 100 сотрудников, большинство из которых специалисты по продажам
  • В среднем, каждый менеджер зарабатывает для компании 10 Евро в час
  • Потери в результате 8 часового сбоя в работе АТС составят 100 X 10 X 8 = 8000 Евро!

    Именно эти 8000 Евро должны служить вам ориентиром для оценки инвестиций в систему отказоустойчивости 3CX Phone System.

    Мы рассмотрим четыре варианта обеспечения отказоустойчивости:

  • Single host. 3СX и другие сетевые службы установлены на одном единственном сервере. Приемлем для совсем небольшой компании.
  • Active / Stand-by host. 3CX установлена на отдельном сервере и периодически реплицируется на другой сервер, который в остальное время выключен, либо не задействуется как сервер SIP АТС. Рекомендуется для небольших и средних компаний.
  • Active / Active host. 3CX установлена на узле псевдо кластера, при этом обеспечивается автоматическое и незаметное для пользователей переключение на другой узел кластера в случае отказа первого узла. Рекомендуется для компании, где есть свыше 100 активных пользователей АТС. Не требует серверных лицензий и системы виртуализации.
  • Hyper-V Failover Clustering и Hyper-V Live Migration. Требует установки 3CX на Windows Server 2008 R2, при этом виртуальная машина 3CX будет незаметно переключена на другой хост без прерывания сервисов. Идеален, если уже имеется инфраструктура виртуализации.

    Приведем график относительных расходов на отказоустойчивость проприетарных АТС и различных реализаций отказоустойчивости 3CX Phone System.

    sxdrqvci

    Single Host – 3CX и другие сетевые службы на одном сервере

  • 3CX Phone System может быть установлена в компаниях с одним сервером непосредственно на этом сервере. Как правило это Microsoft Small Business Server или Essential Server. Таким образом, имеющийся сервер становится еще и сервером SIP АТС. Рекомендации для обеспечения базовой отказоустойчивости такой системы:

  • Источник бесперебойного питания серверного класса
  • RAID массив, как минимум RAID 1 (Зеркало)
  • Система резервного копирования, желательно с поддержкой создания образов диска (Symantec Ghost, Acronis)
  • Резервные копии операционной системы и 3CX Phone System должны делаться на внешнее хранилище

    Недостаток установки 3CX Phone System на единственный сервер в компании заключаются в том, что этот же сервер обеспечивает другие важные сетевые сервисы, такие как DNS и DHCP. Поэтому, даже в случае быстрого восстановления 3CX из резервной копии, вам следует позаботиться об оперативном восстановлении служб DHCP (необходима для SIP телефонов) и DNS (необходима для SIP телефонов и для подключения 3CX к SIP провайдерам). Чтобы уменьшить зависимость SIP АТС 3CX от этих служб, рекомендуется:

  • Выдать всем SIP телефонам фиксированные IP адреса. Тогда они будут готовы к работе даже без DHCP сервера.
  • Использовать в настройках SIP телефонов и SIP провайдеров IP адреса вместо FQDN имен хостов. В этом случае телефоны подключатся к серверу 3CX без использования DNS, и 3CX подключится к внешним SIP провайдерам без использования DNS. 
  • Следует настроить регулярное резервное копирование конфигурации 3CX на внешний сетевой ресурс. Вот пример командного файла fullbackup.cmd

    set networkpath=\\host\folder 
    
    net use %networkpath% userpass /USER:host\username 
    
    "%ProgramFiles%\3CX PhoneSystem\Bin\3CXBackup.exe" hidden backup %networkpath%\3cxbackup.zip /call recordings /voicemails /voice prompts /callhist /firmware /exit

    В этом скрипте:

    \\host\folder – пусть к сетевой папке, в которую будет создан файл резервной копии (см. синтаксис команды NET USE)

    userpass – сетевой пароль доступа к папке

    host – имя хоста, на который делается резервное копирование

    username – сетевое имя для доступа к папке

    /call recordings /voicemails /voice prompts /callhist /firmware /exit – ключи утилиты резервного копирования 3CX Phone System (см. документацию к 3CX)

    Создайте задачу в Планировщике Windows, которая запускала бы этот командный файл раз в сутки или чаще. Если необходимо хранить историю резервных копий, т.е. создавать для каждой резервной копии свой файл, модифицируйте строку командного файла, добавив системную переменную %date%.

    "%ProgramFiles%\3CX PhoneSystem\Bin\3CXBackup.exe" hidden backup %networkpath%\%date%3cxbackup.zip /call recordings /voicemails /voice prompts /callhist /firmware /exit

    При необходимости быстрого восстановления SIP АТС рекомендуется подготовить один из имеющихся в офисе компьютеров для возможного выполнения роли резервного сервера 3CX. Для этого установите на него все необходимое для 3CX системное программное обеспечение: Windows Installer 3.5 и выше, .NET 4.0 и т.п. Также можно установить 3CX Phone System, но пропустить Мастер начального конфигурирования 3CX.

    На этом компьютере в файле hosts добавьте IP адрес сервера активации лицензий 3CX, для того, чтобы активация вашей лицензии на новом ПК прошла без участия сервера DNS. Запись должна иметь вид

    erp.3cx.com 80.237.157.56

    Этот IP адрес можно узнать, выполнив команду nslookup erp.3cx.com, когда DNS сервер еще функционирует.

    Когда случится беда, сделайте следующее:

  • Поменяйте на офисном компьютере IP адрес на тот, который был у сервера 3CX
  • Запустите Мастер начального конфигурирования 3CX из папки "%ProgramFiles%\3CX PhoneSystem\Bin\3cxWizard.exe и укажите путь к файлу с резервной копией
  • Через некоторое время система будет полностью работоспособна

    Чтобы уменьшить время восстановления системы, рекомендуется сохранять в резервной копии минимум данных (не использовать ключи типа /call recordings), либо настроить отдельное задание для резервирования только базовой конфигурации (т.е. без ключей). Тогда восстановление системы придется делать в два этапа:

  • Восстановить 3CX на новом компьютере из “быстрой” резервной копии, после чего SIP АТС сразу будет работоспособна.
  • После этого, в период малой активности пользователей, восстановить систему еще раз, но уже из полной копии.

    Для того, чтобы ускорить время восстановления работы SIP телефонов (т.е. время их повторного подключения к восстановленному серверу), рекомендуется уменьшить время перерегистрации SIP либо в каждом телефоне отдельно, либо в общем шаблоне для данной модели SIP телефонов. Например, для телефонов Yealink оно составляет 900 секунд. Поменяем его на 60 секунд.

    [ account ] 
    path = /config/voip/sipAccount0.cfg 
    Enable = 1 
    Label = %%extension_number%%                                            
    DisplayName = %%extension_first_name%% %%extension_last_name%% 
    UserName = %%extension_number%% 
    AuthName = %%extension_auth_id%% 
    password = %%extension_auth_pw%% 
    SIPServerHost = %%pbx_ip%% 
    SIPServerPort = %%param::sipport%% 
    SIPListenPort = 5060 
    Expire = 900

    меняем на

    Expire = 60

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

    set WORKING_DIRECTORY="%cd%" 
    call fullbackup.cmd > ./log.txt 
    cd %WORKING_DIRECTORY% 
    bmail.exe -s MailServer -p PORT -t TOE-Mails -f FROME-Mail -h -a "3CX Backup" -b Backup Report: -m log.txt –c

    Active  / Stand-by Host – 3CX работает на выделенном сервере, а другой сервер подготовлен для работы, но выключен, либо включается периодически для обслуживания

    Отличия этого сценария от предыдущего следующие

  • Два однотипных компьютера с независимыми ИБП
  • Идентичная программная и аппаратная конфигурация
  • На резервном сервере 3CX Phone System идентичной версии, установленная как Free Edition
  • Доступность сетевой папки с резервной копией 3CX с обоих компьютеров
  • Скрипт смены IP адреса и восстановления запускается автоматически при включении второго ПК.
  • Опционально, скрипт восстановления может запускаться при недоступности основного сервера 

    Приведем пример скрипта восстановления fullrestore.cmd. Это скрипт похож на скрипт из примера выше, но в него добавлены команды подмены IP адреса.

    set ipaddress=192.168.0.2
    set netmask=255.255.255.0
    set gw=192.168.0.1
    set dns1=192.168.0.1
    set dns2=192.168.0.255
    set networkpath=\\host\folder 
    netsh interface ip set address name="Local Area Connection" source=static addr=%ipaddress% mask=%netmask%  gateway=%gw% gwmetric=1 
    netsh interface ip set dns name="Local Area Connection" source=static addr=%dns1% register=primary
    netsh interface ip add dns name="Local Area Connection" addr=%dns2%net use %networkpath% userpass /USER:host\username 
    "%ProgramFiles%\3CX PhoneSystem\Bin\3CXBackup.exe" hidden restore %networkpath%\3cxbackup.zip /call recordings /voicemails /voice prompts /callhist /firmware /exit

    В начале скрипта задаются IP параметры интерфейса Local Area Connection, которые нужно установить (они соответствуют настройкам IP стека основного сервера). Синтаксис команды netsh можно посмотреть на сайте Technet

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

    1. Резервный сервер постоянно включен и мониторит (“пингует”) основной сервер
    2. Как только основной сервер перестает отвечать на ping, срабатывает скрипт резервного восстановления на резервном сервере

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

    set masteripaddress=192.168.0.2
    ping -n 30 %masteripaddress% | find "TTL"
    if errorlevel 1 call fullrestore.cmd

    В этом скрипте мы задаем IP адрес основного сервра и “пингуем” его, делая 30 попыток. Вывод команды ping пропускается через команду find, которая ищет строку “TTL”, типичную для нормального ответа утилиты ping.. Если строка “TTL” не будет найдена ни в одной из 30 попыток, произойдет ошибка. По этой ошибке запустится скрипт fullrestore.com .Рекомендуется запускать скрипт pingmaster.cmd несколько раз в течении часа.

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

    agrisv3b

    Свитч Berofos имеет так называемый watchdog, который отслеживает состояние внешних аналоговых, BRI и PRI линий и динамически переключает их в случае выхода из строя (или отключения на обслуживание) одного из шлюзов Beronet.

    yxsjnufm

    Со стороны 3CX Phone System создается просто два однотипных аналоговых шлюза с разными IP адресами.

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

    bpnhlrzi

    Active / Active Host – 3CX работает параллельно на двух компьютерах. Выход из строя одного компьютера практически не влияет на работу телефонной системы

    В этой конфигурации предусматривается одновременная работа двух параллельно работающих узлов “псевдокластера”, синхронизирующихся между собой через небольшие промежутки времени. Конфигурация напоминает описанную выше Active / Stand-by Host, с тем отличием, что оба сервера не выключаются и всегда готовы к работе с актуальной конфигурацией 3CX. “Псевдокластер” обеспечивает наименьшее время простоя SIP АТС, делая переключение между основным и резервным сервером, как правило, незаметным для пользователя. С другой стороны, она является довольно затратной. Вам потребуются:

  • Два однотипных сервера с разными IP адресами
  • Доступность сетевой папки с резервной копией 3CX с обоих компьютеров
  • Две лицензии 3CX Phone System
  • SIP телефоны и SIP шлюзы с поддержкой основного и альтернативного SIP сервера (Beronet, Polycom, Snom)
  • Модифицированные шаблоны автонастройки для указания SIP телефонам альтернативного SIP сервера 

    Резервирование основного сервера происходит скриптом, похожим на скрипт, описанный для Active / Stand-by, однако сразу после этого происходит восстановление созданного архива на резервный сервер. Таким образом, постоянно поддерживается полная синхронизация конфигурации 3CX Phone System между серверами. В случае отказа основного сервера, телефоны и шлюзы по таймауту просто регистрируются на резервном сервере и продолжают работу.

    Вот пример скрипта синхронизации между двумя SIP АТС 3CX, который делает резервирование, а затем удаленно запускает восстановление (синхронизацию) конфигурации sync.cmd

    set networkpath=\\host\folder
    set slavehost=192.168.0.3
    set slaveuser=user
    set slavepassword=password
    net use %networkpath% userpass /USER:host\username 
    "%ProgramFiles%\3CX PhoneSystem\Bin\3CXBackup.exe" hidden backup %networkpath%\3cxbackup.zip /call recordings /voicemails /voice prompts /callhist /firmware /exit
    PsExec.exe \\%slavehost% -u %slaveuser% -p %slavepassword% c:\script\restore.cmd

    Скрипт restore.cmd на резервном компьютере должен находиться в папке c:\script и иметь вид

    set networkpath=\\host\folder 
    "%ProgramFiles%\3CX PhoneSystem\Bin\3CXBackup.exe" hidden restore %networkpath%\3cxbackup.zip /call recordings /voicemails /voice prompts /callhist /firmware /exit  /activesync

    В этих скриптах

    slavehost – IP адрес резервного компьютера

    slaveuser, slavepassword – учетные данные пользователя на резервном ПК с правами администратора

    PsExec.exeутилита Sysinternals для удаленного запуска приложений

  • /activecync – этот ключ появился, начиная с 3CX v.10 SP5 и позволяет пропустить процесс активации лицензии 3CX на резервном сервере (т.к. там уже есть своя собственная лицензия 3CX)

    Hyper-V Failover Clustering и Hyper-V Live Migration – используется с Windows Server 2008 R2 Hyper-V и NAS хранилищем

    Подробнее об этой технологии можно почитать здесь. Настройка системы в этом случае выполняется по руководству Microsoft. Преимущество такого подхода в том, что если у вас уже развернута инфраструктура виртуализации серверов, весьма несложно добавить в нее и сервер 3CX. Таким образом вы получите высокоустойчивую виртуальную SIP АТС с функцией незаметной миграции на исправное “железо” в случае любого аппаратного сбоя.

    Превосходно!

    Мы будем благодарны вам за отзывы и дополнения к этому материалу!

    Отправка и получение факсов из Windows с помощью VoIP Plug-in for Microsoft Fax

    Рассмотрим, как отправлять и принимать факсы по протоколу T.38 с помощью бесплатного плагина VoIP Plug-in for Microsoft Fax.

    1. Создайте новый факсовый номер в 3CX Phone System. В нашем случае 3CX предложила номер 889 – оставим его. Также обратите внимание на сложный пароль, который сгенерировала 3CX. Пароль менять не рекомендуется!

    image

    2. Зарегистрируйтесь на сайте FaxBack и ожидайте e-mail с ключом продукта и ссылкой для загрузки VoIP Plug-in for Microsoft Fax.

    3. Загрузите VoIP Plug-in for Microsoft Fax (это можно сделать отсюда) и запустите инсталляцию.

    4. В открывшемся окне настройки выберите опцию SIP T.38…

    SNAGHTML7ba8c11

    5. Далее введите полученный ключ продукта.

    SNAGHTML7be6e25

    6. Нажмите Show Advanced Settings.

    SNAGHTML7bfe3c2

    7. Укажите параметры созданного выше факсового Extension 3CX и нажмите More Settings… Proxy – это IP адрес сервера 3CX Phone System.

    SNAGHTML7e63461

    8. В окне More Settings укажите Caller ID факса и VoIP домен 3CX, который, как правило, соответствует IP адресу сервера 3CX Phone System. Также рекомендуется изменить SIP порт по умолчанию, чтобы не произошел конфликт портов с другим VoIP приложением, которое может быть установлено на данном компьютере. Нажмите Ok и Next.

    SNAGHTML7e9e6fd

    9. Далее настоятельно рекомендуется проверить сделанные настройки, поэтому выберите Run VoIP Fax Support Test.

    SNAGHTML7ed3bf0

    10. Укажите номер факс аппарата, на который вы хотите отправить тестовый факс. Я указал номер 200, т.к. на этом номере у нас в офисе установлена факс – машина. Также можно указать идентификатор отправляющего VoIP факса. Если все настроено правильно, отправка факса должна выглядеть примерно так.

    SNAGHTML7f14d5e

    11. Если все прошло успешно, появится соответствующее сообщение. Если же возникли ошибки, следует просмотреть отчет и откорректировать настройки. Нажмите Close и Finish.

    SNAGHTML7f2df8e

    На этом настройка VoIP факса окончена. Теперь вы можете отсылать и принимать факсы из любого приложения Windows!

    image

    Отправка уведомлений 3CX Voice Mail на почтовые аккаунты Live Mail и Gmail: для чего это нужно и как это настроить?

    В последнее время многие небольшие и даже средние компании отказываются от поддержки собственных почтовых серверов в пользу так называемых коммуникационных SaS решений. Лидерами SaS услуг по управлению корпоративной почтой я считаю Microsoft и Google.

    Обе компании предлагают перенести управление почтовыми ящиками на свои серверы, сохранив при этом корпоративное доменное имя! Другие преимущества аутсорсинга почтовой системы:

    • не нужно покупать и поддерживать почтовый сервер (как ПО, так и железо)
    • не нужно оплачивать труд системного администратора почтовой системы
    • не нужно покупать и продлевать почтовый антивирус
    • не нужно бороться со спамом - это перекладывается на первоклассные антиспам-сервисы Microsoft и Google
    • не нужно "чистить" сообщения - размера бесплатного ящика в 5-7 Gb хватить для большинства пользователей 
    • можно создать распределенную почтовую систему - почтовый сервер будет доступен из всех филиалов без настройки файервола и VPN
    • web - доступ к почте с отличным дизайном интерфейса из любого места в мире
    • услуга Instant Messenger - и у Microsoft и у Google она интегрирована в почтовый интерфейс
    • поддержка собственного доменного имени для почтовых адресов сотрудников! 

    И Microsoft и Google предоставляют базовый набор почтовых сервисов соверешенно бесплатно.

    После переноса почтовых аккаунтов сотрудников на платформу Microsoft или Google нужно настроить 3CX таким образом, чтобы она могла отправлять уведомления о приходе голосовой почты на эти аккаунты. Однако, тут существуют три вопроса:

    • адреса SMTP серверов неочевидны
    • почтовые системы поддерживают только защищенные SMTP подключения (через SSL/TSL)
    • 3CX не поддерживает защищенных SMTP подключений  

    Начнем по порядку. Для начала, с свел в удобную таблицу настройки почтовых серверов Microsoft и Google.

    Настройка SMTP и POP серверов для Microsoft и Google
    Компания Сервер POP SSL подключение Имя пользователя Пароль Сервер SMTP SSL подключение Проверка подлинности Тип шифрования подключения
    Microsoft pop3.live.com Да, порт 995 Ваш Windows Live ID, например exapmle@yourdomain.com Пароль, который вы используете для входа в Hotmail или Windows Live smtp.live.com Да, порт 587 Да TLS
    Google

    pop.gmail.com

    Да, порт 995 Ваш полный адрес Gmail, например exapmle@yourdomain.com Пароль, который вы используете для входа в Gmail smtp.gmail.com Да, порт 587 или 465 Да TLS

     

    А теперь я опишу процедуру подключения 3CX к SSL/TSL SMTP серверу Microsoft или Google

    1. На сервере 3CX установите SMTP сервер как часть установки Microsoft IIS. Это делается через Add/Remove Program в английской версии сервера. В разделе Internet Information Services установите галочку Simple Mail Transfer Protocol
    2. После установки перейдите в Control Panel > Administrative Tools > Internet Information Services, щелкните правой кнопкой мыши по Default SMTP server и выберите Properties
    3. Перейдите в Access > Relay. Установите пересылку почты с локального хоста. Ввведите адрес 127.0.0.1 и IP адрес сетевой карты сервера
    4. Перейдите в Delivery > Outbound Security. Установите Basic Authentication и введите данные аккаунта Microsoft или Google. Также установите опцию TLS Encryption
    5. Перейдите в Advanced > Smarthost и укажите адрес SMTP сервера Microsoft или Google
    6. Перейдите в консоль управления 3CX в раздел Settings > General node > Mail Server. В поле Mail Server укажите адрес установленного SMTP релея. Так как он установлен а том же сервере, что и 3CX Phone System, укажите 127.0.0.1. В поле Reply Address укажите какой-либо внутренний почтовый адрес, доступный внутреннему SMTP релею. 
    7. Сохраните настройки и перезапустите сервисы 3CX

    Итак, вы успешно мигрировали на первоклассную распределенную почтовую систему и научили 3CX Phone System отсылать уведомления о голосовой почты на новые почтовые ящики сотрудников.

    Важно и то, что теперь пользователи смогут прослушивать оставленную им голосовую почту из любого места в мире, и даже на мобильных телефонах!

    Перенос адресной книги Microsoft Outlook в серверную адресную книгу 3CX Phone System

    В этой статье я расскажу как просто и быстро “перетянуть” адресную книгу Microsoft Outlook в серверную адресную книгу 3CX Phone System.

    Для чего это нужно? Все просто – после “перетягивания” вы можете загрузить адресную книгу в настольные SIP телефоны с сервера 3CX. После этого Caller ID всех входящих вызовов будет сверяться с адресной книгой, и, если номер совпал, – имя звонящего отобразится на экране телефона. Очень удобно! Тем более, что таким образом вы сразу заполните адресную книгу вашими уже накопленными контактами. Тут надо заметить, что никакого автоматического механизма синхронизации в текущей версии 3CX не предусмотрено, поэтому вам придется периодически повторять эту процедуру для поддержания адресной книги 3CX в актуальном состоянии.

    Итак, приступим!

    1. Предположим, что в нашей адресной книге Outlook содержатся три контакта.

    image

    2. В карточках контактах заполнены поля Имя, Фамилия и Рабочий телефон. Тут могут быть заполнены и другие поля, однако для упрощения примера я выбрал эти. В дальнейшем вы будете иметь возможность указать, какие именно поля следует переносить в адресную книгу 3CX.

    SNAGHTMLd2d6b06

    3. В главном окне Outlook перейдите в раздел Файл > Открыть > Импорт

    image

    4. В окне Мастер импорта и экспорта выберите Экспорт в файл > Значения, разделенные запятыми (Windows).

    SNAGHTMLd3286ef

    5. Выберите Контакты (будет выбрано по умолчанию)

    SNAGHTMLd348b14

    6. Укажите имя файла. Я рекомендую использовать латинские символы без пробелов! Расширение файла .csv.

    SNAGHTMLd36ac79

    7. В следующем окне нажмите кнопку Соответствие полей. Откроется окно выбора соответствия полей карточки контакта Outlook и полей, которые будут присутствовать в выгруженном CSV файле. Я вначале нажал кнопку Очистить, а затем перетянул мышкой слева направо поля Имя, Фамилия, Рабочий телефон. Адресная книга 3CX в текущей версии понимает только три поля в записи контакта – Имя, Фамилия, Телефон. Поэтому выгружать остальные поля смысла нет, да и приведет впоследствии к ошибкам. Затем нажмите OK и Готово. Outlook выгрузит контакты в файл, который, в моем случае, называется 3cx.csv.

    image

    8. Выгруженный файл требует дополнительной обработки, которую проще всего провести в Microsoft Excel. Откройте файл в Excel.

    image

    9. Как видим, в файле есть первая строка с названиями полей. Ее нужно удалить. Кроме того, в тексте есть кавычки, а в номере телефона – пробелы, которые Outlook зачем-то сам автоматически добавляет. Чтобы удалить лишние символы, воспользуемся средством Excel Найти и выделить > Заменить. Перед этим нужно выделить все обрабатываемые строки. В строке Найти: укажите , а в строке Заменить на: ничего указывать не нужно. Нажмите Заменить все. Затем в строке Найти: укажите пробел, а в строке Заменить на: ничего указывать не нужно. Нажмите Заменить все.

    image

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

    image

    11. В главном окне Excel выберите Файл > Сохранить как и укажите формат файла Текст Юникод. Это очень важно!

    SNAGHTMLd637045  

    12. Переименуйте созданный файл из 3cx.txt в 3cx.csv и загрузите в 3CX. Для этого В консоли 3CX перейдите в раздел Настройки > Телефонная книга и нажмите кнопку Импорт.

    image

    13. Все контакты будут загружены! После загрузки контактов нажмите кнопку Сгенерировать для того, чтобы 3CX подготовила адресную книгу для различных моделей поддерживаемых телефонов.

    image

    При появлении новых контактов в адресной книге Outlook, повторно проделайте вышеуказанные шаги. Имеющиеся контакты в адресной книге 3CX можно предварительно удалить. Для этого выделите первый контакт и, удерживая Shift, выделите последний. Затем нажмите кнопку Удалить.

    Хоть описание процедуры переноса контактов кажется несколько громоздким, на практике оно занимает всего несколько минут и не требует никакой специальной подготовки!

    Желаем успехов!

    Подключение внешних телефонов к 3CX Phone System

    Практически у всех компаний, использующих VoIP, возникает необходимость подключить к SIP АТС 3CX внешних пользователей со своими SIP телефонами. Этими пользователями могут быть удаленный склад или офис, сотрудник, работающий дома, небольшой филиал компании и т.п. Мы рассмотрим именно “прямое” подключение аппаратного SIP телефона к 3CX, т.е. подключение без использования VPN сервера или туннеля 3CX. Для использования IP телефона в качестве внешнего Extension (внешнего абонента) требуется настройка некоторых дополнительных опций, однако в разных SIP телефонах эти опции называются по разному. Рассмотрим вопрос подключения поэтапно.

    Настройки со стороны 3CX Phone System

    Разрешите внешним абонентам подключаться к 3CX

    qhg2xa0p

    Дважды кликните Extension > Other Tab > Extension Options. Снимите галочку Disallow use of extension outside the LAN

    Включите 3CX NAT Helper

    3CX Phone System содержит встроенный NAT Helper – специальный сервис для решения проблем с неустойчивыми NAT подключениями. NAT Helper запоминает IP адрес и порт телефона, с которых прошла успешная регистрация (200 OK). В дальнейшем 3CX отсылает SIP сообщения на этот IP адрес и порт. По умолчанию NAT Helper включен, однако стоит это проверить.

    wvrlfy3v

    Выберите Settings > Advanced > Custom Parameters Tab. В поле Search Filter введите параметр ALLOWSOURCEASOUTBOUND. Убедитесь, что параметр ALLOWSOURCEASOUTBOUND имеет значение 1

    Настройки со стороны SIP телефона

    Поддержка STUN

    Для нормальной работы IP телефона как внешнего абонента за NAT роутером (NAT роутер в удаленном офисе), этот телефон должен в обязательном порядке поддерживать STUN сервер. STUN сервер необходим для правильного определения внешнего IP адреса телефона (WAN IP адреса роутера) и для установления соответствия портов при NAT трансляции. NAT трансляция происходит при прохождение VoIP трафика через NAT роутер. 3CX и удаленный телефон используют информацию STUN сервера для правильной адресации SIP пакетов, которые модифицируются NAT роутером.

    Если телефоны не поддерживает STUN сервер, следует вручную настроить WAN роутер и все SIP телефоны в удаленном офисе.

    • На каждом телефоне установите уникальные (неповторяющиеся на других телефонах) SIP и RTP порты
    • На каждом телефоне укажите внешний (WAN) адрес NAT роутера
    • На роутере пропишите “проброс” SIP и RTP портов для каждого телефона
    • Удаленный офис должен иметь фиксированный WAN адрес

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

    Поддержка Keep-Alive

    Функция Keep-Alive всегда присутствует в телефонах с поддержкой STUN. Задача Keep-Alive – периодически слать keep-alive пакеты на SIP АТС для поддержки NAT трансляции открытой. То есть, NAT трансляция адресов и портов между WAN адресом роутера и внутренними адресами телефонов должна постоянно поддерживаться и не прекращаться. Поддержку открытой NAT трансляции (NAT mapping) и обеспечивают пакеты keep-alive. Если телефон не будет их периодически отсылать, NAT роутер через какое-то время отключит NAT трансляцию и закроет соответствующие внешние (WAN) порты. В этом случае SIP сообщения перестанут доходить от SIP АТС к удаленному телефону.

    Поддержка Rport

    Rport – это расширение SIP протокола, которое позволяет передать дополнительную информацию об источнике SIP сообщения. Когда SIP клиент (SIP телефон) отсылает SIP сообщение на SIP АТС, он вставляет пустое поле rport в секцию VIA (см. справочник по протоколу SIP). Поле rport говорит остальным устройствам о том, что SIP клиент поддерживает функцию rport. SIP АТС, получив этот пакет, заполняет поле rport номером порта, с которого действительно пришел этот пакет (портом WAN интерфейса удаленного роутера) и добавляет поле received, которое заполняет IP адресом, с которого действительно пришел этот пакет (WAN IP адресом удаленного роутера). Отвечая на такое сообщение, SIP АТС знает как WAN адрес, на который нужно его отправить (WAN адрес и порт роутера), так и внутренний IP адрес и порт SIP телефона, который сгенерировал это сообщение. Благодаря этому, существенно повышается вероятность установления стабильной связи через различные модели NAT роутеров. Функцию rport поддерживают не все SIP телефоны, однако ее наличие – большой плюс.  

    Настройка популярных моделей SIP телефонов

    Телефоны конфигурируются аналогично внутренним LAN абонентам, но со следующими отличиями.

    Cisco / Linksys SPA

    Включите NAT

    wd5hchcb

    Перейдите в раздел Admin Login > Advanced > Ext 1. В разделе NAT Settings установите NAT Mapping Enable и NAT Keep Alive Enable в yes

    Установите внешний IP 3CX Phone System

    ghtdx5a5

    Перейдите в раздел Admin Login > Advanced > Ext 1. Перейдите в раздел Proxy and Registration. В поле Proxy IP Address укажите внешний (Public) IP адрес сервера 3CX Phone System.

    Настройте дополнительные опции NAT

    etc0fnyw

    В разделе SIP перейдите в NAT Support Parameters. Установите следующие значения

    • Handle VIA rport- yes
    • Insert VIA rport - yes
    • STUN Enable - yes
    • STUN Server - stun.3cx.com
    • NAT Keep Alice Intvl - 15

    Grandstream HD Phone (новая серия)

    Включите STUN

    hzr4ejqg

    Перейдите в раздел Settings > Advanced и установите следующие параметры

    • keep-alive interval - 15
    • STUN server - stun.3cx.com

    Установите внешний IP 3CX Phone System

    kqze5oda

    В разделе Account 1 в поле SIP Server field укажите внешний (Public) IP адрес сервера 3CX Phone System.

    Настройте дополнительные опции NAT

    abz4jx2e

    В разделе Account 1 установите NAT Traversal - STUN.

    Grandstream GXP Phone (старая серия)

    Включите STUN

    lxr02fyz

    В разделе Settings > Advanced установите

    • keep-alive interval - 15
    • STUN server - stun.3cx.com

    Установите внешний IP 3CX Phone System

    wxuobhb2

    В разделе Account 1 в поле SIP Server укажите внешний (Public) IP адрес сервера 3CX Phone System.

    Настройте дополнительные опции NAT

     

     

    c2n0wvyq

     

     

    Включите NAT Traversal. В разделе Account 1 установите

    • Use RFC3581 Symmetric Routing - Yes
    • NAT Traversal (STUN) - Yes

    Polycom

    Телефоны Polycom не имеют поддержки STUN. Однако, их можно настроить, используя раздел Network > Network Address Translation в web интерфейсе.

    Установите внешний IP 3CX Phone System

    doylxcij

    Перейдите в раздел Lines > Server 1 и в поле Address укажите внешний (Public) IP адрес сервера 3CX Phone System.

    Включите NAT

    hdcx3ppk

    Перейдите в раздел Network > NAT > Network Address Translation и установите следующие параметры

    • IP Address - укажите внешний (Public) IP адрес сервера 3CX Phone System
    • Signaling Port – укажите внешний (Public) SIP порт сервера 3CX Phone System
    • Keep-Alive Interval – установите 30 сек.

    Aastra

    Установите внешний IP 3CX Phone System

    mwq1gd1u

    В разделе Advanced Settings > Global SIP перейдите в раздел Basic SIP Network Settings и установите в полях Proxy Server и Registrar Server внешний (Public) IP адрес сервера 3CX Phone System.

    Включите STUN

    m32vrsvj

    В разделе Advanced Settings > Network перейдите в раздел Advanced Network Settings и установите следующие параметры

    • STUN Server - stun.3cx.com
    • Rport (RFC3581) - Enabled

    Snom

    Установите внешний IP 3CX Phone System

    mrczlkv0

    В разделе Identity 1 перейдите в раздел Login Information и установите в поле Registrar внешний (Public) IP адрес сервера 3CX Phone System.

    Включите STUN

    g5rvffui

    В разделе Identity 1 перейдите в раздел NAT и установите

    • STUN server - stun.3cx.com
    • Keepalive interval - 15

    Yealink / Tiptel

    Установите внешний IP 3CX Phone System

    ch3trsqo

    В разделе Account выберите Account 1 и в разделе Basic установите следующие параметры

    • SIP Server – укажите внешний (Public) IP адрес сервера 3CX Phone System (212.213.214.215 в этом примере)
    • SIP Server Port - укажите внешний (Public) IP порт сервера 3CX Phone System (5060 в этом примере)
    • NAT Traversal - STUN
    • STUN Server - stun.3cx.com

    Установите дополнительные опции

    sw3rx1ig

    В разделе Account 1 выберите Advanced и установите следующие опции

    • UDP Keep-alive Message - Enabled
    • UDP Keep-alive Interval - 15
    • RPort - Enabled

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

    Одно из важных преимуществ 3CX Phone System - возможность добавлять собственные системные голосовые сообщения. Эти сообщения - просто набор звуковых файлов в формате wav и mp3, которые вы записываете в соответствующие директории на жестком диске сервера. 3CX затем использует файлы для проигрывания голосовых сообщений пользователю системы. Система "разговаривает" с вами, когда проверяет голосовую почту, создает конференцию, переводит вызов и т.д.

    Однако, по умолчанию, 3CX поставляется без русского системного меню, а использование английского меню не всегда приемлемо. Проблема была решена нашими российскими друзьями, компанией ICE Partners, создавшей высококачественное русское голосовое меню. Архив со звуковыми файлами можно загрузить отсюда.

    Рассмотрим процесс подключения русского голосового меню к 3CX.

    1. В интерфейсе 3CX зайдите в раздел Settings > System Prompts. Вверху нажмите кнопку Manage Promptsets, а затем Copy Promptsets и введите имя нового набора системных сообщений - Russian Prompts Set. Нажмите Ok дважды.

    2. Из папки Prompts архива с русским меню скопируйте все (7 штук) mp3 файлы в папку C:\Documents and Settings\All Users\Application Data\3CX\Data\Ivr\Prompts на сервере. Файлы будут иметь одинаковые имена - подтверждайте перезапись.

    3. Из папки Prompts\Sets\идентификатор_языка архива скопируйте все файлы в папку C:\Program Files\3CX PhoneSystem\Data\Ivr\Prompts\Sets\идентификатор_языка на сервере. Копируйте в папку, которая создана позже всех по времени. Файлы будут иметь одинаковые имена - подтверждайте перезапись.

    4. Снова зайдите в интерфейс 3CX, в раздел Settings > System Prompts и нажмите Manage Promptsets. Выберите Russiam Prompts Set, нажмите Set As Current Promptset и Ok.

    4. Протестируйте меню, проверив голосовую почту (номер 99).

    Получение факсов через VoIP провайдера в 3CX Phone System v.7.1

    В последнее время нередки случаи, когда телефонные линии подаются в компанию не по привычным аналоговым линиям, а по SIP протоколу. Вместе с голосом при этом возможна передача факсов. Некоторые, наиболее "продвинутые" провайдеры предоставляют услугу приема факсов по протоколу T.38.

    Для улучшения совместимости с такими VoIP провайдерами, 3CX выпустила специальный патч. Хотя этот патч не гарантирует совместимость абсолютно со всеми провайдерами, но большинство "правильно настроенных" провайдеров должны работать.

    После загрузки патча, следуйте приведенным инструкциям:

    1. Остановите сервисы 3CXPhonesystem и 3CXMediaserver
    2. Перейдите в папку C:\Program Files\3CX PhoneSystem\bin
    3. Переименуйте файл 3CXPhoneSystem.exe в 3CXPhoneSystem.old
    4. Переименуйте файл 3CXMediaServer.exe в 3CXMediaServer.old
    5. Из загруженного архива извлеките новые версии файлов 3CXPhoneSystem.exe и 3CXMediaServer.exe в папку C:\Program Files\3CX PhoneSystem\bin
       
    6. В консоли управления 3CX перейдите в раздел Settings -> Advanced и выберите Custom Parameters
    7. Убедитесь, что параметр FAXDIRECTSDP равен 1. Если этот параметр не указан, добавьте его. В поле описания можно указать "Изменяет поведение SDP согласования, если получатель - факс - Extension". Обратите внимание - параметр вводится заглавными буквами (чувствителен к регистру)! Нажмите Apply.
    8. Запустите сервисы 3CXPhonesystem и 3CXMediaserver
    9. Зайдите в настройку вашего VoIP провайдера и убедитесь, что установлены следующие параметры:
    • Supports Re-Invite выключено
    • Supports Replaces выключено
    • PBX Delivers Audio включено
       
    1. Настройте ваш DID номер, VoIP линию на Send fax to email of extension и укажите желаемый Extension (доп. номер)

    Правильная настройка отображения Caller ID в 3CX Phone System в картинках

    Данная статья будет посвящена правильной настройке отображения номера звонящего абонента (Caller ID) на экране телефонов или софтфонов в 3CX Phone System. Корректное отображение Caller ID – проблема, с которой сталкивается абсолютное большинство наших пользователей. Задача настройки отображения Caller ID распадается на три независимых этапа:

    • Настройка линии и шлюза для получения Caller ID от оператора телефонной связи
    • Настройка преобразования Caller ID в 3CX для приведения его к единому формату номера. Кроме удобства восприятия номера, это позволит сотруднику корректно перезванивать на этот номер. То есть, перезвон на этот номер пойдет через соответствующее исходящее правило.
    • Настройка отображения имени и фамилии звонящего абонента

    Настройка линии и шлюза

    Прежде всего необходимо сказать, что все VoIP операторы и все SIP GSM шлюзы передают Caller ID в обязательном порядке, так что здесь проблем возникнуть не должно. Другое дело – аналоговые линии. Для включения Caller ID на аналоговой линии необходимо:

    • перевести линию в тоновый набор
    • заказать услугу Caller ID у вашего телефонного оператора. Внимание! Некоторые операторы могут активировать две услуги – АОН (автоматический определитель номера) и Caller ID. Вам нужна только Caller ID!

    После того, как выполнены указанные действия, подключите любой телефон с экраном непосредственно к линии, включите в телефоне распознавание Caller ID (см. инструкцию к телефону) и позвоните на эту линию. Телефон должен отобразить номер звонящего. Если этого не произошло, услуга Caller ID у вас не работает и вам следует продолжить тестирование с оператором.

    Теперь настроим аналоговые шлюзы. Для начала нужно знать, что тип передачи Caller ID у разных операторов отличается. Так, для Укртелекома можно порекомендовать тип ETSI-FSK prior to ringing with RP, а для Vega Telecom ETSI-DTMF prior to ringing with RP. Замечу, что это всего лишь рекомендации, и в вашем конкретном случае тип может отличаться. Рекомендованные параметры могут служить начальной точкой для экспериментов по определению типа Caller ID. Однако обратите внимание, что тип всегда имеет стандарт ESTI (European Telecommunications Standards Institute). Еще один весьма важный параметр – количество сигналов (гудков) после которого FXO порт шлюза ответит на вызов (снимет трубку). Количество гудков должно быть от одного до трех (чем меньше, тем лучше) – именно столько нужно, чтобы шлюз успел “поймать” Caller ID абонента.

    Приведу примеры настроек определения Caller ID для некоторых шлюзов.

    D-link DVG серия

    image

    image

    Grandstream HT 503

    image

    Grandstream GXW 41XX серия

    image

    Настройка преобразования Caller ID в 3CX Phone System

    После того как Caller ID успешно распознался шлюзом, он передается в 3CX. Проблема заключается в том, что разные телефонные операторы передают номер немного по разному. Лучше всего показать это на примере.

    Номер Киевстар +380679586868.

    • GSM шлюзы его передают как есть, т.е. +380679586868
    • VoIP провайдеры могут передать его как 679586868
    • Аналоговые ГАТС могут передать его как 380679586868 (без плюса) или как 0679586868.

    Номер Укртелеком +380567265545 (код города 56 – Днепропетровск)

    • GSM шлюзы его передают как есть, т.е. +380567265545, однако, если мы физически расположены в Днепропетровске, весьма желательно перезванивать на этот номер без кода страны и без кода города, т.е. на 7265545
    • VoIP провайдеры могут передать его как 567265545, однако, если мы физически расположены в Днепропетровске, весьма желательно перезванивать на этот номер без кода города, т.е. на 7265545
    • Аналоговые ГАТС могут передать его как 380567265545 (без плюса) или как 0567265545. Аналогично, необходимо привести номер к локальному формату.

    image

    Прежде всего, укажем 3CX Phone System код страны и код города, в которых мы физически находимся.

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

    Например, в номере +380 – 56 – 7265545 нужно удалить +380 и 56, в том случае, если они окажутся в набираемом или принимаемом номере. Таким образом, на выходе окажется локальный городской номер 7265545.

    image

    Настройки в 3CX делаются в разделе Настройки > Дополнительно.

    image

    Описанные выше настройки неоходимы и достаточны в двух случаях:

    • Все операторы передают Caller ID (номер абонента) в одинаковом формате E.164 (+код_страны_код_города_локальный_номер). Однако, как было сказано, это далеко не всегда так. Из-за этого возникают сложности, когда мы хотим перезвонить на этот номер.
    • Все номера абонентов заранее заведены в некоей адресной книге, например в контактах Outlook, и все они заведены в едином формате E.164.

    image 

    Чтобы привести входящий Caller ID к нужному виду, который бы соответствовал принятым у нас исходящим правилам, нужно указать 3CX маску номера, то есть, указать, где именно в номере находится префикс, код страны, код города и длину локального номера. Для этого в свойствах конкретной линии конкретного оператора включим галочку Изменить формат Caller ID, хотя правильнее было бы сказать Задать формат Caller ID для данного оператора.

    image

    Что происходит, когда размеченный таким образом Caller ID приходит на 3CX? Он также обрабатывается по правилам номеров E.164! То есть, в нашем случае, от номера +380679586868 отрезается префикс +, код страны 380, и код города, если он совпадает с кодом Caller ID!

    image

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

     SNAGHTML8b81e75

    Для этого воспользуемся расширенными опциями 3CX. В разделе Дополнительно > Пользовательские параметры найдем параметр EXT_REFMT_NATL_PREFIX и присвоим ему значение 0.

    image

    Этот параметр добавляет 0 к преобразованному Caller ID перед передачей его на телефон пользователя. Обратите внимание, что 0 прибавляется только, если номер передается в национальном формате (67), но не в локальном!

    Сравните

    image

    с

    image

    Настройка отображения имени и фамилии звонящего абонента

    В последних версиях 3CX Phone System появилась возможность сопоставлять полученный номер абонента (Caller ID) с корпоративной или личной адресной книгой 3CX. Для этого, прежде всего, адресная книга должна быть заполнена вручную, либо данные абонентов должны быть импортированы.

    image

    Кроме это, саму опцию сверки Caller ID с адресной книгой нужно активировать в 3CXв разделе Настройки > Основные > Общие настройки. При этом нужно указать количество цифр с конца номера, которые 3CX будет использовать для однозначного сопоставления имени и фамилии абонента. Я рекомендую использовать 9 цифр (7 цифр – локальный номер + 2 цифры – код оператора или города).

    image

    Надеюсь, что после этих комиксов, вопросов с передачей и отображением номера звонящего абонента будет существенно меньше!

    Примерные требования к "железу" для 3CX сервера

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

    Требования к конфигурации сервера в зависимости от режима работы и нагрузки
    Режим работы

    Количество одновременных вызовов

    Рекомендуемая конфигурация

    Режим сигнализации (By-pass mode)  до 64 Pentium IV 1,5GHz/512Mb RAM/10 Gb SCSI HDD
    64-128 Pentium IV 1,5GHz/1Gb RAM/10 Gb SCSI HDD
    128-256 Pentium IV 2,6GHz/1,5Gb RAM/10 Gb SCSI HDD
    256-512 Pentium IV 2,6GHz/2Gb RAM/10 Gb SCSI HDD
    512-1024 Dual Pentium IV 2,6GHz/4Gb RAM/20 Gb SCSI HDD
    Режим прокси (Proxy mode / PBX Deliver Audio), кодек G.711 PCMU до 64 Pentium IV 2,6GHz/1Gb RAM/10 Gb SCSI HDD
    64-128 Pentium IV 2,6GHz/2Gb RAM/10 Gb SCSI HDD
    128-256 Pentium IV 2,6 GHz/4Gb RAM/10 Gb SCSI HDD
    256-512 Xeon 3 GHz/4Gb RAM/20 Gb SCSI HDD*
    512-1024 Dual Xeon 3 GHz/4Gb RAM/20 Gb SCSI HDD*

    * Для конфигурации с количеством вызовов свыше 256 в режиме прокси рекомендуется использование сетевого адаптера 1Gb Ethernet. 

    Простой поиск в архиве записанных разговоров

    Как известно, в 3CX Phone System возможна запись всех разговоров на указанном доп. номере (Extension). Файлы записей создаются в папке C:\Documents and Settings\All Users\Application Data\3CX\Data\Recordings и имеют расширение .wav. Имя каждого файла формируется по маске

    DisplayName_Ext_DialedNum_YearMonthDayHourMinuteSecond.wav, где

    DisplayName - имя звонящего

    Ext - доп. номер звонящего

    DialedNum - набранный номер

    YearMonthDayHourMinuteSecond - год, месяц, день, час, минута. секунда вызова.

    Таким образом, в имени файла заложена вся служебная информация о вызове. Но, к сожалению, текущая версия 3CX не предоставляет удобного механизма поиска в архиве записей. Конечно, можно вручную перебирать файлы в поисках нужного разговора. Но гораздо проще воспользоваться специальным ПО. Задача такой программы - быстро находить нужные файлы по части (маске) имени.

    Для решения задачи быстрого поиска файла по части его имени рекомендуем воспользоваться бесплатной утилитой Instant File Name Search.

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

    Итак:

    1. Установите программу, и, нажав в главном окне ссылку Databases, выберите папку, в которой программа будет индексировать файлы. Имя папки, в нашем случае, C:\Documents and Settings\All Users\Application Data\3CX\Data\Recordings. Также укажите опцию Full Path, чтобы программа искала и в подпапках. Опцию Find Folders отключите.

    Внимание! Добавляйте папку только нажав кнопку Add drive or folder... Не вписывайте путь вручную! Иначе программа будет добавлять ненужные символы, как показано на рисунке!

    2. Установите тип файлов, которые следует искать. Затем, нажмите Save DB и укажите имя файла базы данных поискового индекса. Я указал recordings.idb

    3. Нажмите кнопку Rescan в главном окне. После этого нажмите кнопку с тремя точками возле поля для поиска и введите поисковые параметры, например, внутренний номер и время дату разговора. Нажмите OK и Search. Программа выдаст результаты поиска в виде списка файлов. Обязательно пользуйтесь логическими операторами OR или AND для уточнения поиска. 

    4. Рекомендую скрыть ненужные столбцы в окне выдачи результатов. Также, нажав кнопку Options, вы можете установить параметры автозапуска программы.

    Успехов!

    Решение проблем с подключением удаленных пользователей

    К нам периодически поступают обращения о некорректной работе удаленных пользователей, подключенных к 3CX Phone System через корпоративный NAT роутер или сетевой экран. В связи с этим, мы предлагаем пошаговое руководство по решению проблем с удаленными подключениями.

    К сожалению, 3CX не может гарантировать корректную работу “прямых” удаленных подключений без использования технологии 3CX Tunnel или 3CX Tunnel Proxy.

    Корректная работа не гарантируется по следующим причинам:

    • Специфическая либо некорректная топология сети
    • Специфические либо некорректные настройки роутера или сетевого экрана как со стороны 3CX Phone System, так и со стороны удаленного пользователя
    • Некорректная работа NAT или SIP ALG сервисов в сетевых устройствах (иногда устраняется обновлением прошивки)
    • Блокирование определенных портов интернет провайдерами
    • Отсутствие доступа VoIP специалиста к сетевому оборудованию, т.е. невозможность настроить сеть заказчика для работы VoIP приложений

    Разрешение удаленного подключения для пользователя

    В консоли 3CX перейдите в свойства Extension на вкладку Other.

     Troubleshooting a Direct Remote Extension

    • Для того, чтобы разрешить “прямое” удаленное подключение, снимите галочку Disallow use of extension outside the LAN
    • Для того, чтобы разрешить удаленное подключение через 3CX Tunnel или 3CX Tunnel Proxy, снимите галочку Block Remote Tunnel Connections

    Публикация сервисов 3CX (проброс портов) на роутере

    Прежде всего заметим, что чем проще топология вашей сети, чем меньше промежуточных устройств между сервером 3CX Phone System и WAN интерфейсом роутера, на который подключаются внешние пользователи, тем больше шансов на успех. Вы можете даже не подозревать, что Интернет провайдер выдал вам не “белый” IP адрес на WAN интерфейс, а “серый” IP из своей внутренней сети. Особенно часто это наблюдается в бизнес центрах, где Интернет раздают по внутренней локальной сети.

    Для корректного подключения внешних пользователей, а также для прохождения аудио и видеопотока он них, на роутере должны быть опубликованы (проброшены на IP адрес сервера 3CX Phone System) следующие порты:

    • 5060 UDP – SIP 3CX Phone System
    • 9000-9004 UDP - RTP Аудио / Видео поток с удаленным пользователем
    • 5090 UDP и TCP  - 3CX Tunnel Protocol Service (сервис 3CX Tunnel)

    Полезные ссылки

    Выбор интернет маршрутизатора (роутера) для 3CX Phone System

    Ports used by 3CX Phone System

    Why does 3CX require static port mappings (Full Cone NAT)?

    Использование удаленных SIP устройств с механизмами работы через NAT

    Настоятельно советуем использовать рекомендованные 3CX телефоны, которые корректно поддерживают следующие функции

    • Rport
    • STUN
    • Keep – Alive 

    В данный момент 3CX рекомендует следующие SIP телефоны

    • Все телефоны Yealink
    • Все телефоны Grandstream
    • Все телефоны Cisco Small Business (SPA Series)
    • Все телефоны Polycom

    Подключите один из рекомендованных телефонов удаленно и убедитесь, что он зарегистрировался на 3CX. Сделайте звонок на 3CX эхо-тест *777. Если вызов не проходит, либо слышимость односторонняя, попробуйте подключиться еще раз, но с использованием 3CX Tunnel или 3CX Tunnel Proxy. Если при этом слышимость будет нормальная, проблема в вашем пограничном роутере, и вам следует вернуться к его настройке (обновить прошивку, убедиться в правильности настройки проброса портов, связаться с техподдержкой производителя и т.п.)

    Полезные ссылки

    Подключение внешних телефонов к 3CX Phone System

    Configuring a Direct Remote Extension

    Использование 3CX Tunnel и 3CX Tunnel Proxy

    Если вы затрудняетесь определить причину некорректной регистрации удаленного абонента, либо не можете добиться двухсторонней слышимости, рекомендуем отказаться от “прямого” подключения и использовать технологию 3CX Tunnel. 3CX Tunnel встроен в 3CX Phone for Windows / Android / iPhone. Если вам нужно подключить аппаратный телефон или группу телефонов, рекомендуем установить 3CX Tunnel Proxy.

    Полезные ссылки

    Configuring 3CXPhone for an IP PBX

    Using the 3CX SIP Proxy Manager

    Настройка SIP Tunnel Proxy

    Использование Firewall Checker

    Если вам все же необходимо добиться корректной работы “прямого” подключения, рекомендуем запустить 3CX Firewall Checker из консоли управления 3CX. Основная задача этой утилиты – определить, правильно ли настроен статический проброс портов на сервер 3CX Phone System. Использование 3CX Firewall Checker может “дать подсказку” в следующих ситуациях:

    • Удаленный абонент не регистрируется
    • Односторонний звук с удаленным абонентом
    • Проблемы с сервером STUN

    Коды ошибок 3CX Firewall Checker позволят вам примерно понять, где искать источник проблем.

    Полезные ссылки

    What is the firewall checker and why do I need it?

    Роутеры с SIP ALG и SIP Helper

    Некоторые роутеры имеют функцию (“галочку”), называемую SIP ALG или SIP Helper. SIP ALG модифицирует заголовок SIP пакета для корректной NAT / PAT трансляции. Однако, с развитием стандарта SIP появились более надежные механизмы преодоления NAT, например, SIP поле Rport в заголовке VIA. Все телефоны, рекомендованные 3CX, поддерживают поле Rport. C другой стороны, функция роутера SIP ALG может нежелательно модифицировать заголовок SIP VIA, исказив данные, установленные расширением Rport. Поэтому, мы рекомендуем отключить опцию SIP ALG или SIP Helper, если таковая присутствует в вашем роутере.

    Полезные ссылки

    Router Configuration for 3CX PhoneSystem

    Пользовательский параметр “ALLOWSOURCEASOUTBOUND”

    Пользовательский параметр ALLOWSOURCEASOUTBOUND устанавливается в консоли управления 3CX > Settings > Advanced > Custom Parameters. По умолчанию он равен 0 (выключен). Если его установить равным 1 (включен), 3CX Phone System будет использовать для регистрации удаленного телефона IP адрес и порт из IP заголовка пакета (сетевой уровень), а не из поля Contact заголовка пакета SIP (уровень приложений). 3CX Media Server также будет использовать данные IP заголовка RTP (входящий медиапоток) пакета для выяснения адреса, на который следует отсылать исходящий медиапоток. 

    Указанный параметр рекомендуется установить, если имеются следующие проблемы:

    • Удаленный абонент за двойным или тройным NAT
    • Удаленный абонент не поддерживает расширение Rport
    • Удаленный абонент передает некорректную информацию о регистрации из-за ошибок в своем SIP стеке
    • Удаленный абонент подключен в своей сети через NAT роутер с включенным SIP ALG. Этот роутер некорректно модифицирует информацию в SIP заголовке. При этом вы не имеете доступа у удаленному роутеру.

    Разнесение SIP портов в удаленных устройствах

    Если несколько удаленных устройств подключаются из одной сети (LAN), и все вышеописанные методы не приводят к успешной регистрации этих устройств, можно попробовать на каждом таком устройстве назначить свой, неповторяющийся SIP порт. Например, на первом устройстве (телефоне, шлюзе и т.п.) установите SIP порт 5060, на втором 5062, на третьем 5064 и т.д. В некоторых случаях после этого устройства успешно зарегистрируются на сервере 3CX.

    Заключение

    Подводя итог, еще раз обратим ваше внимание на особенности работы 3CX Phone System с удаленными подключениями.

    • Если удаленный абонент не подключился, либо от него не проходит звук – это не проблема 3CX Phone System, это проблема сетевой инфраструктуры, в частности, WAN – LAN роутера
    • Старайтесь максимально упростить инфраструктуру и исключить двойное и тройное NAT преобразование
    • Используйте рекомендованные, проверенные роутеры и рекомендованное 3CX SIP оборудование
    • Установите самые последние сервиспаки на 3CX и самые последние прошивки на роутеры и SIP устройства
    • По возможности используйте 3CX Tunnel, который используется во всех софтфонах 3CX, либо 3CX Tunnel Proxy для удаленного подключения стандартных SIP телефонов

    Повторим: 3CX гарантирует корректную работу удаленных абонентов только при условии использования технологии 3CX Tunnel. Во всех остальных случаях, в связи со множеством влияющих факторов, гарантировать корректное подключение невозможно!

    Системные события 3CX Phone System

    dvh1flsb3CX Phone System фиксирует ряд системных событий и помещает записи о них в Windows Event Log и 3CX Server Event Log, просмотреть который можно в консоли управления 3CX. Эти события используются совместно с событиями 3CX Server Activity Log (события SIP протокола) для решения различных проблем в работе телефонной системы.

    Список событий 3CX Server Event Log 

     

     

     

    ID события Текст события Комментарии
    102   Одна из очередей вызовов инициировала call back
    2013   Заканчивается место на диске (только для Windows Server)
    4097 Service started Сервис запущен
    4098 Service got signal to stop: %1 Сервис останавливается
    4099 Emergency number (%1) is dialed from %2 Набран номер экстренной службы
    4100 Trunk %1 has changed status to %2 Изменился статус регистрации транка
    4101 Extension %1 is %2%3 Изменился статус регистрации внутреннего номера (Extension)
    8193 License limit is reached, active calls: %1 Получен входящий вызов, который не может быть обработан, поскольку превышено количество одновременных вызовов для данной лицензии
    12289 Device %1 had no available outgoing trunk(s) for Call(%2) Исходящий вызов не прошел через транк, т.к. на транке превышено максимальное количество одновременных вызовов (которое задается в свойствах транка)
    12290 The IP %1 has been blacklisted for %2 sec. Reason: %3 IP адрес попал в черный сисок
    12291 SIP request (%1) from %2 was rejected. Reason: %3. Message: %4  
    12292 The IP %1 has been blacklisted for %2 sec. Reason: requests rate is too high! Запрос был отклонен или блокирован модулем Anti-Hacking module – это говорит о проблемах с безопасностью сервера 3CX
    12293 Registration at %1 has failed. Destination (%2) is not reachable, DNS error resolving FQDN, or service is not available. Проблема с разрешением DNS имени VoIP провайдера, либо с самим провайдером
    12294 Call to %1 has failed. %2 replied: %3 Система, на которую направлялся вызов, ответила с кодом ошибки (service unavailable, user not found, insufficient credit, account disabled). Следует связаться с администратором этой системы или VoIP провайдера.
    12295 STUN server %1:%2 could not be reached%3 It could be that the STUN server you are using is down or a network problem is preventing STUN resolutions. This might cause problems if you use VoIP Providers. STUN разрешение не удалось, истекло по времени, и отсутствуют резервные STUN серверы. Проверьте работу STUN сервера
    12296 Call from [%2] to [%1] has been rejected by the 3CX Country Blocking Feature [%3]. Reason: %2 contains Prefix %3. Calls to %3 are not allowed by system. Resolution: To allow this call access the 3CX Management Console, Settings, General, and enable the country or continent that matches this prefix. Исходящий вызов отклонен, поскольку набранный код страны отсутствует в списке разрешенных кодов стран

    Соединяем 3CX Phone System с другими АТС по протоколу SIP

    У наших заказчиков периодически возникает необходимость объединить существующую телефонную инфраструктуру c новой системой 3CX Phone System. Такое объединение, безусловно, следует считать компромиссным вариантом, т.к. усложняет обслуживание системы для администраторов и создает некоторые неудобства для пользователей. Так, администратору теперь нужно одновременно обслуживать две различные системы. Пользователи, которые подключены к сторонней АТС лишены многих преимуществ, которые предоставляет SIP АТС 3CX Phone System. Другая проблема, с которой можно столкнуться при объединении, – необходимость покупки дорогостоящих SIP плат для старой АТС. Разумеется, старая АТС должна поддерживать возможность установки плат SIP протокола. Например, все современные АТС Panasonic поддерживают установку SIP интерфейса, а в некоторых моделях он уже встроен. Возможно, вам придется вызывать дорогостоящего специалиста от вендора старой АТС, чтобы он смог ее правильно настроить для работы с SIP.  

    Если говорить о сторонней программной (а не аппаратной) АТС, например, Asterisk, либо аппаратных решениях на основе Asterisk, то тут задача несколько упрощается, т.к. ничего докупать не нужно. Однако нам кажется бессмысленным держать часть компании на Asterisk, а часть на 3CX.

    Итак, допустим, что у вас установлена старая АТС с SIP платой, которой присвоен IP адрес 192.168.0.10. АТС 3CX Phone System установлена в этой же сети и имеет адрес 192.168.0.9. Номерной пул на старой АТС 300-399, а на 3CX 200-299.

    Допустим также, что пользователь с номером 201 хочет напрямую вызывать пользователя 301 и наоборот. Для этого нужно, чтобы обе АТС могли беспрепятственно и корректно обрабатывать запросы INVITE

    • 3CX должна маршрутизировать к “своему” пользователю запрос INVITE 201@192.168.0.9 и отсылать к “чужому” пользователю запрос INVITE 301@192.168.0.10
    • Другая АТС должна маршрутизировать к “своему” пользователю запрос INVITE 301@192.168.0.10 и отсылать к пользователю 3CX запрос INVITE 201@192.168.0.9

    image

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

    Рассмотрим настройку 3CX Phone System.

    Убедитесь, что SIP домен указан правильно

    image

    SIP домен (в простейшем случае) должен соответствовать IP адресу 3CX Phone System. В нашем случае – это 192.168.0.9.

    Создайте SIP транк на стороннюю АТС

    Если сторонняя АТС требует авторизации с логином и паролем, следует создавать Generic SIP Provider, а если авторизация только IP адресу сервера 3CX Phone System – создавайте Generic SIP Trunk. В целом, процедура напоминает подключение внешнего SIP провайдера к 3CX Phone System, однако имеет некоторые важные отличия.

    SNAGHTML29d22f8

    В настройках транка укажите IP адрес сторонней АТС, в нашем случае 192.168.0.10.

    image

    В качестве внешнего номера (External Number) и Authentication ID рекомендуем указать первый номер из пула номеров, обслуживаемых данной АТС 3CX, в нашем случае, 200. Maximum simultaneous calls должно быть не менее максимального количества одновременных вызовов между 3CX и сторонней АТС. Его можно поставить равным количеству одновременных вызовов в вашей лицензии 3CX.

    image

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

    image

    В исходящем правиле можно просто указать, что все номера, начинающиеся с 3 и длиной 3 цифры, должны маршрутизироваться на стороннюю АТС. Другой вариант правила - явно перечислить номера сторонней АТС в поле Call to numbers starting with (Prefix) вот так: 300-399.

    image 

    Теперь исходящие вызовы от 3CX на стороннюю АТС будут маршрутизироваться корректно. Как они затем будут обработаны сторонней АТС – вопрос отдельный, который, как было сказано, требует знания процесса настройки этой АТС.

    Настройте в 3CX Phone System идентификацию входящих вызовов от сторонней АТС

    SIP АТС 3CX Phone System обрабатывает только те вызовы, которые направлены для нее. Для этого она проверяет номер линии, на которую был сделан вызов и имя SIP домена, на который был сделан вызов. Номер линии должен быть явно прописан в свойствах SIP транка, то есть, 3CX должна ожидать вызов именно на этот, явно указанный номер.

    Например, чтобы принять "снаружи” вызов INVITE 201@192.168.0.9, номер 201 должен быть указана как внешний номер в 3CX. Кроме того, этот запрос должен прийти на SIP домен, обслуживаемый 3CX, т.е. 192.168.0.9. И наконец, сам запрос может прийти только с IP адреса, явно указанного с настройках SIP транка, т.е. с 192.168.0.10. Только если обеспечиваются все эти три условия, 3CX берет этот вызов “в обработку” и маршрутизирует абоненту.

    Укажите диапазон внутренних номеров (Extensions) 3CX , как диапазон номеров внешних линий (DID) 3CX.

    image

    Нажмите Add и OK.

    image

    Затем, зайдите в раздел Source ID и укажите, что именно вызовам на эти номера должна доверять 3CX Phone System.

    image

    Нажмите дважды OK.

    Настройка входящих правил для прямого вызова на внутренний номер

    Как было сказано, нас совершенно не устраивает ситуация, при которой все вызовы от сторонней АТС приходят на единственный номер 200. Обойти это ограничение помогут настроенные входящие правила.

    В разделе Inbound Rules видно, что система уже создала для нас множество входящих правил, однако их просто следует донастроить. Первое входящее правило, кстати, настроено правильно. Тут вызовы на “внешний” номер 200 направляются также на внутренний номер 200.

    image

    А вот остальные правила нужно настроить вручную – указать правильное соответствие между “внешним” и внутренним номером. Разумеется, исправления необходимо сделать для всех внутренних номеров.

    image

    Отображение номера звонящего абонента Caller ID на сторонней АТС

    Для того, чтобы у абонента на сторонней АТС отображался внутренний номер 3CX (Extension), следует явно указать его для каждого Extension 3CX Phone System. Иными словами, следует указать Caller ID.

     SNAGHTML2deaa03

    Наряду с номером, в качестве Caller ID можно указать и текстовые имя и фамилию пользователя, чтобы они отображались на сторонней АТС. Однако не все сторонние АТС поддерживают такой текстовый Caller ID. 

    Заключение

    Описанный процесс может показаться несколько рутинным, особенно на этапе задания соответствия внешних и внутренних номеров, и прописывания Caller ID, однако пройдя его, вы получите сквозную маршрутизацию вызовов между SIP АТС 3CX Phone System и практически любой сторонней SIP АТС, либо АТС с поддержкой SIP интерфейса.

    Ваши отзывы приветствуются!

    Телефонные коды мобильных операторов Украины

    21wv0txfВсем настройщикам VoIP GSM шлюзов Portech посвящается… :-)

    • 039 xxx xx xx - Golden Telecom
    • 050 xxx xx xx - МТС
    • 063 xxx xx xx - life:)
    • 066 xxx xx xx - МТС
    • 067 xxx xx xx - Киевстар
    • 068 xxx xx xx - Beeline
    • 091 xxx xx xx - Utel
    • 092 xxx xx xx - PEOPLEnet
    • 093 xxx xx xx - life:)
    • 094 xxx xx xx - Интертелеком
    • 095 xxx xx xx - МТС
    • 096 xxx xx xx - Киевстар
    • 097 xxx xx xx - Киевстар
      • 097 0xx xx xx
      • 097 1xx xx xx
      • 097 2xx xx xx
      • 097 3xx xx xx
      • 097 4xx xx xx
      • 097 5xx xx xx
      • 097 6xx xx xx
      • 097 7xx xx xx
      • 097 8xx xx xx
      • 097 9xx xx xx
    • 098 xxx xx xx - Киевстар
      • 098 0xx xx xx
      • 098 1xx xx xx
      • 098 2xx xx xx
      • 098 3xx xx xx
      • 098 4xx xx xx
      • 098 5xx xx xx
      • 098 6xx xx xx
      • 098 7xx xx xx
      • 098 8xx xx xx
      • 098 9xx xx xx
    • 099 xxx xx xx - МТС
      • 099 0xx xx xx
      • 099 1xx xx xx
      • 099 2xx xx xx
      • 099 3xx xx xx
      • 099 4xx xx xx
      • 099 5xx xx xx
      • 099 6xx xx xx
      • 099 7xx xx xx
      • 099 8xx xx xx
      • 099 9xx xx xx

       

    Тестирование производительности 3CX Phone System

    На выходных в нашей тестовой лаборатории прошло тестирование производительности 3CX Phone System в рабочих условиях, приближенным к естественным. Главная цель теста заключалась в определении реальной нагрузки, которую VoIP АТС оказывает на процессор и ОЗУ сервера.

    Прежде всего, оказалось, что во многих случаях необходимости в выделенном сервере нет! Современный сервер начального уровня с запасом выдерживает нагрузку системы 3CX и остальных базовых сервисов сети. Согласитесь, это серьезное преимущество перед VoIP АТС на Linux - заказчик экономит на стоимости сервера, электроэнергии и труде сисадмина.

    Мы установили систему Small Business Server 2003 R2 на ПК следующей конфигурации:

    • ЦПУ - Intel Core 2 Duo, E 4500 @ 2.20 GHz
    • ОЗУ - 4 Gb
    • Диск - 50 Gb, SATA
    • Сеть - 100 Mbps

    На сервере были запущены IIS, Exchange Server и Active Directory. Также мы запустили Exchange Load simulator для симуляции 25 "тяжелых" пользователей Exchange (отправка почты, планирование, сортировка Входящих и т.п.) 

    Затем мы установили 3CX Phone System V7.1.6591, выбрав в качестве веб - сервера Cassini. Cassini предпочтителен потому, что он работает автономно, и никак не влияет на имеющуюся инсталляцию IIS со сложной конфигурацией (OWA, Sharepoint и другие сервисы Small Business Server). 

    Используя специальное ПО, симулирующее звонки на 3CX Phone System, мы симулировали 16 одновременных вызовов. Мы выбрали частоту вызовов 0.5 вызова в секунду, что соответствует 2000 вызовов в час. Хочу заметить, что 16 параллельных вызовов соответствуют примерно 40 - 50 пользователям системы (добавочным номерам).  

    Общая загрузка ЦП сервера всеми сервисами 3CX во время теста была менее 15%.

    Общая загрузка ОЗУ сервера всеми сервисами 3CX была примерно 300 мегабайт, при том, что сервис Cassini потребляет 100 мегабайт.

    Общая загрузка ЦП сервера всеми сервисами Exchange была не более 10%.

    Вывод: Пиковая загрузка ЦП сервера на протяжении теста была не более 30%, а средняя - значительно ниже. 

    Сравните этот показатель с КПД (полезные действия / количество ресурсов) альтернативных программных VoIP АТС!

    Устанавливаем интернет - радио в качестве фоновой музыки (Music On Hold)

    3CX - система, целиком построенная на сетевых технологиях. Поэтому логично использовать одну из этих технологий для улучшения "потребительских свойств" мини АТС. Речь пойдет об интернет-радио.

    Давайте разнообразим фоновую музыку 3CX, указав в качестве источника звука нашу любимую станцию. Вначале следует получить прямую ссылку на медиа-поток радиостанции. Обычно для этого достаточно щелкнуть правой кнопкой мыши на встроенном в веб-страницу медиаплеере и выбрать Свойства, а затем скопировать ссылку, начинающуюся с mms://. Делать процедуру рекомендуется в Internet Explorer.

    Скопированную ссылку просто вставьте в поле для ввода имени файла для фоновой музыки в консоли 3CX, раздел General. Живой звук на проводе обеспечен!

    Внимание! По нашим наблюдениям, вышеописанный метод приводит к некоторому замедлению реакции 3CX на входящие и исходящие вызовы. Это связано с тем, что 3CX всякий раз кеширует медиа-поток перед проигрыванием его пользователю. Поэтому рекомендуется протестировать вашу конкретную систему перед окончательным использованием этой технологии. Быстрый интернет канал - must have!

     

    Установка 3CX MyPhone Desktop Components с помощью групповых политик домена Windows Domain Group Policy

    qqdtgzbwВ этой статье мы рассмотрим процесс развертывания модуля 3CX MyPhone Desktop Components, который требуется для интеграции приложения MyPhone с настольными приложениями Windows (Outlook и т.п.).

    Следует заметить, что для работы 3CX MyPhone этот модуль не является обязательным, но после его установки появляется много полезных опций, которые оценят большинство пользователей.

    Покажем процесс автоматического развертывания модуля на примере Group Policy Management Console в английской версии Windows Server 2008.

    Мы рекомендуем предварительно ознакомиться с основами Windows Domain Group Policy и иметь минимальные навыки работы с этой технологией.

    Системные требования

    На каждом компьютере, на котором планируется установка 3CXMyPhoneDesktopComponents.exe, должно быть установлено следующее программное обеспечение для вашей языковой версии Windows.

    • Windows installer 4.5 или выше
    • Microsoft .NET Framework 4 Extended (полный пакет)
    • Microsoft Silverlight
    • Visual Studio Tools for Office 2003/2007/2010. Дополнительная информация об инсталляции VSTO содержится в разделе Установка VSTO ниже
    • Компьютер должен входить в домен Windows

      Создание Group Policy

      1. Создание общей папки в сети.

      jfa1y24u

      Создайте папку, доступную всем компьютерам в сети. В разделе Properties > Sharing кликните Share… и дайте группе Everyone право на чтение. В этой сетевой папке создайте еще одну папку с названием Desktop Components.

      2. Подготовка MSI файлов

      iyqiabov

      Загрузите MSI файлы для x64 и x86 версий Windows и поместите их в созданную ранее папку Desktop Components.

      3CX MyPhone Desktop Components X64
      3CX MyPhone Desktop Components X86

      В данном примере файлы будут размещены в сетевой папке \\dc08\ClientBin\Desktop Components

      3. Подготовка организационных юнитов (OU) и групповых политик (GPO)

      k0r1p2mj

    • На контроллере домена зайдите в Administrative Tools > Group Policy Management. В данном примере клиентские компьютеры разделены на два организационных юнита (OU)  x86 и x64.

    • Кликните правой кнопкой мыши Group Policy Objects и выберите New. Появится окно настройки GPO. Введите 3CX Desktop Components x86 в поле Name. Это будет GPO для 32 разрядных версий Windows.

    • Создайте другой GPO 3CX Desktop Components x64 для 64 битных версий Windows.

    • Кликните правой кнопкой на каждом созданном GPO и выберите Edit. Появится консоль Group Policy Management Editor.

    • Перейдите в Computer Configuration > Policies > Software Settings > Software installations. Кликните правой кнопкой мыши Software Installations и выберите New > Package.

    • Введите UNC путь к сетевой папке, которую вы создали выше, и выберите нужный MSI пакет для развертывания через GPO.

    • Появится запрос Deployment method. Выберите метод распространения Assigned.

      0fz0tjr5

    • Описанную  в последних шагах процедуру следует выполнить дважды – для 32 и 64 разрядных версий Windows. После этого закройте Group Policy Management Editor.

      4. Привязывание GPO к OU

      t2u5ihsz

      Выберите Administrative Tools > Group Policy Management > Expand Domain Computer, кликните правой кнопкой мыши на каждом OU и выберите Link an Existing GPO. Выберите соответствующий GPO для привязки к OU.

      Тестирование Group Policy

      Для тестирования созданных групповых политик войдите на клиентский компьютер, подключенный к домену, откройте Сommand prompt и наберите gpupdate /force. Появится сообщение об ошибке, говорящее о необходимости перезагрузки для применения групповой политики. Нажмите Y для перезагрузки.

      t0zqlmic

      После перезагрузки Windows и выполнения входа, появится сообщение об установке 3CX Desktop Components.

      Обновление 3CX Desktop Components средствами GPO

      1. Создание GPO для обновления

      Вы можете не только устанавливать, но и обновлять 3CX Desktop Components через групповые политики. Рекомендуется удалять, а затем делать чистую инсталляцию модуля 3CX MyPhone Desktop Components после каждого выхода пакета обновлений 3CX (3CX Service Pack). 

      Выпуская Service Pack, 3CX также публикует ссылки на загрузку свежих версий 3CX MyPhone Desktop Components для 32 и 64 разрядных платформ, которые и будут распространяться через GPO. Загрузите обе версии модуля и скопируйте в созданную ранее сетевую папку. В Group Policy Management Editor зайдите в Computer Configuration > Policies > Software Settings > Software installations, кликните правой кнопкой мыши на Software Installations и выберите New > Package. Укажите UNC путь к сетевой папке и метод распространения Assigned.

      zsacfdtx

      Теперь у вас будут два GPO – один бывший, для установленной версии, а второй для новой.

      2. Настройка новой GPO и обновление старой версии 3CX MyPhone Desktop Components

      2qzxexas

    • Кликните правой кнопкой мыши на новом GPO и выберите Properties
    • Выберите раздел Upgrades и нажмите кнопку Add…
    • Выберите опцию Current Group Policy Object (GPO)
    • GPO определит, что планируется обновление текущей версии и покажет название планируемого обновления.
    • Выберите опцию Uninstall the existing package, then install the upgrade package и нажмите OK.
    • Иконка нового GPO должна измениться и показывать зеленую стрелку вверх. Это означает, что GPO с обновлением готов к работе

      35cpvx40

      Тестирование обновления

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

      2svn50p5

      Установка Visual Studio Tools for Office

      VSTO – Visual Studio Tools for Office необходимы для работы плагина Microsoft Outlook, который поставляется вместе с 3CX MyPhone. Существуют две версии VSTO

    • Visual Studio 2005 Tools for Office (vstor.exe), если на клиентском ПК установлен Outlook 2003/2007
    • Visual Studio 2010 Tools for Office (vstor40_x64.exe и vstor40_x86.exe), если на клиентском ПК установлен Outlook 2010 (32 или 64 бит)

      Microsoft Outlook 2010 может быть установлен на 64 битную версию Windows в двух разных версиях – версия 32 бит (под WOW), либо версия 64 бит (native). Поэтому, правила установки VSTO таковы

    • Microsoft Outlook 2010 установлен на 32 битную Windows – используйте vstor40_x86.exe
    • Microsoft Outlook 2010 установлен на 64 битную Windows под WOW (32 bit mode) – используйте vstor40_x64.exe
    • Microsoft Outlook 2010 установлен на 64 битную Windows ( 64 bit mode) - используйте vstor40_x64.exe

    Функция DISA, или как, позвонив на 3CX с внешней линии, получить другую внешнюю линию

    Спешу сообщить приятнейшее известие - 3CX научилась поддерживать DISA. Что это означает на практике и как это работает?

    Представьте себе следующую ситуацию: директор разъезжает по городу, и тут возникла необходимость позвонить заграницу. Но зачем же звонить заграницу с мобильного, если можно позвонить по IP телефонии через офисную систему 3CX! Как это сделать? Элементарно!

    Директор звонит на шлюз VoIP GSM Portech, который мудрый сисадмин, разумеется, уже установил. Директор слышит приветственное сообщение автосекретаря, но сразу набирает 999 - входит в специальное меню (в системах с двухномерным планом это будет 99). Затем он вводит свой PIN код - ведь мы же не хотим, чтобы любой посторонний мог звонить через нашу АТС. После этого нужно нажать 9, чтобы войти в меню дополнительных возможностей и 3, чтобы получить приглашение ввести нужный номер - номер заграницей, куда желает позвонить директор!

    Директор набирает номер и # в конце - и, о чудо, звонит со своего мобильного заграницу по смешным тарифам!

    Ксати, можно создать отдельное входящее правило, которое сразу будет направлять директора на номер 999, в обход приветствия автосекретаря.

    Итак, подытожим действия уважаемого директора:

    1. Набрать GSM номер шлюза в компании
    2. Набрать 999
    3. Набрать PIN
    4. Набрать 9
    5. Набрать 3
    6. Набрать нужный номер заграницей, или любой другой
    7. Набрать #
    8. Начать экономить деньги :-)

    Внимание! Чтобы эта функция работала в последних билдах 3CX Phone System, администратор должен ее разрешить. По умолчанию она отключена в целях безопасности. Для этого зайдите в Консоль управления 3CX > Settings > Advanced > Custom Parameters и установите параметр VMDIALOUTENABLED (Enable dialout calls from voicemail menu. By default it is 0. Set to 1 to enable dialout calls) в 1.

    Что нужно знать админу о классической телефонии?

    Тема навеяна бесконечными вопросами о сигналах отбоя, ответа, CallerID и совершенным непониманием у простых админов, обслуживающих ЛВС, того, как именно это всё работает со стороны обычной АТС. Руководителей большинства предприятий жаба душит настолько, что они не то чтобы специального человека нанять не хотят, но даже книжку купить не могут за 200-300 рублей, где всё написано. Поэтому я решил коротенько написать, что есть что и как оно работает.

    Обозначения и сокращения:
    АТС (Автоматическая телефонная станция) - общее название. Может быть мини-АТС (офисная станция), ГАТС - городская АТС. Бывают двух основных типов - аналоговые и электронные.
    FXS - Foreign Exchange Station (Subscriber) - порты, к которым подключаются аналоговые телефонные аппараты, телефаксы или устройства, их имитирующие (например, СО-порты мини-АТС, модемы, шлюзы VoIP)
    FXO - Foreign Exchange Office - порты, которые представляют собой линии, имитирующие аналоговые телефонные аппараты (в мини-АТС такие порты принято называть СО - Central Office line).
    PBX - Private Branch Exchange - часто встречающееся обозначение офисных мини-АТС.
    VoIP - Voice Over IP - если вы зашли на этот форум, то уж точно знаете, что это такое и для чего оно нужно.
    CallerID - номер вызывающего абонента.
    Шлейф - наличие сопротивления между проводами а и b, порядка 600 Ом (для России), нормальное занятие линии в сторону АТС.

    Соединять порты можно только по схеме FXS-FXO (FXS-CO). Соединение FXO-FXO (FXO-CO или CO-CO) работать не будет, но ничего страшного для оборудования не произойдёт, а соединение FXS-FXS может привести к выходу оборудования из строя!

    Итак, с городской АТС (или АТС вашего оператора связи) вы получаете линию (или линии). Линия двухпроводная, обычная, аналоговая. Про другие мы не говорим здесь! Она предназначена для включения в неё пользовательского оборудования: обычного телефонного аппарата, телефакса, модема, СО-порта мини-АТС или FXO-порта любого VoIP-шлюза. В исходном состоянии на проводах этой линии должно присутствовать напряжение от 36 до 64 В (в зависимости от типа АТС и длины линии). Напряжение на аналоговых портах мини-АТС обычно меньше и не превышает 24В. Отечественным стандартом считается нормальным иметь "-" батареи питания на проводе а, "+" - на проводе b. Обычно "+" батареи на ГАТС соединён с шиной заземления. Но на проводе b по отношению к "земле" никогда вы не увидите напряжения 0. Обычно там порядка -1...-5 В. Это связано со схемотехническими решениями.
    АТС понимает занятие порта по протеканию тока в линии. Разные АТС по-разному воспринимают занятие. Некоторым нужен "-", некоторым "+" по одному проводу, некоторым - исключительно замыкание проводов a и b между собой. Поэтому исправное состояние линии от АТС до оконечного оборудования - залог качественной работы.
    При появлении на линии шлейфа (или другого сигнала, который АТС воспримет как занятие) АТС отмечает линию занятой и включает абоненту сигнал "ответ станции" (обычно длинный гудок частотой 425 Гц с модуляцией 500-1000 Гц), а также ждёт начала набора номера. Таймаут ожидания набора номера в электронных АТС регулируется и составляет от 15 до 30 секунд. Как правило, нормальные современные городские АТС воспринимают оба способа набора номера - импульсный (размыкание и замыкание шлейфа) и тональный (тоновый) DTMF (Dual Tone Multi Frequency). Если АТС не совсем нормальная (или её владельцы хотят заработать денег дополнительно), то работает какой-то один из способов.
    После набора номера АТС устанавливает соединение к вызываемому абоненту. И вот здесь самое главное. Во время посылки вызова вызываемому абоненту вызывающий может слышать тональные сигналы КПВ (контроль посылки вызова), либо музыку или голосовое приветствие (в основной массе используется у мобильных операторов). После ответа вызываемого абонента КПВ исчезает, а голосовой тракт проключается между абонентами. Никаких сигналов ответа абоненту А не передается! Возможна только переполюсовка на линиях таксофонов, которые вам всё равно никто не даст. Надежность определения ответа по наличию или отсутствию КПВ - не самая лучшая, кто бы что ни говорил. На наших сетях связи даже в пределах одного города может быть столько различных вариантов, что никакое железо это не поймёт. Поэтому если требуется гарантированное определение ответа или отбоя вызванного абонента, необходимо подключаться не по аналоговым протоколам, а по цифровым. Например, BRI или PRI (первый может поддерживать до 2 каналов на линии, а второй - 30, но это имеет смысл делать при большом трафике).
    Продолжим. Наши абоненты поговорили и вызванный положил трубку. Тоже возможны варианты в зависимости от АТС. Можно просто услышать короткие гудки (с этим проблем нет, шлюзы D-Link от цифровых станций ловят их хорошо), а можно получить кратковременный (до 1с) обрыв линии, который большинство мини-АТС воспринимают как разъединение и освобождают линию.
    Что же происходит, когда вызов поступает к нам?
    Если у нас отключена услуга CallerID, то к нам приходят периодические (как правило, длительностью 0, 8-1с) вызывные сигналы напряжением от 80 до 110В частотой 25 Гц с постоянной составляющей. Вызывное напряжение может быть и меньше, а может быть больше (в случае старых аналоговых АТС). Между посылками вызова на линии имеется такое же напряжение, как и в исходном состоянии. Возможны варианты импульсов посылки вызова, тут уж как настроили АТС. Но по отечественному стандарту рекомендовано 1с вызов, 4 с пауза в случае городского соединения. Для междугороднего не помню.
    Дальше всё также, как и при звонке от нас. Трубку снимаем (или замыкаем шлейф другим способом), АТС воспринимает это как ответ, голосовой тракт проключается и мы мило беседуем друг с другом.

    Теперь о CallerID. Страна у нас уникальная, АТС ставим разные в городах, какого-то одного стандарта нет, поэтому может попасться все что угодно. Обязательно уточняйте у вашего оператора связи, в каком же именно стандарте выдается CallerID. Основных два. Первый - североамериканский Bell, второй - европейский DTMF. В последнее время Bell практически у нас перестал встречаться.
    При этом может быть еще несколько вариантов передачи информации - до первой посылки вызова, между первой и второй посылкой вызова. Все варианты описаны в стандарте ETS 300 659-1.
    Оборудование D-Link, которое попадало ко мне в руки, автоматически само определяет, каким способом передается информация, до посылки или между посылками. Единственное с чем надо поиграться в каждом конкретном случае, так это с уровнями определения. При установке уровня 4 (самый высокий) качество определения весьма высокое. Отсутствие информации у меня бывает только тогда, когда информации действительно нет.
    На шлюзах с FXS портами вы можете сами задавать тип передачи и стандарт. При этом совершенно до лампочки, каким способом вам его передавала ГАТС. Тут уж что хочу, то и ворочу.
    Примечание. Вопрос о том, почему вместо CallerID абонента приходит номер порта FXO-шлюза к классической телефонии отношения не имеет.

    О повреждениях на линии. Частенько работники бюро ремонта или линейные монтеры употребляют разные слова, характеризующие неисправность. Вот некоторые из них:
    - короткое на линии (короткое замыкание проводов между собой)
    - земля на линии (замыкание одного из проводов на землю, может проявляться фоном, а может и полной неработоспособностью линии)
    - сообщение (это наличие гальванической связи с другими линиями или землей, при этом сопротивление этого сообщения не равно нулю, а может быть от 1 кОм до нескольких сот кОм). При сообщении может наблюдаться фон, трески, прослушивание посторонних переговоров. В случае больших сопротивлений иногда говорят "утечка".
    - пониженная изоляция. Ничего хорошего в этом нет, конечно, но линия может эксплуатироваться и в этом состоянии. Будут и шумы, фоны, даже может быть прослушивание вдалеке других абонентов. В любом случае это ненормально.
    Какая же линия нормальная? Сопротивление изоляции должно быть более 1 МОм, емкость меньше 0,5 мкФ (а лучше меньше 0,1). Никаких посторонних напряжений быть не должно.
    При наличии на линии пониженной изоляции могут возникать ложные занятия. Обычно механические АТС воспринимают занятие начиная с 3-5 кОм, а нормально освобождают линию при сопротивлении шлейфа больше 20 кОм. На цифровых не тренировался, но значения где-то близки.
    Вот. Вкратце так.

    Обсуждение статьи http://forum.dlink.ru/viewtopic.php?t=90308

    Экономим на мобильной связи: GSM шлюзы Portech

    Основное назначение VoIP GSM шлюзов - сокращение расходов на связь. Оно достигается благодаря тому, что компания становится "сама себе оператором связи". Все мобильные вызовы сотрудников будут направляться непосредственно на шлюз и оттуда в сеть сотового оператора. Идея заключается в том, чтобы установить в шлюзе безлимитные (или с большим количеством предоплаченных минут) SIM карты тех операторов, на которых вы звоните.

    Например, если у вас чаще всего звонят на двух крупных операторов, и сотрудников относительно много, - можно установить 8 портовый GSM шлюз, а в него по 4 безлимитные SIM карты для каждого оператора. Как было сказано, карты могут быть и не безлимитные, но за счет очень низких внутрисетевых тарифов достигается огромная экономия. Таким образом, 4 человека смогут одновременно звонить на одного оператора и еще 4 на другого. 

    Возможен и другой вариант, когда звонят к вам. Это особенно популярно в службах такси и других компаниях, в которые часто звонят с мобильного телефона. Вы можете давать в рекламе все те мобильные номера, карточки которых стоят в вашем шлюзе. А обработкой звонков займутся операторы с 3CX VoIP Client (программный софтфон) и гарнитурами! Вариация на тему входящих мобильных звонков - когда сотрудник звонит в свою компанию по мобильному телефону. Теперь ему не нужно звонить на городской. Достаточно позвонить на известный ему мобильный номер (внутрисетевой вызов!) и попасть во внутреннюю телефонную сеть фирмы. Удешевление таких частых звонков приносит серьезную экономию средств!

    Хочу заметить, что все шлюзы Portech абсолютно однотипны функционально и отличаются только количеством GSM портов. Следовательно, главная ваша задача - это правильно выбрать количество GSM портов в шлюзе. Оно прямо зависит от двух факторов:

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

    Инструкция по подключению к 3CX. Описание и цена шлюзов.

     

     

     

    Экономичное решение по развертыванию беспроводной Wi-Fi VoIP сети

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

    Решить такую задачу можно несколькими способами.

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

    Другой вариант. Использовать рацию. К сожалению, тут тоже не все гладко. Хорошая рация весьма недешева. Кроме того, при использовании рации "все слышат всех", а это часто неприемлемо, т.к. одновременный разговор нескольких людей друг с другом невозможен. Все будут мешать всем. Не стоит забывать и то, что радиус действия бытовой рации ограничен в пространстве.

    Третий вариант - использование переносных DECT телефонов. Вроде бы дешево и сердито. Кроме одного - дальность действия связи DECT не более 30 метров, а что делать потом?  Конечно, существуют DECT коммутаторы, которые могут "передавать" абонента от базы к базе, но какова цена этих устройств? Для самых недорогих станций она исчисляется тысячами долларов! Ведь для такого коммутатора обычная DECT база не подойдет - нужна специальная база для работы с DECT коммутатором. Кстати, эта база будет корректно работать только со своим родным коммутатором и ни с каким другим.

    Мы предлагаем свой вариант, основанный на VoIP технологии поверх Wi-Fi сети. Он не имеет перечисленных недостатков, зато обладает рядом преимуществ:

    • Wi-Fi точка доступа - недорогой массовый продукт
    • точки доступа с современной прошивкой могут "передавать" сессию абонента между собой, обеспечивая беспрерывную связь при переходе от зоны действия одной точки к другой
    • Wi-Fi технология обеспечивает покрытие внутри офиса до 40 м., а внутри открытого помещения - до 100-200 м. Радиус покрытия может быть увеличен при использовании усиливающих антенн
    • точки доступа не требуют отдельного электропитания - оно подается к ним по технологии PoE (питание по Ethernet кабелю)
    • Wi-Fi модули есть в большинстве современных "продвинутых" мобильных телефонов
    • если требуется обеспечить дополнительную функциональность, можно снабдить сотрудников индивидуальными недорогими Wi-Fi телефонами на время рабочего дня

    Рассмотрим базовый вариант развертывания беспроводной VoIP сети на оборудовании D-link. В проекте используются:

    • DES-1008P - 8-портовый настольный коммутатор с 4 портами РоЕ (рекомендованная цена 113$)
    • 4 точки доступа DWL-3140AP с версией Firmware не ниже v1.10 (рекомендованная цена одной точки 92$)
    • программное обеспечение Smart WLAN Manager для централизованного управления Wi-Fi точками (поставляется бесплатно)
    • нужное количество Wi-Fi телефонов DPH-540/S (рекомендованная цена 260$).

    Таким образом, чтобы обеспечить непрерывную связь 12 человек придется потратить: 113 + 4*92 + 12*260 = 3601$. C учетом 20% скидки, которая предоставляется всем покупателям 3CX Phone System, получаем 2880$.

    За эти деньги вы покроете беспроводной связью площадь 400 X 400 м! (см. рис. вверху). Эта сеть пригодится не только для голосового трафика: к ней можно подключить и другие узлы сети - компьютеры, ноутбуки, коммуникаторы, Wi-Fi GSM трубки и т.д.

    Все переговоры сотрудников внутри этой Wi-Fi сети могут быть прослушаны и записаны пользователями с соответствующими правами. Также, каждому сотруднику могут быть назначены определенные ограничения, например, выход на 8.

    При таком подходе вы можете быть твердо уверены в том, что пользователи не будут звонить по "закрытому" направленю. А это - ежедневная экономия ваших средств и контроль над предприятием!

    Все указанное в статье оборудование доступно к немедленному заказу!