Skip to main content
Взаимодействие с АТС происходит через SIP-подключения, которые совместно настраиваются как на стороне АТС, так и на стороне SIP.TG. Чтобы создать SIP подключение на стороне SIP.TG:
  1. Запустите бота @siptg_bot и перейдите в раздел /gateway.
  2. Выберите сессию Telegram, которую хотите подключить к АТС, либо создайте новую при помощи кнопки «Подключить» (подробнее см. Пошаговое подключение сессии).
  3. Нажмите одну из кнопок для создания нового SIP-подключения, соответствующую типу подключения: «🆕 PBX→SIP․TG», «🆕 SIP․TG→PBX» или «🆕 IP⇿IP».

Настройка SIP-подключения к АТС

Большинство настроек отображаются прямо на кнопках в виде текущих значений. Чтобы изменить эти настройки, достаточно нажать соответствующую кнопку и ввести новое значение по запросу бота. Однако некоторые кнопки работают по-другому:
  • Worker: при нажатии появляется список доступных Worker-серверов. Выберите нужный сервер из списка, чтобы увидеть его подробное описание и назначить.
  • Кнопки с флажками, такие как «DTMF вх.», «DTMF исх.», «Перезвонить», «Линии», «Обработка сообщений», «Callback» и «Поделиться подпиской», работают как переключатели. Одно нажатие активирует или деактивирует опцию.
  • Протокол соединения (UDP/TCP/TLS): при каждом нажатии происходит переключение на следующий доступный протокол.
  • Показать аккаунт и Сбросить пароль: отображают параметры подключения к SIP.TG, которые нужно указать на стороне АТС.
Позволяет выбрать сервер, который будет соединяться с АТС или провайдером телефонии.Предусмотрено 3 типа серверов:
Тип сервераОписаниеОбозначение
Публичные сервера SIP.TGОсновные сервера, поддерживаемые SIP.TG
Публичные сервера других пользователейОбщедоступные сервера, размещённые другими пользователями🌐
Приватные сервераВаши собственные сервера, доступные только для ваших SIP-аккаунтов🔑
На бесплатной подписке доступны только некоторые из публичных серверов SIP.TG.
Выбор кодеков влияет на качество и совместимость голосовой связи. Поддерживаются кодеки Opus, alaw, mulaw, GSM и другие.
DTMF необходим для взаимодействия с голосовым меню. Доступны методы RFC2833 (рекомендуется), INFO и inband.
Позволяют задать формат набора номера для совместимости с АТС. Подробнее в разделе «Правила преобразования номеров».
Приоритет позволяет задать порядок вызова SIP-аккаунтов при звонке Telegram → SIP.Применяются следующие правила:
  1. Аккаунты с одинаковым приоритетом вызываются одновременно.
  2. Чем меньше приоритет, тем раньше вызываются SIP-аккаунты.
  3. Переход к следующему приоритету происходит после неуспеха дозвона на все SIP-аккаунты предыдущего приоритета.
Правила формирования идентификатора (Caller ID) и отображаемого имени (Caller Name) абонента при звонке, которое применяется к обоим направлениям.Подробнее см. Типы идентификаторов абонента.
Ниже приведено описание специфичных настроек для каждого типа SIP-подключения.

PBX → SIP.TG

В этом режиме ваша АТС регистрируется на SIP.TG как SIP-клиент. Вы получаете SIP-логин и пароль от бота и указываете их в вашей АТС.
Это наиболее простой способ подключения и подходит для большинства систем (Asterisk, 3CX, FreePBX и др.).

Скриншот с настройками SIP-подключения PBX→SIP.TG

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

SIP.TG → PBX

Здесь Worker-сервер SIP.TG регистрируется на вашей АТС. В боте вы задаёте параметры вашей АТС: логин, пароль и адрес.
Не забудьте добавить IP-адреса SIP.TG в белый список на вашей АТС. Актуальный список: files.sip.tg/fw.txt.

Скриншот с настройками SIP-подключения SIP.TG→PBX

Основные параметры подключения, которые нужно заполнить чтобы подключение к вашей АТС было возможным.«Прокси» можно заполнять только в том случае, если он отличается от «Домена».
Когда пользователь нажимает кнопку звонка 📞 в приложении Telegram без отправки любых сообщений — этот номер будет использоваться в качестве номера по умолчанию, который поступит в АТС.

IP ⇿ IP

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

Скриншот с настройками SIP-подключения IP⇿IP

IP-адрес и порт противоположной стороны (вашей АТС).Чтобы подключение состоялось, на стороне АТС нужно также создать подключение с конкретным IP-адресом сервера SIP.TG. Для этого используется IP-адрес Worker-сервера, назначенный SIP-подключению.Текущий IP-адрес используемого Worker-сервера отобразится в сообщении, когда вы запросите изменение текущего параметра.
Если вы хотите использовать несколько SIP-подключений между одинаковыми IP-адресами, это поле позволяет задать дополнительный SIP-заголовок для корректной идентификации подключения.Параметр задаётся в виде пары {название SIP поля}:{значение SIP поля}, разделённое двоеточием :.
Когда пользователь нажимает кнопку звонка 📞 в приложении Telegram без отправки любых сообщений — этот номер будет использоваться в качестве номера по умолчанию, который поступит в АТС.

Типы идентификаторов абонента

Каждый пользователь Telegram может иметь до трёх типов идентификаторов:
  • Номер телефона, на который зарегистрирован аккаунт. Он имеется всегда, но по умолчанию скрыт настройками приватности для чужих пользователей. С большими ограничениями, но по номеру телефона можно устанавливать контакт с пользователем.
  • Username — это уникальное буквенное имя пользователя. По умолчанию его нет, многие пользователи его устанавливают, но строго говоря оно может отсутствовать. А может быть наоборот — пользователь может иметь несколько коллекционных Username. По Username можно устанавливать контакт с пользователем и ограничения сильно мягче, чем для Номера телефона, но облачные АТС часто не предусматривают использование нечисловых идентификаторов абонента.
  • User ID — внутренний числовой идентификатор. Есть всегда, никогда не меняется, но устанавливать контакт с пользователем только по User ID невозможно — его можно использовать только после того как контакт был установлен одним из других способов.
Тип идентификатораФорматВозможность контактаОбязательноеИзменяемоеПоддержка АТС
Номер телефоначисловойограниченнаядадада
Usernameбуквенныйданетдаограниченная
User IDчисловойнетданетда
Из таблицы видно, что каждый идентификатор имеет серьёзные ограничения, не позволяющие его использовать во всех сценариях. SIP.TG поддерживает все типы идентификаторов и их комбинации, а также позволяет задавать приоритет их использования под свои нужды.

Telegram → АТС

Для каждого SIP-подключения можно установить правила формирования Caller ID, который будет передаваться в поле From в сообщении INVITE при звонках Telegram → АТС. Правила формирования Caller ID представляют собой несколько строк, по одному правилу в каждой строке. Каждое правило — это шаблонная строка, в которой в качестве шаблонных параметров допустимы {phone}, {username} и {userid}. При формировании финального Caller ID используется первое правило, все шаблонные параметры которого содержат значения о звонящем пользователе Telegram.
  • Пример 1
  • Пример 2
  • Пример 3
{phone}
{username}
0userid
Такой Caller ID в разных ситуациях может принимать все три типа идентификаторов, в зависимости от того, какие из них имеются у пользователя:
  • Если Номер телефона не скрыт — будет использован он.
  • В противном случае, если установлен Username — система выберет его.
  • И лишь в самом исключительном случае будет использоваться User ID с префиксом 0 — эта метка позволяет разрешать неоднозначность в интерпретации типа идентификатора.
Кроме Caller ID, поле From также может содержать имя абонента (Caller Name), формированием которого можно также управлять при помощи аналогичны правил, но помимо перечисленных выше параметров есть ещё два:
  • {name} — отображаемое имя в UTF-8 (из-за смайликов может вызвать проблемы на стороне АТС);
  • {name_ascii} — отображаемое имя, преобразованное в ASCII (безопасный вариант).
+{phone} ({name_ascii})
@{username} ({name_ascii})
{name_ascii}
В зависимости от наличия у пользователя Номера телефона и Username, будет использоваться:
  • либо Номер телефона с префикстом +, за которым следует отображаемое имя, записанное в скобках,
  • либо Username с префиксом @,з а которым также следует отображаемое имя, записанное в скобках,
  • либо в самом крайнем случае — просто отображаемое имя без посторонних символов.

АТС → Telegram

При получении запроса INVITE со стороны АТС, вызываемый идентификатор будет интерпретироваться в полном соответствии с тем же параметром Caller ID, который описан выше. Однако, алгоритм определения типа идентификатора и отсечения в нём префиксов и посторонних символов уже не выглядит так очевидно.
Как и в случае звонков Telegram → АТС, правила проверяются последовательно и выбор останавливается на первом, которое удовлетворяет заданным критериям после преобразований:
  1. Все шаблонные параметры в правиле заменяются соответствующими им регулярными выражениями:
    • {phone}+?[1-9]\d*: число, которое не может начинаться на 0 и опционально может начинаться с символа +;
    • {username}@?[a-zA-Z]\w*: буквенно-числовая строка, которая может начинаться только с буквы и опционально с префиксом @;
    • {userid}[1-9]\d*: число, которое не может начинаться на 0 и не может иметь префиксов.
  2. В результате п.1 получается комплексное регулярное выражение, на предмет соответствия которому и проверяется поступивший идентификатор из INVITE URI.
  3. В результате удовлетворения регулярному выражению, хотя это несёт лишь теоретический смысл, в идентификаторе может быть распознано сразу несколько типов идентификаторов. В таком случае будет выбрано первое значение в указанном порядке: {userid}, {username}, {phone}.
Таким образом обеспечивается двунаправленность правил фармирования Caller ID и консистентность форматов идентификатора для обоих направлений вызова.

Интеграция с CRM

Интеграция с CRM обычно реализуется не напрямую с SIP.TG, а через АТС, в которую SIP.TG подключается как стандартный SIP-транк. Сама CRM «видит» звонки и контакты благодаря возможностям АТС. Отдельных модулей или плагинов именно для SIP.TG в CRM устанавливать, как правило, не требуется.
Чаще всего взаимодействие устроено так:
  1. Telegram-звонок поступает на Шлюз SIP.TG (аккаунт Telegram).
  2. Шлюз SIP.TG конвертирует звонок в SIP и передаёт его в АТС (по SIP-транку).
  3. АТС, обладая нужным модулем или плагином интеграции с CRM, распознаёт входящий вызов, отображает карточку клиента, логирует звонок или выполняет другие действия.
  4. По окончании разговора данные о звонке (например, длительность, результат) тоже сохраняются в CRM.
Почти любая современная АТС при входящем или исходящем звонке может использовать SIP-заголовки (CallerID, From и т. п.), чтобы «пробросить» данные в CRM-модуль. При звонках из Telegram через Шлюз SIP.TG в SIP-транк передаётся идентификатор звонящего (чаще всего отображается как Telegram ID или username), а уже логика в АТС сопоставляет этот идентификатор с записями CRM.Если ваша АТС умеет управлять CallerID для исходящих вызовов (например, «подставляет» нужный номер), то CRM может автоматически записать в карточку и реальный телефонный номер, и контакты из Telegram. Но деталей у каждой CRM и АТС — масса; в целом это не регулируется напрямую со стороны SIP.TG.
Если CRM «умеет» инициировать вызов (например, чтобы кликнуть на номер и позвонить), она обычно делает это через АТС, шлёт туда команду Call API или AMI (Asterisk, 3CX и т. п.). Дальше АТС переводит запрос в SIP-транк SIP.TG, а Шлюз звонит в Telegram. Всё это снова стандартное взаимодействие «CRM → АТС → SIP-транк», где SIP.TG просто выполняет роль оператора связи для Telegram.
  1. В АТС создаёте учётную запись (SIP-транк) с реквизитами, выданными при настройке /gateway в @siptg_bot.
  2. В CRM активируете готовый плагин или модуль (для Asterisk, 3CX, FreePBX, Yate и т. п.) либо настраиваете внешние запросы к АТС по её API.
  3. Проверяете, что CRM получает события о звонках (всплывает карточка, пишутся логи) и при необходимости подключаете более глубокую логику (распределение вызовов, привязка записей разговора, автоматизация).
  4. Для исходящих звонков из CRM — проверяете, что АТС может сформировать вызов по SIP-транку «SIP.TG» (обычно выбирается маршрут или правило набора для такой линии).

Когда нужна дополнительная настройка

1

Расширенные поля SIP-заголовков

Если ваша CRM формирует или ожидает какие-то специфические заголовки (например, X-CRM-ID), то такие ситуации решаются средствами вашей АТС (AGI-скрипты в Asterisk, кастомные настройки в 3CX и т. п.). На стороне SIP.TG нет возможности напрямую влиять на произвольные SIP-заголовки.
2

Нужен переадресовываемый CallerID

В некоторых случаях CRM требует видеть исходный номер звонящего полностью (например, для «привязки» к конкретному клиенту). Если звонок из Telegram, то номер может быть любым (или отсутствовать вовсе), и тут уже от логики вашей АТС зависит, как подставлять CallerID. Иногда добавляют дополнительную базу соответствия «Telegram ID → телефон клиента».
3

Включение записи разговоров в CRM

Запись разговоров можно включить как в самой АТС, так и в режиме «Запись звонков» на стороне SIP.TG (в Софтфоне). Если хотите хранить записи именно в CRM, уточните, умеет ли ваша АТС передавать файлы записи туда. С точки зрения SIP.TG, это «прозрачная» передача звука по SIP, и дополнительных настроек для записи нет.

Дополнительные советы

  • Единый подход: все настройки, связанные с CRM, обычно выполняются в интерфейсе вашей АТС. Вы воспринимаете SIP.TG как обычного оператора связи (SIP-транк).
  • Типичные АТС (Asterisk, 3CX, FreeSWITCH, Yate, Oktell, Panasonic и прочие) имеют плагины или REST-интерфейсы для интеграции с CRM. Изучите документацию АТС: скорее всего, там есть готовый пример.
  • Сценарии приёма и маршрутизации вызовов (IVR, очередь операторов, автоматическая переадресация) — всё это общие функции АТС. Шлюз SIP.TG не ограничивает и не усложняет такие сценарии: они работают так же, как и при других SIP-транках.
Не усложняйте. Чтобы «подружить» CRM с Telegram-звонками, достаточно подключить Шлюз SIP.TG к вашей АТС и использовать стандартные инструменты интеграции CRM, которые есть в АТС.Если возникли проблемы или ошибки, воспользуйтесь разделом Вопросы и решение проблем.