Disa 2.5.1.4 locks system after call

I have upgraded from 2.4 today to 2.5 and now once I make a call using disa, the whole system locks and I have to reset the whole machine.

I seem to have no problems dialing a number without using disa but I DO NEED IT!

All mods have been updated (according to instructions) and new ones were added.

please help I need disa for remote reasons

any ideas?

Odd.

I was playing around and figured I’d try enabling “Allow Hangup” within DISA.

Checked the box, applied the configuration, dialed through DISA, hung up and no loop. Tried various permutations of hanging up, e.g. remote hangs up first, I hang up first, I do “**” then hang up, and I could not get Asterisk to loop. Its progress.

Now I figure let me see if I can repeat the looping by disabling Allow Hangup. Removed the checkbox, applied the configuration, called through DISA, hung up and no looping.

Thus far I have not been able to make it loop again. Not sure what changes happen in the background when you select Allow Hangup but that seemed to have cured my looping issues for the time being.

This is a slower time period so I’ve upgraded to FreePBX 2.5.10 again also did an upgrade of Asterisk to SVN-branch-1.4-r166509. Same issue.

The loop is created as soon as the DISA user hangs up.

{{{
include => disa-custom
exten => 1,1,Authenticate(1234567,)
exten => 1,n,Set(_DISA=“disa,1,newcall”)
exten => 1,n(newcall),Set(_DISACONTEXT=from-internal)
exten => 1,n,Set(_KEEPCID=TRUE)
exten => 1,n,Set(TIMEOUT(digit)=5)
exten => 1,n,Set(TIMEOUT(response)=10)
exten => 1,n,DISA(no-password,disa-dial)
exten => 1,n(end),Hangup
exten => 2,1,Authenticate(1234567,)
exten => 2,n,Set(_DISA=“disa,2,newcall”)
exten => 2,n(newcall),Set(_DISACONTEXT=from-internal)
exten => 2,n,Set(_KEEPCID=TRUE)
exten => 2,n,Set(TIMEOUT(digit)=5)
exten => 2,n,Set(TIMEOUT(response)=10)
exten => 2,n,Set(CALLERID(all)=<1234567>)
exten => 2,n,DISA(no-password,disa-dial)
exten => 2,n(end),Hangup

[disa-dial]
include => disa-dial-custom
exten => _.,1,Noop(called ${EXTEN} in ${DISACONTEXT} by ${DISA})
exten => _.,n,Dial(Local/${EXTEN}@${DISACONTEXT},300,${HANGUP})
exten => _.,n,Gosub(s-${DIALSTATUS},1)
exten => _.,n,Goto(${DISA})
exten => s-ANSWER,1,Return()
exten => s-CANCEL,1,Return()
exten => s-BUSY,1,Playtones(busy)
exten => s-BUSY,n,Wait(3)
exten => s-BUSY,n,Return()
exten => _s-.,1,Noop(DISA Dial failed due to ${DIALSTATUS} - returning to dial tone)
exten => _s-.,n,Playtones(congestion)
exten => _s-.,n,Wait(3)
exten => _s-.,n,StopPlaytones
exten => _s-.,n,Return()

; end of [disa-dial]
}}}

mkolberg, what version of asterisk?

I am using Asterisk 1.2.18

Thanks

hmm, if I remember correctly, asterisk 1.2 has issues with dialplan matching. When there is more than one possible match, it will take the broadest, instead of the most restrictive, choice.

Is anyone experiencing these issues on asterisk 1.4?

If not then we will have to restore the original code for 1.2 users, so please open a bug to that affect.

Nothing has been customized, these are what have been auto created by FreePBX.

Here they are:

[disa]
include => disa-custom
exten => 1,1,Authenticate(1010,)
exten => 1,n,Set(_DISA=“disa,1,newcall”)
exten => 1,n(newcall),Set(_DISACONTEXT=from-internal)
exten => 1,n,Set(_KEEPCID=TRUE)
exten => 1,n,Set(TIMEOUT(digit)=5)
exten => 1,n,Set(TIMEOUT(response)=10)
exten => 1,n,DISA(no-password,disa-dial)
exten => 1,n(end),Hangup

; end of [disa]

[disa-dial]
include => disa-dial-custom
exten => _.,1,Noop(called ${EXTEN} in ${DISACONTEXT} by ${DISA})
exten => _.,n,Dial(Local/${EXTEN}@${DISACONTEXT},300,${HANGUP})
exten => _.,n,Gosub(s-${DIALSTATUS},1)
exten => _.,n,Goto(${DISA})
exten => s-ANSWER,1,Return()
exten => s-CANCEL,1,Return()
exten => s-BUSY,1,Playtones(busy)
exten => s-BUSY,n,Wait(3)
exten => s-BUSY,n,Return()
exten => _s-.,1,Noop(DISA Dial failed due to ${DIALSTATUS} - returning to dial tone)
exten => _s-.,n,Playtones(congestion)
exten => _s-.,n,Wait(3)
exten => _s-.,n,StopPlaytones
exten => _s-.,n,Return()

; end of [disa-dial]

Please paste your [disa] and [disa-dial] contexts.

I have a DID that goes directly to DISA. When the DID is called DISA asks for password and I enter it. I am then dropped to a dial tone. If I place a normal call to an outside number everything works fine. Calls to an internal extension, feature code, ring group, queue, etc. cause the system to loop. Here is an example: If I try to log in or out of our call queue the system loops and spikes CPU to 100%. If I place an inbound call to our main phone number or any other DID immediately after the system goes into a loop the IVR can be heard but is barely audible. It is broken up and will not respond to any DTMF entries. If I wait a couple minutes and try the main number or any other DID again the calling phones carrier reports “All circuits Busy” or “this number is disconnected”. This is the normal error message when the PBX is not available. If I look at the servers console it is blank and non responsive. No SSH connections can be made to the server.

All trunks are SIP, logging on and off of the queue or dialing any other internal extension, feature, ring group, queue, etc. without using DISA works fine (from a handset). Our queue is 555. To log on to the queue we dial 555* and then it asks for extension. To log off we dial 555** and then it asks for the extension. When using DISA it crashes while logging on and off. When I use DISA to log on or off it starts this crash right after I enter the extension number. EXAMPLE: Dial DISA -> Prompts for Password -> Enter Password -> Drops to dial tone -> Dial 555* -> Asks for extension to log into queue -> Enter Extension -> System Loop -> Call is disconnected. Similar problem exists while using DISA for any other internal use. EXAMPLE: Dial DISA -> Prompts for Password -> Enter Password -> Drops to dial tone -> Enter internal extension number -> System Loop -> Call is disconnected.

The machine is basically useless until it is hard rebooted. I logged on to the asterisk console to see output while I called the DISA and tried to log into queue. I set verbose to 100 and this is the output to the console. It repeats this for about 200 lines and then ssh looses the connection.

Here is the screen output that keeps repeating.

== Everyone is busy/congested at this time (1:0/0/1)
– Executing Gosub(“SIP/4.68.250.148-09980728”, “s-CHANUNAVAIL|1”) in new stack
– Executing NoOp(“SIP/4.68.250.148-09980728”, "called s-CHANUNAVAIL in from-internal by “disa”) in new stack
– Executing Dial(“SIP/4.68.250.148-09980728”, “Local/[email protected]|300|”) in new stack
== Everyone is busy/congested at this time (1:0/0/1)
– Executing Gosub(“SIP/4.68.250.148-09980728”, “s-CHANUNAVAIL|1”) in new stack
– Executing NoOp(“SIP/4.68.250.148-09980728”, "called s-CHANUNAVAIL in from-internal by “disa”) in new stack
– Executing Dial(“SIP/4.68.250.148-09980728”, “Local/[email protected]|300|”) in new stack
== Everyone is busy/congested at this time (1:0/0/1)
– Executing Gosub(“SIP/4.68.250.148-09980728”, “s-CHANUNAVAIL|1”) in new stack

Please let me know if you would like me to provide any other information.

Thanks

I have the same problem with disa 2.5.1.4

you are going to have to provide more than that. Can you get a trace of the log file from when the disa call started until it locked up. And make sure verbosity is turned up to level 5 when you do that.

Edward,

You never responded to Moshe’s request about custom dialplan code so without that answer we can’t help. I can tell you that there are thousands of 2.5 installs many with DISA and no reported issues. So without seeing your dialplan it’s not possible to pinpoint the issue that you have that nobody else has.

There were some changes between how 2.4 and 2.5 work and if you had custom code it’s very possible that, that is the root cause with some of the other changes (most times it’s minor adjustments to what you have). But we can’t tell without seeing.

Moved back to v2.4.1.2 and DISA is working great so something in v2.5 is causing the looping.

but it carshes after two or three disa calls.

ep 17 11:53:59 DEBUG[3722] app_disa.c: DISA extension entry timeout on chan Zap/2-1
Sep 17 11:53:59 DEBUG[3722] cdr_addon_mysql.c: cdr_mysql: inserting a CDR record.
Sep 17 11:53:59 DEBUG[3722] cdr_addon_mysql.c: cdr_mysql: SQL command as follows: INSERT INTO cdr (calldate,clid,src,dst,dcontext,channel,dstchannel,lastapp,lastdata,duration,billsec,disposition,amaflags,accountcode,uniqueid) VALUES (‘2008-09-17 11:53:46’,’“CHITRIK,AARON” <7182161001>’,‘7182161001’,‘1’,‘disa’, ‘Zap/2-1’,’’,‘DISA’,‘no-password|disa-dial’,13,13,‘ANSWERED’,3,’’,‘1221666825.40’)
Sep 17 11:54:00 NOTICE[3725] cdr.c: CDR on channel ‘Local/[email protected],2’ not posted
Sep 17 11:54:00 NOTICE[3725] cdr.c: CDR on channel ‘Local/[email protected],2’ lacks end
Sep 17 11:54:01 DEBUG[3725] channel.c: Scheduling timer at 160 sample intervals
Sep 17 11:54:01 DEBUG[3725] channel.c: Scheduling timer at 0 sample intervals
Sep 17 11:54:01 DEBUG[3725] channel.c: Scheduling timer at 0 sample intervals
Sep 17 11:54:01 DEBUG[3725] channel.c: Scheduling timer at 160 sample intervals
Sep 17 11:54:03 DEBUG[3725] channel.c: Scheduling timer at 0 sample intervals
Sep 17 11:54:03 DEBUG[3725] channel.c: Scheduling timer at 0 sample intervals
Sep 17 11:54:03 DEBUG[3725] channel.c: Scheduling timer at 160 sample intervals
Sep 17 11:54:04 DEBUG[3065] acl.c: ##### Testing 147.135.20.221 with 192.168.0.0
Sep 17 11:54:04 DEBUG[3065] chan_sip.c: Target address 147.135.20.221 is not local, substituting externip
Sep 17 11:54:04 DEBUG[3065] chan_sip.c: Scheduled a registration timeout for sip.broadvoice.com id #2158
Sep 17 11:54:04 DEBUG[3065] chan_sip.c: Stopping retransmission on ‘[email protected]’ of Request 140: Match Found
Sep 17 11:54:04 DEBUG[3065] chan_sip.c: Registration successful
Sep 17 11:54:04 DEBUG[3065] chan_sip.c: Cancelling timeout 2158

Is there something i’m missing here?

There is nothing in your log file that would indicate a system crash. What version of asterisk are you using? What else are you doing in the background (i.e. what else is going on on the server)?

At this point there is nothing to indicate that there is a problem with freepbx, so I am closed the ticket. We can continue this conversion here

Right after a DISA call, it crashes… Is there a way of getting disa 2.4 back in there. It does not work on my system. I am wrinting a little script that does the same thing as disa for the time… I do need DISA myself. But it makes my whole system crashing…

termy_pe - seems like hershey’s problem went away (as he didnt respond to the questions presented to him). If you have any answers, ill be glad to hear them

Is there a way to get the last 300 lines of asterisk after it crashes? I would do that tonight… Make the application run. Then wait until it crashes. But onces I reboot, I need before running asterisk to get the last logs? is there a command like tail -f /var/log/asterisk something that would tell me?

Not really sure what your going to do with it…

tail -n 300 /var/log/asterisk