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/s-CHANUNAVAIL@from-internal|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/s-CHANUNAVAIL@from-internal|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
After posting this to the forum, An Asterisk Developer (mbrevda) commented:
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.
Another user did report problems in Asterisk 1.4 but thought that by selecting "Allow Hangup" within DISA saving changes and then deselecting "Allow Hangup" within DISA fixed the problem. This has not been confirmed by other Asterisk 1.4 users. This fix did not work for me.
DISA calls to internal extensions, queues, ring groups, etc. worked fine with FreePBX version 2.3, is there anyway to restore the old code for this module.
Thanks