Dynamic Features not working after upgrading freepbx to 16.0.40.7

Hey! I’ve been using freepbx for a while and I do have a requirement to setup an extension with a pattern of:

<ext>*<ext>#

where the <ext> can be as many as possible

e.g:
612*613*614#

From the above pattern, the symbol “*” is used to differentiate each extensions and the symbol “#” detects the end. When someone dial this pattern, it will dial each extension and put them in a conference room. I was able to setup this by extracting each extension and then use System() call to put the callee extension into a conference in from another context

  same => n,Set(result=${SHELL(asterisk -rx "pjsip show endpoint ${extension}" | wc -l)})
  same => n,GotoIf($[${result} <= 2]?handle_trunk:handle_normal)

  same => n(handle_trunk),Set(TRUNK_COUNTER=$[${TRUNK_COUNTER} + 1])
  same => n,System(asterisk -rx "channel originate Local/${extension}@individual-call-trunk extension s@conference-join ${CONFID}")
  same => n,Goto(end)
  
  same => n(handle_normal),System(asterisk -rx "channel originate Local/${extension}@individual-call extension s@conference-join ${CONFID}")
  same => n,Goto(end)

From the code above, I handle trunk and normal extension differently. Below is the context for “individual-call” and “individual-call-trunk”:

[individual-call]
exten => _X.,1,Set(CALLERID(num)=${GLOBAL(CALLERIDNUM)})
same => n,Dial(PJSIP/${EXTEN},50)

[individual-call-trunk]
exten => _X.,1,Set(CALLERID(num)=${GLOBAL(CALLERIDNUM)})
same => n,Goto(from-internal-additional,${EXTEN},1)

However, I have a new requirement which is to add participant during the conference.Previously, I managed to half achieve this using dynamic features by adding a custom feature code “*7” in features_applicationmap_custom.conf that will Goto a defined context that handles adding new participant. What I mean by half achieve is, only the callee are able to use this feature code to add new participant but not the caller.

But after upgrading freepbx to version 16.0.40.7, this is no longer working.

This is my previous setting:

In individual-call context, I have put this line:

Set(__DYNAMIC_FEATURES=addparticipant)

This is my add-participant context:

[add-participant]
exten => s,1,NoOp(Adding a participant to the conference)
same => n,NoOp(CONFID=${CONFID})
same => n,Read(newext,"enter-conf-call-number",10,,60)
same => n,GotoIf($["${newext}" = ""]?end)
same => n,System(asterisk -rx "channel originate Local/${newext}@individual-call extension s@conference-join ${CONFID}")
same => n(end),Return()

my features_applicationmap_custom.conf:

addparticipant=>*7,both,GoSub(add-participant,s,1)

Error from asterisk log:

features_config.c: Unknown DYNAMIC_FEATURES item ‘addparticipant’ on channel Local/641@individual-call-000DDDD4;2.
features_config.c: Unknown DYNAMIC_FEATURES item ‘addparticipant’ on channel PJSIP/641-00000D14

Anyone knows why this is no longer working? Appreciate it if anyone can point out what I’m doing wrong here…