I am working with v5.0.3 and the IMS extensions.
When I attempt to send a SIP MESSAGE from the application server towards the UE, the I-CSCF used to determine the S-CSCF for the subscriber by sending a Location-Info request to the HSS. I found that this request was failing because the IMPU (IMS Public User Identity) was being mangled by the I-CSCF, prefixing the user part with a + symbol.
The example configuration file for the I-CSCF does in-fact does cause the r-uri to be prefixed with a + symbol if one is not already present. I'm wondering why since it breaks the LIR/LIA lookup.
AS I-CSCF HSS | MESSAGE | | | ---------------------> | | | sip:ron@provider1.test | | | | | | | | | | LIR | | | ----------------------> | | | sip:+ron@provider1.test | | | | | | | | | DIAMETER_UNKNOWN_USER | | | <---------------------- | | | | | | | | 403 | | | <--------------------- | | | FORBIDDEN | |
route{ #!ifdef WITH_DEBUG xlog("I-CSCF >>>>>>>>>>>>>>>>>>>> $rm $ru ($fu => $tu ($si:$sp) to $tu, $ci)\n"); #!endif
if !($rU =~ "+.*") { prefix("+"); } ...
Thanks, Ron