> ## 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: "🆕 АТС→SIP․TG",
  NEW_IP: "🆕 IP⇿IP",
  NEW_OUT: "🆕 SIP․TG→АТС",
  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}** (докладніше див. [Покрокове підключення сесії](/uk/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}>
    Дозволяють задати формат набору номера для сумісності з АТС. Докладніше в розділі [Перетворення вихідних номерів](/uk/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, які є в АТС.

  Якщо виникли проблеми чи помилки, скористайтеся розділом [Питання та вирішення проблем](/uk/docs/gateway/problems).
</Tip>
