We are facing an issue while using TOPOS in Kamailio P-CSCF (running under Docker).
Kamailio version: 6.0.0
operating system: "10 (buster)"

Call Flow & Issue Description:
Note: Public IP and Private IP mapping using the below configuration.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
listen=udp:LOCAL_IP:5060 name "internal"
listen=udp:LOCAL_IP:6080 advertise PUBLIC_IP:6080 name "external"
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Call Flow (INVITE):

A-Party --> Kamailio P-CSCF (Public IP) --> Kamailio P-CSCF (Private IP) --> Kamailio S-CSCF (Private IP)
B-Party <-- Kamailio P-CSCF (Public IP) <-- Kamailio P-CSCF (Private IP) <-- Kamailio S-CSCF (Private IP)

Everything works correctly up to the point where the 200 OK is received by the A-Party. However, when the A-Party sends the ACK, it is received by the Kamailio P-CSCF but is not forwarded to the B-Party.

Upon investigation, we found that when Kamailio receives the ACK from the A-Party, the rr (Record-Route) module fails to recognize its own Route header and thus falls back to strict routing instead of performing loose routing. This results in an incorrect rewrite of the Request-URI of the ACK, causing it to fail to reach the B-Party. Essentially, the Route header is not popped as expected and the ACK routing breaks.

TOPOS module is configured as follows:
loadmodule "topos_redis.so"
loadmodule "ndb_redis.so"
loadmodule "topos.so"

modparam("ndb_redis", "server", "name=tps;addr=127.0.0.1;port=6379;db=0")
modparam("topos", "storage", "redis")
modparam("topos_redis", "serverid", "tps")

modparam("topos", "rr_update", 1)
modparam("topos", "contact_mode", 1)
modparam("topos", "xavu_field_a_contact", "a_contact")
modparam("topos", "xavu_field_b_contact", "b_contact")
modparam("topos", "xavu_cfg", "tps")

Please guide us how to achieve and what we are doing wrong.


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <kamailio/kamailio/issues/4208@github.com>

Pandi1981Pandi1981 created an issue (kamailio/kamailio#4208)

We are facing an issue while using TOPOS in Kamailio P-CSCF (running under Docker).
Kamailio version: 6.0.0
operating system: "10 (buster)"

Call Flow & Issue Description:
Note: Public IP and Private IP mapping using the below configuration.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
listen=udp:LOCAL_IP:5060 name "internal"
listen=udp:LOCAL_IP:6080 advertise PUBLIC_IP:6080 name "external"
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Call Flow (INVITE):

A-Party --> Kamailio P-CSCF (Public IP) --> Kamailio P-CSCF (Private IP) --> Kamailio S-CSCF (Private IP)
B-Party <-- Kamailio P-CSCF (Public IP) <-- Kamailio P-CSCF (Private IP) <-- Kamailio S-CSCF (Private IP)

Everything works correctly up to the point where the 200 OK is received by the A-Party. However, when the A-Party sends the ACK, it is received by the Kamailio P-CSCF but is not forwarded to the B-Party.

Upon investigation, we found that when Kamailio receives the ACK from the A-Party, the rr (Record-Route) module fails to recognize its own Route header and thus falls back to strict routing instead of performing loose routing. This results in an incorrect rewrite of the Request-URI of the ACK, causing it to fail to reach the B-Party. Essentially, the Route header is not popped as expected and the ACK routing breaks.

TOPOS module is configured as follows:
loadmodule "topos_redis.so"
loadmodule "ndb_redis.so"
loadmodule "topos.so"

modparam("ndb_redis", "server", "name=tps;addr=127.0.0.1;port=6379;db=0")
modparam("topos", "storage", "redis")
modparam("topos_redis", "serverid", "tps")

modparam("topos", "rr_update", 1)
modparam("topos", "contact_mode", 1)
modparam("topos", "xavu_field_a_contact", "a_contact")
modparam("topos", "xavu_field_b_contact", "b_contact")
modparam("topos", "xavu_cfg", "tps")

Please guide us how to achieve and what we are doing wrong.


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <kamailio/kamailio/issues/4208@github.com>