====== Настройка звонков через Telegram ======
Поддержка модуля приостановлена, проблема в базовой библиотеке, пока она не будет решена, модуль не будет корректно работать.
Рекомендуем использовть сервис https://www.sip.tg/
===== Структура приложения =====
**Обратите внимание**: Все данные авторизации / секретные коды / данные переписки Telegram используются исключительно ЛОКАЛЬНО на вашей АТС и НЕ передаются на сервера МИКО.
Модуль состоит из нескольких компонент:
* **Шлюз SIP <-> Telegram** - позволяет **принимать звонки** от telegram и **совершать исходящие** звонки через telegram. Шлюз не зависит от прочих компонент, они лишь его дополняют
* **Телеграм клиент** - работает совместно с ботом, во время входящего звонка звонящему отправляется клавиатура для ввода добавочного номера.
* **Телеграм бот** - служит для формирования клавиатуры и отправки тональных команд в текущий канал. Для работы необходимо предварительно получить токен через интерфейс бота "**@BotFather**"
При звонке в компанию клиенту будет отправлена с сообщением клавиатура для ввода добавочного номера:{{ ::tg-23.png?700 |}}
После завершения звонка клавиатура будет скрыта.
После неудачного звонка из компании (клиент не ответил). Клиенту будет отправлена визитка: {{ ::tg-24.png?700 |}}
Текст визитки и клавиатуры ввода добавочного можно исправить в настройках модуля: {{ ::tg-25.png?700 |}}
===== Настройка Telegram =====
==== Аккаунт ====
- Необходимо настроить видимость номера телефона: {{ ::tg-18.png?700 |}}
- Необходимо разрешить ВСЕМ звонить на номер телефона: {{ ::tg-17.png?700 |}}
==== Telegram Bot ====
=== Создайте бота ===
- Откройте чат с **@BotFather** в любом удобном клиенте Телеграм
- Отправьте команду /newbot
- Введите "**name**" нового бота, к примеру **new_keyboard_bot**, имя должно быть коротким и понятным, **имя увидит клиент при получении клавиатуры**
- Введите "**username**" для нового бота, к примеру **new_keyboard_bot**
=== Включите Inline Mode ===
- Отправьте боту команду /setinline
- Выберите созданного ранее бота {{ ::telegramprovider-12.png?700 |}}
=== Получите Token ===
- Отправьте команду /mybots
- Выберите созданного ранее бота
- Кликните по кнопке "**API Token**"
- Скопируйте значение "**token**"
=== Начните диалог с ботом ===
- Отправьте из аккаунта телеграмм вашему боту команду /start
- Напишите боту произвольное сообщение, к примеру "Привет!"
С ботом должен быть открытый диалог, если не отправить ему команду "**/start**", то часть функционала работать не будет.
===== Получение "App api_id" и "App api_hash" =====
"**App api_id**" и "**App api_hash**" - это секретные параметры, которые привязываются к вашему telegram аккаунту. **Никому не сообщайте эти значения!** Они необходимы для подключения к API Telegram. Подробнее можно почитать в [[https://core.telegram.org/api/obtaining_api_id | документации]].
- Перейдите по ссылке [[https://my.telegram.org/auth|https://my.telegram.org/auth]]
- Укажет номер телефона, привязанный к telegram аккаунту {{ ::tg-0.png?450 |}}
- Перейдите в раздел "**API development tools**" {{ ::tg-1.png?450 |}}
- Опишите параметры нового приложения {{ ::tg-3-2.png?450 |}}
- "**App title**" - заголовок приложения
- "**Shot name**" - уникальное короткое имя приложения
- "**URL**"- произвольный адрес сайта
- "**Platform**" - Other
- "**Description**" - произвольное описание
- Выполните действие "**Create application**"
- Скопируйте значения **App api_id**" и "**App api_hash**" {{ ::tg-4.png?450 |}}
===== Настройки модуля MikoPBX =====
При восстановлении из бекапа может потребоваться повторная авторизация в telegram.
- Установите дополнительный модуль "**Провайдер Telegram**", (см. инструкции по установке модулей в разделе [[:pbx-extension-modules|Управление модулями]])
- Ведите значения "**App api_id**" и "**App api_hash**", полученные на предыдущем этапе
- Сохраните изменения
- Добавьте новый номер по кнопке "**Добавить**"
- Запустите процесс авторизации для **Шлюза**, **Клиента Telegram**, для **Бота**{{ ::tg-21.png |}}
- На ваш **telegram** аккаунт придет уведомление с кодом подтверждения:{{ ::tg-6.png?700 |}}
- В интерфейсе MIkoPBX откроется форма ввода кода подтверждения: {{ ::tg-7.png |}}
- Введите код и подтвердите выбор. Через некоторое время линия отобразиться как активная {{ ::tg-22.png |}}
Кнопки авторизации отображают статус подключения:
* **Красный** - Необходима авторизация
* **Оранжевый** - Ожидается запуск сервиса
* **Зеленый** - Соединение установлено
В любом из состояний возможно запустить процесс авторизации заново.
В случае возникновения проблем, может потребоваться очистить служебные каталоги ([[:faq:putty|с помощью SSH-клиента]]):
* /storage/usbdisk1/mikopbx/custom_modules/ModuleTelegramProvider/db/**7906660000**
* /storage/usbdisk1/mikopbx/custom_modules/ModuleTelegramProvider/db/madeline/**7906660000**
где 7906660000 - номер телефона, логин телеграмм аккаунта
===== Настройка провайдера =====
- Скопируйте адрес и порт из активной линии "**127.0.0.1:30001**"
- Перейдите в раздел "[[:providers|Провайдеры телефонии]]"
- Добавьте нового провайдера
- Введите "**Название провайдера**" - произвольное значение
- Укажите "**Тип учетной записи**" - "**Аутентификация по IP адресу, без пароля**"
- Введите "**Хост или IP адрес**" - **127.0.0.1**
- "**Расширенные настройки**" - "**Порт соединения SIP**" - укажите порт линии, в текущем примере "**30001**" {{ ::tg2sip-10.png |}}
- "**Расширенные настройки**" - "**Отключить использование поля fromuser**" {{ ::tg2sip-11.png |}}
- Сохраните изменения
- В разделе "**Общие настройки**" разрешите использование кодека **Opus** {{ ::tg-16.png |}}
===== Входящий маршрут =====
Для настройки входящих маршрутов ознакомьтесь с документацией "[[:incoming-routes|Входящие маршруты]]"
**Порядок определения callerid**:\\
Telegram может передавать следующие идентификаторы:
- **X-TG-Phone** - номер телефона
- **X-TG-Username** - ник пользователя
- **X-TG-ID** - идентификатор пользователя
Некоторые идентификаторы могут быть скрыты клиентом в настройках приватности.
Caller ID будет установлен исходя из этих полей, **X-TG-Phone** - имеет наивысший приоритет, **X-TG-ID** - низший.
===== Исходящий маршрут =====
Для настройки исходящих маршрутов ознакомьтесь с документацией "[[:outbound-routes|Исходящие маршруты]]"\\
**Обязательно добавить плюс при наборе номера**! См. пример ниже.
Пример маршрута:
- "**Название правила**" - siptg
- "**Номер начинается с**" - 7
- "**Остальная часть номера состоит из указанного количества цифр**" - 10
- "**Перед тем как начать звонок отсекаем**" - 0
- "**цифр в начале номера, затем добавляем в начало** " - символ плюс "+" {{ ::tg-12.png |}}