DISA - failure in version - endless loop after hangup


I found the following failure in the DISA module with asterisk 1.2.14 and
Any s-. extension such as s-CHANUNAVAIL never reaches the “return to dialtone” part. That is the reason why I get a endless loop after a DISA call is finished with a hangup of the called party.

– Executing Gosub(“Zap/4-1”, “s-CHANUNAVAIL|1”) in new stack
– Executing NoOp(“Zap/4-1”, "called s-CHANUNAVAIL in from-internal by “disa”) in new stack
– Executing Dial(“Zap/4-1”, “Local/s-CHANUNAVAIL@from-internal|300|Hg”) in new stack
== Everyone is busy/congested at this time (1:0/0/1)
– Executing Gosub(“Zap/4-1”, “s-CHANUNAVAIL|1”) in new stack

One quick solution could be to add the following lines in
line 132:
$exten = ‘s-CHANUNAVAIL’;
$ext->add($context, $exten, ‘’, new ext_playtones(‘busy’));
$ext->add($context, $exten, ‘’, new ext_wait(‘3’));
$ext->add($context, $exten, ‘’, new ext_return());

A correct solution would be to force the sort order of the
extension_additional.conf by includes.

Best wishes


-----The original dialplan-----
asterisk*CLI> show dialplan disa-dial
[ Context ‘disa-dial’ created by ‘pbx_config’ ]
‘s-ANSWER’ => 1. Return() [pbx_config]
‘s-BUSY’ => 1. Playtones(busy) [pbx_config]
2. Wait(3) [pbx_config]
3. Return() [pbx_config]
‘s-CANCEL’ => 1. Return() [pbx_config]
’_.’ => 1. Noop(called ${EXTEN} in ${DISACONTEXT} by ${DISA}) [pbx_config]
2. Dial(Local/${EXTEN}@${DISACONTEXT}|300|${HANGUP}) [pbx_config]
3. Gosub(s-${DIALSTATUS}|1) [pbx_config]
4. Goto(${DISA}) [pbx_config]
’_s-.’ => 1. Noop(DISA Dial failed due to ${DIALSTATUS} - returning to dial tone) [pbx_config]
2. Playtones(congestion) [pbx_config]
3. Wait(3) [pbx_config]
4. StopPlaytones() [pbx_config]
5. Return() [pbx_config]
Include => ‘disa-dial-custom’ [pbx_config]

-= 6 extensions (15 priorities) in 1 context. =-