SIP Request URI information to the application
Goals
Currently, the SR140 does not pass the SIP Request URI information to the application. It does appear in the ECC log, so it gets to our SIP stack. Customers sometimes want the part with the number@ip_address (e.g. "1111@10.160.110.201" here) because it is different from the rest of the information in the SIP INVITE. Normally, the called number (sometimes incorrectly called the DID) is provided in the To: field in the SIP INVITE message and that's what we pass up to the application. (In fact, the To: field is a SIP header and an application can get all SIP headers.) Sometimes though, usually if a call gets forwarded, the called number will be reflected in the SIP URI though and not the To: field. We do not currently pass the SIP URI up to the application and so as a feature request, we would be looking to make the Request URI accessible to the application.
Background and strategic fit
When processing an inbound call, the CALL_RES called_party_number is set to the alphanumeric value contained in the SIP “To:” header. Typically, this value is the same value as contained in the SIP INVITE Request-Line. Sometimes though – usually if a call gets forwarded – the called number in not reflected in the “To:” field but in the SIP Request-URI, which is not passed to the application. The To: phone number value (part before the @ symbol) is available to the application in the called_party_number. The complete To: header is available to the application from parsing the SIP headers passed to the application.
By implementing this feature, it will allow customers to retrieve the SIP Request URI from the SIP INVITE.
Assumptions
Requirements
# | Title | User Story | Importance | Notes |
---|---|---|---|---|
1 | Add an entry to the beginning of the SIP INVITE header list for the SIP URI value from the SIP INVITE. The complete SIP Request URI value string i.e. 1234@dialogic.com:5060 will appear after the name of the new entry. The name of new entry will be Request-URI. i.e. Request-URI: 1234@dialogic.com:5060 | As a user, I would like to know the SIP URI value, so I can determine the original phone number of a call that was forwarded. | High | This information will be present for the application to use after the BfvLineWaitForCall API function call returns. The user will need to malloc memory for the sip_header_list member of the structure args_telephone in order to receive both the SIP URI value and the headers from the SIP INVITE. The user will need to parse the SIP INVITE headers list to get the SIP Request URI. |
2 | This feature will not change the current behavior for the CALL_RES called_party_number value. | High | This feature should also not impact or be aware of the diversion values. | |
3 |
User interaction and design
The user will need to malloc memory for the sip_header_list member of the structure args_telephone before calling the API function BfvLineWaitForCall() in order to receive both the SIP URI value and the headers from the SIP INVITE. An entry for the SIP URI from the SIP INVITE will be added to the beginning of the SIP INVITE header list. The complete sip Request URI value string i.e. 1234@dialogic.com:5060 will appear after the name of the new entry. The name of the new entry will be Request-URI. An example of the SIP INVITE URI entry at the beginning of the SIP INVITE header list is: Request-URI: 1234@dialogic.com:5060 This value will be available to the application when the BfvLineWaitForCall() API function returns. The user will need to parse the SIP INVITE headers list to get the SIP Request URI which will be the first entry in the list. This aligns with when the called_party_number value and the SIP Headers are available to the application after MillIntCallWaitForSetup() processing. |
Questions
Below is a list of questions to be addressed as a result of this requirements document:
Question | Outcome |
---|---|