По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Желание использовать данные с внешних сервисов это вполне обычная практика. Так как многие из этих сервисов доступны по HTTP(S) (REST API, например), то в этой статье мы хотим показать простой способ обращения к этим сервисам по cURL и обработку данных в случае, если сервер вернет JSON. Все взаимодействия будут выполняться из диалплана.
Простой cURL запрос
В диалплане Asterisk существует функция CURL, которая позволяет получить содержимое WEB или FTP страницы. Синтаксис запроса следующий:
CURL(url,post-data)
url - URL, к которому мы будем выполнять обращение;
post-data - по умолчанию будет выполнен GET – запрос. Если в данном параметре будут указаны различные значения, то будет выполнен POST запрос с указанными в переменной данными;
Например:
exten => _X.,1,Set(C_RESULT=${CURL(//merionet.ru/rest?num=84991234567)})
Здесь мы выполним GET запрос по указанному URL, а результат сохраним в переменной C_RESULT.
Использование HTTPS в запросах
Иногда, HTTPS запросы могут не срабатывать, так как удаленная сторона будет проверять наш SSL – сертификат. Если поставить параметр ssl_verifypeer=0, то такой проверки не будет:
same => n,Set(CURLOPT(ssl_verifypeer)=0)
Как воспользоваться этим в диалплане?
Легко. С помощью функции GotoIf мы можем определить действие, которое отработает на базе результата cURL:
exten => _X.,1,Set(C_RESULT=${CURL(//merionet.ru/rest?num=84991234567)})
same => n,GotoIf($["${C_RESULT}" = "1"]?res1:res2)
same => n(res1),Verbose(CURL Result = 1)
same => n,Hangup
same => n(res2),Verbose(CURL Result != 1)
same => n,Hangup
Указанный код отправит GET - запрос на rest, в котором в параметре num передаст номер звонящего (можно указать соответствующую переменную диалплана Asterisk). В случае, если результатом выполнения запроса будет 1, то мы перейдем к выполнению шага res1, а противоположном случае, res2.
res_json для обработки JSON ответов
На самом деле, для API, является обычной практикой возврат ответа в виде JSON. Поэтому, нам следует преобразовать эти данные перед обработкой их. Для этого мы воспользуемся модулем res_json из JSON библиотеки, который создан для расширения базовых возможностей диалплана с точки зрения обработки JSON.
Почитайте материал об установке данного модуля по этой ссылке.
exten => _X.,1,Set(C_RESULT=${CURL(//merionet.ru/rest.json)})
same => n,Set(result=${JSONELEMENT(C_RESULT, result/somefield)})
same => n,GotoIf($["${result}" = "1"]?res1:res2)
same => n(res1),Verbose(CURL Result = 1)
same => n,Hangup
same => n(res2),Verbose(CURL Result != 1)
same => n,Hangup
Для теста, создайте у себя на web – сервере файл rest.json со следующим содержанием:
{
"result": {
"somefield": 1
}
}
Шлюзы Yeastar TA FXO — это VoIP-шлюзы с портами FXO для подключения аналоговых линий. TA1610 отличается богатым функционалом и простотой конфигурирования, идеален для малых и средних предприятий, которые хотят объединить традиционную телефонную сеть компании с телефонной сетью на базе IP. Yeastar TA FXO помогает сохранить предыдущие инвестиции и уменьшить затраты на коммуникации.
В серии шлюзов Yeastar TA FXO имеются шлюзы на 4, 8 и 16 портов. Шлюз TA1610 оснащен выходом Telco на 50 pin.
$dbName_ecom = "to-www_ecom";
$GoodID = "7403639742";
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_select_db($dbName_ecom) or die(mysql_error());
$query_ecom = "SELECT `model`, `itemimage1`, `price`, `discount`, `url`, `preview115`, `vendor`, `vendorCode` FROM `items` WHERE itemid = '$GoodID';";
$res_ecom=mysql_query($query_ecom) or die(mysql_error());
$row_ecom = mysql_fetch_array($res_ecom);
echo 'Купить шлюз '.$row_ecom['vendor'].' '.$row_ecom['vendorCode'].' можно в нашем магазине Merion Shop по ссылке ниже. А по промокоду "WIKIMERIONET" вы можете получить дополнительную скидку. С настройкой поможем 🔧
Купить '.$row_ecom['model'].''.number_format(intval($row_ecom['price']) * (1 - (intval($row_ecom['discount'])) / 100), 0, ',', ' ').' ₽';
$dbName = "to-www_02";
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_select_db($dbName) or die(mysql_error());
FXO – аналоговый порт, который находится на оконечных устройствах. Обычно стоит в телефонных аппаратах. В шлюзах используется для подключения аналоговой линии от провайдера.
Для подключения шлюзов Yeastar TA FXO необходимо сделать следующее. В качестве примера будет использоваться Yeastar TA1610.
Подключитесь к веб-интерфейсу шлюза Yeastar TA FXO. Перейдите в меню «Шлюз», затем в раздел «VoIP-настройки», в пункт «VoIP-линии». Нажмите «Создать».
Выберите «Тип линии» - Аккаунт и «Тип» - SIP.
Задайте «Имя» – произвольное имя линии, которое будет отображаться в списке линий веб-интерфейса шлюза.
Укажите «Аккаунт» и «Пароль» – учётные данные, которые будут использоваться для регистрации FreePBX на шлюзе.
В веб-панели FreePBX перейдите в меню «Подключения», подменю «Транки». Нажмите «Добавить SIP (chan_sip) транк». Задайте «Название транка».
Перейдите во вкладку «SIP Общие настройки».
Во вкладке «Исходящий» задайте «Название транка», введите конфигурационные данные транка в поле «Опции для PEER».
Перейдите на вкладку «Входящий».
В поле «Строка регистрации» укажите аккаунт и пароль для регистрации FreePBX на шлюзе.
Сохраните и примените настройки.
В веб-интерфейсе шлюза Yeastar TA FXO перейдите в раздел «Статус», подраздел «Линии». Проверьте статус входящей регистрации FreePBX на шлюзе.
В консоли FreePBX можно проверить статус регистрации с помощью команд
asterisk -vvvr
sip show peers
Для того, чтобы вызовы начали проходит на шлюз и обратно, необходимо настроить входящую и исходящую маршрутизацию. Перейдите в меню «Шлюз», раздел «Маршрутизация». Откройте подраздел «VoIP -> Порт FXO». Нажмите «Создать».
Укажите удобное Вам имя в «Имя маршрута». Выберите «Упрощенный режим» – Да. В поле «Источник» выберите созданный ранее аккаунт SIP. В поле «Назначение» выберите тот аналоговый порт, на который Вы хотите отправлять вызов и в который подключена аналоговая линия.
Перейдите в меню «Шлюз», раздел «Маршрутизация». Откройте подраздел «Порт FXO -> SIP». Нажмите «Создать».
Укажите удобное Вам имя в «Имя маршрута». Выберите «Упрощенный режим» – Да. В поле «Источник» выберите тот аналоговый порт, с которого Вы хотите принимать вызов и в который подключена аналоговая линия. В поле «Назначение» выберите созданный ранее аккаунт SIP.
Теперь необходимо произвести аналогичную настройку в веб-панели FreePBX.
Перейдите в раздел «Подключения», подраздел «Исходящая маршрутизация».
Нажмите «Добавить исходящий маршрут». Задайте «Название маршрута». В поле «Последовательность транков» выберите ранее созданные транк.
Перейдите на вкладку «Правила набора».
В первой строке «Совпадение шаблона» задайте маску для отправки вызовов с номером через транк. Для пример используется 50XX.
Cохраните маршрут и примените изменения.
Проверить направление вызова через созданный транк можно в консоли FreePBX. Для этого используется команда
asterisk -vvvr
В веб-панели FreePBX перейдите в раздел «Подключения», подраздел «Входящая маршрутизация». Нажмите «Добавить входящий маршрут».
Задайте имя маршрута в поле «Описание». В поле «Установить направление» выберите «Внутренние номера» и номер, на который будет направляться входящий вызов. Для примера используется номер 4511.
Сохраните маршрут и примените изменения.
Проверить прием входящего вызова через созданный транк и отправку вызова на внутренний номер можно в консоли FreePBX.
Для этого введите команду
asterisk -vvvr
Что такое логи Linux? Все системы Linux создают и хранят файлы логов информации для процессов загрузки, приложений и других событий. Эти файлы могут быть полезным ресурсом для устранения неполадок системы.
Большинство файлов логов Linux хранятся в простом текстовом файле ASCII и находятся в каталоге и подкаталоге /var/log. Логи создаются системным демоном логов Linux, syslogd или rsyslogd.
В этом руководстве вы узнаете, как находить и читать файлы логов Linux, а также настраивать демон ведения системных логов.
Как просматривать логи Linux
1. Сначала откройте терминал Linux как пользователь root. Это позволит получить root-права.
2. Используйте следующую команду для просмотра папки где находятся файлов логов:
cd /var/log
3. Чтобы просмотреть логи, введите следующую команду:
ls
Команда отображает все файлы логов Linux, такие как kern.log и boot.log. Эти файлы содержат необходимую информацию для правильного функционирования операционной системы.
Доступ к файлам логов осуществляется с использованием привилегий root. По определению, root - это учетная запись по умолчанию, которая имеет доступ ко всем файлам Linux.
Используйте следующий пример строковой команды для доступа к соответствующему файлу:
sudo less [log name here].log
Эта команда отображает временную шкалу всей информации, относящейся к этой операции.
Обратите внимание, что файлы логов хранятся в виде обычного текста, поэтому их можно просматривать с помощью следующих стандартных команд:
zcat - Отображает все содержимое logfile.gz
zmore - Просмотр файла по страницам, не распаковывая файлы
zgrep - Поиск внутри сжатого файла
grep - Найти все вхождения поискового запроса в файле или отфильтровать файл логов
tail - Выводит последние несколько строк файлов
head - Просмотр самого начала текстовых файлов
vim - Просмотр при помощи текстового редактора vim
nano - Просмотр при помощи текстового редактора nano
Важные системные логи Linux
Логи могут многое рассказать о работе системы. Хорошее понимание каждого типа файла поможет различать соответствующие логи.
Большинство каталогов можно сгруппировать в одну из четырех категорий:
Системные логи (System Logs)
Логи событий (Event Logs)
Логи приложений (Application Logs)
Логи обслуживания (Service Logs)
Многие из этих логов могут быть расположены в подкаталоге var/log.
Системные логи
Файлы логов необходимы для работы Linux. Они содержат значительный объем информации о функциональности системы. Наиболее распространенные файлы логов:
/var/log/syslog: глобальный системный журнал (может быть в /var/log/messages)
/var/log/boot.log: лог загрузки системы, где хранится вся информация, относящаяся к операциям загрузки
/var/log/auth.log: логи аутентификации, который хранит все логи аутентификации, включая успешные и неудачные попытки (может быть в /var/log/secure)
/var/log/httpd/: логи доступа и ошибок Apache
/var/log/mysqld.log: файл логов сервера базы данных MySQL
/var/log/debug: логи отладки, который хранит подробные сообщения, связанные с отладкой, и полезен для устранения неполадок определенных системных операций
/var/log/daemon.log: логи демона, который содержит информацию о событиях, связанных с запуском операции Linux
/var/log/maillog: логи почтового сервера, где хранится информация, относящаяся к почтовым серверам и архивированию писем
/var/log/kern.log: логи ядра, где хранится информация из ядра Linux
/var/log/yum.log: логи команд Yum
/var/log/dmesg: логи драйверов
/var/log/boot.log: логи загрузки
/var/log/cron: логи службы crond
Демон системных логов
Логирование осуществляется при помощи демона syslogd
Программы отправляют свои записи журнала в syslogd, который обращается к конфигурационному файлу /etc/syslogd.conf или /etc/syslog и при обнаружении совпадения записывает сообщение журнала в нужный файл журнала. Каждый файл состоит из селектора и поля ввода действия. Демон syslogd также может пересылать сообщения журнала. Это может быть полезно для отладки. Этот файл выглядит приерно так:
Dec 19 15:12:42 backup.main.merionet.ru sbatchd[495]: sbatchd/main: ls_info() failed: LIM is down; try later; trying ...
Dec 19 15:14:28 system.main.merionet.ru pop-proxy[27283]: Connection from 186.115.198.84
Dec 19 15:14:30 control.main.merionet.ru pingem[271] : office.main.merionet.ru has not answered 42 times
Dec 19 15:15:05 service.main.merionet.ru vmunix: Multiple softerrors: Seen 100Corrected Softerrors from SIMM J0201
Dec 19 15:15:16 backup.main.merionet.ru PAM_unix[17405]: (sshd) session closed 'for user trent
Логи приложений
Логи приложений хранят информацию, относящуюся к любому запускаемому приложению. Это может включать сообщения об ошибках, признаки взлома системы и строку идентификации браузера.
Файлы логов, которые попадают в эту категорию, включают логи системы печати CUPS, лог Rootkit Hunter, логи HTTP-сервера Apache, логи SMB-сервера Samba и лог сервера X11.
Логи не в удобочитаемом формате
Не все логи созданы в удобочитаемом формате. Некоторые предназначены только для чтения системными приложениями. Такие файлы часто связаны с информацией для входа. Они включают логи сбоев входа в систему, логи последних входов в систему и записи входа в систему.
Существуют инструменты и программное обеспечение для чтения файлов логов Linux. Они не нужны для чтения файлов, так как большинство из них можно прочитать непосредственно с терминала Linux.
Графические интерфейсы для просмотра файлов логов Linux
System Log Viewer - это графический интерфейс, который можно использовать для отслеживания системных логов.
Интерфейс предоставляет несколько функций для управления логами, включая отображение статистики лога. Это удобный графический интерфейс для мониторинга логов.
В качестве альтернативы можно использовать Xlogmaster, который может отслеживать значительное количество файлов логов.
Xlogmaster полезен для повышения безопасности. Он переводит все данные для выделения и скрытия строк и отображает эту информацию для выполнения действий, запрошенных пользователем.
Как настроить файлы логов в Ubuntu и CentOS
Начнем с примера CentOS. Чтобы просмотреть пользователей, которые в настоящее время вошли на сервер Linux, введите команду who от имени пользователя root:
Здесь также отображается история входа в систему пользователей. Для просмотра истории входа системного администратора введите следующую команду:
last reboot
Чтобы просмотреть информацию о последнем входе в систему, введите:
lastlog
Выполнить ротацию лога
Файлы логов, в конце которых добавлены нули, являются повернутыми файлами. Это означает, что имена файлов логов были автоматически изменены в системе.
Целью ротации логов является сжатие устаревших логов, занимающих место. Ротацию лога можно выполнить с помощью команды logrotate. Эта команда вращает, сжимает и отправляет системные логи по почте.
logrotate обрабатывает системы, которые создают значительные объемы файлов логов. Эта команда используется планировщиком cron и считывает файл конфигурации logrotate /etc/logrotate.conf. Он также используется для чтения файлов в каталоге конфигурации logrotate.
Чтобы включить дополнительные функции для logrotate, начните с ввода следующей команды:
var/log/log name here].log {
Missingok
Notifempty
Compress
Size 20k
Daily
Create 0600 root root
}
Он сжимает и изменяет размер желаемого файла логов.
Команды выполняют следующие действия:
missingok - сообщает logrotate не выводить ошибку, если файл логов отсутствует.
notifempty - не выполняет ротацию файла логов, если он пуст. Уменьшает размер файла лога с помощью gzip
size - гарантирует, что файл логов не превышает указанный размер, и поворачивает его в противном случае
daily - меняет файлы журналов по ежедневному расписанию. Это также можно делать по недельному или ежемесячному расписанию.
create - создает файл логов, в котором владелец и группа являются пользователем root
Итоги
Тщательное понимание того, как просматривать и читать логи Linux, необходимо для устранения неполадок в системе Linux. Использование правильных команд и инструментов может упростить этот процесс.