[Home]

Summary:ASTERISK-02423: Asterisk does not stimulate a far end disconnect when Hangup() called on E&M trunk during handshake
Reporter:kb1_kanobe2 (kb1_kanobe2)Labels:
Date Opened:2004-09-16 07:09:50Date Closed:2011-06-07 14:05:22
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Core/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:I have a Norstar MICS v4.1 connected to an Asterisk 'CVS-HEAD-09/12/04' by channelised T1. The channels are configured for E&M wink start.

If a call is placed from the Norstar to the Asterisk host and the is hung up before being Answer()ed then Ast does not transition through the off hook state and thus does leaves the trunk in the handshake state. Consider a timeout situation during a collection of digits in an enbloc dialplan:

Good hangup sequence:

Tx Rx
0000 0000 Onhook
1111 0000 Wink
0000 1100 Norstar up
one digit pulsed out then timeout after 10 seconds
1111 1100 Asterisk Answer()
0000 1100 Asterisk Hangup()
0000 0000 Nortar Hangup/Onhook

Bad hangup sequence:

Tx Rx
0000 0000 Onhook
1111 0000 Wink
0000 1100 Norstar up
one digit pulsed out then timeout after 10 seconds
0000 1100 Asterisk Hangup()/Norstar remains up
... time passes, eventually Ns user hangs up set
0000 0000 Norstar Hungup/Onhook

Note that the output of 'zap show channel ...' correctly reports the state as 'Actual Hookstate: Offhook' (though 'active' would be more correct).


****** ADDITIONAL INFORMATION ******

The implications of this are unclear, except that it gives users something to complain about when they get extended silence on the line after the state messages and tones have played...

This has an easy workaround - call macro(cleanhangup) instead of Hangup() and define it as:

[macro-cleanhangup]
exten => s,1,Answer
exten => s,2,Wait(1)
exten => s,3,Hangup
Comments:By: Brian West (bkw918) 2004-09-16 08:09:49

This and 2457 could have been reported as ONE bug

By: Mark Spencer (markster) 2004-09-16 08:49:21

This is not a bug in Asterisk but a limitation of E&M.  If we answer the line, the call is billed to the customer, so that is the wrong thing to do.  The right thing to do is to play in-band information only, and let the user disconnect.