Guest

Preview Tool

Cisco Bug: CSCvv22054 - Call to SNRD that does not have a diversion header in the outbound INVITE

Last Modified

Aug 04, 2020

Products (1)

  • Cisco Unified Communications Manager (CallManager)

Known Affected Releases

11.5(1.15900.9)

Description (partial)

Symptom:
Calls to SNR are not connecting with provider as they are not receiving diversion header in the SIP INVITE.

Conditions:
call to SNRD that does not have a diversion header in the outbound INVITE and therefore fails. 
This is similar to CSCur71984.

CUCM version 11.5.1.15900-9000.
 
PSTN call comes into CUCM through a sip trunk, the call routes to a local line control.  
There is no answer, so the call forwards to Cisco unity voicemail with reason for redirection 2.  
The voicemail system is connected by a sip trunk and in the outbound INVITE to voicemail we see that the Diversion Header is added since the original redirect reason is 2.  

In the SIPCdpc function getRedirectingNumIE, we call the function sendDiversionHeader for which we pass in the original reason for redirection.  
In this case, the original reason for redirection is 2, so at this point in the call we add the diversion header and everything works fine.
 
else
    {
        // today, this applies to sip trunk and everything else except sip line
        // If the redirect reason is ViPR don't include a diversion header.
        bool isViprRedirectReason = ViprUtils::isViprRedirectedCall(redirectReason);
        if (isViprRedirectReason)
        {
            return false;
        }
 
        switch (redirectReason)
        {
        case SS_RFR_REFER:
        case SS_RFR_CALL_PARK:
            return false;
        default:
            return true;
        }
    }
    return false;
}
 
Snippet trace of original reason for redirection and the last reason for redirection print out:
 
22165728.027 |18:12:44.137 |AppInfo  |SIPCdpc(546605) - getRedirectingNumIE: Redirect reasons: last: 335, orig: 130
 
Original called number and the last redirecting called number are the same:
 
22165728.028 |18:12:44.137 |AppInfo  |SIPCdpc(546605) - CcPtyNumIdEq: Comparing angela_dsouza@harvard.edu, dn: 6174950771, ti: Blended with @, dn: 6174950771, ti: DN, result: true
22165728.029 |18:12:44.137 |AppInfo  |SIPCdpc(546605) - CcPtyNumIdEq: Comparing angela_dsouza@harvard.edu, dn: 6174950771, ti: Blended with @, dn: 6174950771, ti: DN, result: true
 
That is why we fail this check and do not add the diversion header:
 
if (!fiCcSetupReq.lastRedirectingNumber.isEmpty()
                && !CcPtyNumIdEq(fiCcSetupReq.originalCdpn, fiCcSetupReq.lastRedirectingNumber)
                && (fiCcSetupReq.lastRedirectingRedirectReason != SS_RFR_REFER)
                && (sendDiversionHeader(fiCcSetupReq.lastRedirectingRedirectReason)))   //CSCur71984
        {
 
            // Call got redirected more than once, outgoing INVITE will have two diversion headers.
            appendDiversionHeader(sipSignal, fiCcSetupReq.lastRedirectingDisplayNameInfo,
                                  fiCcSetupReq.lastRedirectingNumber, fiCcSetupReq.lastRedirectingRedirectReason);
 
Since this call came in from off-net, in order for the call to the RD to work, we need the diversion header to be present in the outbound INVITE.  Current code design does not allow for that.
Bug details contain sensitive information and therefore require a Cisco.com account to be viewed.

Bug Details Include

  • Full Description (including symptoms, conditions and workarounds)
  • Status
  • Severity
  • Known Fixed Releases
  • Related Community Discussions
  • Number of Related Support Cases
Bug information is viewable for customers and partners who have a service contract. Registered users can view up to 200 bugs per month without a service contract.