По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Дорогой читатель! В поисках полезной автоматизации и кастомизации своего 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); //отправляем в письме
Вот и все. Нам будет приходить на почту письмо с номером звонящего – прокачав данный функционал можно отслеживать пропущенные вызовы, например.
Привет, Мир! Сейчас расскажем об одном полезном методе траблшутинга и поиска проблем на роутерах MikroTik. Суть данного метода заключается в том, чтобы отлавливать (“сниффить”) пакеты, проходящие через определённые интерфейсы нашего роутера и анализировать их сразу же при помощи Wireshark.
Prerequisites
Итак, для того, чтобы воспользоваться данным методом нам понадобится:
Роутер MikroTik (в нашем случае использовался RB951Ui-2HnD с версией прошивки RouterOS 6.40.2 )
Программа Wireshark (в нашем случае версия 2.4.1)
Компьютер или сервер, находящийся в одной сети с роутером с запущенным Wireshark’ом
Настройка
Первым делом открываем Wireshark, выбираем интерфейс, на котором хотим “сниффить” (в нашем случае это Ethernet, то есть интерфейс, с помощью которого компьютер подключается к роутеру) и устанавливаем следующий фильтр - udp port 37008. Как показано на рисунке:
Понятно, что если мы запустим захват пакетов без этого фильтра, то нам просто вывалится весь трафик, который проходит через этот интерфейс, а мы этого не хотим.
Что же это за фильтр такой и что за порт - 37008? Дело в том, что MikroTik шлёт UDP дэйтаграммы, то есть весь перехваченный трафик, именно на этот порт streaming server’а, а в качестве этого стриминг сервера, как вы могли догадаться, у нас выступает наш компьютер с запущенным Wireshark’ом. Эти пакеты инкапсулируются по протоколу TZSP (TaZmen Sniffer Protocol), который используется для переноса в себе других протоколов.
Итак, запускаем перехват пакетов на определённом интерфейсе с фильтром udp port 37008 и видим, что ничего не происходит и пакетов нет.
А теперь самое интересное – подключаемся к MikroTik’у через WinBox, переходим в раздел Tools далее Packet Sniffer и видим следующее окно с настройками:
На вкладке General можем оставить всё по умолчанию, переходим на вкладку Streaming:
Ставим галочку в Streaming Enabled, в поле Server указываем IP адрес нашего компьютера, на котором запустили Wireshark и ставим галочку на Filter Stream, чтобы активировать фильтр, который будет настраиваться на следующей вкладке - Filter
На данной вкладке мы можем отфильтровать интересующий нас трафик. Например, у нас в сети есть IP-АТС Asterisk и мы хотим посмотреть, какие пакеты он получает и отправляет через роутер MikroTik. Так, например, можно отследить коммуникацию IP-АТС с сервером провайдера VoIP услуг.
Итак, выбираем интерфейсы, на которых хотим отлавливать пакеты (в нашем случае это bridge), далее отфильтруем трафик по определённому IP-адресу в поле IP Address (Наша IP-АТС), укажем протокол - 17 (udp) и порт 5060 (sip). Направление укажем любое - any и Filter Operation = or , то есть логика работы данного фильтра – “или”. Если вы хотите отлавливать пакеты только по жёстко определённому фильтру, то логику следует указать and, то есть – совпадение всех условий фильтра.
Далее нажимаем Apply и Start и видим, что сниффер перешёл в статус “running”
Отлично, теперь отправляемся в Wireshark и видим, что он нам уже наловил нужных пакетов в соответствии с правилами фильтра.
В нашем случае – это коммуникация IP-АТС Asterisk с сервером провайдера VoIP услуг, запрос на регистрацию и подтверждение с обратной стороны. Обратите внимание, что тип инкапсуляции - TZSP, однако, Wireshark смог правильно деинкапсулировать эти пакеты и отобразить нам пакеты SIP.
Передача файлов на новый Windows Server может быть хлопотной, когда вы все настраиваете с нуля. По умолчанию можно перекидывать файлы через общий буфер обмена, но это не всегда удобно. Plesk, FTP или общий доступ к сетевым файлам могут быть не совсем готовы к использованию, или ваш интернет-провайдер может заблокировать эти веб-порты. Именно здесь нужна передача файлов через программу Remote Desktop Connection по протоколу RDP (Remote Desktop Protocol). Вы можете подключить жесткий диск своей рабочей станции, и он появится, когда вы войдете в систему.
Эта программа поставляется со всеми операционными системами Windows. Нужно нажать кнопку «Пуск» и выполнить поиск «Подключение к удаленному рабочему столу» , и должен появиться компьютер с зелеными стрелками. Ну а если вы продвинутый администратор, то можете нажать «Пуск», затем «Выполнить», там набрать mstsc.exe и заем нажать ОК. Это программа, которую мы будем использовать.
Настройка программы
После запуска программы мы окажемся в ее упрощенном виде. Тут нам нужно выбрать пункт «Показать параметры» .
Введите IP-адрес вашего сервера в поле «Компьютер»
Далее нужно выбрать вкладку «Локальные ресурсы» и внизу в блоке «Локальные ресурсы» нажать «Подробнее» . Также в этом блоке можно включать и отключать доступ к принтерам и буферу обмена.
Разверните раздел «Диски» и выберите «Локальный диск C:» (и любые другие диски, которые вам нужны).
Нажимайте ОК и затем нажимайте «Подключить» . Для сохранения параметров подключения можно перейти на вкладку «Общие» и в блоке «Параметры подключения» нажмите «Сохранить»
Готово! Теперь после подключения заходите в «Мой компьютер» и вы увидите ваш подключений диск.
Теперь вы сможете видеть все свои файлы на своей локальной рабочей станции! Имейте в виду, что при передаче файлов этим методом существует ограничение на размер файла 2 ГБ. Кроме того, скорость передачи могут быть немного медленнее.