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
add var=val member lookup usable wherver member_id is valid in api commands
add bgimg to layouts with api command or config for global setting
fix bug with overlap layouts combined with odd sized layers
improve switch_img_fit to take a modifier for fit, streach or both at once
"USAGE ERROR": bad application arguments
"GRAMMAR ERROR": speech recognizer failed to load grammar
"ASR INIT ERROR": speech recognizer failed to allocate a session
"ERROR": any other errors
This is useful for determining that play_and_detect_speech failed because the recognizer is out of licenses
giving the developer a chance to fall back to traditional DTMF menu navigation.
Use it to add an image to the write stream to see a recording banner on video echoed back to you during recording.
ARGS: <file> [<position>] [<opacity 0-255>]
POSITIONS:
left-top
left-mid
left-bot
center-top
center-mid
center-bot
right-top
right-mid
right-bot
<extension name="example">
<condition field="destination_number" expression="^overlay$">
<action application="answer"/>
<action application="video_write_overlay" data="/path/to/img.png"/>
<action application="record" data="/data/file.mp4"/>
<action application="stop_video_write_overlay"/>
</condition>
</extension>
Get filehandles working with video in some cases (if using vlc://):
mod_conference for play and record video (will record the canvas in mix mode or floor holder in non-mix mode)
regular playback app should be able to play vlc streams
Add no-minimize-encoding member flag so particilar memebers can opt out of that setting and still get their own encoded stream (for bw related needs)
TODO:
mod_vlc is a mess. Find a way to merge video_context and file_context. They are very similar and they are intertwined and messy.
Find out why vlc creates messed up mp4 files that don't play everywhere
Get VLC so it can record aac, mp4x webm
DTMF-Source may have the following values:
APP : injected by application (send_dtmf, etc)
ENDPOINT : detected by endpoint signaling (like SIP INFO)
INBAND_AUDIO : detected by start_dtmf, spandsp_start_dtmf, etc
RTP : detected as 2833/4733 telephone event
UNKNOWN : unknown source
One possible use of this header is to determine telephone events
are being received, and if so, disable inband detection.
Add channel variables eavesdrop_bridge_aleg and eavesdrop_bridge_bleg,
and if one is set to true on the eavesdrop channel, bridge that leg from
the target. If neither is specified, bridge both.