Module debug in Kamailio
Sometimes Kamailio modules don’t behave how you expect them to, and you want to dive a little deeper into what’s going on…
Sometimes Kamailio modules don’t behave how you expect them to, and you want to dive a little deeper into what’s going on…
I ran into this issue the other day while compiling Kamailio from source: Jul 03 23:49:35 kamailio[305199]: ERROR: <core> [core/sr_module.c:608]: ksr_load_module(): could not open module </usr/local/lib64/kamailio/modules/ndb_redis.so>: /usr/local/lib64/kamailio/modules/ndb_redis.so: undefined symbol: redisvCommandJul 03 23:49:35 kamailio[305199]: CRITICAL: <core> [core/cfg.y:4024]: yyerror_at(): parse error in config file /etc/kamailio/kamailio.cfg, line 487, column 12-22: failed to load module So what was going … Continue reading Kamailio – NDB_Redis – undefined symbol: redisvCommand
I run Ubuntu on my desktop and I mess with Kamailio a lot. Recently I was doing some work with KEMI using Python, but installing the latest versions of Kamailio from the Debian Repos for Kamailio wasn’t working. The following packages have unmet dependencies: kamailio-python3-modules : Depends: libpython3.11 (>= 3.11.0) but 3.11.0~rc1-1~22.04 is to be … Continue reading Libpython3.11 problems with Kamailio on Ubuntu 22.04
If you’re setting up Kamailio for support for WebSocket and need to bind to TCP port 80 or TCP port 443, you may run into the issue that permission is denied to bind to these ports when you try and start the service. On Ubuntu, you can fix this with: sudo setcap ‘cap_net_bind_service=+ep’ /usr/sbin/kamailio Where … Continue reading Kamailio Websocket – Allowing binding to Port 443 & Port 80
Using Kamailio to transform a Multipart MIME SIP Body into a plain SDP only SIP body.
Adding Prometheus support to Kamailio and rendering stats in Grafana
Using Kamailio with a Diameter Routing Agent
Recently I had a strange issue I thought I’d share. Using Kamailio as an Interrogating-CSCF, Kamailio was getting the S-CSCF details from the User-Authorization-Answer’s “Server-Name” (602) AVP. The value was set to: sip:scscf.mnc001.mcc001.3gppnetwork.org:5060 But the I-CSCF was only looking up A-Records for scscf.mnc001.mcc001.3gppnetwork.org, not using DNS-SRV. The problem? The Server-Name I had configured as a … Continue reading Kamailio I-CSCF – SRV Lookup Behaviour
Extracting SDP Parameters with Kamailio
A quick post on a lesson that took me a while to learn with DNS, Kamailio and IMS.
Bad Extension is nothing to do with the Dialplan…
Using Redis with Kamailio
Some tricks to handle if you’ve got multiple headers all with the same name in Kamailio
Using the Rtimer module and UAC to be annoying, or very useful.
Using ENUM to resolve E.164 numbers into SIP URIs using Kamailio.
I’d been trying for some time to get Kamailio acting as a Diameter Routing Agent with mixed success, and eventually got it working, after a few changes to the codebase of the ims_diameter_server module. It is rather unstable, in that if it fails to dispatch to a Diameter peer, the whole thing comes crumbling down, … Continue reading A very unstable Diameter Routing Agent (DRA) with Kamailio
Using Docker to spin up environments to test Kamailio in
So far with most of our discussions about Kamailio we’ve talked about routing the initial SIP request (INVITE, REGISTER, SUBSCRIBE, etc), but SIP is not a one-message protocol, there’s a whole series of SIP messages that go into a SIP Dialog. Sure the call may start with an INVITE, but there’s the 180 RINGING, the … Continue reading Kamailio Bytes – OnReply Route
Things to keep in mind before using Kamailio as a Load Balancer for Asterisk
Kamailio world was an online event this year, but you can find all the videos here now they’ve all been posted.