Hi Folks!
Keep your Eyes open for the following.
Call-ID of an incoming call from ITSP to the SBC:Call-ID: WrbQ1113011021H%[email protected]
The SBC responds on the INVITE with:Call-ID: WrbQ1113011021H
After this the Provider responds with a „Unknown Dialog“ and ends the call. Obviously the SBC cuts of some parts of the originally provided Call-ID.
The % character is generally supported but to be treated just as a character, it needs to be quoted. Otherwise it is treated as an ASCII code %Hexadigit.
In my example the Call-ID is: WrbQ1113011021H%[email protected]
It is considered as escape character which is an ASCII code for Shift-in – which is not a part of word character set.
This causes the rest of the header to be discarded.
From RFC3261 [Page 227] : callid = word [ "@" word ]
and „word“ can include only (from same RFC [Page 220]) :
word = 1*(alphanum / "-" / "." / "!" / "%" / "*" /
"_" / "+" / "`" / "'" / "~" /
"(" / ")" / "<" / ">" /
":" / "\" / DQUOTE /
"/" / "[" / "]" / "?" /
"{" / "}" )
To repeat / summarize:
% ASCII is Shift-in which is not a part of „word“ as defined in RFC3261 – so everything coming after the percentage will be discarded within the communication.
Ribbon is aware of this issue with the % character – it was also reported from another customer in APAC region.
As this is not their issue – providers/PBXes not being RFC-conform – there is no official fix/workaround.
Nevertheless they have a private build that customers can try – once this kind of behavior/issue was confirmed.
Cheers,
Enrico