Commit Graph

432 Commits

Author SHA1 Message Date
Andrey Volk 61089e8f24 [core] Improve session recording thread performance. 2021-10-23 21:59:53 +03:00
Seven Du 623fecd599 [Core] Add partial Asr support 2021-10-23 21:59:49 +03:00
Dragos Oancea 5aabb54f68 [core] eavesdrop: init L16 codec at right ptime in certain conditions.
[core] eavesdrop: avoid eavesdropping on itself and return error.

[core] eavesdrop: adjust buffer operations for ptime mismatch and for when ptimes are the same.

[core] eavesdrop: add buffering based on LCM (Least Common Multiple) when ptime mismatch,
and have audio write thread enabled when ptime eavesdropee < ptime eavesdropper.

[unit-tests] add unit-tests for eavesdrop.
2021-03-17 00:47:27 +03:00
Dragos Oancea 3509ae537e [core] native tap fix (pass the copy of the frame to switch_core_session_write_frame() so it does not get encoded) 2021-03-17 00:29:17 +03:00
Andrey Volk f09ed875b9 [Core] Fix buffer race in switch_ivr_eavesdrop_session() 2021-03-16 23:14:49 +03:00
Dragos Oancea b774c5e23f [core] eavesdrop: reduce lock contention, fix error condition + enable eavesdrop stereo 2021-03-16 20:26:56 +03:00
Andrey Volk 2b8fa12baa [Core] Fix hangup race in recording_follow_transfer. 2020-08-17 21:07:11 +04:00
Seven Du e0aef355db [core] use switch_core_session_get_partner in sched_hangup to hangup channel also in signalling bond state 2020-05-07 02:18:56 +04:00
Andrey Volk 10aad69e1b
Merge pull request #347 from dragos-oancea/switch_ivr_async-status-val-never-read
[core] scan-build: Value stored to 'status' is never read - switch_ivr_eavesdrop_session()
2020-02-16 02:07:37 +04:00
Andrey Volk c3ee0c17cb [Core] Fix various dead assignments. 2020-02-16 00:59:37 +04:00
Dragos Oancea c0b833fe74 [core] scan-build: Value stored to 'status' is never read - switch_ivr_eavesdrop_session() 2020-02-15 18:10:26 +00:00
Dragos Oancea 4e8c70e33b [core] scan-build: Value stored to 'status' is never read - switch_ivr_session_echo() 2020-02-13 19:08:21 +00:00
Dragos Oancea b446dc7370 [core] scan-build: Dereference of null pointer (loaded from variable 'result') - switch_ivr_play_and_detect_speech() 2020-02-12 10:23:32 +00:00
Andrey Volk 1428e9a94b
Merge pull request #283 from dragos-oancea/eavesdrop_callback-val-never-read
[core] scan-build: Value stored to 'frame' during its initialization is never read - eavesdrop_callback()
2020-02-01 02:32:44 +04:00
Dragos Oancea 513c441d8e [core] scan-build: Value stored to 'frame' during its initialization is never read - eavesdrop_callback() 2020-01-31 21:56:58 +00:00
Dragos Oancea 309cd1a974 [core] scan-build: Value stored to 'master' is never read - switch_ivr_broadcast() 2020-01-30 22:25:43 +00:00
Dragos Oancea 301110f596 [core] scan-build: Value stored to 'status' is never read 2020-01-28 23:18:28 +00:00
Chris Rienzo 9c3f9a9a50 [core] Add SMBF_FIRST flag which forces media bug to front of the list. Add 'f' flag to switch_ivr_displace_session to add displace as first operation on the media stream. (#76) 2019-12-31 03:14:31 +04:00
Seven Du 00967290b9 [core] support partial speech events 2019-12-31 02:14:48 +04:00
Chris Rienzo 5801df9333 FS-11970 [core] Check if detection is done in switch_ivr_play_and_detect_speech() final loop. 2019-07-29 23:08:15 -04:00
Anthony Minessale eb31e17e6c FS-11910: [mod_dptools] add native eavesdrop mode. use app native_eavesdrop args <uuid> [read|write] ... default is read with no flag. Must be same codecs 2019-07-17 23:38:23 +04:00
Seven Du 4ce6620988 FS-11754 sync audio before resume detect to improve continuous detection 2019-07-17 23:06:00 +04:00
Andrey Volk 554519f0e4 FS-11553: [core] do not discard the file if we are appending 2019-07-16 23:21:32 +04:00
Andrey Volk cdea1c13ae FS-11903: Fix errors reported by PVS-Studio Static Code Analyzer for switch_ivr_async.c 2019-07-15 23:41:59 +04:00
lazedo 168a3c068b FS-10968 [core] create recording vars
* moves channel vars starting with Recording-Variable- to record_helper
* uses record_helper variables for RECORD_START/STOP events
2019-03-26 22:28:13 +00:00
Mariah Yang 6ac8105944 FS-11601: Fix some core function prototype 2019-01-09 08:44:41 -05:00
Andrey Volk 82452988e2 FS-11547: [core] Fix broken record_sample_rate variable. 2018-12-21 02:17:27 +04:00
Dragos Oancea ef123b6c2e FS-11532: fix crash (87d4a6a0) 2018-12-10 14:38:46 -05:00
lazedo 0e0d588144 FS-11312 [core] prevent double firing record_start event 2018-10-16 07:27:40 +00:00
Seven Du b77f8444c6 FS-11406 #resolve allow displace session replace both read and write audio
uuid_displace cannot replace audio on both direction at the same time,
this patch add a w mux flag so when both rw used at the same time,
it will displace both directions, then both sides can hear the same audio.
2018-09-24 18:56:37 +00:00
Mike Jerris b96b109501 FS-11393: [core] set record_trimmed_ms at the end of record_session if the file interface has this info available 2018-09-19 17:13:00 +00:00
Mike Jerris 8cd4b16451 Merge pull request #1453 in FS/freeswitch from ~HUNYI/freeswitch:bugfix/FS-10826-fix-sample-rate to master
* commit '87d4a6a0c8efcd1104875a972573cb489d179bd7':
  FS-10826 [core] Fix file handler sample rate after transfer
2018-09-05 22:29:03 +00:00
Seven Du 9056af8785 FS-11320 #resolve pass json string as param to ASR module 2018-08-13 19:00:39 +00:00
Mariah Yang 16c39d874e FS-11110 fix for resume detect on next detect 2018-08-13 18:58:47 +00:00
Anthony Minessale bf6b61f911 FS-11264: [freeswitch-core] Remove old speech handle when asr failure happens #resolve 2018-07-24 07:21:58 +00:00
Anthony Minessale 611e38e8cb FS-11165: [freeswitch-core] Add more regex handling to dmachine -- squashme #resolve 2018-07-24 07:21:53 +00:00
Anthony Minessale 13e77721bc FS-11165: [freeswitch-core] Add more regex handling to dmachine #resolve 2018-07-24 07:21:53 +00:00
Seven Du d48db7c979 FS-11110 #resolve resume detect on next detect 2018-07-24 07:21:50 +00:00
Hunyadvári Péter 87d4a6a0c8 FS-10826 [core] Fix file handler sample rate after transfer 2017-12-06 12:51:10 +01:00
Anthony Minessale 4e5219cd27 FS-10503: [mod_av] mod_av split audio to two channels #resolve 2017-08-11 13:23:15 -05:00
Anthony Minessale d3937624c4 FS-10573: [freeswitch-core] Native recording causes segfault #resolve 2017-08-11 13:05:11 -05:00
Anthony Minessale 513b9f522a FS-10249: [mod_av] Audio gradually falls behind video in recordings 2017-05-19 18:23:42 -05:00
Anthony Minessale e76ccc3955 FS-10249: [mod_av] Audio gradually falls behind video in recordings 2017-05-19 17:38:08 -05:00
Anthony Minessale de8c37975b FS-10131: [freeswitch-core] Incorrect video decode flags in some places #resolve 2017-03-13 14:50:50 -05:00
Anthony Minessale 35865bd90c FS-10118: [freeswitch-core] Race conditions from lack of error checking in switch_core_session_read_lock #resolve 2017-03-09 13:22:25 -06:00
Sergey Safarov df1ab07ca4 FS-9924: Removed extra space in source files 2017-02-09 23:59:49 -05:00
Anthony Minessale 9dba32410f FS-10015: [freeswitch-core] Add variable to allow firing of text events #resolve 2017-02-06 16:37:59 -06:00
Andy Newlands b5266ed6b4 FS-9325 [mod_dptools] Priority flag for faster bind_digit_action matches
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
2016-11-08 13:47:37 +00:00
Anthony Minessale c409499cd9 FS-9576 #resolve [Add Realtime Text] 2016-09-27 16:40:43 -05:00
Michael Jerris 9a63a9731e FS-9042: [core] fix assert when recording native file 2016-04-08 12:40:15 -05:00