Call is held for 90 seconds when remote analogue phone disconnects

Version 1
    This document was generated from CDN thread

    Created by: SURYA RAMAKRISHNA on 01-09-2010 06:05:59 AM
    <strong style="mso-bidi-font-weight: normal;">Problem Description:
    An outgoing call from Cisco Voice Gateway with ISDN service (onRamp) is made to an analog PSTN line. The party answers and hangs up subsequently. The IP phone/Gateway doesn't release the channel and the line stays up for 90Secs.
     
    <strong style="mso-bidi-font-weight: normal;">Requirement: The ISDN gateway to release the connection and free up the line immediately once the remote party hangs up the phone.
     
    <strong style="mso-bidi-font-weight: normal;">Details: The service provider's network sends a notifiy message with Ind i = 0x80 to the ISDN gateway, once the remote analog phone hangs up. Then the channel and line stays up for 90 Secs before the call is disconnected.
     
    ISDN gateway q.931 debugs are as below:
     
    =========================
     
    *Aug 31 04:39:13.353: ISDN Se0/3/0:15 Q931: Applying typeplan for sw-type 0x12 is 0x0 0x0,
    Calling num 2009
    *Aug 31 04:39:13.353: ISDN Se0/3/0:15 Q931: Sending SETUP  callref = 0x0131 callID =
    0x8100 switch = primary-net5 interface = User
    *Aug 31 04:39:13.353: ISDN Se0/3/0:15 Q931: TX -> SETUP pd = 8  callref = 0x0131
            Bearer Capability i = 0x8090A3
                    Standard = CCITT
                    Transfer Capability = Speech
                    Transfer Mode = Circuit
                    Transfer Rate = 64 kbit/s
            Channel ID i = 0xA9838A
                    Exclusive, Channel 10
            Calling Party Number i = 0x0081, '2009'
                    Plan:Unknown, Type:Unknown
            Called Party Number i = 0x80, '92690135'
                    Plan:Unknown, Type:Unknown
    *Aug 31 04:39:13.433: ISDN Se0/3/0:15 Q931: RX <- CALL_PROC pd = 8  callref = 0x8131
            Channel ID i = 0xA9838A
                    Exclusive, Channel 10
    *Aug 31 04:39:13.729: ISDN Se0/3/0:15 Q931: RX <- ALERTING pd = 8  callref = 0x8131
            Progress Ind i = 0x8488 - In-band info or appropriate now available
            Progress Ind i = 0x8482 - Destination address is non-ISDN
    *Aug 31 04:39:18.317: ISDN Se0/3/0:15 Q931: RX <- CONNECT pd = 8  callref = 0x8131
            Date/Time i = 0x0A081F0E2C
                    Date (dd-mm-yr)   = 10-08-31
                    Time (hr:mnt:sec) = 14:44:10
    *Aug 31 04:39:18.321: %ISDN-6-CONNECT: Interface Serial0/3/0:9 is now connected to
    92690135 N/A
    *Aug 31 04:39:18.321: %ISDN-6-CONNECT: Interface Serial0/3/0:9 is now connected to
    92690135 N/A
    *Aug 31 04:39:18.321: ISDN Se0/3/0:15 Q931: TX -> CONNECT_ACK pd = 8  callref = 0x0131
    *Aug 31 04:39:21.237: ISDN Se0/3/0:15 Q931: RX <- NOTIFY pd = 8  callref = 0x8131
            Notification Ind i = 0x80
    *Aug 31 04:40:50.465: ISDN Se0/3/0:15 Q931: RX <- DISCONNECT pd = 8  callref = 0x8131
            Cause i = 0x84E6 - Recovery on timer expiry
            Progress Ind i = 0x8288 - In-band info or appropriate now available
    *Aug 31 04:40:50.465: %ISDN-6-DISCONNECT: Interface Serial0/3/0:9  disconnected from
    92690135 , call lasted 92 seconds
    *Aug 31 04:40:50.465: ISDN Se0/3/0:15 Q931: call_disc: PI received in disconnect; Postpone
    sending RELEASE for callid 0x8100
    *Aug 31 04:40:50.505: ISDN Se0/3/0:15 Q931: TX -> RELEASE pd = 8  callref = 0x0131
    *Aug 31 04:40:50.525: ISDN Se0/3/0:15 Q931: RX <- RELEASE_COMP pd = 8  callref = 0x8131
    ==============
     
    Request: Do you have any solution to have the ISDN gateway to disconnect immediately on remote end hang-up? Or what does it take to have a solution developed?
     
    Thank you, Surya

    Subject: RE: Call is held for 90 seconds when remote analogue phone disconnects
    Replied by: Yaw-Ming Chen on 01-09-2010 03:09:31 PM
    Are you using any Tcl script ?
     
    Thanks !

    Subject: RE: Call is held for 90 seconds when remote analogue phone disconnects
    Replied by: SURYA RAMAKRISHNA on 02-09-2010 04:14:25 AM
    Are you using any Tcl script ?
     
    Thanks !


    No. we are not using any TCL scripts now.

    Subject: RE: Call is held for 90 seconds when remote analogue phone disconnects
    Replied by: Yaw-Ming Chen on 02-09-2010 04:31:57 AM
    This forum is about Tcl  API application.
    But any way I have posted your question in other related site. I will post it if I get a answer back.
     
    Thanks,
     
    Yawming

    Subject: RE: Call is held for 90 seconds when remote analogue phone disconnects
    Replied by: Yaw-Ming Chen on 02-09-2010 05:54:22 AM
    <strong style="mso-bidi-font-weight: normal;">Problem Description:
    An outgoing call from Cisco Voice Gateway with ISDN service (onRamp) is made to an analog PSTN line. The party answers and hangs up subsequently. The IP phone/Gateway doesn't release the channel and the line stays up for 90Secs.
     
    <strong style="mso-bidi-font-weight: normal;">Requirement: The ISDN gateway to release the connection and free up the line immediately once the remote party hangs up the phone.
     
    <strong style="mso-bidi-font-weight: normal;">Details: The service provider's network sends a notifiy message with Ind i = 0x80 to the ISDN gateway, once the remote analog phone hangs up. Then the channel and line stays up for 90 Secs before the call is disconnected.
     
    ISDN gateway q.931 debugs are as below:
     
    =========================
     
    *Aug 31 04:39:13.353: ISDN Se0/3/0:15 Q931: Applying typeplan for sw-type 0x12 is 0x0 0x0,
    Calling num 2009
    *Aug 31 04:39:13.353: ISDN Se0/3/0:15 Q931: Sending SETUP  callref = 0x0131 callID =
    0x8100 switch = primary-net5 interface = User
    *Aug 31 04:39:13.353: ISDN Se0/3/0:15 Q931: TX -> SETUP pd = 8  callref = 0x0131
            Bearer Capability i = 0x8090A3
                    Standard = CCITT
                    Transfer Capability = Speech
                    Transfer Mode = Circuit
                    Transfer Rate = 64 kbit/s
            Channel ID i = 0xA9838A
                    Exclusive, Channel 10
            Calling Party Number i = 0x0081, '2009'
                    Plan:Unknown, Type:Unknown
            Called Party Number i = 0x80, '92690135'
                    Plan:Unknown, Type:Unknown
    *Aug 31 04:39:13.433: ISDN Se0/3/0:15 Q931: RX <- CALL_PROC pd = 8  callref = 0x8131
            Channel ID i = 0xA9838A
                    Exclusive, Channel 10
    *Aug 31 04:39:13.729: ISDN Se0/3/0:15 Q931: RX <- ALERTING pd = 8  callref = 0x8131
            Progress Ind i = 0x8488 - In-band info or appropriate now available
            Progress Ind i = 0x8482 - Destination address is non-ISDN
    *Aug 31 04:39:18.317: ISDN Se0/3/0:15 Q931: RX <- CONNECT pd = 8  callref = 0x8131
            Date/Time i = 0x0A081F0E2C
                    Date (dd-mm-yr)   = 10-08-31
                    Time (hr:mnt:sec) = 14:44:10
    *Aug 31 04:39:18.321: %ISDN-6-CONNECT: Interface Serial0/3/0:9 is now connected to
    92690135 N/A
    *Aug 31 04:39:18.321: %ISDN-6-CONNECT: Interface Serial0/3/0:9 is now connected to
    92690135 N/A
    *Aug 31 04:39:18.321: ISDN Se0/3/0:15 Q931: TX -> CONNECT_ACK pd = 8  callref = 0x0131
    *Aug 31 04:39:21.237: ISDN Se0/3/0:15 Q931: RX <- NOTIFY pd = 8  callref = 0x8131
            Notification Ind i = 0x80
    *Aug 31 04:40:50.465: ISDN Se0/3/0:15 Q931: RX <- DISCONNECT pd = 8  callref = 0x8131
            Cause i = 0x84E6 - Recovery on timer expiry
            Progress Ind i = 0x8288 - In-band info or appropriate now available
    *Aug 31 04:40:50.465: %ISDN-6-DISCONNECT: Interface Serial0/3/0:9  disconnected from
    92690135 , call lasted 92 seconds
    *Aug 31 04:40:50.465: ISDN Se0/3/0:15 Q931: call_disc: PI received in disconnect; Postpone
    sending RELEASE for callid 0x8100
    *Aug 31 04:40:50.505: ISDN Se0/3/0:15 Q931: TX -> RELEASE pd = 8  callref = 0x0131
    *Aug 31 04:40:50.525: ISDN Se0/3/0:15 Q931: RX <- RELEASE_COMP pd = 8  callref = 0x8131
    ==============
     
    Request: Do you have any solution to have the ISDN gateway to disconnect immediately on remote end hang-up? Or what does it take to have a solution developed?
     
    Thank you, Surya
     


     
     
    Hi Surya,
    Here is the info I got from ISDN expert.
     
     Hi Yawming,

     

    You left out a critical part of the debug trace ¿

     

    *Aug 31 04:39:18.321: ISDN Se0/3/0:15 Q931: TX -> CONNECT_ACK pd = 8 callref = 0x0131





    *Aug 31 04:39:21.237: ISDN Se0/3/0:15 Q931: RX <- NOTIFY pd = 8 callref = 0x8131

            Notification Ind i = 0x80





    *Aug 31 04:40:50.465: ISDN Se0/3/0:15 Q931: RX <- DISCONNECT pd = 8 callref = 0x8131





           Cause i = 0x84E6 - Recovery on timer expiry

            Progress Ind i = 0x8288 - In-band info or appropriate now available





    *Aug 31 04:40:50.465: %ISDN-6-DISCONNECT: Interface Serial0/3/0:9 disconnected from 92690135 , call lasted 92 seconds





    From TX connect_ack to RX disconnect is 92 seconds, but the disconnect causes is recovery on timer expiry.

     

    The first octet of Q931 cause codes indicate where the call cleared -  

     

    "81","From Private Network near Local User",             

    "82","From Public Network near Local User",              

    "83","From Transit Network",                             

    "84","From Public Network near Remote User",             

    "85","From Private Network near Remote User",            

    "87","From International Network",                       

    "8A","From a Network Beyond internetworking point");      



     

    This means the call was cleared by the far end ISDN network because the remote destination device did not correctly respond to the ISDN messaging.

     

    Since the call connected normally earlier, why would it then be cleared with an error message like ¿recovery on timer expiry¿? You should only see this clearing code if the call is not answered, or a Q931 message is not correctly acknowledged. If the remote user is hanging up the phone, the remote network should return ¿normal call clearing¿.

     

     Are they really sure this is a problem on the router ¿ the release and release complete occurs straight after the disconnect comes in so the Cisco device is working as expected.  

     

    Cheers

     

    Paul

    Subject: RE: Call is held for 90 seconds when remote analogue phone disconnects
    Replied by: Yaw-Ming Chen on 02-09-2010 06:34:14 AM
    Another comment and I suggest you to contact Cisco TAC, they may be able to help you more detail.
     
    -------------------------------------------------------
    I don't see any issue with GW releasing the call..

     

    Typically remote end could disconnect call with PI=8 when

    it wants to play some announcement. So, when GW receives a

    disconnect with PI=8, typically GW doesn't  initiate release

    immediately. It will either wait for calling party to hang up OR

    wait for a timeout to occur before releasing the call. This is per standard..

    But in customer test the calling party released the call immediately

    so GW released the isdn call (and channel) immediately.

     

    However, why remote switch disconnected a *connected* call with CV=102

    isn't very clear

    Subject: RE: Call is held for 90 seconds when remote analogue phone disconnects
    Replied by: SURYA RAMAKRISHNA on 02-09-2010 06:37:22 AM
    Thank you for your analysis.
     
    We are simulating this problem and hence the call is being disconnected from the 'B' end which is an analog phone. Our intended outcome is - once the 'B' end user hangsup the phone, the voice gateway should release the b-channel and disconnect. However it waits for ~90Secs for the network to send disconnect with cause i = 0x84E6 - Recovery on timer expiry. What our customer expects in a contact centre environment is to have the call disconnected immediately once the remote B end user hangs up.
     
    I hope this scenario makes sense. If you need to speak to me I can also be reached on +61 457 703 976.
     
    I gather this behaviour is seen in Asiapacific region only probably with certain types of PSTN switches.  The Broadsoft/Polycomm IP Tel solution is dropping the line immediately on remote phone hang up making difficult to convince the customer that it is an expected behaviour.  I learnt a specific TCL script can potentially help process the 'notifcation' (call suspend) as a disconnect. If we can accomplish that, we might be able to solve this issue.
     
    *Aug 31 04:39:21.237: ISDN Se0/3/0:15 Q931: RX <- NOTIFY pd = 8  callref = 0x8131
            Notification Ind i = 0x80 <<this is when the remote user hung up<<
    *Aug 31 04:40:50.465: ISDN Se0/3/0:15 Q931: RX <- DISCONNECT pd = 8  callref = 0x8131
            Cause i = 0x84E6 - Recovery on timer expiry
            Progress Ind i = 0x8288 - In-band info or appropriate now available <<this is when the IP phone line/ B channel was released<<


     
    Regards, Surya

    Subject: RE: Call is held for 90 seconds when remote analogue phone disconnects
    Replied by: Yaw-Ming Chen on 02-09-2010 06:41:45 AM
    I am not the ISDN expert and this forum is not for this type of question.
    So I think the best way is to contact Cisco TAC, they do have ISDN experts can help you to solve your problem.
     
    Thanks !

    Subject: RE: Call is held for 90 seconds when remote analogue phone disconnects
    Replied by: SURYA RAMAKRISHNA on 02-09-2010 06:46:30 AM
    Cisco TAC suggested to use this link to explore if there is any help available.
    TAC indicated that Cisco VG is not processing NOTIFY  as a disconnect as per ITU or some standard. They suggested potentially a TCL script could be developed that will process notify as a disconnect and advised us to reach out to the developer community through this channel.
     
    Are there otherway to have a work around or a custom script developed to address this issue?
     
    thanks, Surya

    Subject: RE: Call is held for 90 seconds when remote analogue phone disconnects
    Replied by: Yaw-Ming Chen on 02-09-2010 02:06:43 PM
    Yes, You can try Tcl if you like
    Ligic is like this When analog phone hangup IOS will send a diconnect event to Tcl application.
    Then Tcl can force send "leg disconnect" or close the application. After that it's between IOS and far end.
     
    Thanks !

    Subject: RE: Call is held for 90 seconds when remote analogue phone disconnects
    Replied by: Yaw-Ming Chen on 02-09-2010 03:54:11 PM
    More input form ISDN expert
     


    There¿s a command for this, to treat a disconnect with PI as a normal disconnect without PI:

     

    http://www.ciscotaccc.com/kaidara-advisor/voice/showcase?case=K65703904



    voice call disc-pi-off

     

    Configure this globally, and as I said, if they get a funky dissconnect from the provider with PI=8 for some sort of tone/message, the GW will treat it as a normal disconnect without PI and hang the call up immediately.

     
    <!--EndFragment-->

    Subject: RE: Call is held for 90 seconds when remote analogue phone disconnects
    Replied by: SURYA RAMAKRISHNA on 03-09-2010 12:17:48 AM
    We tried using voice call disc-pi-off and that didn't make any difference to the behaviour.
    Note that we are receiving 'notify' from the network and voice gateway is not processing it such that it releases the B-channel and the line on the IP phone.
     
    Secondly - how to request TCL script to address this? Is there a separate procedure to be followed? What does it take to have a solution delivered to address this requirement. 
     
    We have a contact centre customer who is not too happy with the Cisco solution as they didn't have this problem on Nortel or Broadsoft. Appreciate any assistance.
     
    regards, Surya

    Subject: RE: Call is held for 90 seconds when remote analogue phone disconnects
    Replied by: Yaw-Ming Chen on 03-09-2010 12:42:31 AM
    If you know Cisco IVR API you can use default session application to modify
     
    Use "sh call application voice session" to get the content
     
    If not you can open a SR with Cisco developer support.
     
    Please see this link for detail
    http://developer.cisco.com/web/devservices
    Special developer support contract needed
     
    TSince Tcl API is in application layer we can only try, becasue it really up to IOS to handle the signaling stuff.
    Usually when we issue the "leg disconnect" call should be disconnected.
     
    Thanks !