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