Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
faq:goip [2019/05/06 10:03] Портнов Алексей [Настройка шлюза] |
faq:goip [2024/03/04 09:04] (текущий) Портнов Алексей [Кастомизация системных файлов] |
||
---|---|---|---|
Строка 9: | Строка 9: | ||
- Сбросьте шлюз к заводским настройкам | - Сбросьте шлюз к заводским настройкам | ||
- | ===== Учетная запись провайдера на Askozia ===== | + | ===== Учетная запись провайдера на MikoPBX ===== |
- | В нашем примере шлюз GoIP4 будет регистрироваться на АТС askozia. Для этого на АТС создадим учетную запись провайдера: | + | В нашем примере шлюз GoIP4 будет регистрироваться на АТС MikoPBX. Для этого на АТС создадим учетную запись провайдера: |
- | {{ :faq:goip4_ask_provider.png |}} | + | {{ :faq:goip-provider-1.png |}} |
- | {{ :faq:goip4_ask_provider_2.png |}} | + | |
- | * **Название провайдера** - укажем подходящее название, GoIP4 | + | * **Название провайдера** - укажем подходящее название, к примеру GoIP4 |
- | * **Хост или IP адрес** - укажем IP адрес шлюза | + | * **Тип учетной записи** - "Входящая регистрация" |
- | * **Логин** - произвольный набор символов, использоваться не будет | + | * **Логин** - будет установлен равным ID провайдера, поменять возможности нет, пример логина "**SIP-1659624077**" |
- | * **Пароль** - укажем и запомним сложный пароль, с ним шлюз будет регистрироваться на аскозии | + | * **Пароль** - укажем и запомним сложный пароль, с ним шлюз будет регистрироваться на MikoPBX |
- | * **Режим DTMF** - rfc2833 | + | |
+ | ===== Установка корректного CID клиента ===== | ||
- | В расширенных настройках: | + | - Откройте меню "**Система**" - "**Кастомизация системных файлов**" |
- | * **Режим NAT** - no | + | - Откройте на редактирование файл "**/etc/asterisk/extensions.conf**" |
- | * Устанавливаем флаг **Отключить регистрацию**(регистрироваться будет шлюз на АТС) | + | - Выберите режим "**Добавлять в конец файла**" |
- | * В поле **Дополнительные параметры** указываем: | + | - Добавьте следующий код: <code>[SIP-1659624077-incoming-custom] |
- | <code> | + | exten => _[0-9*#+a-zA-Z][0-9*#+a-zA-Z]!,1,NoOp(------) |
- | host=dynamic | + | same => n,Set(tmpRpid=${PJSIP_HEADER(read,Remote-Party-ID)}) |
- | type=peer | + | same => n,ExecIf($["x${tmpRpid}" != "x"]?Set(fromCid=${CUT(CUT(tmpRpid,@,1),:,2)})) |
- | </code> | + | same => n,ExecIf($["${fromCid}x" != "x"]?Set(CALLERID(num)=${fromCid})) |
- | + | same => n,ExecIf($["${fromCid}x" != "x"]?Set(CALLERID(name)=${fromCid})) | |
- | Сохраним настройки. После сохранения в адресной строке скопируем имя учетной записи провайдера: | + | same => n,return |
- | + | </code> | |
- | {{ :faq:goip4_ask_provider_main.png |}} | + | - Идентификатор "**SIP-1659624077**" замените на тот, что отображается в поле "**Логин**". |
- | + | ||
- | Формат имени **SIP-PROVIDER-XXXXXXXXXXXXX…**. Это имя будем использовать при настройке шлюза. | + | |
===== Настройка шлюза ===== | ===== Настройка шлюза ===== | ||
Строка 50: | Строка 46: | ||
* **Config Mode** - выберем **Single Server Mode** | * **Config Mode** - выберем **Single Server Mode** | ||
- | * **Authentication ID**, **Phone Number**, **Display Name** - укажем имя учетной записи провайдера аскозии в формате **SIP-PROVIDER-XXXXXXXXXXXXX…** | + | * **Authentication ID**, **Phone Number**, **Display Name** - укажем ID (логин) учетной записи провайдера в формате **SIP-XXXXXXXXXXXXX…** |
- | * **Password** - укажем пароль из учетной записи провайдера, созданного на аскозии | + | * **Password** - укажем пароль из учетной записи провайдера |
- | * **SIP Proxy**, **SIP Registrar**, **Home Domain** - укажем IP адрес аскозии | + | * **SIP Proxy**, **SIP Registrar**, **Home Domain** - укажем IP адрес MikoPBX |
- | Далее в настройке **Routing Prefix** необходимо настроить префиксы номеров для выбора линии при исходящем вызове. Для Line1 укажем префикс 1, для Line2 укажем префикс 2 и т.д. Позже на аскозии мы добавим маршруты исходящих звонков для каждой SIM карты, перед набором к номеру будет добавляться необходимый префикс. | + | Далее в настройке **Routing Prefix** необходимо настроить префиксы номеров для выбора линии при исходящем вызове. Для Line1 укажем префикс 1, для Line2 укажем префикс 2 и т.д. Позже мы добавим маршруты исходящих звонков для каждой SIM карты, перед набором к номеру будет добавляться необходимый префикс. |
3) Перейдем на вкладку **Call Out**. Перед совершением исходящего звонка необходимо обработать номер телефона и удалить префикс, с которым пришел номер от АТС. Для первого канала **CH1** в поле **Dial Plan** укажем правило "1:-1" (если номер начинается на 1, то первая цифра будет удалена, и вызов уйдет через первый канал). Переключимся на **CH2**, в поле **Dial Plan** укажем правило "2:-2" (если номер начинается на 2, то первая цифра будет удалена, и вызов уйдет через второй канал). И так далее. | 3) Перейдем на вкладку **Call Out**. Перед совершением исходящего звонка необходимо обработать номер телефона и удалить префикс, с которым пришел номер от АТС. Для первого канала **CH1** в поле **Dial Plan** укажем правило "1:-1" (если номер начинается на 1, то первая цифра будет удалена, и вызов уйдет через первый канал). Переключимся на **CH2**, в поле **Dial Plan** укажем правило "2:-2" (если номер начинается на 2, то первая цифра будет удалена, и вызов уйдет через второй канал). И так далее. | ||
Строка 60: | Строка 56: | ||
{{ :faq:goip4_callout.png |}} | {{ :faq:goip4_callout.png |}} | ||
- | 4) Настроим переадресацию входящих звонков на SIP линию. Перейдем на страницу **Call In**. Для каждого GSM канала в поле **Forwarding to VoIP Number** укажем номер телефона, с которым звонок будет направлен на АТС аскозию. В нашем случае для **CH1** мы указали мобильный номер, который соответствует этой sim. Аналогичным образом для **CH2, CH3, CH4** нужно указать номера соответствующих sim карт. | + | 4) Настроим переадресацию входящих звонков на SIP линию. Перейдем на страницу **Call In**. Для каждого GSM канала в поле **Forwarding to VoIP Number** укажем номер телефона, с которым звонок будет направлен на MikoPBX. В нашем случае для **CH1** мы указали мобильный номер, который соответствует этой sim. Аналогичным образом для **CH2, CH3, CH4** нужно указать номера соответствующих sim карт. |
5) В разделе «**Misc**» | 5) В разделе «**Misc**» | ||
- | « **CID Forward Mode**» выставляем значение «**Use CID as SIP Caller ID**» | + | « **CID Forward Mode**» выставляем значение «**Use Remoe Party ID**» |
- | {{:faq:7misc.png?400|}} | + | {{ :faq:goip-rpid.png?600 |}} |
- | + | Настройка шлюза завершена, перейдем на страницу **Status - Summary**. В колонке **VoIP** отображается статус подключения шлюза к АТС MikoPBX, **Y** - шлюз успешно зарегистрировался на АТС(по 4 линии статус **N**, т.к. на ней не установлена sim): | |
- | Настройка шлюза завершена, перейдем на страницу **Status - Summary**. В колонке **VoIP** отображается статус подключения шлюза к АТС askozia, **Y** - шлюз успешно зарегистрировался на АТС(по 4 линии статус **N**, т.к. на ней не установлена sim): | + | |
{{ :faq:goip4_summary.png |}} | {{ :faq:goip4_summary.png |}} | ||
- | ===== Настройка маршрутов входящих и исходящих звонков Askozia ===== | + | ===== Настройка маршрутов входящих и исходящих звонков MikoPBX ===== |
- | 1) Вернемся к настройкам АТС askozia, перейдем на страницу **Маршрутизация - Входящие маршруты**. Добавим новое правило входящих звонков с первого канала GSM шлюза: | + | 1) Вернемся к настройкам АТС MikoPBX, перейдем на страницу **Маршрутизация - Входящие маршруты**. Добавим новое правило входящих звонков с первого канала GSM шлюза: |
{{ :faq:goip4_ask_incom_route.png |}} | {{ :faq:goip4_ask_incom_route.png |}} | ||
Строка 86: | Строка 81: | ||
2) Настроим исходящую маршрутизацию через каждую sim карту. Перейдем на страницу **Маршрутизация - Исходящие маршруты**. Добавим новое правило для звонков через первую sim: | 2) Настроим исходящую маршрутизацию через каждую sim карту. Перейдем на страницу **Маршрутизация - Исходящие маршруты**. Добавим новое правило для звонков через первую sim: | ||
- | {{ :faq:goip4_ask_out_rout_mts.png |}} | + | {{ :faq:goip4_ask_out_rout_mts_2.png |}} |
- | Звонки на номера соответствующие шаблону 8911XXXXXXX, будем отправлять через провайдера GoIP4, перед набором к номеру будем добавлять префикс 1. | + | Звонки на номера соответствующие шаблону 8911XXXXXXX или 7911XXXXXXX, будем отправлять через провайдера GoIP4, перед набором к номеру будем добавлять префикс **1+**. |
- | * **Номер начинается с** - укажем начало набираемого номера, в нашем случае 8911 | + | * **Номер начинается с** - укажем начало набираемого номера, в нашем случае (7|8)911 |
* **Остальная часть номера состоит...** - 7 цифр | * **Остальная часть номера состоит...** - 7 цифр | ||
- | * **Перед тем как начать звонок отсекаем** - 0 цифр | + | * **Перед тем как начать звонок отсекаем** - 1 цифр |
- | * **Затем добавляем к номеру** - 1 | + | * **Затем добавляем к номеру** - 1+ |
Добавим новое правило для звонков через вторую sim: | Добавим новое правило для звонков через вторую sim: | ||
- | {{ :faq:goip4_ask_out_rout_megafon.png |}} | + | {{ :faq:goip4_ask_out_rout_megafon_2.png |}} |
- | Звонки на номера с шаблоном 8926XXXXXXX, будем отправлять через провайдера GoIP4, перед набором к номеру будем добавлять префикс 2. | + | Звонки на номера с шаблоном 8926XXXXXXX или 7926XXXXXXX, будем отправлять через провайдера GoIP4, перед набором к номеру будем добавлять префикс **2+**. |
Аналогичным образом можно настроить правила для звонков через другие sim. | Аналогичным образом можно настроить правила для звонков через другие sim. | ||
Строка 105: | Строка 100: | ||
Правила настройки исходящих маршрутов подробно описаны на [[https://wiki.mikopbx.com/outbound-routes|wiki]]. | Правила настройки исходящих маршрутов подробно описаны на [[https://wiki.mikopbx.com/outbound-routes|wiki]]. | ||
- | На этом настройка подключения шлюза к Аскозии завершена. Можно тестировать входящие и исходящие звонки через GSM шлюз. | + | На этом настройка подключения шлюза к MikoPBX завершена. Можно тестировать входящие и исходящие звонки через GSM шлюз. |
+ | |||
+ | ====== SMS to Telegram ====== | ||
+ | |||
+ | ===== Настройки Telegram ===== | ||
+ | |||
+ | Для начала через чат Telegram следует написать боту **[[https://t.me/BotFather|@BotFather]]**. Этот бот позволит создать и настроить вашего нового бота для интеграции с MIKOPBX. | ||
+ | - Отправляем боту команду<code>/start</code> | ||
+ | - Команда создания нового бота<code>/newbot</code> | ||
+ | - Отправляем имя нашего нового бота. К примеру <code>MIKOPBX_NEW_BOT</code> | ||
+ | - Сохраните значение «**token**» он понадобится для настройки со стороны АТС | ||
+ | - Создайте новую "**группу**" | ||
+ | - Перешлите любое сообщение из группы боту [[https://t.me/getmyid_bot| @getmypid_bot]] | ||
+ | - Сохраните значение "chat ID", для пользователя значение вида **190389360**, для группы отрицательное **-4190389360** | ||
+ | |||
+ | ===== Настройка MikoPBX ===== | ||
+ | |||
+ | |||
+ | ==== Приложение Dialplan ==== | ||
+ | |||
+ | - В разделе "**Модули**" - "**Приложения диалплан**" создаем новое: | ||
+ | - Наименовеание - "**Переслать sms в telegram**" | ||
+ | - Тип кода "**PHP-AGI**" | ||
+ | - Программный код <code><?php | ||
+ | require_once 'Globals.php'; | ||
+ | use \GuzzleHttp\Client; | ||
+ | |||
+ | const API_KEY = ''; | ||
+ | const CHAT_ID = ''; | ||
+ | |||
+ | $agi = new MikoPBX\Core\Asterisk\AGI(); | ||
+ | $message = str_replace( | ||
+ | ['n'], | ||
+ | ["\n"], | ||
+ | $argv[1]??"");; | ||
+ | $did = $agi->request['agi_extension']; | ||
+ | $agi->verbose($message, 3); | ||
+ | |||
+ | $TEXT = " | ||
+ | SMS на номер: $did | ||
+ | От: $message | ||
+ | "; | ||
+ | |||
+ | $apiURL = 'https://api.telegram.org/bot' . API_KEY . '/'; | ||
+ | $client = new Client([ | ||
+ | 'base_uri' => $apiURL, | ||
+ | 'timeout' => 1, | ||
+ | 'http_errors' => false, | ||
+ | ]); | ||
+ | try { | ||
+ | $client->post( 'sendMessage', ['query' => ['chat_id' => CHAT_ID, 'text' => $TEXT]] ); | ||
+ | }catch (Throwable $e){ | ||
+ | }</code> | ||
+ | - Сохраните изменения | ||
+ | - В адресной строке браузера нужно скопировать идентификатор приложения, он имеет вид "**DIALPLAN-APP-A4A4D30C**". | ||
+ | |||
+ | <note tip>"**API_KEY**" - токен телеграм бота | ||
+ | |||
+ | "**CHAT_ID**" - идентификатор телеграм чата (группы). см. статью</note> | ||
+ | |||
+ | ==== Кастомизация системных файлов ==== | ||
+ | |||
+ | - Перейдем в раздел "**Кастомизация системных файлов**" | ||
+ | - Добавьте в конец файла <code>/etc/asterisk/extensions.conf</code> | ||
+ | - Текст: <code>[messages-from-goip] | ||
+ | exten => _[0-9*#+a-zA-Z]!,1,AGI(DIALPLAN-APP-A4A4D30C.php, "${MESSAGE(body)}") | ||
+ | same => n,hangup() | ||
+ | exten => _[hit],1,Hangup()</code> | ||
+ | |||
+ | <note tip>"**DIALPLAN-APP-A4A4D30C**" - в данном коде - это идентификатор приложения. | ||
+ | Сохраните изменения.</note> | ||
+ | |||
+ | ==== Провайдер ==== | ||
+ | |||
+ | Для провайдера MikoPBX "**Тип учетной записи**" - **Аутентификация по IP, без пароля** | ||
+ | <note tip>Если будет выбран другой тип, то при пересылке sms не будет пройдена авторизация.</note> | ||
+ | |||
+ | "**Расширенные настройки**" для провайдера MikoPBX - нужно прописать: | ||
+ | <code> | ||
+ | [endpoint] | ||
+ | message_context = messages-from-goip | ||
+ | </code> | ||
+ | |||
+ | ==== Настройка GoIP ==== | ||
+ | - Перейдите в раздел "**Configurations**" - "**SMS**" | ||
+ | - Для каждого канала CH1 / CH2 ... CHN выполните настройку: | ||
+ | - "**SMS to VoIP**" (верхнее) - "**Call Function**" | ||
+ | - "**Call mode**" - "**Mode 1**" | ||
+ | - "**SMS to VoIP**" (нижнее) - укажите номер телефона sim карты | ||
+ | {{ :faq:1820055447-2-2.png?700 |}} | ||
+ | [[faq:|Обратно к инструкциям]] | ||