По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Запись телефонных разговоров на IP – АТС Asterisk является безусловно важной «фичей» для любой организации. С другой стороны, с ростом количества записей уменьшается память на дисках. Рано или поздно, перед организацией встает вопрос об удалении старых файлов, для освобождения места. Мы разработали PHP скрипт, который автоматически удаляет записи разговоров (.wav) и данные в базе данных по этим звонкам старше определенного количества дней. Чтобы адаптировать его под себя, вам нужно просто указать максимальное количество дней для хранения записей. Скрипт автоматического удаления Сам скрипт написан на PHP и представляет собой 23 строчки кода. Основная переменная в скрипте - days. Укажите в ней количество дней, которое вы планируете хранить записи: <?php $days = 180; //записи, которые старше 180 дней будут удалены. Укажите здесь количество дней для удаления; $hostname = "localhost"; //если скрипт выполняется на том же сервере, что и IP - АТС Asterisk, то оставьте здесь localhost. В противном случае укажите IP - адрес; $username = "delete"; //логин для подключения к базе данных asteriskcdrdb $password = "333jIje45"; //пароль для подключения к базе данных asteriskcdrdb $dbName = "asteriskcdrdb"; $file = '/home/admin/log_mail.txt'; $cdate = date('Y-m-d H:i:s', strtotime('-'.$days.' days')); //определяем максимальную дату звонка. Все звонки старше этой даты, будут удалены; $adate = date('Y-m-d H:i:s'); //текущая дата для записи в лог – файл; /* создать соединение */ mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); mysql_select_db($dbName) or die(mysql_error()); /* удаляем информацию о записях в таблице cdr*/ $query = "DELETE from cdr WHERE calldate < '$cdate';"; $res=mysql_query($query) or die(mysql_error()); /* Как много нашлось строк */ $number = mysql_affected_rows(); /* удаляем сами аудио - записи разговоров */ echo exec('find /var/spool/asterisk/monitor/ -type f -mtime +'.$days.' -exec rm -rf {} ;'); $current = "DELETE :: $adate :: $number records were deleted from CDR "; file_put_contents($file, $current, FILE_APPEND | LOCK_EX); //записываем запись в лог файл; ?> Скачать скрипт удаления записей Загруженный скрипт сохраните в формате .php. Адаптация скрипта на вашей АТС Первое, что необходимо сделать, это создать пользователя для доступа к базе данных, который будет иметь права на удаление. Для этого, даем следующие команды: [root@asterisk]# mysql mysql>CREATE USER 'delete'@'localhost' IDENTIFIED BY '333jIje45'; Теперь предоставляем необходимые права: mysql> GRANT DELETE, SELECT ON asteriskcdrdb.cdr TO 'delete'; Готово. Теперь скрипт необходимо запланировать через cron для регулярного выполнения. Даем команду crontab -e и добавляем следующую строку: */2 10-18 * * 1-5 /usr/bin/php /home/deletecdr.php В данном примере, наш скрипт будет отрабатывать каждые 2 минуты с понедельника по пятницу, с 10:00 до 18:00. Здесь, /home/deletecdr.php - полный путь к скрипту. Сохраняем изменения и наслаждаемся спокойствием за дисковое пространство :)
img
В статье поговорим о борьбе со спамом в мире телефонии. Существует множество различных программ для блокировки спама на мобильных телефонах, а вот найти что-то подобное для IP-АТС и IP-телефонов – уже сложнее. В Telegram есть специальный бот для определения спам-звонков. Бот определяет спамеров, местоположение и оператора связи. Предназначен для IP-АТС (Asterisk, FreePBX, FreeSWITCH), IP-телефонов и CRM. Если фиксируется спам-звонок, то сервис присылает уведомление в Telegram с соответствующей пометкой и названием оператора связи. API ссылка так же возвращает текст с названием оператора. Таким образом если указать эту ссылку в Asterisk, то сообщение с пометкой спам и оператором связи отобразится в Telegram и на экране IP-телефона, а в статистике CDR всегда можно будет фильтровать выдачу по операторам связи. Помечая звонок как “спам”, все пользователи вносят свой вклад в расширение спам-базы. Возможности сервиса: Определение номеров по спам-базам; Персональный спам список; Определение страны/города; Определение оператора связи; Добавление комментариев к звонку. Подключение API Телеграм бот: telegram.org/phone_info_bot t.me/phone_info_bot Альтернативная ссылка: tele.gg/phone_info_bot Ссылка: http://rustyle.tmweb.ru/bots/tgbots/phone_info_bot/callerid_lookup_src/callerid_lookup.php?in_num=ВХОДЯЩИЙ_НОМЕР&dst_num=НОМЕР_НАЗНАЧЕНИЯ&user_id=ВАШ_USER_ID Получить user ID можно обратившись к боту по одной из ссылок выше. Подключение FreePBX Перейдите в Web-интерфейс, в меню Admin → CallerID Lookup Sources → Add CID Lookup Source и заполните следующие поля: В поле Source type выберите HTTP; В поле Host укажите rustyle.tmweb.ru; В поле Path введите bots/tgbots/phone_info_bot/callerid_lookup_src/callerid_lookup.php; И наконец – в поле Query введите следующее: in_num=[NUMBER]&dst_num=${FROM_DID}&user_id=ВАШ_USER_ID; В поле Query не забудьте заменить ВАШ_USER_ID. Параметры [NUMBER] и ${FROM_DID} менять не нужно - оставьте без изменений. Далее переходим в меню Connectivity → Inbound Routes, выбираем или создаем маршрут, переходим на вкладку Other → CID Lookup Source и выбираем источник из предыдущего шага. ВХОДЯЩИЙ_НОМЕР - Код страны и телефон. Пример: 74991234567; НОМЕР_НАЗНАЧЕНИЯ - Код страны и телефон. Пример: 74991234567; ВАШ_USER_ID = Выдается при запуске бота; Готово. Есть вопрос – пиши в комментариях :)
img
Нужно просмотреть текст внутри двоичного файла или файла данных? Команда Linux strings извлечет и выведет на терминал биты текста, которые называются "строками". Linux полон команд, которые могут выглядеть как решения в поисках проблем. Команда strings одна из них. Так, зачем же она нужна? Есть ли похожая команда, которая перечисляет строки для печати из двоичного файла? Давайте вернемся назад. Двоичные файлы, такие как программные файлы, могут содержать строки читаемого человеком текста. Но как мы их видим? Если использовать cat или less, то, скорее всего, зависнет окно терминала. Программы, предназначенные для работы с текстовыми файлами, не могу обрабатывать исполняемые файлы, содержащие непечатаемые символы. Большая часть данных в двоичном файле нечитабельна и не могут быть выведены в окно терминала каким-либо образом, так как нет знаков или стандартных символов для представления двоичных значений, которые не соответствуют буквенно-цифровым символам, знакам пунктуации или пробелам. В совокупности они называются "печатаемыми" символами. Остальные - "непечатаемые" символы. Поэтому попытка просмотра или поиска текстовых строк в двоичном файле или файле данных является проблемой. И вот здесь на помощь спешит strings. Он извлекает строки печатаемых символов из файлов, чтобы другие команды могли использовать эти строки без необходимости контактировать с непечатаемыми символами. Использование команды strings На самом деле нет ничего сложного в этой команде: просто передаем команде название файла. Как пример, мы попробуем просмотреть содержимое исполняемого файла jibber с помощью strings. strings jibber На скриншоте ниже список строк, извлечённых из указанного файла: Установка минимальной длины строки По умолчанию, команда strings ищет строки, содержащие четыре и более символов. Чтобы изменить значение по умолчанию используется ключ –n. Имейте ввиду, что чем короче минимальная длина, тем больше шансов получить на выводе бесполезного материала. Некоторые двоичные значения имеют то же числовое значение, что и значение, представляющее печатаемый символ. Если два из этих числовых значений находятся рядом в файле, а минимальная длина, равна двум, эти байты будут отображаться как строки. Чтобы установить длину строки равной двум, используйте следующую команду: strings -n 2 jibber Теперь у нас на выводе есть строки, длина который равна двум и более символам. Учтите, что пробел тоже считается печатаемым символом. Ограничение вывода команды strings командой less Чтобы ограничить объем выведенной информации вывод команды strings можно передать команде less, а затем прокруткой просматривать всю информацию: strings jibber | less Теперь мы видим список, выводимый командой less, где начало списка отображено первым: Использование strings с файлами объектов Обычно исходный код программ компилируется в файлы объектов. Они в свою очередь связаны с файлами библиотек, чтобы создать исполняемый файл. У нас есть файл объектов jibber, давайте посмотрим, что в нем: jibber.o | less Данные выводятся в таблице по 8 колонок, каждая из строк которой заканчивается на букву “H”. В данном примере у нас SQL запрос. Но если прокрутить ниже, то можно заметить, что форматирование не относится ко всему файлу. Думаю, интересно видеть разницу между текстовыми строками файла объектов и конечного исполняемого файла. Поиск в конкретной области файла Скомпилированные программы имеют различные области, которые используются для хранения текста. По умолчанию, strings ищет текст во всем файле. Это так же, как если бы вы использовали параметр -a (all). Для поиска строк только в инициализированных, загруженных разделах данных в файле используйте параметр -d (data). strings -d jibber | less Если нет особой причины, то вполне можно обойтись значением по умолчанию. Вывод номера строки Иногда бывает необходимо узнать точное смещение, расположение строки в файле. В этом нам поможет ключ –o (offset). strings -o parse_phrases | less В данном случае номера строки показаны в восьмеричной системе. Для получения значений в других системах исчисления, достаточно использовать опцию –t, а затем передать нужный ключ: d (десятичная система), x (шестнадцатеричная) или o (восьмеричная). Опция –t с ключом o равнозначна запуску команды strings с ключом –o. strings -t d parse_phrases | less Теперь номера строк показаны в десятичной системе: strings -t x parse_phrases | less А тут в шестнадцатеричной: Вывод управляющих символов Команда strings принимает знаки табуляции и пробела, как часть строки, игнорируя при этом символ начала новой строки - /r или возврата каретки - /r. Чтобы включить их отображение нужно добавить ключ –w. strings -w add_data | less Ниже мы видим пустую строку. Это результат работы управляющих символов: либо символа новой строки, либо символ возврата каретки. Мы не ограничены только файлами Мы можем использовать строки с любым, что есть или может создать поток байтов. С помощью этой команды мы можем просмотреть содержимое оперативной памяти (RAM) нашего компьютера. Нам нужно использовать >sudo, потому что мы получаем доступ /dev/mem. Это символьного файл устройства, в котором хранится изображение оперативной памяти компьютера. sudo strings /dev/mem | less В списке не все содержимое оперативной памяти, а лишь то, что команда strings смогла извлечь. Поиск нескольких файлов сразу Маски можно использовать для выбора групп файлов для поиска. Символ * обозначает нуль и больше символов, а символ «?» означает любой отдельный символ. Можно также указать в командной строке множество имен файлов. Мы будем использовать маску для поиска всех исполняемых файлов в каталоге /bin. Поскольку список будет содержать результаты из многих файлов, будет использоваться параметр -f (имя файла). Имя файла будет напечатано в начале каждой строки. Затем можно просмотреть файл, в котором была найдена данная строка. Затем передадим результаты через grep и выведем строки, содержащие слово "Copyright": strings -f /bin/* | grep Copyright Мы получаем упорядоченный список с об авторских правах каждого файла в каталоге /bin, с именем файла в начале каждой строки. Команда strings распутана Команда strings – это не какая-то тайная команда. Это обычная команда Linux. Он делает выполняет конкретные задачи и делает это очень хорошо. Это еще один из преимуществ Linux, и действительно мощных в сочетании с другими командами. Когда вы видите, как он может оперировать двоичными файлами и другими инструментами, такими как grep, начинаете по-настоящему ценить функциональность этой слегка непонятной команды.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59