По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Под телефонными (VoIP) кодеками понимаются различные математические модели используемые для цифрового кодирования и компрессирования (сжатия) аудио информации. Многие из современных кодеков используют особенности восприятия человеческим мозгом неполной информации: алгоритмы голосового сжатия пользуются этими особенностями, вследствие чего не полностью услышанная информация полностью интерпретируется головным мозгом. Основным смыслом таких кодеков является сохранение баланса между эффективностью передачи данных и их качеством. Изначально, термин кодек происходил от сочетания слов КОДирование/ДЕКодирование, то есть устройств, которые преобразовывали аналог в цифровую форму. В современном мире телекоммуникаций, слово кодек скорее берет начало от сочетания КОмпрессия/ДЕКомпрессия. Перед тем как начать подробный рассказ про различные кодеки, мы составили таблицу со краткой сравнительной характеристикой современных кодеков: Кодек Скорость передачи, Кб/сек. Лицензирование G.711 64 Кб/сек. Нет G.726 16, 24, 32 или 40 Кб/ сек. Нет G.729А 8 Кб/ сек. Да GSM 13 Кб/ сек. Нет iLBC 13.3 Кб/ сек. (30 мс фрейма); 15.2 Кб/ сек. (20 мс фрейма) Нет Speex Диапазон от 2.15 до 22.4 Кб/ сек. Нет G.722 64 Кб/сек. Нет G.711 Кодек G.711 это самый базовый кодек ТфОП (PSTN). В рамках данного кодека используется импульсно-кодовая модуляция PCM. Всего в мире используется 2 метода компандирования (усиления сигнала) G.711: µ – закон в Северной Америке и A – закон в остальной части мира. Данный кодек передает 8 – битное слово 8 000 раз в секунду. Если умножить 8 на 8 000, то получим 64 000 бит – то есть 64 Кб/с, скорость потока, создаваемого G.711. Многие люди скажут, что G.711 это кодек, в котором отсутствует компрессирование (сжатие), но это не совсем так: сам по себе процесс компандирования является одной из форм компрессирования. Все мировые кодеки «выросли» на базе G.711. Важная особенность G.711 в том, что он минимально загружает процессор машины, на которой он запущен. G.726 Этот кодек использовался некоторое время, став заменой для G.721, который на тот момент устарел, и является одним из первых кодеков с алгоритмом компрессии. Он так же известен как кодек с адаптивной импульсно-кодовой модуляции (Adaptive Differential Pulse-Code Modulation, ADPCM) и может использовать несколько скоростей потока передачи. Наиболее распространенные скорости передачи это 16, 24 и 32 Кб/сек. Кодек G.726 почти идентичен G.711 – единственным отличием является то, что он использует половину полосы пропускания. Это достигается путем того, что вместо отправки полного результата квантования, он отправляет только разницу между двумя последними измерениями. В 1990 году от кодека практически отказались, так как он не мог работать с факсимильными сигналами и модемами. Но в наше время, из – за своей экономии полосы пропускания и ресурсов центрального процессора у него есть все шансы вновь стать популярные кодеком в современных сетях. G.729A Учитывая то, какую малую полосу пропускания использует G.729A, всего 8 Кб/сек., он обеспечивает превосходное качество связи. Это достигается за счет использования сопряженной структуры с управляемым алгебраическим кодом и линейным предсказанием (Conjugate-Structure Algebraic-Code-Excited Linear Prediction, CS-ACELP). По причине патента, использование данного кодека является коммерческим; однако это не мешает кодеку G.729A быть популярным в различных корпоративных сетях и телефонных системах. Для достижения такой высокой степени сжатия, G.729A активно задействует мощности процессора (CPU). GSM Кодек для глобального стандарта цифровой мобильной сотовой связи (Global System for Mobile Communications, GSM) не обременен лицензированием, как его аналог G.729A, но предлагает высокое качество и умеренную нагрузку на процессор при использовании 13 Кб/сек. полосы пропускания. Эксперты считают, что качество GSM несколько ниже чем G.729A. iLBC Кодек iLBC (Internet Low Bitrate Codec) сочетает в себе низкое использование полосы пропускания и высокого качества. Данный кодек идеально подходит для поддержания высокого качества связи в сетях с потерями пакетов. iLBC не так популярен как кодеки стандартов ITU и поэтому, может быть не совместим с популярными IP – телефонами и IP – АТС. Инженерный совет Интернета (IETF) выпустил RFC 3951 и 3952 в поддержку кодека iLBC. Internet Low Bitrate кодек использует сложные алгоритмы для достижения высокого показателя сжатия, поэтому, весьма ощутимо загружает процессор. В настоящий момент iLBC используется бесплатно, но владелец этого кодека, Global IP Sound (GIPS), обязует уведомлять пользователей о намерении коммерческого использования этого кодека. Кодек iLBC работает на скорости в 13.3 Кб/сек. с фреймами в 30 мс, и на скорости 15.2 кб/сек. с фреймами в 20 мс. Speex Кодек Speex относится к семейству кодеков переменной скорости (variable-bitrate, VBR), что означает возможность кодека динамически менять скорость передачи битов в зависимости от статуса производительности сети передачи. Этот кодек предлагается в широкополосных и узкополосных модификациях, в зависимости от требования к качеству. Speex полностью бесплатный и распространяется под программной лицензией университета Беркли (Berkeley Software Distribution license, BSD). Кодек работает на диапазонах от 2.15 до 22.4 Кб/сек. в рамках переменного битрейта. G.722 G.722 является стандартом ITU-T (International Telecommunication Union - Telecommunication sector) и впервые опубликован в 1988 году. Кодек G.722 позволяет обеспечить качество, не ниже G.711 что делает его привлекательным для современных VoIP разработчиков. В настоящий момент патент на G.722 не действителен, и этот кодек является полностью бесплатным.
img
Часто бывает, что на системе Linux произошла незапланированная или по неизвестным очевидным причинам, перезагрузка. Поиск и устранение первопричины может помочь предотвратить повторение таких проблем и избежать незапланированных простоев. Есть несколько способов выяснить, что вызвало перезагрузку. В этой статье мы обсудим эти способы и способы использования доступных утилит и журналов в системе Linux для устранения таких сценариев. Проверка времени перезагрузки Чтобы посмотреть, когда именно произошла перезагрузка системы можно воспользоваться командами who и last Проверка системных журналов Кроме того, можно сопоставить время перезагрузки, которую требуется диагностировать, с системными сообщениями. Для систем CentOS/RHEL журналы можно найти по адресу /var/log/messages, а для систем Ubuntu/Debian - по адресу /var/log/syslog. Для фильтрации или поиска конкретных данных можно использовать команду tail или любимый текстовый редактор. Как видно из приведенных ниже журналов, такие записи предполагают завершение работы или перезагрузку, инициированную администратором или пользователем root. Эти сообщения могут варьироваться в зависимости от типа ОС и способа запуска перезагрузки или завершения работы, но вы всегда найдете полезную информацию, просматривая системные журналы, хотя этого не всегда может быть достаточно, чтобы определить причину. Ниже приведена одна такая команда, которую можно использовать для фильтрации системных журналов: sudo grep -iv ': starting|kernel: .*: Power Button|watching system buttons|Stopped Cleaning Up|Started Crash recovery kernel' /var/log/messages /var/log/syslog /var/log/apcupsd* | grep -iw 'recover[a-z]*|power[a-z]*|shut[a-z ]*down|rsyslogd|ups' Зафиксированные события не всегда могут быть конкретными. Всегда отслеживайте события, которые дают признаки предупреждений или ошибок, которые могут привести к выключению или сбою системы. Проверка журнала auditd Для систем, использующих auditd – это отличное место для проверки различных событий с помощью инструмента ausearch. Используйте приведенную ниже команду для проверки последних двух записей из журналов аудита. $ sudo ausearch -i -m system_boot,system_shutdown | tail -4 Появится сообщение о двух последних остановках или перезагрузках. Если это сообщает о SYSTEM_SHUTDOWN, за которым следует SYSTEM_BOOT, все должно быть хорошо. Но, если он сообщает две строки SYSTEM_BOOT подряд или только одно сообщение SYSTEM_BOOT, то, скорее всего, система некорректно завершила работу. Вывод при нормальной работе должен быть примерно следующим: $ sudo ausearch -i -m system_boot,system_shutdown | tail -4 ---- type=SYSTEM_SHUTDOWN msg=audit(Saturday 13 February 2021 A.852:8) : pid=621 uid=root auid=unset ses=unset subj=system_u:system_r:init_t:s0 msg=' comm=systemd-update-utmp exe=/usr/lib/systemd/systemd-update-utmp hostname=? addr=? terminal=? res=success' ---- type=SYSTEM_BOOT msg=audit(Saturday 13 February 2021 A.368:8) : pid=622 uid=root auid=unset ses=unset subj=system_u:system_r:init_t:s0 msg=' comm=systemd-update-utmp exe=/usr/lib/systemd/systemd-update-utmp hostname=? addr=? terminal=? res=success' В приведенных ниже выходных данных перечислены два последовательных сообщения SYSTEM_BOOT, которые могут указывать на аварийное завершение работы, хотя результаты нужно скорректировать с данными системного журнала. $ sudo ausearch -i -m system_boot,system_shutdown | tail -4 ---- type=SYSTEM_BOOT msg=audit(Saturday 13 February 2021 A.852:8) : pid=621 uid=root auid=unset ses=unset subj=system_u:system_r:init_t:s0 msg=' comm=systemd-update-utmp exe=/usr/lib/systemd/systemd-update-utmp hostname=? addr=? terminal=? res=success' ---- type=SYSTEM_BOOT msg=audit(Saturday 13 February 2021 A.368:8) : pid=622 uid=root auid=unset ses=unset subj=system_u:system_r:init_t:s0 msg=' comm=systemd-update-utmp exe=/usr/lib/systemd/systemd-update-utmp hostname=? addr=? terminal=? res=success' Анализ журнала systemd Чтобы сохранить журнал системных логов на диске, необходимо иметь постоянный системный журнал, иначе логи будут очищаться при перезагрузке. Для этого можно либо внести изменения в /etc/systemd/journald.conf, либо создать каталог самостоятельно с помощью следующих команд: $ sudo mkdir /var/log/journal $ sudo systemd-tmpfiles --create --prefix /var/log/journal 2>/dev/null $ sudo systemctl -s SIGUSR1 kill systemd-journald После этого можно дополнительно перезагрузить систему для ввода нескольких записей перезагрузки в журнал, хотя это и не требуется. Приведенную ниже команда позволяет выводить список записанных событий о загрузке из журнала: $ journalctl --list-boots Вот его выходные данные на моем сервере: Как видно на рисунке, в системе есть несколько событий загрузки. Для дальнейшего анализа причины конкретной перезагрузки используйте: $ journalctl -b {num} –n Здесь {num} будет индексом, заданным в команде journalctl --list-boots в первом столбце. В приведенных выше выходных данных можно просмотреть сообщения, зарегистрированные в журнале, и отследить аномалии, если таковые имеются. Заключение Не всегда можно определить причину перезагрузки Linux с помощью одной команды или из одного файла журнала. Поэтому всегда удобно знать команды и журналы, которые фиксируют события, связанные с системой, и могут сократить время, необходимое для поиска первопричины. Приведенные выше примеры дают вам возможность начать поиск и устранение неисправностей. Используя комбинацию таких инструментов и журналов, вы можете быть уверены в том, что произошло и как перезагрузилась ваша система.
img
В сегодняшней статье расскажем про настройку IVR (Interactive Voice Response) стандартными способами Asterisk, без использования графической оболочки FreePBX. Аббревиатура IVR описывает систему, в которой вызывающий абонент, по средствам кнопок на телефоне осуществляет навигацию в голосовом меню и соединяется с нужным отделом, сотрудником и службой. В масштабах крупного "Enterprise", конечно, IVR описывает гораздо более сложные системы, где используются различные технологии интеграции. Но мы рассмотрим простейший вариант. Про настройку IVR через графический интерфейс FreePBX, читайте в нашей статье. Немного теории Перед тем как создать простейший пример IVR, необходимо разобраться во внутренних приложениях, которыми оперирует Asterisk. Приложение Background() проигрывает звуковую запись и в то же время слушает входящие сигналы DTMF (Dual-Tone Multi-Frequency). Система, тем временем, пытается найти совпадения введённых цифр DTMF и внутреннего номера (extension) в текущем контексте дайл-плана, если совпадение есть, то Asterisk отправит вызов на найденный номер. Приложение WaitExten() необходимо, если вы хотите заставить Asterisk подождать какое-то время после того, как он воспроизведет звуковую запись. Параметры, задающиеся в WaitExten() - это количество секунд, которые система будет ждать, прежде чем разрешит абоненту совершить набор внутреннего номера, например – WaitExten(10). Приложение Goto() позволяет переходить с одной позиции в дайл-плане на другую – это может быть контекст (context), внутренний номер (extension) и приоритет (priority). Конфигурация Теперь мы можем создать простейший пример голосового меню, используя вышеупомянутые приложения. Как правило, IVR создаётся в новом контексте, таким образом оставаясь независимым от остальных настроенных extension’ов в дайл-плане. Основная запись, содержащая сценарий голосового меню будет следующей: "Здравствуйте вы позвонили в компанию %companyname%. Для того, чтобы соединиться с отделом поддержки нажмите 1. Для того, чтобы соединиться с отделом продаж нажмите 2. Если Вы знаете внутренний номер абонента, наберите его в тональном режиме". Настройку IVR проводим в файле extensions.conf и добавляем туда следующую запись: [ivr-example] exten => s,1,Answer(500) same => n(loop),Background(Main_IVR_record) exten => 1,1,Goto(3445,s,1) #Переход в контекст отдела поддержки по нажатию кнопки 1. 3444 – Ринг группа отдела поддержки. exten => 2,1,Goto(3444,s,1) #Переход в контекст отдела продаж нажатию кнопки 2. 3445 – Ринг группа отдела продаж. exten => _XXX,1,Dial(SIP/${EXTEN}@Asterisk) #Набор внутреннего номера сотрудника Теперь, для инициализации IVR, остается только вызвать контекст [ivr-example].
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59