Wednesday, December 26, 2018

QSIG PRI between CUCM and NEC 8500 hold and resume issues

Call flow was basically:
Cisco 8841 -> SIP -> CUCM -> SIP -> CUBE -> QSIG PRI -> NEC 8500

When making calls from CUCM to NEC endpoints, placing a call on hold on the Cisco endpoint and resuming resulted in disconnecting the call on the CUCM side.  The NEC system did not release the call.

Found a SIP UPDATE message being sent from CUCM to CUBE when resuming the call resulted in an ISDN NOTIFY message between CUBE and the NEC system.  Either the NOTIFY message, or maybe just the fact it included a caller name in ISDN Display format was not supported by NEC.  The result was the call would drop on the CUCM side.

Although you can remove the name in the ISDN SETUP message via "no isdn outgoing display-ie", there was no way I could find to eliminate the name from the ISDN NOTIFY message.  The work around was to prevent caller ID from being updated on the SIP trunk side via SIP | no update-callerid in the CUBE configuration.  This eliminated the entire ISDN NOTIFY message as a result.

This is a sample message sent to NEC when resuming held calls and the disconnect:

Dec 21 18:51:49.701: ISDN Se0/1/1:23 Q931: TX -> NOTIFY pd = 8  callref = 0x00C8
        Notification Ind i = 0x8300
        Display i = 'Ray Maslanka'
        Calling Party Number i = 0x0081, '78898'
                Plan:Unknown, Type:Unknown
        Cause i = 0x85E328 - Information element not implemented
        Call State i = 0x00
Dec 21 18:51:49.774: %ISDN-6-DISCONNECT: Interface Serial0/1/1:0  disconnected from 23999 , call lasted 19 seconds

This is relevant snippets of the CUBE configuration:

voice service voip
 ip address trusted list
  ipv4 X.X.X.X 255.255.255.0
 mode border-element license capacity 200
 allow-connections h323 to h323
 allow-connections h323 to sip
 allow-connections sip to h323
 allow-connections sip to sip
 fax protocol t38 version 0 ls-redundancy 1 hs-redundancy 1 fallback none
 modem passthrough nse codec g711ulaw
 h323
 sip
  bind control source-interface Port-channel1
  bind media source-interface Port-channel1
  ! This eliminates the SIP UPDATE message
  ! that in turn eliminates the ISDN NOTIFY message
  no update-callerid 
  early-offer forced

controller T1 0/1/0
 framing esf
 clock source network
 linecode b8zs
 cablelength long 0db
 pri-group timeslots 1-24
 trunk-group PSTN timeslots 1-24 preference 1

interface Serial0/1/0:23
 encapsulation hdlc
 no cdp enable
 isdn switch-type primary-qsig
 isdn protocol-emulate network
 isdn incoming-voice voice
 ! This eliminates name display in ISDN SETUP messages.
 ! This DOES NOT eliminate name display in ISDN NOTIFY messages 
 ! when resuming from hold.
 no isdn outgoing display-ie  

1 comment:

  1. Thank you for posting this solution! I applied this and it fixed the problem for us during transfers on Cisco 8841 from stations connecting via ISDN from legacy NEC 8500 at another location. Shortly afterwards Cisco TAC provided an alternative that also resolves this for the CUCM dial peer side of the call.
    _________________________________________________________________
    As a workaround, removed the update from the supported methods on the SIP INVITE forcing CUCM not send UPDATEs.

    Apply this sip profile on the SIP dial-peer.

    voice class sip-profiles xx ( Incoming dialpeer)

    request ANY sip-header Allow-Header modify " UPDATE," ""

    response ANY sip-header Allow-Header modify " UPDATE," ""

    ReplyDelete