Инструменты пользователя

Инструменты сайта


faq:goip

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
faq:goip [2022/08/04 14:48]
Портнов Алексей [Настройка маршрутов входящих и исходящих звонков MikoPBX]
faq:goip [2024/03/04 09:04] (текущий)
Портнов Алексей [Кастомизация системных файлов]
Строка 19: Строка 19:
   * **Пароль** - укажем и запомним сложный пароль,​ с ним шлюз будет регистрироваться на MikoPBX   * **Пароль** - укажем и запомним сложный пароль,​ с ним шлюз будет регистрироваться на MikoPBX
  
 +===== Установка корректного CID клиента =====
 +
 +  - Откройте меню "​**Система**"​ - "​**Кастомизация системных файлов**" ​
 +  - Откройте на редактирование файл "​**/​etc/​asterisk/​extensions.conf**"​
 +  - Выберите режим "​**Добавлять в конец файла**"​
 +  - Добавьте следующий код: <​code>​[SIP-1659624077-incoming-custom]
 +exten => _[0-9*#​+a-zA-Z][0-9*#​+a-zA-Z]!,​1,​NoOp(------)
 + same => n,​Set(tmpRpid=${PJSIP_HEADER(read,​Remote-Party-ID)})
 + same => n,​ExecIf($["​x${tmpRpid}"​ != "​x"​]?​Set(fromCid=${CUT(CUT(tmpRpid,​@,​1),:,​2)}))
 + same => n,​ExecIf($["​${fromCid}x"​ != "​x"​]?​Set(CALLERID(num)=${fromCid}))
 + same => n,​ExecIf($["​${fromCid}x"​ != "​x"​]?​Set(CALLERID(name)=${fromCid}))
 + same => n,return
 + </​code>​
 +  - Идентификатор "​**SIP-1659624077**"​ замените на тот, что отображается в поле "​**Логин**"​. ​
 ===== Настройка шлюза ===== ===== Настройка шлюза =====
  
Строка 33: Строка 47:
   * **Config Mode** - выберем **Single Server Mode**   * **Config Mode** - выберем **Single Server Mode**
   * **Authentication ID**, **Phone Number**, **Display Name** - укажем ID (логин) учетной записи провайдера в формате **SIP-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, то первая цифра будет удалена,​ и вызов уйдет через второй канал). И так далее.
Строка 42: Строка 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 |}}
  
  
Строка 68: Строка 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 цифр
-  * **Перед тем как начать звонок отсекаем** - цифр +  * **Перед тем как начать звонок отсекаем** - цифр 
-  * **Затем добавляем к номеру** - 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.
Строка 89: Строка 102:
 На этом настройка подключения шлюза к MikoPBX завершена. Можно тестировать входящие и исходящие звонки через 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:​|Обратно к инструкциям]]
  
faq/goip.1659624530.txt.gz · Последние изменения: 2022/08/04 14:48 — Портнов Алексей