====== Настройка звонков через 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 |}}