Uploaded image for project: 'FreePBX'
  1. FreePBX
  2. FREEPBX-20196

FindMe/FollowMe list fails for one digit extensions

    XMLWordPrintable

    Details

    • 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

      Description

      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

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                Radnik Ivan Antic
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:

                  NextupJiraPlusStatus

                  Error rendering 'slack.nextup.jira:nextup-jira-plus-status'. Please contact your Jira administrators.