In mod_conference 1.6.x, all conference users could get the audio floor
regardless of the kind of video layer they were placed in.
In 1.8.x, the concept of a 'dedicated video layer' was introduced, such that
video layout slots with a reservation ID or a role ID are marked with the
'MFLAG_DED_VID_LAYER' member flag when a member is in the slot, and such
marked layers are prevented from becoming the conference audio/video floor
holder.
This makes sense for the video floor in all circumstances, and the audio floor
in most circumstances.
However, there are some circumstances where allowing users in these dedicated
video layers to become the conference audio floor holder is preferred, such as
when all slots in the layout have reservation IDs, and the audio floor events
are used to manage users in those slots manually.
This adds a conference profile flag, 'ded-vid-layer-audio-floor, which, when
enabled, allows conference members in dedicated video layers to become the
conference audio floor holder.
Add exec: flag, 'P' (for "Priority") to bind_digit_action so that a
match is returned as soon as it is found, without waiting for the
inter-digit timeout to expire.
This can be very useful where the system needs to be more responsive
to the user.
By default, if multiple bindings are enabled and one or more use a
regex, switch_ivr_dmachine_check_match waits for the inter-digit
timeout to expire before returning a match. This ensures overlapping
patterns, such as "^\d{4}$" and "^\12{3}$" can both be reliably matched
When the 'P' flag is specified with bind_digit_action, whose action is
exec, a match is returned as soon as the condition is satisfied,
regardless of whether or not a longer match may be possible if further
digits were entered.
For example:
<action application="bind_digit_action" data="test,~^*\d{2}$,
exec[P]:execute_extension,myextn,self,self"/>
<action application="bind_digit_action" data="test,~^#\d{2}$",
exec:execute_extension,myotherextn,self,peer"/>
The first example causes a match to be returned immediately
after the 2nd digit is received, whereas the second example
defaults to waiting for the inter-digit timeout to expire
before returning.
In cases where the 'P' flag is used with a regex and string, and both
are matched, the more explicit, string match will be returned.
For example:
<action application="bind_digit_action" data="test,~^*\d{2}$,
exec[P]:execute_extension,myextn,self,self"/>
<action application="bind_digit_action" data="test,*12,
exec[P]:execute_extension,myotherextn,self,self"/>
If "*12" is matched, myotherextn is executed, because "*12" is
more explicit/specific than "^*\d{2}$"
If the 'P'(riority) flag is not used, behaviour is unchanged from
previous versions. This ensures backward compatibility.
FS-9325 #resolve