[SR-Users] kamailio 4.4.4 fills IPv6 contact address when sending packet over IPv4

Pali Rohár pali.rohar at gmail.com
Sun Jun 30 23:11:22 CEST 2019


Hi!

I detected strange problem that sip.linphone.org refuse to accept
presence information re-transmitted by kamailio 4.4.4 server.

I debug this problem with tcpdump and I found out that problem is in
kamailio which fills IPv6 address into UDP datagram and that datagram is
sent via IPv4 socket to IPv4 address, to sip.linphone.org server. And
sip.linphone.org server does not have IPv6 connectivity, so correctly
return over IPv4 to sender just "400 Bad Contact Header" error.

On my server is running kamailio 4.4.4 from Debian Stretch and I can
100% reproduce this problem against public sip.linphone.org server.

My server has both IPv4 and IPv6 connectivity and kamailio is listening
for both IPv4 and IPv6 connections.

So why is kamailio sending IPv6 address over IPv4 and therefore makes it
impossible to communicate with non-IPv6 enabled servers? Looks like a
problem with choosing default/correct socket for Contact header.

And how to fix this problem? Can you help me? I would like to have
working interconnection with linphone servers.

Just to note I'm seeing this problem only for presence information
packets. Other requests, like INVITE or MESSAGE seems to work.

Below is relevant tcpdump output. Some parts were replaced by {VAR}.

PS: I'm not subscribed to list, so please CC my address when sending
reply. Thank you!


17:22:58.121719 IP (tos 0x10, ttl 64, id 21629, offset 0, flags [none], proto UDP (17), length 1266)
    {MY_IPV4_ADDRESS}.5060 > 91.121.209.194.5060: [bad udp cksum 0xa099 -> 0x9825!] SIP, length: 1238
        NOTIFY sip:{REMOTE_NAME}@{REMOTE_USER_IPV4_ADDRESS}:5060;registering_acc=sip_linphone_org SIP/2.0
        Via: SIP/2.0/UDP {MY_IPV4_ADDRESS};branch=z9hG4bK2b55.88f93c20000000000000000000000000.0
        To: <sip:{REMOTE_NAME}@sip.linphone.org>;tag=75559182
        From: <sip:{MY_SIP_URI}>;tag=97d8e785fdf42bf9622a64c13c504961-2708
        CSeq: 2 NOTIFY
        Call-ID: 26cf9d5c019af2dc3302b770887bcc2e at 0:0:0:0:0:0:0:0
        Route: <sip:91.121.209.194:5060;lr>
        Content-Length: 597
        User-Agent: kamailio (4.4.4 (x86_64/linux))
        Max-Forwards: 70
        Event: presence
        Contact: <sip:{MY_IPV6_ADDRESS}:5060;transport=udp>
        Subscription-State: active;expires=3600
        Content-Type: application/pidf+xml

        <?xml version="1.0" encoding="UTF-8"?>
        <presence xmlns="urn:ietf:params:xml:ns:pidf" xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model" xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid" entity="Pali <sip:{MY_SIP_URI}>">
        <tuple id="sg89ae">
        <status><basic>open</basic></status>
        <contact priority="0.8">Pali <sip:{MY_SIP_URI}></contact>
        </tuple>

          <tuple xmlns="urn:ietf:params:xml:ns:pidf" id="TA0C538B2">
            <status>
              <basic>closed</basic>
            </status>
            <contact priority="1">sip:{MY_SIP_URI}</contact>
            <timestamp>2019-04-19T17:20:36+02:00</timestamp>
          </tuple>
        </presence>

17:22:58.151188 IP (tos 0x0, ttl 52, id 22949, offset 0, flags [none], proto UDP (17), length 373)
    91.121.209.194.5060 > {MY_IPV4_ADDRESS}.5060: [udp sum ok] SIP, length: 345
        SIP/2.0 400 Bad Contact Header
        Via: SIP/2.0/UDP {MY_IPV4_ADDRESS};branch=z9hG4bK2b55.88f93c20000000000000000000000000.0;rport=5060
        From: <sip:{MY_SIP_URI}>;tag=97d8e785fdf42bf9622a64c13c504961-2708
        To: <sip:{REMOTE_NAME}@sip.linphone.org>;tag=75559182
        Call-ID: 26cf9d5c019af2dc3302b770887bcc2e at 0:0:0:0:0:0:0:0
        CSeq: 2 NOTIFY
        Content-Length: 0


-- 
Pali Rohár
pali.rohar at gmail.com



More information about the sr-users mailing list