Взаимодействие с АТС происходит через 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, которые нужно указать на стороне АТС.

Ниже приведено описание специфичных настроек для каждого типа SIP-подключения.

PBX → SIP.TG

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

Это наиболее простой способ подключения и подходит для большинства систем (Asterisk, 3CX, FreePBX и др.).

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

SIP.TG → PBX

Здесь Worker-сервер SIP.TG регистрируется на вашей АТС. В боте вы задаёте параметры вашей АТС: логин, пароль и адрес.

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

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

IP ⇿ IP

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

Подходит для продвинутых пользователей. Требует настройки маршрутов на стороне АТС.

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

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

Каждый пользователь 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.

Кроме Caller ID, поле From также может содержать имя абонента (Caller Name), формированием которого можно также управлять при помощи аналогичны правил, но помимо перечисленных выше параметров есть ещё два:

  • {name} — отображаемое имя в UTF-8 (из-за смайликов может вызвать проблемы на стороне АТС);
  • {name_ascii} — отображаемое имя, преобразованное в ASCII (безопасный вариант).

АТС → Telegram

При получении запроса INVITE со стороны АТС, вызываемый идентификатор будет интерпретироваться в полном соответствии с тем же параметром 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.

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

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, которые есть в АТС.

Если возникли проблемы или ошибки, воспользуйтесь разделом Вопросы и решение проблем.