3.05.2023

oracle 8 linux. rtpengine 11.2 with uek kernel

There are some specific TIPS for ORACLE linux 8 and UEK core for compiling\installing rtpengine.

for test vanilla server i will use oracle 8 linux:
take ISO from: https://yum.oracle.com/oracle-linux-isos.html
set http repository: http://yum.oracle.com/repo/OracleLinux/OL8/baseos/latest/x86_64

INSTALL RTPENGINE 11.2.2.0

git clone https://bitbucket.org/yooxy/centos8-rtpengine10-all-codecs.git
cd centos8-rtpengine10-all-codecs
#use precompiled pkgs from RPMS/el8/ and RPMS/el8/11 dirs
dnf -y install epel-release
dnf config-manager --set-enabled ol8_codeready_builder
dnf -y install --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
dnf -y install SDL2
dnf install kernel-uek-devel
cd RPMS/el8
dnf localinstall ffmpeg-libs-4.2.7-1.el8.x86_64.rpm libavdevice-4.2.7-1.el8.x86_64.rpm
cd 11
dnf localinstall ngcp-rtpengine-11.2.2.0+0~mr11.2.2.0-1.el8.x86_64.rpm ngcp-rtpengine-kernel-11.2.2.0+0~mr11.2.2.0-1.el8.x86_64.rpm ngcp-rtpengine-dkms-11.2.2.0+0~mr11.2.2.0-1.el8.noarch.rpm

INSTALL UEK KERNEL
We will using UEK 5.4.17. check “uname -a” maybe you already have 5.4.17 kernel, if not:

dnf config-manager --disable ol8_UEKR7
dnf config-manager --enable ol8_UEKR6 
dnf install kernel-uek kernel-uek-devel
reboot

SIGN MODULE ORACLE 8

Issue “Key was rejected by service” may happens if you have enabled “Secure boot”.
To check it: run “mokutils –sb-state”. In enabled state you have to sign your rtpengine module for kernel. To add your key do this:
mokutil –import /var/lib/dkms/mok.pub
enter password you wish, and after reboot you see in BOIS invitation to enroll your keys. do it with password you have entered before and then xt_rtpengine module will be loaded correctly.

ISSUES:

If you have installed UEK 5.15+ then you have to update you GCC compiler to 11+ or you will have error when compiling kernel module for rtpengine: you are using 11.5 GCC for compiling kernel and 8.5 for compiling xt_rtpengine.

modprobe: FATAL: Module xt_RTPENGINE not found in directory
Extension RTPENGINE revision 0 not supported, missing kernel module?
ERR: [core] FAILED TO CREATE KERNEL TABLE 0 (No such file or directory), KERNEL FORWARDING DISABLED

dkms (kernel) module xt_RTPENGINE not compiled at all.
in common cases you have to install kernel-uek-devel-<version>, where version is “uname -r”

../lib/codeclib.h:53:10: fatal error: libswresample/swresample.h: No such file or directory
dnf install libswresample-devel -y

/lib/codeclib.h:54:10: fatal error: libavcodec/avcodec.h: No such file or directory
dnf install libavcodec-devel -y

./include/media_player.h:29:10: fatal error: libavformat/avformat.h: No such file or directory
dnf install libavformat-devel -y

FAILED TO OPEN/DELETE KERNEL TABLE 0 (Permission denied), KERNEL FORWARDING DISABLED
rtpengine kernel module named xt_RTPENGINE creates 2 file in /proc/rtpengine, control and list. If you see permission of this files it will be only for root. That is why rtpengine can not use as ngcp-rtpengine.
Ofcourse somewhere good solution is present, but you can just change ngcp-rtpengine to root in rtpengine.services file and everything will start correctly.

30.03.2023

RTPENGINE cluster TIPS

There main concept here: https://github.com/sipwise/rtpengine/wiki/Redis-keyspace-notifications

but few important thing to check:
1. Redis have disabled keyspace notification to enable change to notify-keyspace-events “AKE” in redis.conf
2. interface names should start exactly from “pub”
3. If you have not active interface IP on passive (pub2) rtpengine you have to set sysctl net.ipv4.ip_nonlocal_bind=1

28.03.2023

cli sip client

simple (1 minute) way to install and make test sip from command line
how baresip works:
when you run: “baresip -f cofnig_dir” it will create dir config_dir with default files
then yo have to add accouns into config_dir/accounts, change everything you need into config_dir/config
then you may run again: “baresip -f cofnig_dir”
you will see console from basresip
then you have to use commands like “d” with means call to SIP uri
for example “d” and *43 will send call from your account to same domain with *43 (echo test for asterisk).

yum install baresip
cd /root
baresip -f baresip_config 
#press ESC
echo"<sip:900@asterisk_ip>;auth_pass=testpassword" >> baresip_config/accounts/accounts
change port in baresip_config/config from 5060 to 5099 for example
baresip -f baresip_config
#press "d"
type *43 or full sip uri "111@newhost"

22.03.2023

Duplicity. centos 7.

#scrip for compile and install duplicity from gitlab
yum install git epel-release -y
yum install python3-pip python3-devel librsync-devel gcc -y
git clone https://gitlab.com/duplicity/duplicity.git
cd duplicity/
pip3 install --upgrade pip
pip3 install -r requirements.txt
python3 setup.py install