Scenario: endpoint (bob) <-> kamailio proxy (5.1.3) <-> kamailio backend (5.1.2)
Both kamailio instances are running the topos module (mysql backend). Call setup is fine, but forwarding BYEs fail.
With a call from endpoint to kamailio, topos on the proxy scrambles Contact to kamailio backend. But in responses from backend contact remains untouched. In the ACK to the 200, topos on the proxy does nothing. If the caller hangsup, the BYE will loop internally till max hops is exceeded (483 which will be send to caller eventually).
When the backend initiates the call to the endpoint, topos appears to work, but the BYE from the endpoint on hangup get a 404 Not here from the proxy (route[WITHINDLG]).
Disabling topos on the proxy will result in a functioning proxy (config attached).
Is there something wrong with my config? Or is this an unforseen scenario that just doesn't work with topos?
* Endpoint to backend scenario
endpoint:5060 -> proxy:5060 INVITE sip:callee@sip.pocos.nl;transport=tcp SIP/2.0 Via: SIP/2.0/UDP endpoint:5060;rport;branch=... Max-Forwards: 70 Route: sip:proxy:5060;lr Contact: sip:bob@endpoint:5060;ob
proxy:5060 -> backend:5060 INVITE sip:callee@sip.itco.nl;transport=tcp SIP/2.0 Via: SIP/2.0/UDP proxy;branch=... CSeq: 29848 INVITE Route: sip:proxy:5060;lr Contact: sip:btpsh-5af5972d-bf5e-2@proxy
backend:5060 -> proxy:5060 SIP/2.0 200 OK Via: SIP/2.0/UDP proxy;branch=... Contact: sip:atpsh-5af19bf0-9f94-7@backend
proxy:5060 -> endpoint:5060 SIP/2.0 200 OK Contact: sip:atpsh-5af19bf0-9f94-7@backend Via: SIP/2.0/UDP endpoint:5060;received=endpoint;rport=5060;branch=... Record-Route: sip:proxy;lr
endpoint:5060 -> proxy:5060 ACK sip:atpsh-5af19bf0-9f94-7@backend SIP/2.0 Via: SIP/2.0/UDP endpoint:5060;rport;branch=... Route: sip:proxy;lr
proxy:5060 -> backend:5060 ACK sip:atpsh-5af19bf0-9f94-7@backend SIP/2.0 Via: SIP/2.0/UDP proxy;branch=... Via: SIP/2.0/UDP endpoint:5060;received=endpoint;rport=5060;branch=...
endpoint:5060 -> proxy:5060 BYE sip:atpsh-5af19bf0-9f94-7@backend SIP/2.0 Via: SIP/2.0/UDP endpoint:5060;rport;branch=... Max-Forwards: 70 Route: sip:proxy;lr
proxy:5060 -> proxy:5060 BYE sip:atpsh-5af19bf0-9f94-7@backend SIP/2.0 Via: SIP/2.0/UDP proxy;branch=... Via: SIP/2.0/UDP endpoint:5060;received=endpoint;rport=5060;branch=... Max-Forwards: 69 Route: sip:proxy;lr
proxy:5060 -> proxy:5060 BYE sip:atpsh-5af19bf0-9f94-7@backend SIP/2.0 Via: SIP/2.0/UDP proxy;branch=... Via: SIP/2.0/UDP proxy;rport=5060;branch=... Via: SIP/2.0/UDP endpoint:5060;received=endpoint;rport=5060;branch=... Max-Forwards: 68 Route: sip:proxy;lr
[not going to mention the 50+ BYEs adding Vias and decrementing Max-Forwards.
* Backend to endpoint scenario
backend:5060 -> proxy:5060 INVITE sip:bob@endpoint:5060;ob SIP/2.0 Via: SIP/2.0/UDP backend;branch=... Route: sip:loadbalancer@proxy;lr;received=sip:endpoint:5060 Contact: sip:btpsh-5af07a27-72b-502c1@backend
proxy:5060 -> endpoint:5060 INVITE sip:bob@endpoint:5060;ob SIP/2.0 Via: SIP/2.0/UDP proxy;branch=... Contact: sip:btpsh-5af5972d-bf5d-5@proxy
endpoint:5060 -> proxy:5060 SIP/2.0 200 OK Via: SIP/2.0/UDP proxy;received=proxy;branch=... Contact: sip:bob@endpoint:5060;ob
proxy:5060 -> backend:5060 SIP/2.0 200 OK Contact: sip:bob@endpoint:5060;ob;alias=endpoint~5060~1 Via: SIP/2.0/UDP backend;rport=5060;branch=... Record-Route: sip:proxy;lr
endpoint:5060 -> proxy:5060 BYE sip:btpsh-5af5972d-bf5d-5@proxy SIP/2.0 Via: SIP/2.0/UDP endpoint:5060;rport;branch=...
proxy:5060 -> endpoint:5060 SIP/2.0 404 Not here Via: SIP/2.0/UDP endpoint:5060;rport=5060;branch=...