Pull to refresh

Своя собственная, домашняя АТС

Development of communication systems
Что такое SIP наверное уже многие знают. На самом деле это просто протокол установления сессий для устройств связи, все просто — ты спрашиваешь сервер на наличие вызываемого абонента, сервер отвечает, что он есть-нет, жив-оффлайн, и пр., сервер тебе отвечает — есть, находится там-то, спрашивает обоих абонентов на установление связи (ACK), после чего ты успешно разговариваешь с другом. Протокол достаточно простой, очень похож и по кодам и по организации на HTTP.

image

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

Итак: для начала рассмотрим несколько вариантов «готовых решений» для организации своей собственной АТС.

Вариант 1: Коммерческий продукт CommunigatePro. Почему под номером 1? Да потому, что есть реализации под все основные платформы, есть внятный веб-интерфейс администратора и куча сопутствующийх сервисов, e.t. почта, IM и прочее. Стоит денег, но для формального сервиса может спокойно работать как персональный сервис без ограничения функциональности.

Вариант 2: Астериск. asterisk.org. И огромная куча клонов, сборок, форков: TrixBox ( trixbox.org ), Elastix ( www.elastix.org ), Yate2 ( voip.null.ro ), FreePBX ( www.freepbx.org )… перечислять клоны и моды Астериска можно долго. В чем плюс — проект развивается, есть много дополнений — веб-интерфейсов, интеграций с базами данных. Минус — у Астериска не очень простой синтаксис конфигурационных файлов. Поэтому новичкам не рекомендую.

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

Итак. Понятно, что мы будем говорить о CommunigatePro ( www.stalker.com/communigatepro ). Кстати для него есть русская документация, ссылок много, например тут: relay.bhost.ru/guide/russian

Установка сервера достаточно проста и для разных реализаций linux и для windows. Сервер использует 2 основные папки — папку сервиса и папку данных, где хранятся учетные записи доменов, настройки, шаблоны веб-скинов и голосовые сообщения.
Вся установка на любой платформе сводится к запуску установщика, указанию папок. Процесс минимален, поэтому рассматривать мы процесс установки не будем. Если у кого-то возникнут проблемы — отвечу в комментах.
В любом Linux, коммунигейт распологается в папках /opt/CommuniGate и /var/CommuniGate.

Сервис установлен. Что дальше?

Порт по-умолчанию веб-админки: 8010. Заходим в сервис администрирования любым браузером 127.0.0.1:8010 если сервер установлен на том же компьютере, если Вы ставили сервис на удаленном компьютере, заменяет 127.0.0.1 на адрес удаленного сервера). При первом входе, сервер попросит Вас ввести пароль для управления сервером. Там же Вы можете указать язык системы по-умолчанию. Пользователь по-умолчанию — postmaster.

Все, мы в админке. Для развертывания SIP сервиса достаточно 3х шагов:

1. Через Веб Интерфейс Администратора откройте в области Установки страницу Общее: укажите домен или вместо домена используйте Ваш ИП адрес. Все почтовые адреса в этом домене будут трактоваться как локальные, и (в простейшем случае) почта будет храниться в локальных папках пользователя. Первоначально это поле содержит имя компьютера сервера, которое CommuniGate Pro берёт из ОС. Если это имя выглядит как host12345hh.company.com, то вы должны изменить его на имя домена, которое должен обслуживать Сервер.

2. Домен создан. Теперь нам надо настроить клиентов и их тефонные номера. В коммунигейте это достаточно просто. В дефолтном домене лезем в обьекты домена, добавляем пользователя ( например ivan ). После нажатия кнопы Создать, нас кидает на форму настроек пользователя, обязательно вводим пароль для пользователя и дезем в самый низ странички натроек — там, внизу справа самое главное — текстовое поле с названием «Телефонный номер». Ну как самый первопроходец ставим 1001).

Это самое главное для локальной АТС. Помоему все просто. Теперь надо создать еще пару-тройку аккаунтов и попробовать поговорить внутри сети.
Повторяя действия п.2 добавим пользователей Vasya и Jenya присвоив им номера 1002 и 1003 соответственно.
Теперь стадия выбора: чем будем говорить?

Вариантов 3:

1. Есть программные телефоны. Список можно посмотреть тут: en.wikipedia.org/wiki/List_of_SIP_software
Мне лично нравится en.wikipedia.org/wiki/SIP_Communicator
2. Есть аппаратные решения. Я использую железяку от WellTech LP-388. Есть множество других аналогов.
3. SIP адаптер. выполнен в виде коробочки с эзернетом и простой тефонной RJ-11 дыркой. Не популярен в частных целях.

Итак, поставили софт ( для отладки можно 2 сипфона поставить на одном компьютере), указали разные учетные записи, НАБИРАЕМ!
Звонок пошел! Наслаждаемся тем, что все работает. Причем если набрать с любого из клиентов 200 начинает с нами разговаривать Авто-аттендант — это авто-информатор системы. Пока он говорит по английски, позже мы его научим общаться на родном, русском).

Теперь самый главный этап. Внешний мир!)

3. Для того, чтобы наша внутренняя АТС могла не только связывать нас друг меж другом, нам нужно заиметь внешний SIP шлюз.
Таковых много. Рассмотрим пару самых популярных. Сервис, который на слуху — сипнет ( sipnet.ru ). Регаемся. После регистрации сервис нам выдаст номер внутреннего абонента типа 0023413643 — это номер внутреннего абонента системы. Не знаю как сейчас, но во времена раскрутки сипнет давал при регистрации на счет сразу небольшой бонус — рублей 100. Этого достаточно, чтобы наладить внешнюю связь для нашего сервера.
Что нам надо, чтобы выбросить сервер во вне?
— адрес сипнета — sipnet.ru
— наш логин и пароль аккаунта, который мы зарегистрировали
Движемся дальше: залезаем в панели администратора нашего коммунигейта в Настройки — Real Time — SIP — Шлюзы.
Видим пустуюформу с полями: Имя Шлюза, Домен, Имя пользователя, AUTH-Имя, Пароль — это в левой колонке, справа — Звонки: (Аутентификация, Проксировать), Заменять, Поле контакт и Регистрироваться раз в…
Что пишем: Имя шлюза — это имя личное для Вас, можете назвать хоть tel1, это имя будет нами использоваться позже при настройке роутинга звонков.
Главное указать: Домен: sipnet.ru — куда роутим, Имя пользователля: Ваш ID в системе формата 0023413643 и Пароль.
Конкретно для сипнета надо поставить Аутентификацию в Auth ( в разных системых по-разному ) и установить Регистрироваться раз в… 30 минут. Это их рекомендации.
Поле Проксировать используется для того, чтобы Ваши сервера с НЕРЕАЛЬНЫМИ ИП работали с сигналами и медиа. Если у Вас ип внутренний, советую поставить тип проксирования медиа.

И теперь самое-самое главное. Как нашего Васю вывести во вне.
Лезем в настройки — Маршрутизатор ( Роутер ):
Там полностью текстовое окно.
Не пугаемся, смотрим, что написано:
= john; простой псевдоним
<sales@client1.com> = sales-client1; простой чужой псевдоним
<info@client1.com> = info@otherhost.com; пользователь -> другой пользователь

Это настройка прохождения звонков внутри вашей системы.
На самом деле в установке по-умолчанию, надо поправить только 1 цифирьку — ту, где у вас local звонки. По-умолчанию, там стоит 7d — если Вы планируете использовать нумерацию типа 1001 1002 — поменяйте на 4d, если как у меня 005-364536 — <005(6d)"*> ну или по аналогии — <(6d)@*> если без префиксов.
Теперь самое приятное: настраиваем ГОРОД.
Всего одна строка после всего, что там есть (добавляем):
N:S:<(7d)@*>=+7495*@tel1.sipgw; это наш внешний мир! tel1 — это то, как Вы обозвали шлюз (см. выше)
Просто сохраняем ( Модифицировать ) и набираем со своего софт-фона свой-же домашний номер.

ЗВОНОК ПОШЕЛ!)

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

И небольшой Пы-Сы — если в Шлюзах забить второй шлюз, назвав его, например tel2, совершенно спокойно можно Роутинг сделать так:

N:S:<(7d)@*>=+7495*@tel1.sipgw
N:S:<8(10d)@*>=+7*@tel2.sipgw

Это будет работать так: все городские звонки формата 9463746 пойдут на шлюз провайдера tel1, а все сотовые формата 89267485746 через второго провайдера tel2. Это очень выгодно, если один провайдер предоставляет Москву как бонус бесплатно, а у второго цены на сотовые намного ниже первого.
Tags:SIPVoIPАТСCGPro
Hubs: Development of communication systems
Total votes 24: ↑22 and ↓2 +20
Views11.8K

Popular right now

Distributed Systems Engineer
from 8,000 $Cube.jsRemote job
Fullstack JS Developer (Node.js/React.js)
to 3,500 $482.solutionsОдессаRemote job
Middle/Senior Magento 2 Developer
from 2,000 to 4,000 $GoMageRemote job
Tech Lead (Development)
from 180,000 ₽Game InsightRemote job
Frontend Developer
from 170,000 ₽Nation.betterRemote job