[asterisk-dev] what am i doing wrong/ DIAL (local)/ always busy

Kai Ober kast.asterisk at gmx.de
Mon Sep 25 01:50:48 MST 2006


hi list
this is my dialplan

[extern]
exten => 1,1,Dial(ZAP/6&ZAP/6&ZAP/6)
exten => 1,2,GotoIf($[${DIALSTATUS}=BUSY]?BUSY,1)

exten => 2,1,Dial(local/23&local/42)
exten => 2,2,GotoIf($[${DIALSTATUS}=BUSY]?BUSY,1)

exten => BUSY,1,Playback(auth-thankyou)
exten => BUSY,2,Hangup

[default]
exten => 23,1,Dial(ZAP/6)
exten => 23,2,GotoIf($[${DIALSTATUS}=BUSY]?BUSY,1)
exten => 42,1,Dial(ZAP/6)
exten => 42,2,GotoIf($[${DIALSTATUS}=BUSY]?BUSY,1)

exten => BUSY,1,Playback(auth-thankyou)
exten => BUSY,2,Hangup


example1) when i dial 1, everything is okay, ZAP/6 Rings
example2) but when i dial 2, i get DIALSTATUS (user) BUSY. How to avoid 
this?
is this a bug, or handels asterisk this in a way i dont't expect?/Don't 
want?

the "dial setup" is done by the same incoming call/channel so asterisk 
should mention this, and don't send a BUSY back to the caller
(like in example 1).  how to tell asterisk not to do this?

any suggestions?
regards
Kai

for ppl how want to know why i'm doing that wired stuff obove:

the dialplan on top is just a short example,the real dialplan does cfwd 
handling and so on.
the second example accures in reality (in my dialplan) when an external 
number is mapped to two internal numbers,
useing asteriskDB to store the info, and one of the calles forwards his 
number to the second calle: i.e

DB entry looks like this
family          key           value
ex_to_int     2             local/23 at default&local/24 at default
23               CFU       42

[extern]
exten => 2,1,Set(DEST=${DB(ex_to_int/${EXTEN})})
exten => 2,2,Dial($DEST)
exten => 2,3,GotoIf($[${DIALSTATUS}=BUSY]?BUSY,1)

[default]
exten => 23,1,Set(CFU=${DB(23/CFU)})
exten => 23,2,GotoIf($["${CFU}"!=""]?5)
exten => 23,3,Dial(ZAP/5)
exten => 23,4,Goto(6)
exten => 23,5,Dial(${CFU})
exten => 23,6,GotoIf($[${DIALSTATUS}=BUSY]?BUSY,1)

exten => 42,1,Set(CFU=${DB(42/CFU)})
exten => 42,2,GotoIf($["${CFU}"!=""]?5)
exten => 42,3,Dial(ZAP/6)
exten => 42,4,Goto(6)
exten => 42,5,Dial(${CFU})
exten => 42,6,GotoIf($[${DIALSTATUS}=BUSY]?BUSY,1)

exten => BUSY,1,Playback(auth-thankyou)
exten => BUSY,2,Hangup





----- cli output from example1 and 2
*CLI> set verbose 4
Verbosity was 2 and is now 4
    -- Executing Dial("mISDN/1-1", "ZAP/6&ZAP/6&ZAP/6") in new stack
    -- Called 6
Sep 25 10:09:03 NOTICE[4606]: app_dial.c:1056 dial_exec_full: Unable to 
create channel of type 'ZAP' (cause 17 - User busy)
Sep 25 10:09:03 NOTICE[4606]: app_dial.c:1056 dial_exec_full: Unable to 
create channel of type 'ZAP' (cause 17 - User busy)
    -- Zap/6-1 is ringing
    -- Zap/6-1 is ringing
    -- Zap/6-1 is ringing
    -- Hungup 'Zap/6-1'
  == Spawn extension (isdn-nt, 1, 1) exited non-zero on 'mISDN/1-1'


*CLI>
    -- Executing Dial("mISDN/1-1", "local/23&local/42") in new stack
    -- Called 23
    -- Called 42
    -- Executing Dial("Local/23 at default-3bed,2", "ZAP/6") in new stack
    -- Called 6
    -- Executing Dial("Local/42 at default-43a1,2", "ZAP/6") in new stack
Sep 25 10:09:15 NOTICE[4623]: app_dial.c:1056 dial_exec_full: Unable to 
create channel of type 'ZAP' (cause 17 - User busy)
  == Everyone is busy/congested at this time (1:1/0/0)
    -- Executing GotoIf("Local/42 at default-43a1,2", "1?BUSY|1") in new stack
    -- Goto (default,BUSY,1)
    -- Executing Playback("Local/42 at default-43a1,2", "auth-thankyou") in 
new stack
    -- Local/42 at default-43a1,1 answered mISDN/1-1
Sep 25 10:09:15 WARNING[4512]: channel.c:787 channel_find_locked: 
Avoided initial deadlock for '0x8241818', 10 retries!
    -- Playing 'auth-thankyou' (language 'de')
    -- Zap/6-1 is ringing
    -- Hungup 'Zap/6-1'






More information about the asterisk-dev mailing list