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

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


faq:goip

Подключение GSM шлюза GOIP4

Перед работами

  1. Выполните резервное копирование настроек шлюза
  2. Сбросьте шлюз к заводским настройкам

Учетная запись провайдера на MikoPBX

В нашем примере шлюз GoIP4 будет регистрироваться на АТС MikoPBX. Для этого на АТС создадим учетную запись провайдера:

  • Название провайдера - укажем подходящее название, к примеру GoIP4
  • Тип учетной записи - «Входящая регистрация»
  • Логин - будет установлен равным ID провайдера, поменять возможности нет, пример логина «SIP-1659624077»
  • Пароль - укажем и запомним сложный пароль, с ним шлюз будет регистрироваться на MikoPBX

Установка корректного CID клиента

  1. Откройте меню «Система» - «Кастомизация системных файлов»
  2. Откройте на редактирование файл «/etc/asterisk/extensions.conf»
  3. Выберите режим «Добавлять в конец файла»
  4. Добавьте следующий код:
    [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
    	
  5. Идентификатор «SIP-1659624077» замените на тот, что отображается в поле «Логин».

Настройка шлюза

Перейдем в web интерфейс шлюза GoIP.

1) На вкладке Configurations - Preferences установим подходящий часовой пояс, отключить использование IVR:

2) Перейдем на вкладку Basic VoIP, укажем настройки подключения к АТС:

  • Config Mode - выберем Single Server Mode
  • Authentication ID, Phone Number, Display Name - укажем ID (логин) учетной записи провайдера в формате SIP-XXXXXXXXXXXXX…
  • Password - укажем пароль из учетной записи провайдера
  • SIP Proxy, SIP Registrar, Home Domain - укажем IP адрес MikoPBX

Далее в настройке Routing Prefix необходимо настроить префиксы номеров для выбора линии при исходящем вызове. Для Line1 укажем префикс 1, для Line2 укажем префикс 2 и т.д. Позже мы добавим маршруты исходящих звонков для каждой SIM карты, перед набором к номеру будет добавляться необходимый префикс.

3) Перейдем на вкладку Call Out. Перед совершением исходящего звонка необходимо обработать номер телефона и удалить префикс, с которым пришел номер от АТС. Для первого канала CH1 в поле Dial Plan укажем правило «1:-1» (если номер начинается на 1, то первая цифра будет удалена, и вызов уйдет через первый канал). Переключимся на CH2, в поле Dial Plan укажем правило «2:-2» (если номер начинается на 2, то первая цифра будет удалена, и вызов уйдет через второй канал). И так далее.

4) Настроим переадресацию входящих звонков на SIP линию. Перейдем на страницу Call In. Для каждого GSM канала в поле Forwarding to VoIP Number укажем номер телефона, с которым звонок будет направлен на MikoPBX. В нашем случае для CH1 мы указали мобильный номер, который соответствует этой sim. Аналогичным образом для CH2, CH3, CH4 нужно указать номера соответствующих sim карт.

5) В разделе «Misc»

« CID Forward Mode» выставляем значение «Use Remoe Party ID»

Настройка шлюза завершена, перейдем на страницу Status - Summary. В колонке VoIP отображается статус подключения шлюза к АТС MikoPBX, Y - шлюз успешно зарегистрировался на АТС(по 4 линии статус N, т.к. на ней не установлена sim):

Настройка маршрутов входящих и исходящих звонков MikoPBX

1) Вернемся к настройкам АТС MikoPBX, перейдем на страницу Маршрутизация - Входящие маршруты. Добавим новое правило входящих звонков с первого канала GSM шлюза:

  • Провайдер - укажем ранее созданного провайдера GoIP4
  • Дополнительный номер(DID) - укажем номер, который мы заполнили в поле Forwarding to VoIP Number для первого канала в настройках входящих звонков шлюза. В нашем случае это номер телефона первой sim карты
  • Вызов будет переадресован на - укажем номер, на который хотим направить входящие звонки. В нашем случае это трубка с номером 911.

Аналогично нужно описать правила для входящих с остальных GSM каналов.

2) Настроим исходящую маршрутизацию через каждую sim карту. Перейдем на страницу Маршрутизация - Исходящие маршруты. Добавим новое правило для звонков через первую sim:

Звонки на номера соответствующие шаблону 8911XXXXXXX или 7911XXXXXXX, будем отправлять через провайдера GoIP4, перед набором к номеру будем добавлять префикс 1+.

  • Номер начинается с - укажем начало набираемого номера, в нашем случае (7|8)911
  • Остальная часть номера состоит… - 7 цифр
  • Перед тем как начать звонок отсекаем - 1 цифр
  • Затем добавляем к номеру - 1+

Добавим новое правило для звонков через вторую sim:

Звонки на номера с шаблоном 8926XXXXXXX или 7926XXXXXXX, будем отправлять через провайдера GoIP4, перед набором к номеру будем добавлять префикс 2+.

Аналогичным образом можно настроить правила для звонков через другие sim.

Правила настройки исходящих маршрутов подробно описаны на wiki.

На этом настройка подключения шлюза к MikoPBX завершена. Можно тестировать входящие и исходящие звонки через GSM шлюз.

SMS to Telegram

Настройки Telegram

Для начала через чат Telegram следует написать боту @BotFather. Этот бот позволит создать и настроить вашего нового бота для интеграции с MIKOPBX.

  1. Отправляем боту команду
    /start
  2. Команда создания нового бота
    /newbot
  3. Отправляем имя нашего нового бота. К примеру
    MIKOPBX_NEW_BOT
  4. Сохраните значение «token» он понадобится для настройки со стороны АТС
  5. Создайте новую «группу»
  6. Перешлите любое сообщение из группы боту @getmypid_bot
  7. Сохраните значение «chat ID», для пользователя значение вида 190389360, для группы отрицательное -4190389360

Настройка MikoPBX

Приложение Dialplan

  1. В разделе «Модули» - «Приложения диалплан» создаем новое:
  2. Наименовеание - «Переслать sms в telegram»
  3. Тип кода «PHP-AGI»
  4. Программный код
    <?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){
    }
  5. Сохраните изменения
  6. В адресной строке браузера нужно скопировать идентификатор приложения, он имеет вид «DIALPLAN-APP-A4A4D30C».
«API_KEY» - токен телеграм бота

«CHAT_ID» - идентификатор телеграм чата (группы). см. статью

Кастомизация системных файлов

  1. Перейдем в раздел «Кастомизация системных файлов»
  2. Добавьте в конец файла
    /etc/asterisk/extensions.conf
  3. Текст:
    [messages-from-goip]
    exten => _[0-9*#+a-zA-Z]!,1,AGI(DIALPLAN-APP-A4A4D30C.php, "${MESSAGE(body)}")
        same => n,hangup()
    exten => _[hit],1,Hangup()
«DIALPLAN-APP-A4A4D30C» - в данном коде - это идентификатор приложения. Сохраните изменения.

Провайдер

Для провайдера MikoPBX «Тип учетной записи» - Аутентификация по IP, без пароля

Если будет выбран другой тип, то при пересылке sms не будет пройдена авторизация.

«Расширенные настройки» для провайдера MikoPBX - нужно прописать:

[endpoint]
message_context = messages-from-goip

Настройка GoIP

  1. Перейдите в раздел «Configurations» - «SMS»
  2. Для каждого канала CH1 / CH2 … CHN выполните настройку:
  3. «SMS to VoIP» (верхнее) - «Call Function»
  4. «Call mode» - «Mode 1»
  5. «SMS to VoIP» (нижнее) - укажите номер телефона sim карты

Обратно к инструкциям

faq/goip.txt · Последние изменения: 2024/03/04 09:04 — Портнов Алексей