[sr-dev] Various fixes for Kamailio's IMS code

Rob Day rkd at rkd.me.uk
Sat Dec 28 22:04:34 CET 2013


Hi,

I've been trying to set up Kamailio 4.0.5 as a P-CSCF, I-CSCF and S-CSCF 
today, and hit a few issues which I've fixed. 
http://sip-router.org/contribute/ suggests that patches should be 
submitted to this list, so here I am.

The first issue I hit was the sem_post issue that has been reported from 
time to time 
(http://lists.kamailio.org/pipermail/sr-users/2013-January/076554.html) 
- it looks as though sem_post is only included in -lpthread on Ubuntu 
12.04, not -lrt 
(https://bugs.launchpad.net/ubuntu/+source/manpages/+bug/874418), so 
I've updated some Makefiles to reflect that.

I subsequently hit a segfault when calling pcscf_save: I've tracked this 
down to a while loop that was missing curly braces, and so tried to 
dereference a null pointer. I think there's another bug in this piece of 
code - because h is NULL at the end of the first while loop, we never go 
round the second loop, and so never call free_rr. It looks like even if 
we did, h->parsed has been set to 0 before we try and free it, so 
nothing would happen. I wasn't sure how the memory management here 
works, though, and so haven't tried to change this.

I also found that the ims_auth module didn't handle standard SIP Digest 
authentication on the MAR interface, only AKA and Digest-MD5 (which 
seems to be specific to OpenIMSCore HSS, and not mentioned in the IMS 
specs). Most of the code to allow SIP Digest authentication was already 
there, so I just hooked the last piece in to get it to work. I'm not 
sure whether this counts as a new feature or a bugfix - it's not clear 
whether this was meant to be supported but just missing a piece, or not 
meant to be supported but very easy to add in.

Finally, I was working from the 4.0 nightlies Debian repository, and the 
examples/scsf/kamailio.cfg file for 4.0.x seems to skip authentication. 
It looks like this section has been reworked heavily in 4.1.0, so this 
may be less important - but I put together a different kamailio.cfg 
based on a mailing list post 
(http://lists.sip-router.org/pipermail/sr-users/2013-March/077142.html), 
and it might make sense to use that as the default file for 4.0.x.

The attached patches are against the 4.0 branch in Git (specifically, 
commit 1b98961522fd8a7eb73ecc7d1772541f8b81aabc). I'm happy to apply any 
feedback which more knowledgeable contributors have.

Best regards,
Rob
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20131228/4cd5b849/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Change-lrt-to-lpthread-to-avoid-error-due-to-missing.patch
Type: text/x-patch
Size: 1510 bytes
Desc: not available
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20131228/4cd5b849/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-Fix-segfault-when-calling-pcscf_save.patch
Type: text/x-patch
Size: 863 bytes
Desc: not available
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20131228/4cd5b849/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-Add-support-for-SIP-Digest-3GPP-Digest-authenticatio.patch
Type: text/x-patch
Size: 2324 bytes
Desc: not available
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20131228/4cd5b849/attachment-0002.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0004-Updated-example-S-CSCF-config-with-working-authentic.patch
Type: text/x-patch
Size: 9097 bytes
Desc: not available
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20131228/4cd5b849/attachment-0003.bin>


More information about the sr-dev mailing list