app_dial.c: Unable to create channel of type 'SIP' (cause 20 - Unknown)

It appears that a call Queue is trying to transfer to an unregistered extension and fails to create the channel or try the others.
I am using ring all.

Can anybody please help me with this problem?

I have a call queue with four extentions as static agents. One of these is a softphone that may or may not be registered.
When the softphone is registered, then everything works correctly. When the softphone is not registered then incoming calls get a busy signal and none of the extentions ring. The log shows:

[2011-07-14 10:04:22] VERBOSE[18790] pbx.c: – Executing [s@macro-dial-one:39] Set(“Local/4401@from-queue-6a3f;2”, “CONNECTEDLINE(name,i)=EyeBeam”) in new stack
[2011-07-14 10:04:22] VERBOSE[18790] pbx.c: – Executing [s@macro-dial-one:40] Set(“Local/4401@from-queue-6a3f;2”, “CONNECTEDLINE(num)=4401”) in new stack
[2011-07-14 10:04:22] VERBOSE[18790] pbx.c: – Executing [s@macro-dial-one:41] Set(“Local/4401@from-queue-6a3f;2”, “D_OPTIONS=trM(auto-blkvm)I”) in new stack
[2011-07-14 10:04:22] VERBOSE[18790] pbx.c: – Executing [s@macro-dial-one:42] Dial(“Local/4401@from-queue-6a3f;2”, “SIP/4401,”",trM(auto-blkvm)I") in new stack
[2011-07-14 10:04:22] WARNING[18790] app_dial.c: Unable to create channel of type ‘SIP’ (cause 20 - Unknown)
[2011-07-14 10:04:22] VERBOSE[18790] app_dial.c: == Everyone is busy/congested at this time (1:0/0/1)
[2011-07-14 10:04:22] VERBOSE[18790] pbx.c: – Executing [s@macro-dial-one:43] ExecIf(“Local/4401@from-queue-6a3f;2”, “0?Set(DIALSTATUS=)”) in new stack
[2011-07-14 10:04:22] VERBOSE[18790] pbx.c: – Executing [s@macro-dial-one:44] GosubIf(“Local/4401@from-queue-6a3f;2”, “0?s-CHANUNAVAIL,1”) in new stack
[2011-07-14 10:04:22] VERBOSE[18790] pbx.c: – Executing [s@macro-dial-one:45] MacroExit(“Local/4401@from-queue-6a3f;2”, “”) in new stack
[2011-07-14 10:04:22] VERBOSE[18790] pbx.c: – Executing [s@macro-exten-vm:15] GotoIf(“Local/4401@from-queue-6a3f;2”, “0?exit”) in new stack

CLUES:

Outbound calls work perfectly from all extentions.
If the softphone extention 4401 is registered then inbound calls work correctly.
Now the kicker:
I have two did’s with inbound routes that go to two different IVR’s, which then transfer the call to the same Queue. On the first inbound route, it goes to an IVR setup as a stealth attendant that plays a message and then transfers to the queue. The second inbound route goes to an IVR that has several options, one of which transfers calls to the same queue. IF CALLS COME IN ON THE FIRST INBOUND ROUTE THEN THE QUEUE FAILS WHEN ANY STATIC AGENT IS NOT REGISTERED. HOWEVER, CALLS THAT COME IN ON THE SECOND ROUTE WORK CORRECTLY REGARDLESS OF WHETHER OR NOT ANY STATIC AGENT IS REGISTERED. It appears that a parameter might be missing when passed from the first IVR vs the Second IVR.

STATS:

│ FreePBX Version = 2.9.0.7 │
│ Running Asterisk Version = Asterisk 1.8.3.2 │
│ Asterisk Source Version = 1.8.3.2 │
│ Dahdi Source Version = 2.4.1.2+2.4.1 │
│ Libpri Source Version = 1.4.11.5 │
│ Operating System = CentOS release 5.6 (Final) │
│ Kernel Version = 2.6.18-194.26.1.el5 - 64 Bit │

If the ‘VM Return to IVR’ is checked in an IVR and that IVR transfers to a Queue, then the call gets dropped after the extensions in the queue ring.

The simple solution for me was to uncheck the ‘VM Return to IVR’ in the IVR. It is obviously a bug in Freepbx.