> ## Documentation Index
> Fetch the complete documentation index at: https://www.sip.tg/llms.txt
> Use this file to discover all available pages before exploring further.

# Взаимодействие с АТС

export const bot = {
  ACTIVATE_TARIFF_PLAN: "Активировать подписку",
  ADDRESS: "Адрес",
  ADDRESS_PORT: "Адрес:порт",
  ADMIN_ASSIGN: "Назначить администратора",
  APPLY: "Применить",
  ARBITRARY_CHECK: "Обработка сообщений",
  AUTORENEW: "Автопродление",
  AUTOREPLY: "Автоответ",
  BACK: "Назад",
  BACK_TO_PAYMENT: "Вернуться к оплате",
  BALANCE_TRANSFER: "Перевести",
  BILLING: "Реквизиты",
  BTN_CHARGE_REDIRECT: "Подтвердить списание",
  BTN_EMPTY_BOT: "Inline бот",
  BTN_TARIFF_NEW: "Подключить",
  CALLBACK_CHECK: "Callback",
  CALLBACK_SWITCH_OFF: "Отключить режим Callback",
  CALLBACK_SWITCH_ON: "Включить режим Callback",
  CALLER_NAME: "Имя звонящего",
  CALLER_PHONE: "Номер звонящего",
  CANCEL: "Отмена",
  COMMENT: "Комментарий",
  CONFIGURE_ACCOUNT_ALLOW_EVERYBODY: "Разрешить звонки ото всех пользователей",
  CONFIGURE_ACCOUNT_ALLOW_P2P: "Разрешить P2P звонки ото всех",
  CONFIGURE_ACCOUNT_DISALLOW_GROUPS: "Запретить добавление в группы",
  CONFIGURE_ACCOUNT_OFF_OTHER_SESSIONS_CALLS: "Отключить звонки на других устройствах",
  COUNTRY: "Страна",
  DELETE: "Удалить",
  DESCRIPTION: "Описание",
  DIAL_RULES: "Правила набора",
  DOC_BTN_PROVIDE: "Предоставить документацию",
  DOMAIN: "Домен",
  DTMF_METHODS: "DTMF методы",
  FIELD_VALUE: "Поле:Значение",
  FORMATS: "Аудио кодеки",
  FW_ADD: "Добавить номер телефона",
  FW_ADD_OTHER: "Другой номер",
  FW_ADD_SELF: "Номер Telegram",
  FW_ANTISPAM: "Анти-спам",
  FW_BACK: "Назад",
  FW_BONUS_PROGRAM: "Реферальная программа",
  FW_CANCEL: "Отмена",
  FW_DELETE: "Удалить",
  FW_NAME: "Имя",
  FW_NO: "Нет",
  FW_PHONE_FORWARDING: "Напомнить номер",
  FW_RECORDER_CHAT: "Чат для записей",
  FW_RECORDER_CHECKBOX: "Запись звонков",
  FW_SELECT_COUNTRY: "Выбрать страну (регион)",
  FW_SHARE_PHONE: "Отправить номер телефона",
  FW_TELL_FRIENDS: "Рассказать друзьям",
  FW_YES: "Да",
  GATEWAY_IN_RESET: "Сбросить пароль",
  GATEWAY_IN_SHOW: "Показать аккаунт",
  GATEWAY_OUT_NUMBER: "Номер на АТС",
  GENERATE_NEW: "Сгенерировать новый",
  GIVE_ACCESS: "Предоставить доступ",
  GIVE_PHONE_NUMBER: "Предоставить номер телефона",
  HELP: "Помощь",
  INLINE_QUERY: "Inline запрос",
  INVOICE_BANK_IGNORE_CURRENT_RATE: "Игнорировать курс валюты",
  KEYPAD_IN: "DTMF вх.",
  KEYPAD_OUT: "DTMF исх.",
  KEYS_GET: "Получить ключи",
  KEYS_RESET: "Сбросить ключи",
  LEARN_ABOUT: "Узнать о SIP.TG",
  LINES: "Линии",
  LINES_CHECK: "Линии",
  LOGIN: "Логин",
  MANUAL: "Вручную",
  MODE_GATEWAY: "Режим Шлюз",
  MODE_SOFTPHONE: "Режим Софтфон",
  NAME: "Имя",
  NEW: "Новый",
  NEW_IN: "🆕 PBX→SIP․TG",
  NEW_IP: "🆕 IP⇿IP",
  NEW_OUT: "🆕 SIP․TG→PBX",
  NO: "Нет",
  PARALLEL_DECLINE: "Отклонить",
  PARALLEL_END: "Завершить",
  PARALLEL_SWITCH: "Переключить",
  PARALLEL_TRANSFER: "Перевести",
  PASSWORD: "Пароль",
  PAYER: "Плательщик",
  PAYSYSTEM_BTN_VERIFY: "Указать страну проживания",
  PAYSYSTEM_DOCS_PROVIDE: "Предоставить документы",
  PAYSYSTEM_METHOD: "Способ оплаты",
  PAY_TARIFF: "Оплатить",
  PROLONG: "Продлить",
  PROMO_BUTTON_EMPTY: "Код скидки",
  RECONNECT: "🔄 Переподключить",
  RECORDER_ACTIVATE: "🔴 Начать запись",
  RECORDER_ACTIVATE_FAILED: "⚠️ Начать запись",
  RECORDER_CHAT: "Чат для записей",
  RECORDER_CHECKBOX: "Запись звонков",
  RECORDER_DEACTIVATE: "🟥 Остановить запись",
  RECORDER_DEACTIVATE_RECONNECTING: "⌛ Остановить запись",
  RECORDER_LOCKED: "🔒 Запись ограничена",
  REDIAL: "Перезвонить",
  REDIAL_CHECK: "Перезвонить",
  REGISTRAR: "Прокси",
  REPEAT: "Повторить",
  SELECT_BOT: "Выбрать бота",
  SELECT_CHANNEL: "Выбрать канал",
  SELECT_CHAT: "Выбрать чат",
  SELECT_USER: "Выбрать пользователя",
  SERVER_FROM_TEMPLATE: "Шаблоны настроек",
  SESSION_BILLER_CHECK: "Использовать общую подписку",
  SESSION_CONFIGURE_ACCOUNT: "Настроить аккаунт Telegram",
  SESSION_LOGIN: "Подключить",
  SESSION_LOGOUT: "Отключить",
  SETTINGS: "Настройки",
  START_CALLING: "Перейти к звонкам",
  SUPPORT: "Поддержка",
  SWITCH_OFF: "Отключить",
  SWITCH_ON: "Включить",
  TAKE: "Получить",
  TARIFF_ACTIVATE_CHANGE_USER: "Изменить заказчика",
  TARIFF_ACTIVATE_USER: "Активировать заказчику",
  TARIFF_ACTIVATE_YOURSELF: "Активировать себе",
  TAX_ADDRESS: "Адрес",
  TAX_BUSINESS: "Бизнес",
  TAX_NAME: "Покупатель",
  TAX_NUMBER: "Налоговый номер",
  TERMINATE_SESSION: "Завершить сессию",
  TERMS_AGREE: "Соглашаюсь с Правилами и Условиями",
  TG_STORAGE_OFFICIAL: "✅ Хранилище сессий SIP․TG",
  TRANSFER: "Передать",
  TRANSFER_BACK: "Передать обратно",
  TRUSTED_IPS: "Доверенные IP",
  UNLINK: "Отвязать",
  USER: "Пользователь",
  VERIFY_ROUTE_BAD: "👎 Нет, это спам",
  VERIFY_ROUTE_GOOD: "👍 Да, всё хорошо",
  VERIFY_ROUTE_RECOVER: "Восстановить входящие звонки",
  WORKER_AUTO: "Автоматически",
  YES: "Да"
};

Взаимодействие с АТС происходит через SIP-подключения, которые совместно настраиваются как на стороне АТС, так и на стороне SIP.TG.

Чтобы создать SIP подключение на стороне SIP.TG:

1. Запустите бота [@siptg\_bot](https://t.me/siptg_bot?start=utm_docs) и перейдите в раздел `/gateway`.
2. Выберите сессию Telegram, которую хотите подключить к АТС, либо создайте новую при помощи кнопки **{bot.SESSION_LOGIN}** (подробнее см. [Пошаговое подключение сессии](/ru/docs/gateway/telegram#steps)).
3. Нажмите одну из кнопок для создания нового SIP-подключения, соответствующую типу подключения: **{bot.NEW_IN}**, **{bot.NEW_OUT}** или **{bot.NEW_IP}**.

<a id="general" />

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

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

Однако некоторые кнопки работают по-другому:

* **Worker**: при нажатии появляется список доступных Worker-серверов. Выберите нужный сервер из списка, чтобы увидеть его подробное описание и назначить.
* **Кнопки с флажками**, такие как «{bot.KEYPAD_IN}», «{bot.KEYPAD_OUT}», «{bot.REDIAL_CHECK}», «{bot.LINES_CHECK}», «{bot.ARBITRARY_CHECK}», «{bot.CALLBACK_CHECK}» и «{bot.SESSION_BILLER_CHECK}», работают как переключатели. Одно нажатие активирует или деактивирует опцию.
* **Протокол соединения (UDP/TCP/TLS)**: при каждом нажатии происходит переключение на следующий доступный протокол.
* **{bot.GATEWAY_IN_SHOW}** и **{bot.GATEWAY_IN_RESET}**: отображают параметры подключения к SIP.TG, которые нужно указать на стороне АТС.

<AccordionGroup>
  <Accordion title="Worker сервер">
    Позволяет выбрать сервер, который будет соединяться с АТС или провайдером телефонии.

    Предусмотрено 3 типа серверов:

    | Тип сервера                            | Описание                                                           | Обозначение |
    | -------------------------------------- | ------------------------------------------------------------------ | ----------- |
    | Публичные сервера SIP.TG               | Основные сервера, поддерживаемые SIP.TG                            | ✅           |
    | Публичные сервера других пользователей | Общедоступные сервера, размещённые другими пользователями          | 🌐          |
    | Приватные сервера                      | Ваши собственные сервера, доступные только для ваших SIP-аккаунтов | 🔑          |

    На бесплатной подписке доступны только некоторые из публичных серверов SIP.TG.
  </Accordion>

  <Accordion title={bot.FORMATS}>
    Выбор кодеков влияет на качество и совместимость голосовой связи. Поддерживаются кодеки Opus, alaw, mulaw, GSM и другие.
  </Accordion>

  <Accordion title={bot.DTMF_METHODS}>
    DTMF необходим для взаимодействия с голосовым меню. Доступны методы RFC2833 (рекомендуется), INFO и inband.
  </Accordion>

  <Accordion title={bot.DIAL_RULES}>
    Позволяют задать формат набора номера для совместимости с АТС. Подробнее в разделе [Преобразование исходящих номеров](/ru/docs/softphone/settings#dialing-rules).
  </Accordion>

  <Accordion title="Приоритет">
    Приоритет позволяет задать порядок вызова SIP-аккаунтов при звонке Telegram → SIP.

    Применяются следующие правила:

    1. Аккаунты с одинаковым приоритетом вызываются одновременно.
    2. Чем меньше приоритет, тем раньше вызываются SIP-аккаунты.
    3. Переход к следующему приоритету происходит после неуспеха дозвона на все SIP-аккаунты предыдущего приоритета.
  </Accordion>

  <Accordion title={`${bot.CALLER_PHONE} и ${bot.CALLER_NAME}`}>
    Правила формирования идентификатора (Caller ID) и отображаемого имени (Caller Name) абонента при звонке, которое применяется к обоим направлениям.

    Подробнее см. [Типы идентификаторов абонента](#callerid).
  </Accordion>
</AccordionGroup>

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

<a id="pbx-siptg" />

### PBX → SIP.TG

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

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

<Frame caption="Скриншот с настройками SIP-подключения PBX→SIP.TG">
  <img src="https://mintcdn.com/siptg/tkFN5QCwmPmK87TJ/images/gateway/pbx-siptg.png?fit=max&auto=format&n=tkFN5QCwmPmK87TJ&q=85&s=2f78cbccf9f314af3b95551d6602e425" style={{ maxHeight:"230px" }} width="800" height="460" data-path="images/gateway/pbx-siptg.png" />
</Frame>

<AccordionGroup>
  <Accordion title={`${bot.GATEWAY_IN_SHOW} и ${bot.GATEWAY_IN_RESET}`}>
    Показывают логин, пароль и адрес подключения текущей SIP-линии, которую необходимо зарегистрировать на стороне вашей АТС.

    **{bot.GATEWAY_IN_RESET}** предварительно генерирует новый SIP-пароль для данной линии. После сброса его необходимо будет обновить на стороне АТС.
  </Accordion>

  <Accordion title={bot.TRUSTED_IPS}>
    Список IP-адресов и подсетей, с которых разрешено подключение к данному аккаунту.
  </Accordion>
</AccordionGroup>

<a id="siptg-pbx" />

### SIP.TG → PBX

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

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

<Frame caption="Скриншот с настройками SIP-подключения SIP.TG→PBX">
  <img src="https://mintcdn.com/siptg/tkFN5QCwmPmK87TJ/images/gateway/siptg-pbx.png?fit=max&auto=format&n=tkFN5QCwmPmK87TJ&q=85&s=4abddeea475e5af6cf566176a6ce4647" style={{ maxHeight:"306px" }} width="800" height="612" data-path="images/gateway/siptg-pbx.png" />
</Frame>

<AccordionGroup>
  <Accordion title={`${bot.LOGIN}, ${bot.PASSWORD}, ${bot.DOMAIN} и ${bot.REGISTRAR}`}>
    Основные параметры подключения, которые нужно заполнить чтобы подключение к вашей АТС было возможным.

    **${bot.REGISTRAR}** можно заполнять только в том случае, если он отличается от **${bot.DOMAIN}**.
  </Accordion>

  <Accordion title={bot.GATEWAY_OUT_NUMBER}>
    Когда пользователь нажимает кнопку звонка 📞 в приложении Telegram без отправки любых сообщений — этот номер будет использоваться в качестве номера по умолчанию, который поступит в АТС.
  </Accordion>
</AccordionGroup>

<a id="ip-ip" />

### IP ⇿ IP

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

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

<Frame caption="Скриншот с настройками SIP-подключения IP⇿IP">
  <img src="https://mintcdn.com/siptg/tkFN5QCwmPmK87TJ/images/gateway/ip-ip.png?fit=max&auto=format&n=tkFN5QCwmPmK87TJ&q=85&s=92b3b74a7f8670135eff991cda128158" style={{ maxHeight:"268px" }} width="800" height="536" data-path="images/gateway/ip-ip.png" />
</Frame>

<AccordionGroup>
  <Accordion title={bot.ADDRESS_PORT}>
    IP-адрес и порт противоположной стороны (вашей АТС).

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

    Текущий IP-адрес используемого Worker-сервера отобразится в сообщении, когда вы запросите изменение текущего параметра.
  </Accordion>

  <Accordion title={bot.FIELD_VALUE}>
    Если вы хотите использовать несколько SIP-подключений между одинаковыми IP-адресами, это поле позволяет задать дополнительный SIP-заголовок для корректной идентификации подключения.

    Параметр задаётся в виде пары `{название SIP поля}:{значение SIP поля}`, разделённое двоеточием `:`.
  </Accordion>

  <Accordion title={bot.GATEWAY_OUT_NUMBER}>
    Когда пользователь нажимает кнопку звонка 📞 в приложении Telegram без отправки любых сообщений — этот номер будет использоваться в качестве номера по умолчанию, который поступит в АТС.
  </Accordion>
</AccordionGroup>

<a id="callerid" />

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

Каждый пользователь Telegram может иметь до трёх типов идентификаторов:

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

| Тип идентификатора | Формат    | Возможность контакта | Обязательное | Изменяемое | Поддержка АТС |
| ------------------ | --------- | -------------------- | ------------ | ---------- | ------------- |
| Номер телефона     | числовой  | ограниченная         | да           | да         | да            |
| Username           | буквенный | да                   | нет          | да         | ограниченная  |
| User ID            | числовой  | нет                  | да           | нет        | да            |

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

<a id="callerid-tg-pbx" />

### Telegram → АТС

Для каждого SIP-подключения можно установить правила формирования Caller ID, который будет передаваться в поле `From` в сообщении `INVITE` при звонках Telegram → АТС.

Правила формирования Caller ID представляют собой несколько строк, по одному правилу в каждой строке. Каждое правило — это шаблонная строка, в которой в качестве шаблонных параметров допустимы `{phone}`, `{username}` и `{userid}`. При формировании финального Caller ID используется первое правило, все шаблонные параметры которого содержат значения о звонящем пользователе Telegram.

<Accordion title="Примеры формирования Caller ID">
  <Tabs>
    <Tab title="Пример 1">
      ```
      {phone}
      {username}
      0userid
      ```

      Такой Caller ID в разных ситуациях может принимать все три типа идентификаторов, в зависимости от того, какие из них имеются у пользователя:

      * Если Номер телефона не скрыт — будет использован он.
      * В противном случае, если установлен Username — система выберет его.
      * И лишь в самом исключительном случае будет использоваться User ID с префиксом `0` — эта метка позволяет разрешать неоднозначность в интерпретации типа идентификатора.
    </Tab>

    <Tab title="Пример 2">
      ```
      {phone}
      {username}
      ```

      Здесь поведение аналогично Примеру 1 с той лишь разницей, что если у пользователя нет ни Номера телефона, ни Username, то такой звонок будет запрещён и не попадёт в АТС.
    </Tab>

    <Tab title="Пример 3">
      ```
      {phone}
      {username}
      anonymous
      ```

      А этот пример отличается от первых двух тем, что в случае отсутствия у пользователя Номера телефона и Username звонок всё равно дойдёт до АТС, но с номером `anonymous`.
    </Tab>
  </Tabs>
</Accordion>

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

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

<Accordion title="Пример формирования Caller Name">
  ```
  +{phone} ({name_ascii})
  @{username} ({name_ascii})
  {name_ascii}
  ```

  В зависимости от наличия у пользователя Номера телефона и Username, будет использоваться:

  * либо Номер телефона с префикстом `+`, за которым следует отображаемое имя, записанное в скобках,
  * либо Username с префиксом `@`,з а которым также следует отображаемое имя, записанное в скобках,
  * либо в самом крайнем случае — просто отображаемое имя без посторонних символов.
</Accordion>

<a id="callerid-pbx-tg" />

### АТС → Telegram

При получении запроса `INVITE` со стороны АТС, вызываемый идентификатор будет интерпретироваться в полном соответствии с тем же параметром Caller ID, который описан выше. Однако, алгоритм определения типа идентификатора и отсечения в нём префиксов и посторонних символов уже не выглядит так очевидно.

<Accordion title="Подробный алгоритм обработки правил">
  Как и в случае звонков 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 и консистентность форматов идентификатора для обоих направлений вызова.
</Accordion>

<a id="crm" />

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

<Info>
  Интеграция с CRM обычно реализуется не напрямую с SIP.TG, а через АТС, в которую SIP.TG подключается как стандартный SIP-транк. Сама CRM «видит» звонки и контакты благодаря возможностям АТС. Отдельных модулей или плагинов именно для SIP.TG в CRM устанавливать, как правило, не требуется.
</Info>

Чаще всего взаимодействие устроено так:

1. Telegram-звонок поступает на Шлюз SIP.TG (аккаунт Telegram).
2. Шлюз SIP.TG конвертирует звонок в SIP и передаёт его в АТС (по SIP-транку).
3. АТС, обладая нужным модулем или плагином интеграции с CRM, распознаёт входящий вызов, отображает карточку клиента, логирует звонок или выполняет другие действия.
4. По окончании разговора данные о звонке (например, длительность, результат) тоже сохраняются в CRM.

<AccordionGroup>
  <Accordion title="Как АТС узнаёт о номере клиента?">
    Почти любая современная АТС при входящем или исходящем звонке может использовать SIP-заголовки (CallerID, From и т. п.), чтобы «пробросить» данные в CRM-модуль. При звонках из Telegram через Шлюз SIP.TG в SIP-транк передаётся идентификатор звонящего (чаще всего отображается как Telegram ID или username), а уже логика в АТС сопоставляет этот идентификатор с записями CRM.

    Если ваша АТС умеет управлять CallerID для исходящих вызовов (например, «подставляет» нужный номер), то CRM может автоматически записать в карточку и реальный телефонный номер, и контакты из Telegram. Но деталей у каждой CRM и АТС — масса; в целом это не регулируется напрямую со стороны SIP.TG.
  </Accordion>

  <Accordion title="Как инициировать вызов из CRM?">
    Если CRM «умеет» инициировать вызов (например, чтобы кликнуть на номер и позвонить), она обычно делает это через АТС, шлёт туда команду Call API или AMI (Asterisk, 3CX и т. п.). Дальше АТС переводит запрос в SIP-транк SIP.TG, а Шлюз звонит в Telegram. Всё это снова стандартное взаимодействие «CRM → АТС → SIP-транк», где SIP.TG просто выполняет роль оператора связи для Telegram.
  </Accordion>

  <Accordion title="Пример настройки">
    1. В АТС создаёте учётную запись (SIP-транк) с реквизитами, выданными при настройке `/gateway` в [@siptg\_bot](https://t.me/siptg_bot?start=utm_docs).
    2. В CRM активируете готовый плагин или модуль (для Asterisk, 3CX, FreePBX, Yate и т. п.) либо настраиваете внешние запросы к АТС по её API.
    3. Проверяете, что CRM получает события о звонках (всплывает карточка, пишутся логи) и при необходимости подключаете более глубокую логику (распределение вызовов, привязка записей разговора, автоматизация).
    4. Для исходящих звонков из CRM — проверяете, что АТС может сформировать вызов по SIP-транку «SIP.TG» (обычно выбирается маршрут или правило набора для такой линии).
  </Accordion>
</AccordionGroup>

<a id="crm-extra" />

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

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

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

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

<a id="crm-tips" />

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

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

<Tip>
  **Не усложняйте**. Чтобы «подружить» CRM с Telegram-звонками, достаточно подключить Шлюз SIP.TG к вашей АТС и использовать стандартные инструменты интеграции CRM, которые есть в АТС.

  Если возникли проблемы или ошибки, воспользуйтесь разделом [Вопросы и решение проблем](/ru/docs/gateway/problems).
</Tip>
