Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
module-telegram-provider [2022/02/14 07:56] Портнов Алексей |
module-telegram-provider [2024/03/14 06:13] (текущий) Бекетов Николай |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Настройка звонков через Telegram ====== | ====== Настройка звонков через Telegram ====== | ||
- | ====== Структура приложения ====== | + | <note warning>Поддержка модуля приостановлена, проблема в базовой библиотеке, пока она не будет решена, модуль не будет корректно работать. |
+ | Рекомендуем использовть сервис https://www.sip.tg/</note> | ||
+ | ===== Структура приложения ===== | ||
+ | |||
+ | <note tip>**Обратите внимание**: Все данные авторизации / секретные коды / данные переписки Telegram используются исключительно ЛОКАЛЬНО на вашей АТС и НЕ передаются на сервера МИКО. | ||
+ | </note> | ||
Модуль состоит из нескольких компонент: | Модуль состоит из нескольких компонент: | ||
- | * **Шлюз SIP <-> Telegram** - позволяет **принимать звонки** от telegram и **совершать исходящие** звонки через telegram | + | * **Шлюз SIP <-> Telegram** - позволяет **принимать звонки** от telegram и **совершать исходящие** звонки через telegram. Шлюз не зависит от прочих компонент, они лишь его дополняют |
- | * **Телеграм клиент** - работает совместно с ботом, во время входящего звонка клиенту звонящему отправляется клавиатура для ввода добавочного номера | + | * **Телеграм клиент** - работает совместно с ботом, во время входящего звонка звонящему отправляется клавиатура для ввода добавочного номера. |
- | * **Телеграм бот** - служит для формирования клавиатуры и отправки тональных команд в текущий канал клиента. Бота необходимо создать через интерфейс бота "**@BotFather**" | + | * **Телеграм бот** - служит для формирования клавиатуры и отправки тональных команд в текущий канал. Для работы необходимо предварительно получить токен через интерфейс бота "**@BotFather**" |
+ | |||
+ | При звонке в компанию клиенту будет отправлена с сообщением клавиатура для ввода добавочного номера:{{ ::tg-23.png?700 |}} | ||
+ | После завершения звонка клавиатура будет скрыта. | ||
+ | |||
+ | После неудачного звонка из компании (клиент не ответил). Клиенту будет отправлена визитка: {{ ::tg-24.png?700 |}} | ||
+ | Текст визитки и клавиатуры ввода добавочного можно исправить в настройках модуля: {{ ::tg-25.png?700 |}} | ||
===== Настройка Telegram ===== | ===== Настройка Telegram ===== | ||
+ | ==== Аккаунт ==== | ||
- Необходимо настроить видимость номера телефона: {{ ::tg-18.png?700 |}} | - Необходимо настроить видимость номера телефона: {{ ::tg-18.png?700 |}} | ||
- Необходимо разрешить ВСЕМ звонить на номер телефона: {{ ::tg-17.png?700 |}} | - Необходимо разрешить ВСЕМ звонить на номер телефона: {{ ::tg-17.png?700 |}} | ||
- | ==== Создание бота ==== | + | ==== Telegram Bot ==== |
+ | |||
+ | === Создайте бота === | ||
- Откройте чат с **@BotFather** в любом удобном клиенте Телеграм | - Откройте чат с **@BotFather** в любом удобном клиенте Телеграм | ||
Строка 19: | Строка 33: | ||
- Введите "**name**" нового бота, к примеру **new_keyboard_bot**, имя должно быть коротким и понятным, **имя увидит клиент при получении клавиатуры** | - Введите "**name**" нового бота, к примеру **new_keyboard_bot**, имя должно быть коротким и понятным, **имя увидит клиент при получении клавиатуры** | ||
- Введите "**username**" для нового бота, к примеру **new_keyboard_bot** | - Введите "**username**" для нового бота, к примеру **new_keyboard_bot** | ||
- | - Отправьте боту команду <code>/setinline</code> | + | |
- | - Выберите созданного ранее бота | + | === Включите Inline Mode === |
+ | |||
+ | - Отправьте боту команду <code>/setinline</code> | ||
+ | - Выберите созданного ранее бота {{ ::telegramprovider-12.png?700 |}} | ||
+ | |||
+ | === Получите Token === | ||
+ | |||
+ | - Отправьте команду <code>/mybots</code> | ||
+ | - Выберите созданного ранее бота | ||
+ | - Кликните по кнопке "**API Token**" | ||
- Скопируйте значение "**token**" | - Скопируйте значение "**token**" | ||
- | - Пример диалога с ботом: {{ ::tg-20.png?700 |}} | ||
- | - Для редактирования свойств бота выполните команду <code>/mybots</code> Можно изменить имя бота, токен, прочее... | ||
+ | === Начните диалог с ботом === | ||
+ | |||
+ | - Отправьте из аккаунта телеграмм вашему боту команду <code>/start</code> | ||
+ | - Напишите боту произвольное сообщение, к примеру "Привет!" | ||
+ | |||
+ | <note important>С ботом должен быть открытый диалог, если не отправить ему команду "**/start**", то часть функционала работать не будет. </note> | ||
===== Получение "App api_id" и "App api_hash" ===== | ===== Получение "App api_id" и "App api_hash" ===== | ||
- | <note important>"**App api_id**" и "**App api_hash**" - это серкретные параметры, которые привязываются к вашему telegram аккаунту. **Никому не сообщайте эти значения!** Они необходимы для подключения к API Telegram. Подробнее можно почитать в [[https://core.telegram.org/api/obtaining_api_id | документации]]. </note> | + | <note important>"**App api_id**" и "**App api_hash**" - это секретные параметры, которые привязываются к вашему telegram аккаунту. **Никому не сообщайте эти значения!** Они необходимы для подключения к API Telegram. Подробнее можно почитать в [[https://core.telegram.org/api/obtaining_api_id | документации]]. </note> |
- Перейдите по ссылке [[https://my.telegram.org/auth|https://my.telegram.org/auth]] | - Перейдите по ссылке [[https://my.telegram.org/auth|https://my.telegram.org/auth]] | ||
Строка 48: | Строка 75: | ||
- Сохраните изменения | - Сохраните изменения | ||
- Добавьте новый номер по кнопке "**Добавить**" | - Добавьте новый номер по кнопке "**Добавить**" | ||
- | - Запустите процесс авторизации {{ ::tg-5.png |}} | + | - Запустите процесс авторизации для **Шлюза**, **Клиента Telegram**, для **Бота**{{ ::tg-21.png |}} |
- | - На ваш telegram аккаунт придет уведомление с кодом подтверждения:{{ ::tg-6.png |}} | + | - На ваш **telegram** аккаунт придет уведомление с кодом подтверждения:{{ ::tg-6.png?700 |}} |
- В интерфейсе MIkoPBX откроется форма ввода кода подтверждения: {{ ::tg-7.png |}} | - В интерфейсе MIkoPBX откроется форма ввода кода подтверждения: {{ ::tg-7.png |}} | ||
- | - Введите код и подтвердите выбор. Через некоторое время линия отобразиться как активная {{ ::tg-8.png |}} | + | - Введите код и подтвердите выбор. Через некоторое время линия отобразиться как активная {{ ::tg-22.png |}} |
+ | |||
+ | <note important>Кнопки авторизации отображают статус подключения: | ||
+ | * **Красный** - Необходима авторизация | ||
+ | * **Оранжевый** - Ожидается запуск сервиса | ||
+ | * **Зеленый** - Соединение установлено | ||
+ | В любом из состояний возможно запустить процесс авторизации заново. | ||
+ | </note> | ||
+ | |||
+ | <note important>В случае возникновения проблем, может потребоваться очистить служебные каталоги ([[:faq:putty|с помощью SSH-клиента]]): | ||
+ | * /storage/usbdisk1/mikopbx/custom_modules/ModuleTelegramProvider/db/**7906660000** | ||
+ | * /storage/usbdisk1/mikopbx/custom_modules/ModuleTelegramProvider/db/madeline/**7906660000** | ||
+ | где 7906660000 - номер телефона, логин телеграмм аккаунта | ||
+ | |||
+ | </note> | ||
===== Настройка провайдера ===== | ===== Настройка провайдера ===== | ||
- | - Скопируйте адрес и порт из активной линии "**127.0.0.1:30012**" | + | - Скопируйте адрес и порт из активной линии "**127.0.0.1:30001**" |
- Перейдите в раздел "[[:providers|Провайдеры телефонии]]" | - Перейдите в раздел "[[:providers|Провайдеры телефонии]]" | ||
- Добавьте нового провайдера | - Добавьте нового провайдера | ||
- Введите "**Название провайдера**" - произвольное значение | - Введите "**Название провайдера**" - произвольное значение | ||
+ | - Укажите "**Тип учетной записи**" - "**Аутентификация по IP адресу, без пароля**" | ||
- Введите "**Хост или IP адрес**" - **127.0.0.1** | - Введите "**Хост или IP адрес**" - **127.0.0.1** | ||
- | - "**Расширенные настройки**" - "**Порт соединения SIP**" - укажите порт линии, в текущем примере "**30012**" {{ ::tg-9.png |}} | + | - "**Расширенные настройки**" - "**Порт соединения SIP**" - укажите порт линии, в текущем примере "**30001**" {{ ::tg2sip-10.png |}} |
- | - "**Расширенные настройки**" - "**Отключить использование поля fromuser**" | + | - "**Расширенные настройки**" - "**Отключить использование поля fromuser**" {{ ::tg2sip-11.png |}} |
- | - "**Расширенные настройки**" - "**Отключить регистрацию**" | + | |
- | - "**Расширенные настройки**" - "**Доверять этому провайдеру и принимать от него любые звонки без аутентификации**" {{ ::tg-15.png |}} | + | |
- Сохраните изменения | - Сохраните изменения | ||
- В разделе "**Общие настройки**" разрешите использование кодека **Opus** {{ ::tg-16.png |}} | - В разделе "**Общие настройки**" разрешите использование кодека **Opus** {{ ::tg-16.png |}} | ||
Строка 90: | Строка 130: | ||
- "**Перед тем как начать звонок отсекаем**" - 0 | - "**Перед тем как начать звонок отсекаем**" - 0 | ||
- "**цифр в начале номера, затем добавляем в начало** " - символ плюс "+" {{ ::tg-12.png |}} | - "**цифр в начале номера, затем добавляем в начало** " - символ плюс "+" {{ ::tg-12.png |}} | ||
- | |||
- | |||
- | ===== Настройка NAT ===== | ||
- | <note important>Этот пункт необходим только в том случае, если в настройках "**Сетевые интерфейсы**": | ||
- | * **Эта станция расположена за NAT маршрутизатором** | ||
- | * **Указан внешний IP или внешний адрес сервера** | ||
- | |||
- | **В будущих релизах MikoPBX эти настройки производить не потребуется.** | ||
- | </note> | ||
- | |||
- | - Необходимо добавить в раздел "**Сетевой экран**" новую подсеть **127.0.0.1/32**: | ||
- | - Установите флаг "**Это VPN или локальная сеть...**" {{ ::tg-19.png |}} | ||
- | - Сохраните настройки | ||
- | - **Перезагрузите АТС** | ||
- | |||