[SR-Users] Manipulating contacts header results in a malformed SIP packet

Bastian Triller bastian.triller at gmail.com
Fri Mar 20 12:01:09 CET 2020


You're using set_contact_alias(), which already changes the Contact header.
Try msg_apply_changes() before your 2nd Contact header change.

On Thu, Mar 19, 2020 at 5:11 AM Sergey Safarov <s.safarov at gmail.com> wrote:

> Looks as not expected here
>
> sip:4.5.6.7:5060;alias=10.100.1.1~5060~1Content-Type: application/sdp
>
> About contact header.
> Yes it is really important header.
> If your carrier want specific Contact header format, then I recommend try
> use other provider.
>
> Contact header used also for RURI headers. So you cannot simple change
> Contact.
>
> Kamailio is very good SP proxy. For you will more simple invite Kamailio
> tech guy to configure inter-working with this specific carrier.
>
>
> On Thu, Mar 19, 2020 at 4:43 AM Andrew White <andrew at uconnected.com.au>
> wrote:
>
>> Hi all,
>>
>> Hope everyone is well, and looking forward to seeing you all whenever
>> Kamailio World ends up being!
>>
>> I’m currently dealing with an issue which I’m unsure if it’s due to my
>> own implementation, or a bug.
>>
>> When attempting to manipulate the Contact header via app_ruby, the SIP
>> message I send ends up being malformed. Here’s the code I’m using:
>>
>> def replace_contact_header(uri)
>> #KSR::HDR.remove("Contact") if KSR::HDR.is_present('Contact') > 0
>> #KSR::HDR.append("Contact: #{uri}\r\n")
>> KSR::HDR.rmappend("Contact", "Contact: #{uri}\r\n")
>> end
>>
>> Note that I have tried both rmappend and the commented out functions too.
>> I call this with a custom built URI, such as <
>> 61400123123 at kamailio.test.uconnected.com.au>. This function is called
>> just before a KSR::TM.t_relay(). Here’s the result I get watching from
>> tshark (some info scrubbed for privacy):
>>
>> Record-Route: <
>> sip:1.2.3.4;lr;ftag=e3p42efd3635HH;vst=AAAAAAAAAAAAAAAAAAAAAAoUXVFHDQAAs83AEGwAAFgwCQA8QY3RlZC5jb20uYXU-;did=927.f0f2
>> >
>>>> Call-ID: 3de29646-e423-1238-e712-023563fb337c
>> CSeq: 17736747 INVITE
>> sip:4.5.6.7:5060;alias=10.100.1.1~5060~1Content-Type: application/sdp
>> Content-Length: 483
>> Contact: <sip:61400123123 at kamailio.test.uconnected.com.au>
>>
>> In this case, 4.5.6.7 is the PBX I made the call from (and the value of
>> the original Contact header), and 1.2.3.4 is what
>> kamailio.test.uconnected.com.au resolves to, and is this Kamailio
>> instance.
>>
>> Here’s a copy of the same thing when I don’t call my
>> replace_contact_header function and t_relay:
>>
>> Record-Route: <
>> sip:1.2.3.4;lr;ftag=j6jebCSa5Qap6c;vst=AAAAAAAAAAAAAAAAAAAAAAoUXVND38dTgwEGEAEGwAAFgwCQA8Fdn83lZC5jb20uYXU-;did=827.40b
>> >
>> ...
>> Call-ID: 249571c5-e91a-ae91-6d8e-023563fb337c
>> CSeq: 17735867 INVITE
>> Contact: <sip:4.5.6.7:5060;alias=10.100.1.1~5060~1>
>> Content-Type: application/sdp
>> Content-Length: 483
>>
>> Given the relative simplicity of the function, I have to assume this is
>> an error with how the function is manipulating the existing Contact header?
>> It seems that the “Contact: <“ part of the header is being removed as well
>> as the “>\r\n", but the rest being left.
>>
>> I’m currently using commit 283e468401d809ca9b71368c32badf3a70d48b8b
>> <https://github.com/kamailio/kamailio/commit/283e46> on Amazon Linux 2,
>> which is CentOS/RHEL based.
>>
>> Thanks!
>>
>> Andrew
>> _______________________________________________
>> Kamailio (SER) - Users Mailing List
>> sr-users at lists.kamailio.org
>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>
> _______________________________________________
> Kamailio (SER) - Users Mailing List
> sr-users at lists.kamailio.org
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20200320/6e96f490/attachment.html>


More information about the sr-users mailing list