[Home]

Summary:ASTERISK-13770: [patch] ISDN-Transfer causes backcall attempt of attendent phone
Reporter:Sven Hirschmueller (sodom)Labels:
Date Opened:2009-03-18 07:57:04Date Closed:2009-07-22 12:46:16
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Channels/chan_misdn
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) misdn_xfer_v14_r205839.patch
( 1) misdn.analyzed.trace.log
( 2) misdn.trace.log
Description:If you successfuly transfer a call via ISDN-Transfer the attendant phone will generate a "ghost" back call for the first phone you spoke to.

e.g.

You got three phones with the number 11 (port 4),15 (port 8) and 13 (port 6).

15 calls 11 -> connection success.
15 presses R-Key -> Hold success, 11 got moh
15 calls 13 -> connection success.
15 simply hook on -> transfer 13->11 success
15 starts ringing again, indicating still established call to 11

as there is nothing left from the connection 15->11 you can run into real problems. Some phones ring forether as they don't reaslise that the connection was disconnected. (Most of Siemens DECT-ISDN phones e.g., on some you can't get rid of the ghost call other the switching the phone off.)

I analised the problem down and i think it's simply the problem that asterisk didn't send a ISDN-Relase message for the first connection. It only send a ISDN-Release message for the second connection, so the attendant phone simply didn't know that the initial connection was also released.

I attached a asterisk CLI of the misdn debug lv. 1.

I guess the problem is that asterisk masquerades the second connection with the first connection. Logicaly only three connection are handling in asterisk but in real you would need to handle four connections.
Comments:By: Richard Mudgett (rmudgett) 2009-07-10 19:09:52

There are several outstanding problems with the chan_misdn transfer feature that individual fixes would conflict with each other.  Therefore, the misdn_xfer_v14_r205839.patch file fixes the following issues:

JIRA ABE-1903 - Orphaned held calls left in music-on-hold.
issue ASTERISK-13770 - Held calls are not automatically cleared after transfer.
issue ASTERISK-13471 - Crash if attempt to transfer a call to an application.

By: Digium Subversion (svnbot) 2009-07-14 11:44:50

Repository: asterisk
Revision: 206487

U   branches/1.4/channels/chan_misdn.c
U   branches/1.4/channels/misdn/isdn_lib.c
U   branches/1.4/channels/misdn/isdn_lib.h

------------------------------------------------------------------------
r206487 | rmudgett | 2009-07-14 11:44:47 -0500 (Tue, 14 Jul 2009) | 28 lines

Fixes several call transfer issues with chan_misdn.

*  issue ASTERISK-13471 - Crash if attempt to transfer a call to an application.
Masquerade the other pair of the four asterisk channels involved in the
two calls.  The held call already must be a bridged call (not an
applicaton) or it would have been rejected.

*  issue ASTERISK-13770 - Held calls are not automatically cleared after transfer.
Allow the core to initate disconnect of held calls to the ISDN port.  This
also fixes a similar case where the party on hold hangs up before being
transferred or taken off hold.

*  JIRA ABE-1903 - Orphaned held calls left in music-on-hold.
Do not simply block passing the hangup event on held calls to asterisk
core.

*  Fixed to allow held calls to be transferred to ringing calls.
Previously, held calls could only be transferred to connected calls.
*  Eliminated unused call states to simplify hangup code.
*  Eliminated most uses of "holded" because it is not a word.

(closes issue ASTERISK-13471)
(closes issue ASTERISK-13770)
Reported by: sodom
Patches:
     misdn_xfer_v14_r205839.patch uploaded by rmudgett (license 664)
Tested by: rmudgett

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=206487

By: Digium Subversion (svnbot) 2009-07-14 12:01:50

Repository: asterisk
Revision: 206489

_U  trunk/
U   trunk/channels/chan_misdn.c
U   trunk/channels/misdn/isdn_lib.c
U   trunk/channels/misdn/isdn_lib.h

------------------------------------------------------------------------
r206489 | rmudgett | 2009-07-14 12:01:49 -0500 (Tue, 14 Jul 2009) | 35 lines

Merged revisions 206487 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
 r206487 | rmudgett | 2009-07-14 11:44:47 -0500 (Tue, 14 Jul 2009) | 28 lines
 
 Fixes several call transfer issues with chan_misdn.
 
 *  issue ASTERISK-13471 - Crash if attempt to transfer a call to an application.
 Masquerade the other pair of the four asterisk channels involved in the
 two calls.  The held call already must be a bridged call (not an
 applicaton) or it would have been rejected.
 
 *  issue ASTERISK-13770 - Held calls are not automatically cleared after transfer.
 Allow the core to initate disconnect of held calls to the ISDN port.  This
 also fixes a similar case where the party on hold hangs up before being
 transferred or taken off hold.
 
 *  JIRA ABE-1903 - Orphaned held calls left in music-on-hold.
 Do not simply block passing the hangup event on held calls to asterisk
 core.
 
 *  Fixed to allow held calls to be transferred to ringing calls.
 Previously, held calls could only be transferred to connected calls.
 *  Eliminated unused call states to simplify hangup code.
 *  Eliminated most uses of "holded" because it is not a word.
 
 (closes issue ASTERISK-13471)
 (closes issue ASTERISK-13770)
 Reported by: sodom
 Patches:
       misdn_xfer_v14_r205839.patch uploaded by rmudgett (license 664)
 Tested by: rmudgett
........

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=206489

By: Digium Subversion (svnbot) 2009-07-14 13:17:17

Repository: asterisk
Revision: 206555

_U  branches/1.6.0/
U   branches/1.6.0/channels/chan_misdn.c
U   branches/1.6.0/channels/misdn/isdn_lib.c
U   branches/1.6.0/channels/misdn/isdn_lib.h

------------------------------------------------------------------------
r206555 | rmudgett | 2009-07-14 13:17:15 -0500 (Tue, 14 Jul 2009) | 42 lines

Merged revisions 206489 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
 r206489 | rmudgett | 2009-07-14 12:01:48 -0500 (Tue, 14 Jul 2009) | 35 lines
 
 Merged revisions 206487 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4
 
 ........
   r206487 | rmudgett | 2009-07-14 11:44:47 -0500 (Tue, 14 Jul 2009) | 28 lines
   
   Fixes several call transfer issues with chan_misdn.
   
   *  issue ASTERISK-13471 - Crash if attempt to transfer a call to an application.
   Masquerade the other pair of the four asterisk channels involved in the
   two calls.  The held call already must be a bridged call (not an
   applicaton) or it would have been rejected.
   
   *  issue ASTERISK-13770 - Held calls are not automatically cleared after transfer.
   Allow the core to initate disconnect of held calls to the ISDN port.  This
   also fixes a similar case where the party on hold hangs up before being
   transferred or taken off hold.
   
   *  JIRA ABE-1903 - Orphaned held calls left in music-on-hold.
   Do not simply block passing the hangup event on held calls to asterisk
   core.
   
   *  Fixed to allow held calls to be transferred to ringing calls.
   Previously, held calls could only be transferred to connected calls.
   *  Eliminated unused call states to simplify hangup code.
   *  Eliminated most uses of "holded" because it is not a word.
   
   (closes issue ASTERISK-13471)
   (closes issue ASTERISK-13770)
   Reported by: sodom
   Patches:
         misdn_xfer_v14_r205839.patch uploaded by rmudgett (license 664)
   Tested by: rmudgett
 ........
................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=206555

By: Digium Subversion (svnbot) 2009-07-14 13:32:22

Repository: asterisk
Revision: 206558

_U  branches/1.6.1/
U   branches/1.6.1/channels/chan_misdn.c
U   branches/1.6.1/channels/misdn/isdn_lib.c
U   branches/1.6.1/channels/misdn/isdn_lib.h

------------------------------------------------------------------------
r206558 | rmudgett | 2009-07-14 13:32:21 -0500 (Tue, 14 Jul 2009) | 42 lines

Merged revisions 206489 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
 r206489 | rmudgett | 2009-07-14 12:01:48 -0500 (Tue, 14 Jul 2009) | 35 lines
 
 Merged revisions 206487 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4
 
 ........
   r206487 | rmudgett | 2009-07-14 11:44:47 -0500 (Tue, 14 Jul 2009) | 28 lines
   
   Fixes several call transfer issues with chan_misdn.
   
   *  issue ASTERISK-13471 - Crash if attempt to transfer a call to an application.
   Masquerade the other pair of the four asterisk channels involved in the
   two calls.  The held call already must be a bridged call (not an
   applicaton) or it would have been rejected.
   
   *  issue ASTERISK-13770 - Held calls are not automatically cleared after transfer.
   Allow the core to initate disconnect of held calls to the ISDN port.  This
   also fixes a similar case where the party on hold hangs up before being
   transferred or taken off hold.
   
   *  JIRA ABE-1903 - Orphaned held calls left in music-on-hold.
   Do not simply block passing the hangup event on held calls to asterisk
   core.
   
   *  Fixed to allow held calls to be transferred to ringing calls.
   Previously, held calls could only be transferred to connected calls.
   *  Eliminated unused call states to simplify hangup code.
   *  Eliminated most uses of "holded" because it is not a word.
   
   (closes issue ASTERISK-13471)
   (closes issue ASTERISK-13770)
   Reported by: sodom
   Patches:
         misdn_xfer_v14_r205839.patch uploaded by rmudgett (license 664)
   Tested by: rmudgett
 ........
................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=206558

By: Digium Subversion (svnbot) 2009-07-14 14:49:48

Repository: asterisk
Revision: 206565

_U  branches/1.6.2/
U   branches/1.6.2/channels/chan_misdn.c
U   branches/1.6.2/channels/misdn/isdn_lib.c
U   branches/1.6.2/channels/misdn/isdn_lib.h

------------------------------------------------------------------------
r206565 | rmudgett | 2009-07-14 14:49:47 -0500 (Tue, 14 Jul 2009) | 42 lines

Merged revisions 206489 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
 r206489 | rmudgett | 2009-07-14 12:01:48 -0500 (Tue, 14 Jul 2009) | 35 lines
 
 Merged revisions 206487 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4
 
 ........
   r206487 | rmudgett | 2009-07-14 11:44:47 -0500 (Tue, 14 Jul 2009) | 28 lines
   
   Fixes several call transfer issues with chan_misdn.
   
   *  issue ASTERISK-13471 - Crash if attempt to transfer a call to an application.
   Masquerade the other pair of the four asterisk channels involved in the
   two calls.  The held call already must be a bridged call (not an
   applicaton) or it would have been rejected.
   
   *  issue ASTERISK-13770 - Held calls are not automatically cleared after transfer.
   Allow the core to initate disconnect of held calls to the ISDN port.  This
   also fixes a similar case where the party on hold hangs up before being
   transferred or taken off hold.
   
   *  JIRA ABE-1903 - Orphaned held calls left in music-on-hold.
   Do not simply block passing the hangup event on held calls to asterisk
   core.
   
   *  Fixed to allow held calls to be transferred to ringing calls.
   Previously, held calls could only be transferred to connected calls.
   *  Eliminated unused call states to simplify hangup code.
   *  Eliminated most uses of "holded" because it is not a word.
   
   (closes issue ASTERISK-13471)
   (closes issue ASTERISK-13770)
   Reported by: sodom
   Patches:
         misdn_xfer_v14_r205839.patch uploaded by rmudgett (license 664)
   Tested by: rmudgett
 ........
................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=206565