Affects Version/s: 11.5.1, 12.0.0
Target Release Version/s: None
This problem exists in ALL versions of Asterisk.
Asterisk seems not to support RFC 3966 TEL URI for INCOMING INVITEs. X-Lite and other clients like Bria are compliant with RFC 3966.
When an IMS server sends an incoming TEL URI INVITE I get the following errors, and the incoming call is disconnected (number busy).
Here you find part of an (incoming) INVITE request and sip debug output:
CSeq: 1 INVITE
Using INVITE request as basis request -
Nov 13 17:52:05 NOTICE: chan_sip.c:6973 check_user_full: From address missing 'sip:', using it anyway
Nov 13 17:52:05 WARNING: chan_sip.c:6525 get_destination: Huh? Not a SIP header (tel:0987654321;phone-context=+32987654321)?
RDNIS is +3212345678
SIP/2.0 404 Not Found
Actually I found out that Asterisk is indeed not conform to the RFC 3966 standard.
I have solved the problem by patching chan_sip.c and reqresp_parser.c – see patch in code attachments.
I have changed the following functions:
- parse_uri OR parse_uri_full (depending on the Asterisk version)
When ;phone-context= is provided in the incoming tel:uri then we can extract the calling number for further call handling.
Now IMS and Asterisk are talking to each other without problems.