Hello all,
We are facing an issue while configuring TOPOS in Kamailio P-CSCF (running under Docker). Our objective is to strip Via, Record-Route, and Route headers for both INVITE and 180 Ringing responses. However, we observe unexpected behavior when handling the 180 Ringing/200 OK responses.
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:6070 advertise Public_IP:6070 name "external"
Call Flow (INVITE): A-Party --> Kamailio P-CSCF (Public IP) --> Kamailio P-CSCF (Private IP) --> Kamailio S-CSCF (Private IP) --> Kamailio P-CSCF (Private IP) --> Kamailio P-CSCF (Public IP) --> B-Party For an incoming *INVITE* (A-Party → B-Party), TOPOS successfully strips the headers when the message flows through the P-CSCF, ensuring proper privacy of routing information.
*Issue* : When B-Party sends a 180 Ringing, we observe that Kamailio P-CSCF (Private IP) adds a Record-Route header before forwarding the message to A-Party. Call Flow (180 Ringing): B-Party --> Kamailio P-CSCF (Public IP) --> Kamailio P-CSCF (Private IP) --> Kamailio S-CSCF (Private IP)
We need to ensure that the Record-Route and Via headers are stripped properly in both directions.
Please guide us how to achieve and what we are doing wrong.
TOPOS module is configured as follows: modparam("ndb_redis", "server", "name=srv1;addr=127.0.0.1;port=6379") modparam("topos_redis", "serverid", "srv1") modparam("topos", "storage", "redis") modparam("topos", "contact_mode", 1) modparam("topos", "rr_update", 1)
RR module is configured as follows: modparam("rr", "enable_full_lr", 1) modparam("rr", "append_fromtag", 1)
configured the below event_route: event_route[topos:msg-outgoing] { xlog("L_INFO","[topos:msg-outgoing]"); if(is_request() and $sndto(ip)=="SCSCF_PRIVATE_IP") { xlog("L_INFO","[topos:msg-outgoing] TOPOS \n"); drop; } }
Thanks, Vinayak Makwana
Hello all, Can anyone help me to resolve topos related issues.
Thanks, Vinayak Makwana
On Thu, Mar 6, 2025 at 7:22 PM Vinayak Makwana vinayak.makwana@ecosmob.com wrote:
Hello all,
We are facing an issue while configuring TOPOS in Kamailio P-CSCF (running under Docker). Our objective is to strip Via, Record-Route, and Route headers for both INVITE and 180 Ringing responses. However, we observe unexpected behavior when handling the 180 Ringing/200 OK responses.
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:6070 advertise Public_IP:6070 name "external"
Call Flow (INVITE): A-Party --> Kamailio P-CSCF (Public IP) --> Kamailio P-CSCF (Private IP) --> Kamailio S-CSCF (Private IP) --> Kamailio P-CSCF (Private IP) --> Kamailio P-CSCF (Public IP) --> B-Party For an incoming *INVITE* (A-Party → B-Party), TOPOS successfully strips the headers when the message flows through the P-CSCF, ensuring proper privacy of routing information.
*Issue* : When B-Party sends a 180 Ringing, we observe that Kamailio P-CSCF (Private IP) adds a Record-Route header before forwarding the message to A-Party. Call Flow (180 Ringing): B-Party --> Kamailio P-CSCF (Public IP) --> Kamailio P-CSCF (Private IP) --> Kamailio S-CSCF (Private IP)
We need to ensure that the Record-Route and Via headers are stripped properly in both directions.
Please guide us how to achieve and what we are doing wrong.
TOPOS module is configured as follows: modparam("ndb_redis", "server", "name=srv1;addr=127.0.0.1;port=6379") modparam("topos_redis", "serverid", "srv1") modparam("topos", "storage", "redis") modparam("topos", "contact_mode", 1) modparam("topos", "rr_update", 1)
RR module is configured as follows: modparam("rr", "enable_full_lr", 1) modparam("rr", "append_fromtag", 1)
configured the below event_route: event_route[topos:msg-outgoing] { xlog("L_INFO","[topos:msg-outgoing]"); if(is_request() and $sndto(ip)=="SCSCF_PRIVATE_IP") { xlog("L_INFO","[topos:msg-outgoing] TOPOS \n"); drop; } }
Thanks, Vinayak Makwana