По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Как и любая современная АТС, Asterisk имеет свою встроенную систему хранения истории звонков - CDR (Call Detail Record). Она используется для снятия статистики, ведения отчетности, прослушивания вызовов или подсчета биллинговых показателей.
В Asterisk для этого создана база данных asteriskcdrdb, в которой существует таблица cdr. Давайте рассмотрим как пользоваться данной таблицей и ее структуру.
[root@asterisk]# mysql // подключаемся к MySQL
После успешного подключения, необходимо выбрать для работы базу данных asteriskcdrdb:
mysql> use asteriskcdrdb;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
Давайте убедимся, что у нас есть таблица cdr. Выполним это, как указано ниже:
mysql> show tables;
+-------------------------+
| Tables_in_asteriskcdrdb |
+-------------------------+
| cdr |
| cel |
+-------------------------+
2 rows in set (0.00 sec)
На данном этапе мы убедились, что у нас есть база данных asteriskcdrdb, в которой находится таблица cdr. Давайте попробуем посмотреть входящие звонки из города за сегодня (дата написания статьи 18 марта 2016 года), в период с 12:00 до 12:10, т.е за 10 минут:
SELECT `dst` , `src` , `duration` , `calldate` , `recordingfile`
FROM `cdr` WHERE `calldate` >= '2016-03-18 12:00:00' AND `calldate` <= '2016-03-18 12:10:00' AND LENGTH( `src` ) >3;
+-----+-------------+----------+---------------------+----------------------------------------------------------------+
| dst | src | duration | calldate | recordingfile |
+-----+-------------+----------+---------------------+----------------------------------------------------------------+
| 113 | 84991111111 | 140 | 2016-03-18 12:00:36 | external-113-84991111111-20160318-115933-1458291573.157155.wav |
| 104 | 89162222222 | 81 | 2016-03-18 12:01:33 | external-104-89162222222-20160318-120133-1458291693.157169.wav |
+-----+-------------+----------+---------------------+----------------------------------------------------------------+
2 rows in set (0.00 sec)
В вышеуказанном примере, в SQL запросе указано LENGTH( `src` ) >3. Столбец ‘src’ – показывает номер звонящего (source - источник). Это сделано для того, чтобы исключить внутренние звонки, так как у нас используется трехзначная нумерация. Тем самым, мы получаем в результате данные, с которыми затем можем работать. Например, отправить на почту в виде отчета. Ниже рассмотрена структура таблицы cdr в базе данных asteriskcdrdb:
Столбец
Пример значения
Описание
calldate
2016-03-18 12:00:36
Дата и время звонка
clid
"Oleg Ivanov" <84991111111>
В данное поле попадает полное CallerID (CLID, CID), которое состоит из имени и номера звонящего. Это доступно только для считывания.
src
84991111111
Номер звонящего в конструкции CallerID (CNUM). Это доступно только для считывания.
dst
113
Номер назначения для звонка. Это доступно только для считывания.
dcontext
CustomContext1
Контекст для обработки. Это доступно только для считывания.
channel
SIP/0002B2356854-a34bh3ef
Канал, через который поступил звонок
dstchannel
SIP/0004F6675969-97836bb0
Канал, через который ушел исходящий звонок
lastapp
Dial, Busy, Congestion
Приложение, которое последним отработало этот вызов перед попаданием в таблицу cdr
lastdata
SIP/0004F6675969,30,tT
Аргумент, который был передан приложению, которое отработало вызов последним (lastapp)
duration
75
Количество секунд от начала (отметка start) до окончания вызова (отметка end)
billsec
67
Количество секунд от ответа (отметка answer) до окончания вызова (отметка end). Данное значение всегда меньше значения duration, и отражает длительность самого разговора, что важно для подсчета стоимости.
disposition
ANSWERED, BUSY, NO ANSWER, FAILED
Результат звонка
amaflags
OMIT, BILLING, DOCUMENTATION, Unknown
Метка Automatic Message Accounting (AMA) – автоматический учет стоимости вызова.
accountcode
23232
Идентификатор аккаунта. Данное значение пустое по умолчанию, и определяется параметрами конкретного пользователя.
uniqueid
1458291693.157169
Уникальный идентификатор звонка
userfield
-
Пользовательское поле. Здесь можно передавать что угодно, добавляя данные в этот столбец при работе с вызовом внутри контекста обработки.
did
4996491913
DID (Direct Inward Dialing). На основании DID вызова на Asterisk осуществляется его маршрутизация (это значение приходит от провайдера).
recordingfile
external-113-84991111111-20160318-115933-1458291573.157155.wav
Имя файла, содержащего запись разговора. В данном имени можно проследить путь к файлу в файловой структуре сервера.
cnum
84991111111
Номер звонящего в структуре CallerID.
cnam
Oleg Ivanov
Имя звонящего в структуре CallerID.
Теперь, когда вы понимаете принцип формирования запросов к базе данных и ее структуру, вы можете без труда формировать собственные отчеты. Например, ежедневный отчет о количестве входящих звонков за текущий день на почту. Это реализуется средствами php скрипта и добавления расписания через cron. Поговорим об этом в следующей статье
В данной статье мы рассмотрим работу с пакетами и менеджерами пакетов в Red Hat (CentOS) операционных системах. Для работы с пакетами в операционных системах используют yum и rpm. В современной версии используется пакетный менеджер dnf, но он является "форком" от пакетного менеджера yum. Данный пакет разрабатывался в целях решить проблему производительности в первую очередь и в принципе он очень похож, поэтому мы посмотрим в статье на примере классических пакетных менеджеров.
В статье мы рассмотрим следующие вопросы:
Установка, удаление и обновление пакетов.
Поиск пакетов и их зависимостей.
Получение полной информации о пакетах.
В статье нам понадобится понимание:
rpm утилита управления пакетами в Red Hat системах.
rpm2cpio разбор пакета на двоичные файлы.
yum программа для работы с пакетами в Red Hat системах
yumdownloader скачивание пакетов
/etc/yum.repos.d./ - перечень репозиториев.
Если сравнивать с Ubuntu можно сказать, что вместо dpkg у нас будет rpm, а вместо apt будет yum и дополнительные особенности centos.
Открываем консоль. Переходим в режим суперпользователя, команда su. Посмотрим на команду rpm --help.
Функционал достаточно большой, все ключи на один экран не помещаются. Есть опции по запросу и проверке пакетов можно найти ключи в секции queryverify. Очень мощная утилита, но для работы все таки удобнее использовать пакетный менеджер yum.
Попробуем воспользоваться rpm, чтобы посмотреть его особенности. Лучше всего смотреть на примере. Скачаем программу webmin в виде установочного rpm пакета. Скачали пакет и положили в директорию tmp.
Переходим в нее cd /tmp. Далее можно посмотреть наличие файлов ls la.
Установим данный пакет. Для установки используем два ключа, ключ i означает install, ключ v означает verbose показывать ход установки.
rpm iv webmin-1.955-1.src.rpm
Пакет установился.
Можно теперь зайти в браузер и начать работу, но цель была посмотреть, как работает rpm. Для того, чтобы удалить пакет необходимо использовать ключ e, который означает erase. Команда будет выглядеть следующим образом:
rpm e webmin
Название пакета можно полностью не писать, должно работать.
Для того, чтобы проверить ключ у скаченного пакета есть ключ K.
rpm K webmin-1.955-1.noarch.rpm
Как из вывода видим, с пакетом не все в порядке отсутствует ключ для расшифровки подписи. Но данному пакету можно доверять, т. к. он скачан из надежного источника и качали сами.
Для того, чтобы проверить состоянии самого пакета есть другой ключ V
rpm Vv webmin-1.955-1.noarch.rpm
Можно получить информацию о пакете для этого необходимо использовать ключи qi, где query information.
rpm qi webmin-1.955-1.noarch.rpm
В данном выводе мы можем много информации получить о пакете, Название, Версия, дата сборки и т.д.
Возможно, когда-то может возникнуть необходимость посмотреть из чего состоит пакет rpm и разобрать его на составные части. Для этого необходимо использовать небольшую утилиту rpm2cpio. Расшифровывается т.е. rpm переделывается в cpio "copy inputoutput" это и двоичный архиватор, и формат файла. Сейчас пакет rpm должен пере паковаться в формат cpio. Пользоваться следующим образом:
rpm2cpio webmin-1.955-1.noarch.rpm > webmin.cpio
Как мы видим, получили еще один файл с расширением cpio и вот этот файл в формате родном для других unix систем.
И так RPM это такая низкоуровневая утилита, которая позволяет работать с RPM пакетами.
YUM
Родной и понятный yum, так же имеет файл помощи, как и все другие утилиты.
yum help
У него меньше опций, меньше возможностей. И есть большое количество команд, проверить, очистить, удалить, получить информацию. Здесь не просто уже ключи, а целые слова и маленькие опции для комфортной работы.
Например, мы можем написать:
yum install openssh-clients
Можно видеть, как он ищет проверяет и говорит, что данный пакет установлен, последняя версия пакета и ему нечего делать.
Для удаления мы даем команду:
yum remove openssh-clients
Он запросит подтверждение на данное действие и если мы подтвердим, то утилита будет удалена.
Можно удалить весь ssh: yum remove openssh, но тогда будет предупреждение, что обнаружена одна зависимость от openssh-clients и, если мы подтвердим обе утилиты будут полностью удалены. Т.е это умный пакетный менеджер позволяет работать так, чтобы лишние утилиты не болтались, т.е он сам находит и разрешает зависимости.
Еще интересный факт, что при установки пакетный менеджер проверяет зеркала и кэш, что ему позволяет определять, что установлена последняя версия программного обеспечения. В отличии от пакетного менеджера apt (Ubuntu), которому надо сначала обновить кэш apt update, yum автоматически сам обновляет информацию в процессе установки пакетов.
Репозиторий yum находится в следующей директории и лежат как отдельные файлы.
/etc/yum.repos.d/
Посмотрим базовый репозиторий
cat CentOS-Base.repo
Написано, что это зеркало для подключения клиентов и проверки статуса обновлений. Тут мы можем увидеть имя репозитория и зеркала где находятся обновления. Есть еще ключи, которые можно проверять, а можно и не проверять. Если мы изменим строчку gpgcheck = 0 то проверка осуществляться не будет. Можно самостоятельно добавить репозиторий, создав файл с расширением repo. И тогда получится свой репозиторий.
Для обновления всех пакетов используется команда yum upgrade. Если пакетный менеджер видит обновления, то он предложит сделать выбор установить или нет.
Дополнительно есть утилита для просто закачки пакетов без установки yumdownloader. Работает просто. Переходим в нужную директорию и вводим, например, yumdownloader openssh и происходит закачка.
И последнее пакетный менеджер умеет искать пакеты. Например, yum search openssh.
Забыли рутовый пароль для входа в Ubuntu Linux? Не беда. Сейчас расскажем, как быстро восстановить доступ.
Упомянутый здесь метод работает для сброса пароля Ubuntu в VMware, двойной загрузки или одиночной установки. Все, что вам нужно, это немного терпения и выполнить пару команд. Вы сбросите пароль root в течение пары минут.
Если нужна другая сборка, то мы также рассказывали про восстановление пароля в CentOS и Debian
Сброс пароля Ubuntu из режима восстановления (recovery mode)
Шаг 1. Загрузитесь в режиме восстановления
Включите компьютер. Зайдите в меню Grub. Как правило, оно появляется автоматически, а если нет, то удерживайте клавишу Shift, пока не появится меню загрузки.
Если вы используете Oracle VirtualBox или VMWare, вы должны удерживать клавишу Shift при появлении логотипа Oracle или VMWare.
В меню grub выберите «Дополнительные параметры для Ubuntu» (Advanced Options for Ubuntu) :
Здесь вы увидите возможность перейти в режим восстановления (recovery mode) :
Выбрав его, вы сначала увидите темный экран и после непродолжительной загрузки окажитесь в меню восстановления.
Шаг 2. Переходим в командный интерпретатор суперпользователя
Теперь вам будут представлены различные варианты режима восстановления. Здесь вам нужно выбрать «Root Drop to root shell prompt» («Перейти в командный интерпретатор суперпользователя» по-русски) . Просто нажмите клавишу Enter, чтобы выбрать эту опцию.
После этого у вас внизу появится командная строка.
Шаг 3: Перемонтировать рут с правами записи
У вас должен быть доступ на запись к корневому разделу. По умолчанию он имеет доступ только для чтения. Используйте команду ниже, чтобы перемонтировать ее с правами записи:
mount -rw -o remount /
Шаг 4: Сбросьте имя пользователя или пароль
Здесь вам будет представлен root-доступ. Используйте следующую команду, чтобы получить список всех доступных пользователей:
ls /home
Из предыдущей команды выберите пользователя (username), для которого вы хотите сбросить пароль. Теперь используйте следующую команду для сброса пароля для выбранного пользователя (вместо username указываем имя нашего пользователя):
passwd username
У нас запросят новый пароль и подтверждение. Введите новый пароль дважды:
Enter new UNIX password:
Retype new UNIX password:
Готово! Вы только что успешно сбросили пароль. Теперь выйдите из командной строки root:
exit
Когда вы выйдете, вы вернетесь в меню режима восстановления. Выберите нормальный вариант загрузки - Resume.
Может появится предупреждение о совместимости графического режима, но не волнуйтесь. Полная перезагрузка решит проблему, если таковая имеется.
После перезагрузки вы сможете войти с новым паролем.
Альтернативный метод сброса пароля Ubuntu
Если по каким-либо причинам у вас возникли трудности с переходом в корневую оболочку и сменой пароля, вы можете попробовать выполнить следующие действия:
Перезагрузите компьютер. Удерживайте Shift, чтобы открыть экран grub (если он не работает автоматически). Нажмите E в приглашении grub для редактирования экрана grub.
Найдите строку, начинающуюся с linux, измените ro на rw и добавьте init=/bin/bash в конце этой строки.
Нажмите Ctrl-X, чтобы сохранить изменения и загрузиться. Теперь вы загружаетесь в ядро Linux с правами на чтение и запись, и вместо графического интерфейса пользователя вы будете использовать оболочку bash. Другими словами, ваша система будет загружаться в корневой пароль без пароля.
Введите команду passwd с вашим именем пользователя. Если вы не знаете имя пользователя, проверьте с помощью команды ls/home (как в первом методе).
Теперь установите новый пароль. После того, как вы установили новый пароль, выйдите из терминала. Просто введите reboot в терминал или используйте команду выключения.
shutdown -r now
Готово! Пароль изменен.
Возможные проблемы и их решение
Ошибка “Authentication token manipulation error”
При вводе нового пароля у вас может появиться сообщение об ошибке манипулирования токеном (Authentication token manipulation error):
passwd username
Enter new UNIX password:
Retype new UNIX password:
passwd: Authentication token manipulation error
passwd: password unchanged
Причиной этой ошибки является то, что файловая система монтируется только с доступом для чтения. Измените доступ и перемонтируйте файловую систему следующим образом:
mount -rw -o remount /
Нет пункта “recovery mode”
Если нет пункта recovery mode, то вам нужно выбрать строчку с вашей системой, нажать E и допишите в конец опций ядра слово single. Затем нужно нажать B чтобы загрузился тот же терминал с правами суперпользователя.
Ошибка “end Kernel panic”
Вы можете увидеть такой вывод:
end Kernel panic - not syncing: Attempted to kill init! exit code=0x0007f00
Убедитесь, что вы удалили опцию splash boot при редактировании пункта меню grub.
Ошибка “Failed to connect to bus”
При попытке перезагрузиться с помощью команды reboot вы можете получить:
Failed to connect to bus: No such file or directory
Failed to talk to init daemon.
Чтобы избавиться от этой ошибки перезагрузитесь так:
# exec /sbin/init