Hey everyone,
I am diving into Kamailio & trying to wrap my head around how to handle some custom SIP scenarios, when it comes to module integration. I have gone through some of the docs but still feel a bit lost on choosing the right modules & how they interact for use cases such as custom header manipulation or building out a basic call-routing logic beyond the default examples.
I am not sure if I should be using `dialog`, `tm`, or maybe even `uac` for this. Also, does anyone here have experience using Kamailio with external APIs for call control or authentication purposes? Any examples, tips or gotchas I should be aware of ? Also i have check this <a href="https://www.kamailio.org/w/features/">https://www.kamailio.org/w/features/</a> <a href="https://www.igmguru.com/project-management/capm-certification-training">capm course</a> witch is good still need your help.
I appreciate if someone could point me to a working config or give some practical advice from experience. Still new to SIP routing logic, so trying to learn the right way early on.
Thank you.:)
On Sat, 2025-06-28 at 09:25 +0000, c7897009--- via sr-dev wrote:
Hey everyone,
I am diving into Kamailio & trying to wrap my head around how to handle some custom SIP scenarios, when it comes to module integration. I have gone through some of the docs but still feel a bit lost on choosing the right modules & how they interact for use cases such as custom header manipulation or building out a basic call-routing logic beyond the default examples.
Hi! And welcome!
I remember when I first started with Kamailio. After reading RFC 3261 I was "HOW IN THE WORLD CAN I REMEMBER ALL THIS?!!!"
Trust me, it gets better the longer you work with it.
If you have experience with Asterisk or Freeswitch, Kamailio is not like them.
Kamailio is more like the big box of LEGOs your older brother left you when we went off to university. Lots of blocks, no instructions, and what you build with Kamailio is up to your imagination.
For me, I used all three- dialog, tm and uac in almost every configuration.
External APIs? There is the http_client/http_async_client if your API uses HTTP(S) I used the ndb_redis module to talk to a redis instance that did other things. I also made heavy use of db_postresql and db_sqlite for other APIs.
You don't give specifics about what you want to do, so the answer will be vague.
Trust me... Kamailio is just a big box of Legos... you can do what you want with it. There is no wrong module.
As for a working config, I set up two phones on a switch connected to a box running kamailio. I figured out how the registrar module worked, then made calls between the two phones. That is really about 10 lines of code. From there, build out.
I know this doesn't seem helpful - but really - kamailio is a framework.