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