-
Type:
Bug
-
Status: Open
-
Priority:
Minor
-
Resolution: Unresolved
-
Affects Version/s: 13
-
Fix Version/s: None
-
Component/s: Follow Me
-
Labels:None
-
Asterisk Version:11.25.3
-
Distro Version:10.13.66-22
-
Distro:FreePBX Distro
Hi devs,
it seems that if the extension is one digit, whichever number is in the findme/followme list it will have an error, for example:
pbx.c:6863 __ast_pbx_run: Channel 'SIP/32-00000008' sent to invalid extension but no invalid handler: context,exten,priority=followme-check,8,1
two or tree digit extensions have no issues with fm/fm list
workaround is having two contexts in extensions_custom.conf
[followme-check]
exten => _X,1(FMCID),Gosub(followme-sub,${EXTEN},1())
exten => _X,n,Noop(Should never get here)
exten => _X,n,Hangup
;--== end of [followme-check] ==--;
[followme-sub]
exten => _X,1,Macro(user-callerid,)
exten => _X,n,Set(DIAL_OPTIONS=${DIAL_OPTIONS}I)
exten => _X,n,Set(CONNECTEDLINE(num,i)=${EXTEN})
exten => _X,n,Gosub(sub-presencestate-display,s,1(${EXTEN}))
exten => _X,n,Set(CONNECTEDLINE(name)=${DB(AMPUSER/${EXTEN}/cidname)}${PRESENCESTATE_DISPLAY})
exten => _X,n,Set(FM_DIALSTATUS=${EXTENSION_STATE(${EXTEN}@ext-local)})
exten => _X,n,Set(__EXTTOCALL=${EXTEN})
exten => _X,n,Set(__PICKUPMARK=${EXTEN})
exten => _X,n,Macro(blkvm-setifempty,)
exten => _X,n,GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov)
exten => _X,n,Macro(blkvm-set,reset)
exten => _X,n,Set(__NODEST=)
exten => _X,n(skipov),Set(RRNODEST=${NODEST})
exten => _X,n(skipvmblk),Set(__NODEST=${EXTEN})
exten => _X,n,GosubIf($[${DB_EXISTS(AMPUSER/${EXTEN}/followme/changecid)} = 1 & "${DB(AMPUSER/${EXTEN}/followme/changecid)}" != "default" & "${DB(AMPUSER/${EXTEN}/followme/changecid)}" != ""]?sub-fmsetcid,s,1())
exten => _X,n,GotoIf($[ "${DB(AMPUSER/${EXTEN}/followme/grppre)}" = "" ]?skipprepend)
exten => _X,n,Macro(prepend-cid,${DB(AMPUSER/${EXTEN}/followme/grppre)})
exten => _X,n(skipprepend),Set(RecordMethod=Group)
exten => _X,n(checkrecord),Gosub(sub-record-check,s,1(exten,${EXTEN},))
exten => _X,n,GotoIf($[ $["${DB(AMPUSER/${EXTEN}/followme/dring)}" = ""] | $["${ALERT_INFO}"!=""] ]?skipdring)
exten => _X,n,Set(DRING=${DB(AMPUSER/${EXTEN}/followme/dring)})
exten => _X,n,Set(__ALERT_INFO=${STRREPLACE(DRING,\;,\\;)})
exten => _X,n(skipdring),Set(STRATEGY=${DB(AMPUSER/${EXTEN}/followme/strategy)})
exten => _X,n,Set(__RVOL=${DB(AMPUSER/${EXTEN}/followme/rvolume)})
exten => _X,n,GotoIf($["${CUT(STRATEGY,-,1)}"="ringallv2"]?skipsimple)
exten => _X,n,GotoIf($[$[ "${DB(AMPUSER/${EXTEN}/followme/prering)}" = "0" ] | $[ "${DB(AMPUSER/${EXTEN}/followme/prering)}" = "" ]] ?skipsimple)
exten => _X,n,Macro(simple-dial,${EXTEN},${DB(AMPUSER/${EXTEN}/followme/prering)})
exten => _X,n(skipsimple),Set(RingGroupMethod=${STRATEGY})
exten => _X,n,Set(_FMGRP=${EXTEN})
exten => _X,n,GotoIf($[$["${DB(AMPUSER/${EXTEN}/followme/annmsg)}" = ""] | $["${DIALSTATUS}" = "ANSWER"] | $["foo${RRNODEST}" != "foo"]]?DIALGRP)
exten => _X,n,Answer
exten => _X,n,Wait(1)
exten => _X,n,Playback(${DB(AMPUSER/${EXTEN}/followme/annmsg)})
exten => _X,n(DIALGRP),ExecIf($[$["${DB(AMPUSER/${EXTEN}/followme/ringing)}"="Ring"] | $["${DB(AMPUSER/${EXTEN}/followme/ringing)}"=""]]?Set(DOPTS=${DIAL_OPTIONS}):Set(DOPTS=m(${DB(AMPUSER/${EXTEN}/followme/ringing)})${STRREPLACE(DIAL_$
exten => _X,n,GotoIf($[("${DB(AMPUSER/${EXTEN}/followme/grpconf)}"="ENABLED") | ("${FORCE_CONFIRM}"!="") ]?doconfirm)
exten => _X,n,GotoIf($["${CUT(STRATEGY,-,1)}"="ringallv2"]?ringallv21)
exten => _X,n,Macro(dial,${DB(AMPUSER/${EXTEN}/followme/grptime)},${DOPTS},${DB(AMPUSER/${EXTEN}/followme/grplist)})
exten => _X,n,Goto(nextstep)
exten => _X,n(ringallv21),Macro(dial,$[ ${DB(AMPUSER/${EXTEN}/followme/grptime)} + ${DB(AMPUSER/${EXTEN}/followme/prering)} ],${DOPTS},${DB(AMPUSER/${EXTEN}/followme/grplist)})
exten => _X,n,Goto(nextstep)
exten => _X,n(doconfirm),GotoIf($["${CUT(STRATEGY,-,1)}"="ringallv2"]?ringallv22)
exten => _X,n,Macro(dial-confirm,${DB(AMPUSER/${EXTEN}/followme/grptime)},${DOPTS},${DB(AMPUSER/${EXTEN}/followme/grplist)},${EXTEN})
exten => _X,n,Goto(nextstep)
exten => _X,n(ringallv22),Macro(dial-confirm,$[ ${DB(AMPUSER/${EXTEN}/followme/grptime)} + ${DB(AMPUSER/${EXTEN}/followme/prering)} ],${DOPTS},${DB(AMPUSER/${EXTEN}/followme/grplist)},${EXTEN})
exten => _X,n(nextstep),Set(RingGroupMethod=)
exten => _X,n,GotoIf($["foo${RRNODEST}" != "foo"]?nodest)
exten => _X,n,Set(__NODEST=)
exten => _X,n,Set(__PICKUPMARK=)
exten => _X,n,Macro(blkvm-clr,)
exten => _X,n,Set(DIALSTATUS=${IF($["${FM_DIALSTATUS}"="NOT_INUSE"&"${DIALSTATUS}"!="CHANUNAVAIL"]?NOANSWER:${IF($["${DIALSTATUS}"="CHANUNAVAIL"|"${FM_DIALSTATUS}"="UNAVAILABLE"|"${FM_DIALSTATUS}"="UNKNOWN"|"${FM_DIALSTATUS}"="INVALID"$
exten => _X,n,GotoIf($["${DB(AMPUSER/${EXTEN}/followme/postdest)}"=""]?dohangup)
exten => _X,n,Goto(${DB(AMPUSER/${EXTEN}/followme/postdest)})
exten => _X,n(dohangup),Hangup
exten => _X,n(nodest),Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST})
exten => _X,n,Return()
;--== end of [followme-sub] ==--;
so basicaly,
_X instead of _X. in original contexts in extensions_additional.conf
best regards,
Ivan