%2B is correct for international format numbers; it is the URL encoding of +
If you don’t want the + substring it out. If you want a literal +, you are trying to violate the protocol.
I’m not sure if you can change the From header when not using it for CLID, although I know that some service providers are abusing it to provider remote party IDs.
Firstly report it as a bug to your service provider. They should be interpreting a bare + as a space, not as an international number prefix.
With the current version of Asterisk, I believe you may have to patch the source code to introduce this protocol violation. Earlier versions had a strict and non-strict SIP mode. You might just find they have retained the option, but reversed the default, so that it now defaults to the correct behaviour.
As I commented early in this thread, the bug appears to be with your service provider. Asterisk used not (by default at least) to send valid SIP URLs. It now is (by default at least) sending them. The service provider appears to be unable to parse valid SIP URLs - maybe they are using an older version of Asterisk?
With the same parameters the 1.4 asterisk passes the CLI but not the 1.8 asterisk, if this parameters are in E.164 standards then it has to be passed right ?