I'm trying to use the kamcmd tml.tc_uac_start command to send raw SIP messages in Kamailio 5.5, but I always get a error: 400 - Invalid headers. I've also tried sending OPTIONS messages with the same result. I've looked for examples of sending SIP messages via kamcmd, but can't find any.
kamcmd help tm.t_uac_start specifies the following:
kamcmd> help tm.t_uac_start starts a tm uac using a list of string parameters: method, ruri, dst_uri, send_sock, headers (CRLF separated) and body (optional)
Essentially my problem is I don't really know how to properly encode these headers. How do I send special characters? Do I need to use double quotes, single quotes, etc around the whole header? Which characters are special? How do I encode the CRLF? I tried \r\n, but I still get this error. It says only From: and To: are required. It's a bit hard trying to make progress when all I ever get is one error message. The kamailio logs are a little more helpful, and largely point me down the road that it doesn't understand the CRLF encoding, and says my From: header includes the To: line, so it's not separating them.
For example, I'm trying things like this:
kamcmd -v tm.t_uac_start OPTIONS sip:200@exampleserver.com:5060 . . "From: sip:example@192.168.0.1;tag=d27ca05e-1789-4774-a698-dcfe91dec9b4\r\nTo: sip:example@192.168.0.2"\r\nExpires: 1200\r\nContent-Length: 0"
Nothing seems to work, so whatever the syntax I'm using must be wrong.
Just providing an example of sending SIP via kamcmd tm.t_uac_start would likely help a huge amount.
Thanks!