I’ve talked about how cool SCTP is in the past, so I thought I’d describe how easy it is to start using SCTP as the Transport protocol in Kamailio.
I’m working on a Debian based system, and I’ll need to install libsctp-dev to use the SCTP module.
apt-get install libsctp-dev
Next we’ll edit the Kamailio config to load module sctp in the loadmodules section:
...
loadmodule "sctp.so"
...
Now we’ll start listening on SCTP, so where your current listen= entries are we’ll add one:
listen=sctp:0.0.0.0:5060
I’ve loaded Dispatcher for this example, and we’ll add a new entry to Dispatcher so we can ping ourselves.
We’ll use kamctl to add a new dispatcher entry of our loopback IP (127.0.0.1) but using SCTP as the transport.
kamctl dispatcher add 1 'sip:127.0.0.1:5060;transport=sctp' 0 0 '' 'Myself SCTP'
Now I’ll restart Kamailio and check kamcmd:
kamcmd dispatcher.list
All going well you’ll see the entry as up in Dispatcher:

And firing up tcpdump should show you that sweet SCTP traffic:
tcpdump -i lo -n sctp

Sadly by default TCPdump doesn’t show our SIP packets as they’re in SCTP, you can still view this in Wireshark though:

Here’s a copy of the packet capture I took:
I’ve put a copy of my basic config on GitHub.
Now get out there and put SCTP into the real world!