Call Loop

Hi There, I’ve recently been handed management of our Asterisk environment and unfortunately there is no one to ask about our configuration.

We’ve got AsteriskNOW installed running Asterisk version 1.6.2.11.

The problem I have at the moment is that our reception line keeps getting phantom calls which appear to be originating directly from the IVR.

From my scarce knowledge and the little bit of reading I’ve done it seems to be that what is happening is unanswered calls in the system are dropping externally but are routing back internally to the default line.

Below is my voicemenu which I think is the cause. I’d appreciate any help greatly.

Thanks

VoiceMenu

[quote][voicemenu-custom-1]
include = default
exten = s,1,NoOp(NEXALA)
exten = s,2,Answer
exten = s,3,Wait(1)
exten = s,4,Background(welcome_to_nexala)
exten = s,5,Wait(1)
exten = s,6,Background(if-u-know-ext-dial)
exten = s,7,Wait(1)
exten = s,8,Background(for_sales_press_one)
exten = s,9,Wait(1)
exten = s,10,Background(for_finance_and_admin_press_two)
exten = s,11,Wait(1)
exten = s,12,Background(or_press_0_for_reception)
exten = s,13,WaitExten(10)
exten = 1,1,Goto(default,2221,1)
exten = 2,1,Goto(default,2221,1)
exten = t,1,Goto(default,2218,1)[/quote]

[voicemenu-custom-1]
include = default
exten = s,1,NoOp(NEXALA)
exten = s,2,Answer
exten = s,3,Wait(1)
exten = s,4,Background(welcome_to_nexala)
exten = s,5,Wait(1)
exten = s,6,Background(if-u-know-ext-dial)
exten = s,7,Wait(1)
exten = s,8,Background(for_sales_press_one)
exten = s,9,Wait(1)
exten = s,10,Background(for_finance_and_admin_press_two)
exten = s,11,Wait(1)
exten = s,12,Background(or_press_0_for_reception)
exten = s,13,WaitExten(10)
exten = 1,1,Goto(default,2221,1)
exten = 2,1,Goto(default,2221,1)

What i miss in the ivr:
when someone presses 0, it isn’t caught.
exten = 0,1,Goto(default,extensio)

If someone presses an invalid number, it isn’t catched as well
exten = i,1,Goto(s,4)

If someone gives the extension, that is n’t caught as well
exten => _22XX(default,${EXTEN},1)

I want to know how people come to the ivr (the from-external context)
and the internal extenstion from the default context would be nice too

Here’s a full copy of my extensions.conf

Hopefully that should contain all the info you’re missing.

[quote];!
;! Automatically generated configuration file
;! Filename: extensions.conf (/etc/asterisk/extensions.conf)
;! Generator: Manager
;! Creation Date: Wed Feb 8 10:53:57 2012
;!
[general]
static = yes
writeprotect = no
autofallthrough = yes
clearglobalvars = no
priorityjumping = no

[globals]
trunk_1 = DAHDI/g1
trunk_2 = DAHDI/g2
FEATURES =
DIALOPTIONS =
RINGTIME = 20
FOLLOWMEOPTIONS =
PAGING_HEADER = Intercom
CID_trunk_1 =
GLOBAL_OUTBOUNDCID =
GLOBAL_OUTBOUNDCIDNAME =

[dundi-e164-canonical]

[dundi-e164-customers]

[dundi-e164-via-pstn]

[dundi-e164-local]
include => dundi-e164-canonical
include => dundi-e164-customers
include => dundi-e164-via-pstn

[dundi-e164-switch]
switch => DUNDi/e164

[dundi-e164-lookup]
include => dundi-e164-local
include => dundi-e164-switch

[macro-dundi-e164]
exten => s,1,Goto(${ARG1},1)
include => dundi-e164-lookup

[iaxtel700]
exten => _91700XXXXXXX,1,Dial(IAX2/${IAXINFO}@iaxtel.com/${EXTEN:1}@iaxtel)

[iaxprovider]

[trunkint]
exten => _9011.,1,Macro(dundi-e164,${EXTEN:4})
exten => _9011.,n,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})

[trunkld]
exten => _91NXXNXXXXXX,1,Macro(dundi-e164,${EXTEN:1})
exten => _91NXXNXXXXXX,n,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})

[trunklocal]
exten => _9NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})

[trunktollfree]
exten => _91800NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91888NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91877NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})
exten => _91866NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}})

[international]
ignorepat => 9
include => longdistance
include => trunkint

[longdistance]
ignorepat => 9
include => local
include => trunkld

[local]
ignorepat => 9
include => default
include => parkedcalls
include => trunklocal
include => iaxtel700
include => trunktollfree
include => iaxprovider

[macro-stdPrivacyexten]
exten => s,1,Dial(${ARG2},20|p)
exten => s,2,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,Voicemail(u${ARG1})
exten => s-NOANSWER,2,Goto(default,s,1)
exten => s-BUSY,1,Voicemail(b${ARG1})
exten => s-BUSY,2,Goto(default,s,1)
exten => s-DONTCALL,1,Goto(${ARG3},s,1)
exten => s-TORTURE,1,Goto(${ARG4},s,1)
exten => _s-.,1,Goto(s-NOANSWER,1)
exten => a,1,VoicemailMain(${ARG1})

[macro-page]
exten => s,1,ChanIsAvail(${ARG1}|js)
exten => s,n,GoToIf([${AVAILSTATUS} = “1”]?autoanswer:fail)
exten => s,n(autoanswer),Set(_ALERT_INFO=“RA”)
exten => s,n,SIPAddHeader(Call-Info: Answer-After=0)
exten => s,n,NoOp()
exten => s,n,Dial(${ARG1}||)
exten => s,n(fail),Hangup

[demo]
exten => s,1,Wait(1)
exten => s,n,Answer
exten => s,n,Set(TIMEOUT(digit)=5)
exten => s,n,Set(TIMEOUT(response)=10)
exten => s,n(restart),BackGround(demo-congrats)
exten => s,n(instruct),BackGround(demo-instruct)
exten => s,n,WaitExten
exten => 2,1,BackGround(demo-moreinfo)
exten => 2,n,Goto(s,instruct)
exten => 3,1,Set(LANGUAGE()=fr)
exten => 3,n,Goto(s,restart)
exten => 1000,1,Goto(default,s,1)
exten => 1234,1,Playback(transfer,skip)
exten => 1234,n,Macro(stdexten,1234,${CONSOLE})
exten => 1235,1,Voicemail(u1234)
exten => 1236,1,Dial(Console/dsp)
exten => 1236,n,Voicemail(u1234)
exten => #,1,Playback(demo-thanks)
exten => #,n,Hangup
exten => t,1,Goto(#,1)
exten => i,1,Playback(invalid)
exten => 500,1,Playback(demo-abouttotry)
exten => 500,n,Dial(IAX2/guest@misery.digium.com/s@default)
exten => 500,n,Playback(demo-nogo)
exten => 500,n,Goto(s,6)
exten => 600,1,Playback(demo-echotest)
exten => 600,n,Echo
exten => 600,n,Playback(demo-echodone)
exten => 600,n,Goto(s,6)
exten => 76245,1,Macro(page,SIP/Grandstream1)
exten => _7XXX,1,Macro(page,SIP/${EXTEN})
exten => 7999,1,Set(TIMEOUT(absolute)=60)
exten => 7999,2,Page(Local/Grandstream1@page&Local/Xlite1@page&Local/1234@page/n|d)
exten => 8500,1,VoicemailMain
exten => 8500,n,Goto(s,6)

[page]
exten => _X.,1,Macro(page,SIP/${EXTEN})

[macro-trunkdial]
exten = s,1,set(CALLERID(all)=${IF($["${LEN(${CALLERID(num)})}" > “6”]?${CALLERID(all)}:${ARG2})})
exten = s,n,Dial(${ARG1})
exten = s,n,Goto(s-${DIALSTATUS},1)
exten = s-NOANSWER,1,Hangup
exten = s-BUSY,1,Hangup
exten = _s-.,1,NoOp

[DID_trunk_2_default]
;include = default
exten => s,1,Wait(1)
exten => s,2,Answer
exten => s,3,Goto(voicemenu-custom-1,s,1)

[DID_trunk_1_default]
;include = default
exten => s,1,Wait(1)
exten => s,2,Answer
exten => s,3,Goto(voicemenu-custom-1,s,1)

[default]
exten = _#2XXX,1,Set(MBOX=${EXTEN:1}@default)
exten = _#2XXX,n,VoiceMail(${MBOX})
exten = a,1,VoicemailMain(${MBOX})
exten = 2999,1,VoiceMailMain(${CALLERID(num)}@default)
include = conferences
exten = o,1,Goto(default,2218,1)
; New Includes
include = DID_trunk_2_default
include = DID_trunk_1_default

[conferences]
exten = 8000,1,MeetMe(${EXTEN},MI)
exten = 8001,1,MeetMe(8000,MIaA)

[ringgroups]

[queues]

[voicemenus]
;exten = 7000,1,Goto(voicemenu-custom-1|s|1)
;exten = 7000,1,Goto(voicemenu-custom-1,s,1)
exten = 7000,1,Goto(voicemenu-custom-1,s,1)

[voicemailgroups]

[directory]

[page_an_extension]
exten = _**XXXX,1,Macro(pagingintercom,Local/${EXTEN:2},qd)

[pagegroups]
exten = 3217,1,Macro(pagingintercom,SIP/2217,d)
exten = 3222,1,Macro(pagingintercom,SIP/2222,d)
exten = 3224,1,Macro(pagingintercom,SIP/2224,d)

[macro-trunkdial-failover-0.3]
exten = s,1,GotoIf($[${LEN(${FMCIDNUM})} > 6]?1-fmsetcid,1)
exten = s,2,GotoIf($[${LEN(${GLOBAL_OUTBOUNDCIDNAME})} > 1]?1-setgbobname,1)
exten = s,3,Set(CALLERID(num)=${IF($[${LEN(${CID_${CALLERID(num)}})} > 2]?${CID_${CALLERID(num)}}:)})
exten = s,n,GotoIf($[${LEN(${CALLERID(num)})} > 6]?1-dial,1)
exten = s,n,Set(CALLERID(all)=${IF($[${LEN(${CID_${ARG3}})} > 6]?${CID_${ARG3}}:${GLOBAL_OUTBOUNDCID})})
exten = s,n,Goto(1-dial,1)
exten = 1-setgbobname,1,Set(CALLERID(name)=${GLOBAL_OUTBOUNDCIDNAME})
exten = 1-setgbobname,n,Goto(s,3)
exten = 1-fmsetcid,1,Set(CALLERID(num)=${FMCIDNUM})
exten = 1-fmsetcid,n,Set(CALLERID(name)=${FMCIDNAME})
exten = 1-fmsetcid,n,Goto(1-dial,1)
exten = 1-dial,1,Dial(${ARG1})
exten = 1-dial,n,Gotoif(${LEN(${ARG2})} > 0 ?1-${DIALSTATUS},1:1-out,1)
exten = 1-CHANUNAVAIL,1,Dial(${ARG2})
exten = 1-CHANUNAVAIL,n,Hangup()
exten = 1-CONGESTION,1,Dial(${ARG2})
exten = 1-CONGESTION,n,Hangup()
exten = 1-out,1,Hangup()

[CallingRule_OUTGOING-ANALOG]
exten = _0X!,1,Macro(trunkdial-failover-0.3,${trunk_1}/${EXTEN:1},trunk_1,)
;exten = _0X!,1,Macro(trunkdial-failover-0.3,${trunk_1}/${,${EXTEN:1})},${trunk_2}/${EXTEN:1},trunk_1,trunk_2)

[DLPN_DialPlan1]
include = CallingRule_OUTGOING-ANALOG
include = default
include = parkedcalls
include = conferences
include = ringgroups
include = voicemenus
include = queues
include = voicemailgroups
include = directory
include = pagegroups
include = page_an_extension
exten => 1000,1,Answer
exten => 1000,2,MusicOnHold()

[macro-stdexten-followme]
exten = s,1,Answer
exten = s,2,Set(ORIG_ARG1=${ARG1})
exten = s,3,Dial(${ARG2},${RINGTIME},${DIALOPTIONS})
exten = s,4,Set(__FMCIDNUM=${CALLERID(num)})
exten = s,5,Set(__FMCIDNAME=${CALLERID(name)})
exten = s,6,Followme(${ORIG_ARG1},${FOLLOWMEOPTIONS})
exten = s,7,Voicemail(${ORIG_ARG1},u)
exten = s-NOANSWER,1,Voicemail(${ORIG_ARG1},u)
exten = s-BUSY,1,Voicemail(${ORIG_ARG1},b)
exten = s-BUSY,2,Goto(default,s,1)
exten = _s-.,1,Goto(s-NOANSWER,1)
exten = a,1,VoicemailMain(${ORIG_ARG1})

[macro-pagingintercom]
exten = s,1,SIPAddHeader(Alert-Info: ${PAGING_HEADER})
exten = s,2,Page(${ARG1},${ARG2})
exten = s,3,Hangup

[asterisk_guitools]
exten = executecommand,1,System(${command})
exten = executecommand,n,Hangup()
exten = record_vmenu,1,Answer
exten = record_vmenu,n,Playback(vm-intro)
exten = record_vmenu,n,Record(${var1},0,500,k)
exten = record_vmenu,n,Playback(vm-saved)
exten = record_vmenu,n,Playback(vm-goodbye)
exten = record_vmenu,n,Hangup
exten = play_file,1,Answer
exten = play_file,n,Playback(${var1})
exten = play_file,n,Hangup

[queue-member-manager]
exten = handle_member,1,Verbose(2, Looping through queues to log in or out queue members)
exten = handle_member,n,Set(thisActiveMember=${CHANNEL(channeltype)}/${CHANNEL(peername)})
exten = handle_member,n,Set(queue_field=1)
exten = handle_member,n,Set(thisQueueXtn=${CUT(QUEUES,${queue_field})})
exten = handle_member,n,While($[${EXISTS(${thisQueueXtn})}])
exten = handle_member,n,Macro(member-loginlogout)
exten = handle_member,n,Set(queue_field=$[${queue_field} + 1])
exten = handle_member,n,Set(thisQueueXtn=${CUT(QUEUES,${queue_field})})
exten = handle_member,n,EndWhile()

[macro-member-loginlogout]
exten = s,1,Verbose(2, Logging queue member in or out of the request queue)
exten = s,n,Set(thisQueue=${thisQueueXtn})
exten = s,n,Set(queueMembers=${QUEUE_MEMBER_LIST(${thisQueue})})
exten = s,n,MacroIf("${queueMembers}" = “”]?q_login)
exten = s,n,Set(field=1)
exten = s,n,Set(logged_in=0)
exten = s,n,Set(thisQueueMember=${CUT(queueMembers,${field})})
exten = s,n,While($[${EXISTS(${thisQueueMember})}])
exten = s,n,GotoIf($["${thisQueueMember}" != “${thisActiveMember}”]?check_next)
exten = s,n,Set(logged_in=1)
exten = s,n,ExitWhile()
exten = s,n(check_next),Set(field=$[${field} + 1])
exten = s,n,Set(thisQueueMember=${CUT(queueMembers,${field})})
exten = s,n,EndWhile()
exten = s,n,MacroIf($[${logged_in} = 0]?q_login:q_logout)

[macro-q_login]
exten = s,1,Verbose(2, Logging ${thisActiveMember} into the ${thisQueue} queue)
exten = s,n,AddQueueMember(${thisQueue},${thisActiveMember})
exten = s,n,Playback(silence/1)
exten = s,n,ExecIf($["${AQMSTATUS}" = “ADDED”]?Playback(agent-loginok):Playback(an-error-has-occurred))

[macro-q_logout]
exten = s,1,Verbose(2, Logged ${thisActiveMember} out of ${thisQueue} queue)
exten = s,n,RemoveQueueMember(${thisQueue},${thisActiveMember})
exten = s,n,Playback(silence/1)
exten = s,n,ExecIf($["${AQMSTATUS}" = “REMOVED”]?Playback(agent-loggedoff):Playback(an-error-has-occurred))

[macro-stdexten]
exten = s,1,Set(_DYNAMIC_FEATURES=${FEATURES})
exten = s,2,Set(ORIG_ARG1=${ARG1})
exten = s,3,GotoIf($["${FOLLOWME
${ARG1}}" = “1”]?6:4)
exten = s,4,Dial(${ARG2},${RINGTIME},${DIALOPTIONS})
exten = s,5,Goto(s-${DIALSTATUS},1)
exten = s,6,Macro(stdexten-followme,${ARG1},${ARG2})
exten = s-NOANSWER,1,Voicemail(${ORIG_ARG1},u)
exten = s-NOANSWER,2,Goto(default,s,1)
exten = s-BUSY,1,Voicemail(${ORIG_ARG1},b)
exten = s-BUSY,2,Goto(default,s,1)
exten = _s-.,1,Goto(s-NOANSWER,1)
exten = a,1,VoicemailMain(${ORIG_ARG1})

[voicemenu-custom-1]
include = default
exten = s,1,NoOp(NEXALA)
exten = s,2,Answer
exten = s,3,Wait(1)
exten = s,4,Background(welcome_to_nexala)
exten = s,5,Wait(1)
exten = s,6,Background(if-u-know-ext-dial)
exten = s,7,Wait(1)
exten = s,8,Background(for_sales_press_one)
exten = s,9,Wait(1)
exten = s,10,Background(for_finance_and_admin_press_two)
exten = s,11,Wait(1)
exten = s,12,Background(or_press_0_for_reception)
exten = s,13,WaitExten(10)
exten = 1,1,Goto(default,2221,1)
exten = 2,1,Goto(default,2221,1)
exten = t,1,Goto(default,2218,1)[/quote]

Bump.

Does anyone have any help they can give me here?

This appears to be an AsteriskNow question, not an Asterisk one. You haven’t provided CLI traces, etc.

From what I understand the problem is in the Voicemenu which was not done through the AsteriskNow GUI but was imported from the original Asterisk install.

I’ll see if I can get some CLI traces of the calls.