Принцип налаштування Шлюзу
на боці АТС

Налаштування на стороні АТС (або телефонного модуля 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