понедельник, 24 января 2028 г.

Разный софт для CentOS

Собственные скрипты и алиасы: sockstat, ipt
Загрузка диска: nmon, atop, iostat -x
Информация о железе (мать, проц, память и т.п.): dmidecode
Тестирование скорости жесткого диска: hdparm

среда, 12 августа 2026 г.

Использование sipsak для проверки доступности и регистрации

 Ставим из net-misc/sipsak.


Проверка доступности сообщением OPTIONS.

# sipsak -vv -s sip:4520@10.2.1.7 -D 5

Где, 

s - проверяемый sip URI;

D - таймаут.

Внимание! Замечено, что в версии 0.9.8 sipsak не подставляет занимаемый им динамический порт в поле Contact, поэтому не получает ответа от клиента. Решением является непосредственно указывать локальный порт ключом -l. Например,  -l 41908.

При оценке результата запроса можно ориентироваться на код завершения. При получении 200 возвращает 0, при 404 возвращает 1, на таймаут или сброс - 3. 

четверг, 18 сентября 2025 г.

Щелчки в начале проигрыша сообщений в Астериск

 Возникают при конвертации RIFF файлов (.wav) в чистый a-law. Остается заголовок RIFF, который приводит к щелчку при проигрывании.

Решение: удалить заголовок. Например, с помощью RIFFStrip.

среда, 23 июля 2025 г.

Модификация приложения Record для отлавливания нужного кода DTMF

Продолжаем мучать app_record.c

Задача: отловить набор внутреннего номера. Номера начинаются с "4".

Т.е. нужно прервать запись только по нажатию "4", и сообщить об этом факте.

Добавим опцию "e" в приложение Record. Для этого:

понедельник, 14 июля 2025 г.

Распаковка initramfs

# mkdir initramfs_tmp

# cd initramfs_tmp

# cp /boot/initramfs-6.12.34-gentoo-dist.img .

# mv initramfs-6.12.34-gentoo-dist.img initramfs-6.12.34-gentoo-dist.xz

# unzstd initramfs-6.12.34-gentoo-dist.xz

# cat initramfs-6.12.34-gentoo-dist | cpio -idmv

вторник, 6 мая 2025 г.

Добавляем в CDR причину и инициатора разрыва соединения

 Добавляем в CDR две колонки:

- hangupcause (int4);

- hangupparty (varchar или сделать отдельный тип enum 'caller|callee').

Далее добавляем в app_dial.c переменную типа char buf_hangup_str[8], по очереди пишем в неё значения ast_channel_hangupcause(chan) и ast_check_hangup(chan), и сбрасываем в CDR через ast_cdr_setvar.

Соответствующий патч ниже.