По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
В статье будет описана настройка SIP - транка в FreePBX 13 для связки Asterisk и провайдера SIPNET.
Создание SIP – транка Sipnet
Первый шаг является стандартным для настройки любого типа транка – необходимо в веб-интерфейсе пройти по пути: Connectivity –> Trunks.
Далее нажать на кнопку + Add Trunk. Затем выберите «Add SIP (chan_pjsip) Trunk».
Далее необходимо присвоить имя SIP - транку и задать исходящий CallerID
После, необходимо зайти во вкладку pjsip Settings и заполнить поля о логине, пароле и SIP-сервере
Соответственно, Username – номер, полученный от SIPNET, Secret – ваш пароль и SIP Server – адрес самого SIPNET.
Текстовая конфигурация транка
Если вы производите настройку через конфигурационные файлы Asterisk (sip.conf), или, в интерфейсе FreePBX 12 заполняете поле PEER Details, то скопируйте следующую строчку для выполнения настройки:
[sipnet]
secret = ваш пароль
defaultuser = укажите ваш SIP ID выданный оператором
trunkname = sipnet
host = sipnet.ru
type = peer
context = from-trunk
insecure = invite
fromuser = укажите ваш SIP ID выданный оператором
fromdomain = sipnet.ru
disallow = all
allow = alaw&ulaw
nat = no
directmedia = no
dtmfmode = rfc2833
Для завершения настроек и регистрации SIP- транка в FreePBX 12, укажите строку регистрации в поле Register String по указанному шаблону:
[Ваш SIP ID]: [Ваш пароль]@sipnet.ru/[Ваш SIP ID]
Входящий маршрут Sipnet
Чтобы ваш Asterisk мог обрабатывать входящие звонки на номер, который мы зарегистрировали в предыдущем шаге, необходимо создать входящий маршрут. Для этого, перейдите во вкладку Connectivity –> Inbound Routes и нажмите на кнопку + Add Inbound Route. Здесь все просто – в поле DID Number указываете номер, который вы приобрели у Sipnet, а в разделе Set Destination, укажите направление для этого звонка, например, это может быть голосовое меню, Ring Group или конкретный внутренний номер.
Исходящий маршрут Sipnet
Следующим шагом является создание исходящего маршрута. Откроем вкладку Connectivity –> Outbound Routes, выберем +Add Outbound Route
Необходимо задать имя маршрута и номер – он выдан вам провайдером
Обратите внимание, так же необходимо указать SIP - транк в Trunk Sequence for Matched Routes, который был только что создан.
Как финальный шаг, указываем правила набора для использования данного маршрута
Более подробно про настройку маршрутизации вы можете почитать в статье по ссылке ниже:
Настройка маршрутизации вызовов
После всех проведенных манипуляций, жмём Apply Changes наверху страницы.
Дорогой читатель! В поисках полезной автоматизации и кастомизации своего Asterisk продвинутые администраторы прибегают к использованию различных скриптов. Это может быть PHP, Perl C, Pascal или Shell. Для использования скриптов, написанных на одном из перечисленных языков программирования в диалплане Asterisk используется AGI (Asterisk Gateway Interface) – о нем и поговорим.
Как это работает?
AGI - это прослойка между скриптом и диалпланом (планом набора) в Asterisk. В скрипт мы можем передавать различные переменные, а можем получать какие - то значения из скрипта. Когда Asterisk инициирует запуск скрипта через AGI, он передает в него набор переменных. Все переменные обладают префиксом agi_:
Переменная
Описание
Пример
agi_request
Имя файла исполняемого скрипта
trunk.php
agi_channel
Канал, инициирующий звонок
Local/89123456789@from-internal-00000002;2
agi_language
Языковой код
en
agi_type
Тип канала, инициирующий вызов
Local
agi_uniqueid
Уникальный идентификатор звонка
1497364935.15
agi_version
Версия Asterisk
13.10.0
agi_callerid
Номер звонящего (CID Number)
89123456789
agi_calleridname
Имя звонящего (CID Name)
89123456789
agi_dnid
Набранный номер
unknown
agi_context
Контекст обработки вызова
macro-dialout-trunk
Как вызвать AGI в диалплане?
Вызвать AGI скрипт очень просто: предварительно, загрузите скрипт в директорию /var/lib/asterisk/agi-bin/. После этого, скрипту необходимо дать права и собственника. Предположим, наш скрипт называется trunk.php:
chmod 755 /var/lib/asterisk/agi-bin/trunk.php
chown asterisk:asterisk /var/lib/asterisk/agi-bin/trunk.php
Теперь, чтобы скрипт был вызван в диалплане, просто добавьте следующую конструкцию:
exten => 1333,n,AGI(trunk.php)
Просто, не правда ли? А если мы хотим передать переменную в скрипт? Просто добавьте ее после запятой:
exten => 1333,n,AGI(trunk.php, ${CALLERID(number)})
А как же написать скрипт?
Теперь к самому скрипту – напишем его на PHP. Пусть нам нужно отправлять письмо с номером звонящего. Выглядеть скрипт будет так:
#!/usr/bin/php -q
<?php
require('phpagi.php');
$agi = new AGI(); //подключаем файл phpagi.php – 1 и 2 строки обязательны в любом скрипте
$cid = $agi->request['agi_callerid']; // берем из AGI номер звонящего
mail("info@merionet.ru", 'Привет!', 'Вот и номер звонящего:', $cid); //отправляем в письме
Вот и все. Нам будет приходить на почту письмо с номером звонящего – прокачав данный функционал можно отслеживать пропущенные вызовы, например.
Привет, бро! В статье расскажем в чем разница между RIPv1 (Routing Information Protocol Version 1) и его продолжение RIPv2. Погнали?
Про Routing Information Protocol Version 1 (RIPv1)
Прямо и по пунктам:
RIPv1 это Distance-Vector протокол. Если переводить на русский - дистанционно-векторный. ;
Distance vector routing - так называемая дистанционно-векторная маршрутизация, главный принцип которой основан на вычислении специальных метрик, которые определяют расстояние (количество узлов) до сети назначения
RIPv1 это classfull протокол. Это означает, что он не отправляет маску подсети в апдейтах маршрутизации;
RIPv1 не поддерживает VLSM (Variable Length Subnet Masking);
VLSM (Variable Length Subnet Masking) - метод эффективного использования IP – адресации, который избавляет от привязки к классу сети (класс A, класс B, класс C). VLSM позволяет дробить подсеть на подсеть и так далее. Тем самым, мы можем эффективно использовать адресное пространство согласно реальных потребностей, а не класса сети;
RIPv1 поддерживает максимум 15 хопов! Это означает, что любой маршрутизатор, который расположен от вас в больше, чем 15 узлов (маршрутизаторов) будет отмечен как недоступный;
Раз в 30 секунд RIPv1 отправляет широковещательные апдейты маршрутизации – каждый узел должен принять и обработать этот апдейт;
Первая версия RIP не поддерживает авторизация апдейтов маршрутизации – это означает, что потенциально, роутер может обновить таблицу маршрутизации от любого источника;
Вот такой он, RIP первой версии. Двигаем дальше и посмотрим, а на что способен его брат – RIP второй версии?
Про Routing Information Protocol Version 2 (RIPv2)
RIPv2 это гибридный протокол. Он реализован на базе Distance-Vector, но так же поддерживает часть алгоритмов Link State маршрутизации, то есть, может отслеживать состояние каналов;
Link State routing - отслеживает состояние каналов и отправляет LSA (Link-state advertisement) пакеты, в которых рассказывает о состоянии своих каналов. Примером link state протокола маршрутизации является OSPF
RIPv2 - classless протокол. В отличие от своего старшего брата первой версии, второая версия умеет отправлять маску подсети в апдейтах маршрутизации;
RIPv2 поддерживает VLSM!;
RIPv2, как и RIPv1 поддерживает максимум 15 хопов;
RIPv2 отправляет мультикаст сообщения об апдейтах на адрес 224.0.0.9. Это уменьшает нагрузку на сеть и в первую очередь на узлы, на которых не запущен RIP;
Вторая версия RIP поддерживает аутентификацию апдейтов маршрутизации. Это значит, что теперь нельзя будет подсунуть ложный апдейт роутеру (в целом, этим могли пользоваться злоумышленники) – только авторизированные источники;