Принцип настройки Шлюза
на стороне АТС

Настройка на стороне АТС (или модуля телефонии CRM) производится после подключения сессии к нужному телеграм-аккаунту на стороне @siptg_bot и выбора способа связи с АТС.

Настройка на стороне АТС состоит из двух принципиальных этапов:
  • Подключение SIP-транка
  • Настройка маршрутизации звонков

В отличии от стандартных телефонных номеров, при звонках из Телеграм в качестве Caller-ID может приходить одно из трех значений (user-id, username, телефонный номер аккаунта), а при исходящих звонках надо соблюдать ряд ограничений Телеграм для защиты от спама.

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

Смотрите также особенности настройки Шлюза с различными CRM системами.

Шаг 1: Подключение SIP-транка

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

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

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

При методе регистрации PBX->SIP.TG (самый простой и часто-используемый) на стороне АТС для подключаемого транка надо указать стандартные параметры (сервер, логин, пароль) которые получаются в @siptg_bot в разделе /gateway при выборе соответствующего метода регистрации.

При методе регистрации SIP.TG->PBX на стороне АТС надо получить реквизиты SIP-аккаунта для подключения транка (адрес АТС, логин, пароль), которые затем надо указать в @siptg_bot в разделе /gateway для связи соответствующего типа.

При методе связи IP-IP на стороне @siptg_bot надо указать адрес АТС, номер для вызова на стороне АТС (и опционально поле:значение), после чего совершить звонок с АТС по адресу и порту, полученному от @siptg_bot в разделе /gateway для соответствующего метода связи.

Иногда может потребоваться в @siptg_bot для соответствующего метода связи также явно указать используемый Worker-сервер (в нужной стране, либо свой), протокол связи (UDP, TCP, TLS), набор используемых кодеков, метод передачи DTMF сигналов.

Подробнее смотрите в инструкции по настройке на стороне @siptg_bot

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

Проверка работы VoIP Trunk между Telegram и SIP-АТС
Настройки Firewall на стороне АТС
Если Вы используете Firewall для защиты своей АТС, убедитесь, что актуальные адреса наших Worker-серверов, с которых происходит подключение к АТС, присутствуют в white-листе.

Все IP-адреса наших серверов перечислены в файле:
https://files.sip.tg/fw.txt

Иногда сеть Worker-серверов обновляется, об этом мы сообщаем в новостном канале @siptg_news (рекомендуем администраторам на него подписаться).
Об инфраструктуре Worker-серверов
Инфраструктура Worker-серверов SIP.TG надежно защищена, сервера при необходимости быстро масштабируются, расположены в разных географических зонах.

В случае необходимости, для всех привязанных SIP-аккаунтов можно указать конкретный Worker-сервер, в том числе расположенный на собственных серверах.

Для использования собственного Worker-сервера (или нескольких) установите и произведите настройку соответствующего модуля, после чего укажите его в настройках подключения (на бесплатных тарифных планах данная возможность НЕ предоставляется).

Подробнее об установке собственных Worker-серверов
Блокировки IP-адресов АТС за неверные пароли
Указывайте реквизиты подключения к серверам SIP.TG аккуратно. У нас активирована защита от перебора паролей, поэтому IP-адрес АТС может быть заблокирован на произвольный период времени, если он подключается к серверам SIP.TG без включенной опции регистрации, с неправильным логином или паролем, с недоверенного IP и тому подобное.

Шаг 2: Настройка маршрутизации звонков

Входящие и исходящие звонки от пользователей Telegram между Шлюзом и АТС происходят одинаково, независимо от способа подключения Шлюза к АТС.

При входящем звонке от пользователя Telegram на аккаунт Шлюза на АТС передается номер и имя звонящего, а для исходящего звонка достаточно указать номер пользователя в одном из допустимых форматов (userid, username, phone).
Входящие звонки на АТС из Телеграм

После подключения SIP-транка для звонков не забудьте указать, кто из пользователей АТС (сотрудников) будет принимать входящие звонки с него.

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

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

Если на АТС стоит задержка на снятие трубки, то звонок можно будет принять и из приложения Telegram, но тогда через АТС такой звонок не пойдет.

Чтобы звонок поступал только в АТС надо отключить прием звонков на других устройствах с подключенным аккаунтом Шлюза. Это делается в настройках приложения Телеграм для аккаунта Шлюза (☰ → Settings → Notification and Sounds → Calls → Accept calls on this Device).

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

Обратите внимание на то, с каким Caller-ID поступит входящий звонок, он соответствует настройкам, заданным на стороне @siptg_bot (user-id, username или телефонный номер аккаунта + используемый префикс или суффикс).

Также на АТС от Шлюза передается поле Caller-Name, которое может содержать одно или несколько доступных значений о звонящем телеграм-пользователе (name, username, Phone).

Подробнее о конфигурации значений передаваемых Caller-ID и Caller-Name (шаг 5)

Исходящие звонки с АТС в Телеграм

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

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

В качестве номера пользователя для звонка ему в Telegram можно использовать одно из трех значений:
  • внутренний user-id пользователя (обычно используется с префиксом из * или 0, или иного признака, имеет произвольную длину, от 5 до 20 цифр, есть у всех пользователей)
  • номер телефона пользователя, привязанный к Telegram-аккаунту (10 цифр, может быть скрыт настройками приватности)
  • username пользователя в Telegram (без символа @ в начале, только латинские буквы и цифры, может быть не установлен, поддерживается некоторыми АТС)
Проверка работы VoIP Trunk между Telegram и SIP-АТС
Мы рекомендуем использовать user-id в качестве Caller-ID и номера вызываемого абонента с префиксом из 0 или *, это наиболее универсальный способ. Но стоит помнить, что по user-id нельзя позвонить пользователю первым, если с ним еще не было взаимной переписки. Если все таки необходимо позвонить пользователю вне своего списка контактов, то используйте его телефонный номер (если он не скрыт) или username (если ваша АТС это позволяет).

Про префикс перед Caller-ID (user-id или телефонным номером). Чтобы отличать номера пользователей телеграм (userid или телефонный номер аккаунта) от обычных телефонных номеров в логах АТС и/или CRM систем удобно задать им префикс на стороне @siptg_bot при конфигурации связи с АТС (рекомендуем использовать символ * или 0). Если задан префикс для Caller-ID его важно сохранять в номере вызываемого пользователя при совершении исходящего звонка в Телеграм через подключенную линию Шлюза.

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

Будьте особенно аккуратны при звонках незнакомым пользователям. Любой пользователь может пожаловаться на спам, если ваш звонок окажется неожиданным. В случае получения значительного числа жалоб аккаунт Шлюза может быть временно ограничен или заблокирован алгоритмами Telegram.


Ограничения Телеграм на исходящие звонки
Если с пользователем еще не было никакой переписки, то совершить ему звонок первым можно только по его username (может быть не задан для аккаунта), либо по номеру телефона аккаунта (может быть скрыт настройками приватности).

Число вызовов в день пользователям, которые не находились еще в вашем контакт листе весьма ограничено (несколько десятков вызовов в сутки).

При слишком большой интенсивности звонков можно получить временный бан на звонки от Telegram (длительностью около 24 часов).

Звонить по user-id пользователю можно только если с ним уже была какая-то взаимная предварительная переписка, либо пользователь первым совершил звонок на аккаунт Шлюза.

Пользователи Телеграм могут в своих настройках совсем запретить входящие голосовые звонки с аккаунтов не находящихся в их контакт-листе (или вообще любые звонки).
Задержка при звонках в Telegram
Вы можете испытывать задержку, когда звоните оффлайн-пользователю. Это обусловлено описанной ниже особенностью Telegram.

Операторы сотовой связи без труда определяют в сети ли пользователь. Телеграм работает сложнее. Пользователь получает статус “В сети”, если соблюдены три условия: приложение запущено, находится в активном состоянии, а сам телефон разблокирован. Иначе пользователь считается оффлайн.

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

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

Текущее значение таймаута — 15 секунд.
Про защиту Telegram от флуд-звонков
При большой нагрузке на сервера Telegram может срабатывать защита от флуда. Для этого вводится искусственное ограничение на использование всех или некоторых вызовов Telegram API.

Если задержка ограничения до 5 секунд, данный запрос к API повторяется автоматически. Иначе запрос завершается ошибкой, которая передается в SIP в виде кода 503 Service Unavailable.

В соответствии с RFC 3261 также будет передаваться заголовок Retry-After, содержащий значение в секундах, через которое запрос может быть отправлен заново.
Если входящие звонки на аккаунт Шлюза сразу сбрасываются
Чаще всего это происходит из-за того, что тестовый звонок производится с того же устройства, где подключен аккаунт шлюза. Звонок не может быть принят, так как с этого же устройства уже идет исходящий, и поэтому звонок сбрасывается.

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

Данная настройка делается в настройках Телеграм приложения тут:
☰ → Settings → Notification and Sounds → Calls → Accept calls on this Device

Смотрите также


Как настроить режим Шлюз для приема и осуществления звонков через единый Telegram-аккаунт компании

Что видят пользователи при звонках на единый Telegram-аккаунт через SIP.TG, набор доступных для них функций (DTMF, Автоответ, выбор Линии, кнопка Перезвонить, указание внутреннего номера и звонок через Callback)

Ограничения и специфика совершения голосовых звонков в Telegram через Шлюз SIP.TG

Особенности интеграции Шлюза SIP.TG для Telegram-звонков с CRM системами, прием входящих и совершение исходящих звонков Telegram-пользователям через АТС

Способы оплаты шлюза SIP.TG для переброски звонков между Telegram и SIP-телефонией

Назначение, преимущества, порядок установки и настройки собственных Worker-серверов для SIP.TG

Назначение, преимущества, порядок установки и настройки собственного Хранилища сессий Telegram для SIP.TG

Суть проблемы с библиотекой tg2sip (libtgvoip) с Telegram-клиентами под Android и предлагаемое решение от SIP.TG