Problem: The Kamailio server sends an ack back to the caller UA [Frame 67 below] that it has received its ACK to callee's SIP-Request but Kamailio does not forward the caller UA response to the callee UA. Callee UA continues to send 200-OKs, waiting for an ACK that never arrives, and eventually hangs up. (Note: Blink UAs substitute number ids for user names during call transactions.)
Below is some config info.
WOW (192.168.1.13) = Blink caller UA registered with Kamailio server on 5060 AMD (192.168.1.11) = Blink callee UA registered with Kamailio server on 5060 Kamailio server @ (192.168.100.50)
Kamailio config snippet listen=tls:192.168.100.50:6050 advertise pub-ip-domain.net:6050 listen=tls:192.168.100.50:5061 advertise pub-ip-domain.net:5061 listen=tcp:192.168.100.50:5060 advertise pub-ip-domain.net:5060
Rtpengine config snippet interface = internal/192.168.100.50;external/pub-ip-domain.net
WOW and AMD are in a common LAN, Kamailio is in a separate LAN. Both LANs are behind an edge router internet firewall, with port forwarding for SIP port and designated RTP ports to the Kamailio server. The internal LANs are not firewalled from each other. A domain name is associated with the public ip address.
Upon answering a call from WOW, AMD sends a 200-OK, expecting WOW to ACK. Kamailio forwards the 200-OK to WOW. The WOW UA responds to the Kamailio Server, sending its ACK [Frame 62] for forwarding, but that does not happen.
[Packet 62: 200-OK ACK sent to Kamailio server for forwarding to AMD, but it is not forwarded]
Frame 62: 560 bytes on wire (4480 bits), 560 bytes captured (4480 bits) on interface enp1s0, id 0 Section number: 1 Interface id: 0 (enp1s0) Interface name: enp1s0 Encapsulation type: Ethernet (1) Arrival Time: Jun 8, 2025 14:53:39.351196234 EDT [Time shift for this packet: 0.000000000 seconds] Epoch Time: 1749408819.351196234 seconds [Time delta from previous captured frame: 0.008882710 seconds] [Time delta from previous displayed frame: 0.008882710 seconds] [Time since reference or first frame: 91.952560276 seconds] Frame Number: 62 Frame Length: 560 bytes (4480 bits) Capture Length: 560 bytes (4480 bits) [Frame is marked: False] [Frame is ignored: False] [Protocols in frame: eth:ethertype:ip:tcp:sip] [Coloring Rule Name: TCP] [Coloring Rule String: tcp] .... .... = IG bit: Individual address (unicast) Type: IPv4 (0x0800) Internet Protocol Version 4, Src: 192.168.1.13, Dst: 192.168.100.50 0100 .... = Version: 4 .... 0101 = Header Length: 20 bytes (5) Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT) 0000 00.. = Differentiated Services Codepoint: Default (0) .... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0) Total Length: 546 Identification: 0x9af3 (39667) 010. .... = Flags: 0x2, Don't fragment 0... .... = Reserved bit: Not set .1.. .... = Don't fragment: Set ..0. .... = More fragments: Not set ...0 0000 0000 0000 = Fragment Offset: 0 Time to Live: 127 Protocol: TCP (6) Header Checksum: 0x1466 [validation disabled] [Header checksum status: Unverified] Source Address: 192.168.1.13 Destination Address: 192.168.100.50 Transmission Control Protocol, Src Port: 49990, Dst Port: 5060, Seq: 5605, Ack: 5124, Len: 506 Source Port: 49990 Destination Port: 5060 [Stream index: 0] [Conversation completeness: Incomplete, DATA (15)] [TCP Segment Len: 506] Sequence Number: 5605 (relative sequence number) Sequence Number (raw): 1801511342 [Next Sequence Number: 6111 (relative sequence number)] Acknowledgment Number: 5124 (relative ack number) Acknowledgment number (raw): 2050979231 0101 .... = Header Length: 20 bytes (5) Flags: 0x018 (PSH, ACK) 000. .... .... = Reserved: Not set ...0 .... .... = Accurate ECN: Not set .... 0... .... = Congestion Window Reduced: Not set .... .0.. .... = ECN-Echo: Not set .... ..0. .... = Urgent: Not set .... ...1 .... = Acknowledgment: Set .... .... 1... = Push: Set .... .... .0.. = Reset: Not set .... .... ..0. = Syn: Not set .... .... ...0 = Fin: Not set [TCP Flags: •••••••AP•••] Window: 8212 [Calculated window size: 2102272] [Window size scaling factor: 256] Checksum: 0x7522 [unverified] [Checksum Status: Unverified] Urgent Pointer: 0 [Timestamps] [Time since first frame in this TCP stream: 91.952560276 seconds] [Time since previous frame in this TCP stream: 0.051442183 seconds] [SEQ/ACK analysis] [This is an ACK to the segment in frame: 49] [The RTT to ACK the segment was: 0.051442183 seconds] [iRTT: 0.000813889 seconds] [Bytes in flight: 506] [Bytes sent since last PSH flag: 506] TCP payload (506 bytes) Session Initiation Protocol (ACK) Request-Line: ACK sip:19350768@192.168.1.11:64901;transport=tcp SIP/2.0 Method: ACK Request-URI: sip:19350768@192.168.1.11:64901;transport=tcp Request-URI User Part: 19350768 Request-URI Host Part: 192.168.1.11 Request-URI Host Port: 64901 [Resent Packet: False] Message Header Via: SIP/2.0/TCP 192.168.1.13:49990;rport;branch=z9hG4bKPja851a221d11c4c9798e08f721afa637f;alias Transport: TCP Sent-by Address: 192.168.1.13 Sent-by port: 49990 RPort: rport Branch: z9hG4bKPja851a221d11c4c9798e08f721afa637f alias Max-Forwards: 70 From: "WOW" sip:WOW@pub-ip-domain.net;tag=7c6e2bc0567345288372495eb190f198 SIP from display info: "WOW" SIP from address: sip:WOW@pub-ip-domain.net SIP from address User Part: WOW SIP from address Host Part: pub-ip-domain.net SIP from tag: 7c6e2bc0567345288372495eb190f198 To: sip:AMD@pub-ip-domain.net;tag=347c5038ee5c41d8b92a6d473e80cf24 SIP to address: sip:AMD@pub-ip-domain.net SIP to address User Part: AMD SIP to address Host Part: pub-ip-domain.net SIP to tag: 347c5038ee5c41d8b92a6d473e80cf24 Call-ID: 7f8b4805ba4c4bc784370f99085af625 [Generated Call-ID: 7f8b4805ba4c4bc784370f99085af625] CSeq: 18468 ACK Sequence Number: 18468 Method: ACK Route: sip:pub-ip-domain.net;transport=tcp;lr;nat=yes Route URI: sip:pub-ip-domain.net;transport=tcp;lr;nat=yes Route Host Part: pub-ip-domain.net Route URI parameter: transport=tcp Route URI parameter: lr Route URI parameter: nat=yes User-Agent: Blink 6.0.3 (Windows) Content-Length: 0
[Packet 67: Kamailio sends acknowledgement back to WOW that it received the 200-OK ACK, but does NOT forward the ACK to AMD.]
Frame 67: 54 bytes on wire (432 bits), 54 bytes captured (432 bits) on interface enp1s0, id 0 Section number: 1 Interface id: 0 (enp1s0) Interface name: enp1s0 Encapsulation type: Ethernet (1) Arrival Time: Jun 8, 2025 14:53:39.394825056 EDT [Time shift for this packet: 0.000000000 seconds] Epoch Time: 1749408819.394825056 seconds [Time delta from previous captured frame: 0.013882451 seconds] [Time delta from previous displayed frame: 0.013882451 seconds] [Time since reference or first frame: 91.996189098 seconds] Frame Number: 67 Frame Length: 54 bytes (432 bits) Capture Length: 54 bytes (432 bits) [Frame is marked: False] [Frame is ignored: False] [Protocols in frame: eth:ethertype:ip:tcp] [Coloring Rule Name: TCP] [Coloring Rule String: tcp] Internet Protocol Version 4, Src: 192.168.100.50, Dst: 192.168.1.13 0100 .... = Version: 4 .... 0101 = Header Length: 20 bytes (5) Differentiated Services Field: 0x10 (DSCP: Unknown, ECN: Not-ECT) Total Length: 40 Identification: 0xacb3 (44211) 010. .... = Flags: 0x2, Don't fragment ...0 0000 0000 0000 = Fragment Offset: 0 Time to Live: 64 Protocol: TCP (6) Header Checksum: 0x4390 [validation disabled] [Header checksum status: Unverified] Source Address: 192.168.100.50 Destination Address: 192.168.1.13 Transmission Control Protocol, Src Port: 5060, Dst Port: 49990, Seq: 5124, Ack: 6111, Len: 0 Source Port: 5060 Destination Port: 49990 [Stream index: 0] [Conversation completeness: Incomplete, DATA (15)] [TCP Segment Len: 0] Sequence Number: 5124 (relative sequence number) Sequence Number (raw): 2050979231 [Next Sequence Number: 5124 (relative sequence number)] Acknowledgment Number: 6111 (relative ack number) Acknowledgment number (raw): 1801511848 0101 .... = Header Length: 20 bytes (5) Flags: 0x010 (ACK) 000. .... .... = Reserved: Not set ...0 .... .... = Accurate ECN: Not set .... 0... .... = Congestion Window Reduced: Not set .... .0.. .... = ECN-Echo: Not set .... ..0. .... = Urgent: Not set .... ...1 .... = Acknowledgment: Set .... .... 0... = Push: Not set .... .... .0.. = Reset: Not set .... .... ..0. = Syn: Not set .... .... ...0 = Fin: Not set [TCP Flags: •••••••A••••] Window: 501 [Calculated window size: 64128] [Window size scaling factor: 128] Checksum: 0x4a97 [unverified] [Checksum Status: Unverified] Urgent Pointer: 0 [Timestamps] [Time since first frame in this TCP stream: 91.996189098 seconds] [Time since previous frame in this TCP stream: 0.043628822 seconds] [SEQ/ACK analysis] [This is an ACK to the segment in frame: 62] [The RTT to ACK the segment was: 0.043628822 seconds] [iRTT: 0.000813889 seconds]
Note: When the call is reversed (AMD-to-WOW), WOW responds with 200-OK, which Kamailio forwards to AMD, but there is no ack-reponse at all from AMD to Kamailio server. WOW eventually hangs up.