[Home]

Summary:ASTERISK-16196: App Dial "crashes" when received a 484 (Address Incomplete) from a SIP Trunk
Reporter:Julio Moretti (juliomoretti)Labels:
Date Opened:2010-06-02 16:17:19Date Closed:2011-06-07 14:00:55
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Core/PBX
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:I'm trying to make a call over a SIP Trunk (oferred by one Voip Company). All works fine, but when I put a invalid (not expected number), the SIP Trunk come back with a 484 "Address Incomplete" from the SIP Trunk.
And at this time, the DIALPLAN comes out of any extension and priority, junst reporting:

  -- Got SIP response 484 "Address Incomplete" back from X.X.X.X
 == Everyone is busy/congested at this time (1:0/0/1)
 == Spawn extension (macro-dial-external, s, 5) exited non-zero on 'SIP/10000-00000000' in macro 'dial-external'
 == Spawn extension (Rota_Inicial, 02125405285, 3) exited INCOMPLETE on 'SIP/10000-00000000'
[2010-06-02 14:59:28.784] WARNING[4068]: pbx.c:4358 __ast_pbx_run: Channel 'SIP/10000-00000000' sent into invalid extension '02125405285' in context 'Rota_Inicial', but no invalid handler

I tried the same in a very simple DIALPLAN, something like (JUST AN EXAMPLE):
exten => _X., 1, Noop(Hello)
exten => _X., 2, Answer
exten => _X., 3, Dial(SIP/mysiptrunk/${EXTEN},300)
exten => _X., 4, Noop(${DIALSTATUS})

The result is allways the same: when calling a valid (expected) number, works fine including the "4" priority (in this example). When calling a non expected number for the sip trunk, never comes to the 4 priority, ending before, receiving the messages above.

Below comes all the real configuration of the situation exaplaned. But is just for illustration, because it occurs too in a simple way, like the example above.

****** ADDITIONAL INFORMATION ******

[macro-dial-denied]
exten => s, 1, Congestion()
exten => s, 2, Hangup()

[macro-dial-internal]
exten => s, 1, Set(DIAL_NUMBER=${ARG1})
exten => s, n, Dial(SIP/${DIAL_NUMBER},${DIAL_TIMEOUT})
exten => s, n, Hangup()

[macro-dial-external]
exten => s,             1, Set(DIAL_TRUNK=${ARG1})
exten => s,             n, Set(DIAL_NUMBER=${ARG2})
exten => s,             n, Set(DIAL_TRUNK_OPTIONS=${OUTGOING_DIAL_OPTIONS})
exten => s,             n, Set(MACRO_RESULT=CONTINUE)
exten => s,             n, Dial(${TRUNK_${DIAL_TRUNK}}/${DIAL_NUMBER},${DIAL_TIMEOUT},${DIAL_TRUNK_OPTIONS})
exten => s,             n, Noop(Discagem falhou por motivo com DIALSTATUS = ${DIALSTATUS} e HANGUPCAUSE = ${HANGUPCAUSE})
exten => s,             n, Goto(s-${DIALSTATUS},1)
exten => s-BUSY,        1, Noop(Discagem falhou - Retornou OCUPADO)
exten => s-BUSY,        n, Busy(20)
exten => s-ANSWER,      1, Noop(Chamada devidamente atendida - Agora é só deconectar)
exten => s-ANSWER,      n, Macro(hangup-treatment)
exten => s-NOANSWER,    1, Noop(Discagem falhou - Retornou NÃO ATENDE)
exten => s-NOANSWER,    n, Progress
exten => s-INVALIDNMBR, 1, Noop(Discagem falhou - Retornou NUMERO INVÃLIDO)
exten => s-INVALIDNMBR, n, Progress
exten => s-INVALIDNMBR, n, Busy(20)
exten => s-CHANGED,     1, Noop(Discagem falhou - Retornou NÃMERO MUDOU)
exten => s-CHANGED,     n, Busy(20)
exten => _s-.,          1, Set(RC=${IF($[${ISNULL(${HANGUPCAUSE})}]?0:${HANGUPCAUSE})})
exten => _s-.,          n, Goto(${RC},1)
exten => 17,            1, Goto(s-BUSY,1)
exten => 18,            1, Goto(s-NOANSWER,1)
exten => 22,            1, Goto(s-CHANGED,1)
exten => 23,            1, Goto(s-CHANGED,1)
exten => 28,            1, Goto(s-INVALIDNMBR,1)
exten => 484,           1, Goto(s-INVALIDNMBR,1)
exten => _X,            1, Goto(continue,1)
exten => _X.,           1, Goto(continue,1)
exten => continue,      1, Noop(Discagem externa falhou. Motivo: ${DIALSTATUS} HANGUPCAUSE: ${HANGUPCAUSE} - Pode falhar também pelos outros troncos)
exten => continue,      n, Noop(Continuando, se possível)
exten => h,             1, Macro(hangup-treatment)
exten => i,             1, Macro(hangup-treatment)
exten => e,             1, Macro(hangup-treatment)

[macro-hangup-treatment]
;Aqui pode ser colocado tratamento para o momento do HangUp
exten => s, 1,         Noop(Ação padrão de HangUp)
exten => s, n(theend), Hangup

[macro-allisbusy]
exten => s,1,Playback(all-circuits-busy-now&pls-try-call-later, noanswer)
exten => s,n,Congestion(20)
exten => s,n,Hangup

[macro-check-number]
exten => s, 1,          Set(DIAL_TRUNK=${ARG1})
exten => s, n,          Set(DIAL_NUMBER=${ARG2})
exten => s, n,          Set(LDC_POS=${ARG3})
exten => s, n,          GotoIf(${ISNULL(${LDC_TRUNK_${DIAL_TRUNK}})}?skipldc)
exten => s, n,          Set(DIAL_NUMBER=${DIAL_NUMBER:0:${MATH(${LDC_POS}-1)}}${LDC_TRUNK_${DIAL_TRUNK}}${DIAL_NUMBER:${MATH(${LDC_POS}-1)}})
exten => s, n(skipldc), MacroExit

[macro-check-override-context]
exten => s, 1, Set(USERLOGGED=${DB_EXISTS(AgentExt/${CALLERID(num)})})
exten => s, 2, GotoIf(${USERLOGGED}?4)
exten => s, 3, MacroExit
exten => s, 4, Set(HASOVERCONTEXT=${DB_EXISTS(AgentORP/${DB_RESULT})})
exten => s, 5, GotoIf(${HASOVERCONTEXT}?7)
exten => s, 6, MacroExit
exten => s, 7, Goto(${DB_RESULT},${MACRO_EXTEN},2)

[Rota_Inicial]
exten => _[2-5]XXXXXXX, 1, Macro(check-override-context)
exten => _[2-5]XXXXXXX, n, Macro(dial-external,1,${EXTEN})
exten => _[2-5]XXXXXXX, n, Macro(allisbusy)
exten => _[6-9]XXXXXXX, 1, Macro(check-override-context)
exten => _[6-9]XXXXXXX, n, Macro(dial-external,1,${EXTEN})
exten => _[6-9]XXXXXXX, n, Macro(allisbusy)
exten => _01N[2-5]XXXXXXX, 1, Macro(check-override-context)
exten => _01N[2-5]XXXXXXX, n, Macro(dial-denied)
exten => _01N[6-9]XXXXXXX, 1, Macro(check-override-context)
exten => _01N[6-9]XXXXXXX, n, Macro(dial-denied)
exten => _0NZ[2-5]XXXXXXX, 1, Macro(check-override-context)
exten => _0NZ[2-5]XXXXXXX, n, Macro(check-number,1,${EXTEN},${NAT_LDC_POS})
exten => _0NZ[2-5]XXXXXXX, n, Macro(dial-external,1,${DIAL_NUMBER})
exten => _0NZ[2-5]XXXXXXX, n, Macro(allisbusy)
exten => _0NZ[6-9]XXXXXXX, 1, Macro(check-override-context)
exten => _0NZ[6-9]XXXXXXX, n, Macro(check-number,1,${EXTEN},${NAT_LDC_POS})
exten => _0NZ[6-9]XXXXXXX, n, Macro(dial-external,1,${DIAL_NUMBER})
exten => _0NZ[6-9]XXXXXXX, n, Macro(allisbusy)
exten => _00., 1, Macro(check-override-context)
exten => _00., n, Macro(dial-denied)
include => orp-int-G4_Inicio
include => special-functions
Comments:By: Paul Belanger (pabelanger) 2010-06-02 16:39:47

Thanks for your comments. This does not appear to be a bug report and we are closing it. We appreciate the difficulties you are facing, but it would make more sense to raise your question in the support tracker, http://www.asterisk.org/support