2457 Commits

Author SHA1 Message Date
Brian West
291da11322 FS-10867: [freeswitch-core] Prevent stack smash when queing multiple sound files without event-lock #resolve 2018-07-24 07:21:38 +00:00
Seven Du
a83990a5aa tweak av and ensure first image write at pts = 0 to avoid a black screen 2018-07-24 07:21:37 +00:00
Piotr Gregor
03d8aa4e9a FS-10853: Fix failed build for mod_dingaling
Fixes build but must be tested at runtime.
2018-07-24 07:21:34 +00:00
Piotr Gregor
1fdd58f533 FS-10778: Add support for MKI to SRTP
MKI support for SRTP has been tested on calls to/from
Telnyx's Skype for Business from/to local extension registered to FS
and between Skype for Business clients connected to FreeSWITCH.

SfB -> FreeSWITCH -> User 1004
   SRTP           RTP
   with
   MKI

SfB <- FreeSWITCH <- User 1004
   SRTP           RTP

SfB <-> FreeSWITCH <-> SfB
 SRTP/MKI      SRTP/MKI

Channel variable "rtp_secure_media_mki" was added to drive offering
of MKI on outbound SRTP from FS.

How to use rtp_secure_media_mki

Set rtp_secure_media_mki=true to offer MKI for outgoing SRTP (if SRTP is used) in inbound call.
Export rtp_secure_media=true to offer MKI for outgoing SRTP (if SRTP is used) on outbound call.
... or set it in the codec string for bridged calls

<action application="set" data="rtp_secure_media_mki=true"/>

<action application="export" data="rtp_secure_media_mki=true"/>

<action application="bridge" data="[absolute_codec_string=^^:PCMU:PCMA:G729,rtp_secure_media=true,rtp_secure_media_mki=true]sofia/external/+12404373253@169.55.36.24:5060;transport=tls"/>

EXAMPLES

1. Set example

 57     <extension name="telnyx_test_1_2">
 58         <condition field="destination_number" expression="^(0012404373253)$">
 59             <action application="set" data="rtp_secure_media=true"/>
 60             <action application="set" data="rtp_secure_media_mki=true"/>
 61             <action application="answer"/>
 62             <action application="bridge" data="user/1004@${domain_name}"/>
 63       </condition>
 64   </extension>

Description: SRTP will be used on outbound leg in incoming call due to rtp_secure_media=true
set and MKI will be offered in SDP. SRTP will not be used on a bridged call to extension 1004.

2. Export example

 75   <extension name="to_skype_for_business">
 76       <condition field="destination_number" expression="^(840531022)$">
 77           <action application="set" data="rtp_secure_media=optional"/>
 78           <action application="export" data="rtp_secure_media_mki=true"/>
 79           <action application="bridge" data="[absolute_codec_string=^^:PCMU:PCMA:G729,rtp_secure_media=true]sofia/external/+12404373728@169.55.36.24:5060;transport=tls"/>
 80       </condition>
 81   </extension>

Description: SRTP on inbound call has been set to optional therefore MKI will be used
on outbound SRTP in this call if SRTP is used at all. SRTP will be used on a bridged call
due to rtp_secure_media=true set in codec string and MKI will be used in offering SDP.

3. Bridging between Skype for Business clients: set

 97     <extension name="S4B_fs_S4B">
 98         <condition field="destination_number" expression="^(0012404373254)$">
 99             <action application="set" data="rtp_secure_media=true"/>
100             <action application="set" data="rtp_secure_media_mki=true"/>
101             <action application="bridge" data="[absolute_codec_string=^^:PCMU:PCMA:G729,rtp_secure_media=true]sofia/external/+12404373253@169.55.36.$
102       </condition>
103   </extension>

Result:
2017-11-27 19:00:26.977704 [NOTICE] switch_ivr_originate.c:527 Ring Ready sofia/external/+12404373728@telnyxlab.com!
2017-11-27 19:00:32.657687 [NOTICE] switch_core_media.c:1534 Skipping MKI due to empty index
2017-11-27 19:00:32.657687 [INFO] switch_rtp.c:4079 Activating audio Secure RTP SEND
2017-11-27 19:00:32.657687 [INFO] switch_rtp.c:4057 Activating audio Secure RTP RECV
2017-11-27 19:00:32.657687 [NOTICE] sofia.c:8419 Channel [sofia/external/%2B12404373253@169.55.36.24:5060] has been answered
2017-11-27 19:00:35.317702 [INFO] switch_rtp.c:4079 Activating audio Secure RTP SEND (with MKI)
2017-11-27 19:00:35.317702 [INFO] switch_rtp.c:4057 Activating audio Secure RTP RECV (with MKI)
2017-11-27 19:00:35.317702 [NOTICE] sofia_media.c:92 Pre-Answer sofia/external/+12404373728@telnyxlab.com!

Description: SRTP with MKI is used on outbound leg of inbound call (due to use on inbound leg of this call and "set").
Standard SRTP is used in both legs of outbound call, because rtp_secure_media_mki wasn't exported
or set in codec string for the outbound call.

4. Bridging between Skype for Business clients: Set and export

 97     <extension name="S4B_fs_S4B">
 98         <condition field="destination_number" expression="^(0012404373254)$">
 99             <action application="set" data="rtp_secure_media=true"/>
100             <action application="set" data="rtp_secure_media_mki=true"/>
101             <action application="export" data="rtp_secure_media_mki=true"/>
102             <action application="bridge" data="[absolute_codec_string=^^:PCMU:PCMA:G729,rtp_secure_media=true]sofia/external/+12404373253@169.55.36.24:5060;transport=tls"/>
103       </condition>
104   </extension>

Result:
2017-11-27 18:51:29.017689 [NOTICE] switch_ivr_originate.c:527 Ring Ready sofia/external/+12404373728@telnyxlab.com!
2017-11-27 18:51:35.097729 [INFO] switch_rtp.c:4079 Activating audio Secure RTP SEND (with MKI)
2017-11-27 18:51:35.097729 [INFO] switch_rtp.c:4057 Activating audio Secure RTP RECV (with MKI)
2017-11-27 18:51:35.097729 [NOTICE] sofia.c:8419 Channel [sofia/external/%2B12404373253@169.55.36.24:5060] has been answered
2017-11-27 18:51:37.797706 [INFO] switch_rtp.c:4079 Activating audio Secure RTP SEND (with MKI)
2017-11-27 18:51:37.797706 [INFO] switch_rtp.c:4057 Activating audio Secure RTP RECV (with MKI)

Description: Connecting Skype For Business client to Skype for Business client.
Send SRTP with MKI in both outbound streams:
	- for inbound call: MKI was offered in incoming call and enabled for outbound leg with "set"
	- for outbound call: MKI was enabled with "export"

5. Other examples

Setup to use SRTP with MKI only on the inbound SRTP on incoming call from Telnyx SfB
Tested dialing 0012404373253 from SfB to FS, leg SfB <-> FS uses SRTP with MKI
on inbound SRTP only

57     <extension name="telnyx_test_1_2">
58         <condition field="destination_number" expression="^(0012404373253)$">
59              <action application="set" data="rtp_secure_media=true"/>
61              <action application="answer"/>
62              <action application="bridge" data="user/1004@${domain_name}"/>
63       </condition>
64   </extension>

Result:
2017-11-23 20:44:35.406026 [INFO] mod_dialplan_xml.c:637 Processing Test02 <+12404373728>->0012404373253 in context public
2017-11-23 20:44:38.566022 [INFO] switch_rtp.c:4107 Activating audio Secure RTP SEND
2017-11-23 20:44:38.566022 [INFO] switch_rtp.c:4085 Activating audio Secure RTP RECV (with MKI)

Setup to send and receive SRTP with MKI on incoming call from Telnyx SfB
Tested dialing 0012404373253 from SfB to FS, leg SfB <-> FS uses SRTP with MKI
in both directions

57     <extension name="telnyx_test_1_2">
58         <condition field="destination_number" expression="^(0012404373253)$">
59     		<action application="set" data="rtp_secure_media=true"/>
60     		<action application="set" data="rtp_secure_media_mki"/>
61     		<action application="answer"/>
62     		<action application="bridge" data="user/1004@${domain_name}"/>
63       </condition>
64   </extension>

Result:
2017-11-23 20:42:06.026034 [INFO] mod_dialplan_xml.c:637 Processing Test02 <+12404373728>->0012404373253 in context public
2017-11-23 20:42:09.526034 [INFO] switch_rtp.c:4107 Activating audio Secure RTP SEND (with MKI)
2017-11-23 20:42:09.526034 [INFO] switch_rtp.c:4085 Activating audio Secure RTP RECV (with MKI)

Setup to offer MKI on outbound call to extension 1001 (X-Lite -> FS -> linphone)
Tested dialing 0012404373253 from user 1004, leg FS <-> 1001 uses SRTP with MKI

782     <extension name="telnyx_test_1_2">
783         <condition field="destination_number" expression="^(0012404373253)$">
784             <action application="export" data="rtp_secure_media_outbound=true"/>
785             <action application="export" data="rtp_secure_media_mki"/>
786             <action application="answer"/>
797             <action application="bridge" data="user/1001@${domain_name}"/>
798       </condition>
799   </extension>

Result:
2017-11-23 20:23:26.266034 [INFO] mod_dialplan_xml.c:637 Processing 1000 windows <1000>->0012404373253 in context default
2017-11-23 20:23:26.366035 [INFO] switch_rtp.c:4107 Activating audio Secure RTP SEND (with MKI)
2017-11-23 20:23:26.366035 [INFO] switch_rtp.c:4085 Activating audio Secure RTP RECV

SfB sometimes offers crypto with LIFETIME but no MKI index, e.g.:
a=crypto:5 AES_CM_128_HMAC_SHA1_80 inline:9OtFWi17H9E8ywlm0iazemjAqXu2RhJ3DZyo+VLJ|2^31

Defaulting to no-mki SRTP in case key material doesn't contain MKI index.
2018-07-24 07:21:34 +00:00
Muteesa Fred
9fc898daac FI-393 [fs_cli banner] this commit changes the text on the fs_cli banner 2018-06-14 19:38:05 +00:00
Marc Olivier Chouinard
348c2c42bb FS-10608: Change 60 second timeout value to a global #define SWITCH_DEFAULT_TIMEOUT 2017-08-29 13:54:34 -04:00
Anthony Minessale
4e5219cd27 FS-10503: [mod_av] mod_av split audio to two channels #resolve 2017-08-11 13:23:15 -05:00
Andrey Volk
5626d0b535 FS-10064: [mod_managed] Fix compile on windows. 2017-07-20 23:38:44 +03:00
Ken Rice
53116495d1 Revert "FS-10416: [mod_commands] add new outbound channels to an in-progress originate"
This commit causes a segfault when parsing destinations that are |
delimited. This patchset needs to be tested further before inclusion
into the tree.

This reverts commit b11955db0bfdcccd5ad98fd689870153d31154f3.
2017-07-11 17:25:48 -05:00
Mike Jerris
2a788cdefd Merge pull request #1307 in FS/freeswitch from ~HRISTO/freeswitch:feature/FS-10416-add-new-endpoints-to-be-called-while to master
* commit 'b11955db0bfdcccd5ad98fd689870153d31154f3':
  FS-10416: [mod_commands] add new outbound channels to an in-progress originate
2017-07-06 20:41:20 +00:00
Mike Jerris
6cf3338469 FS-10458: [mod_av] temporarily silence warning when building against ffmpeg 3.2 until we fix them properly 2017-06-30 17:29:38 -05:00
Anthony Minessale
8734c9070d FS-10448: [mod_conference] Add Video Blind #resolve 2017-06-29 18:11:16 -05:00
Anthony Minessale
db47792558 FS-10447: [freeswitch-core] Manual video refresh mode #resolve 2017-06-29 16:57:18 -05:00
Anthony Minessale
e78f3f0c04 FS-10387: [core] High memory usage with mod_sofia, osmo-nitb and DTX setting active #resolve 2017-06-22 15:48:20 -05:00
Anthony Minessale
7c19615890 FS-10417: [freeswitch-core] Reduce flicker in screen sharing #resolve 2017-06-21 19:26:18 -05:00
Hristo Trendev
b11955db0b FS-10416: [mod_commands] add new outbound channels to an in-progress originate
This allows new endpoints (outbound channels) to be called, after an originate
is already in progress, where any of the originally called endpoints need to
continue to ring.

One use case would be to convert a 302 Moved Temporarily destination to SIP
endpoint(s) and then to add the new endpoints to an in-progress originate,
without cancelling any of the other (already ringing) outbound channels.
2017-06-21 19:31:46 +02:00
Anthony Minessale
c15a7d1f89 FS-10269: [mod_conference] conference recording pause doesn't work correctly for video #resolve 2017-05-30 16:34:48 -05:00
Anthony Minessale
a14651110b FS-10231: [freeswitch-core] Some media bugs not fully cleaned up when session is destroyed #comment Regression causing deadlock when holding write lock and close/destroying all the bugs but the video recording thread tries to read lock. Separating destroy out so it can be called outside the lock after the bugs are detached. 2017-05-23 12:30:50 -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
f691d139ea FS-9922: [mod_conference] Auto Energy Level -- some clean up 2017-04-27 15:28:59 -05:00
Dragos Oancea
85cd705b23 FS-10264: extend switch_rtp_packet_t to fix jitter buffer bug triggered by RTP ext headers (RFC5285) 2017-04-25 08:20:31 +01:00
Anthony Minessale
83322661a5 FS-10258: [mod_sofia] FW must keep previously negotiated DTLS role during SIP re-INVITE 2017-04-24 12:22:03 -05:00
Brian West
d2aaf899c5 FS-10235: [freeswitch-core] Remove unused media flag #resolve 2017-04-14 19:20:50 -05:00
Mike Jerris
9c6a027dc6 FS-10153: [build] fix mod_http_cache build on FreeBSD 2017-04-06 11:48:56 -05:00
Anthony Minessale
acd0384ee5 FS-10209: [freeswitch-core,mod_av] Add auth params to file handles #resolve 2017-04-04 11:42:29 -05:00
Anthony Minessale
e26e873268 FS-10205: [freeswitch-core,mod_conference,mod_video_filter] Add 8 bit filter #resolve 2017-03-31 20:21:45 -05:00
Anthony Minessale
e61f6e227c FS-10151: [mod_video_filter] Add filters and fg video to mod_video_filter #resolve 2017-03-17 15:16:13 -05:00
Anthony Minessale
f1d8685566 FS-10138: [freeswitch-core,mod_conference] Add alpha video to conference 2017-03-16 14:55:16 -05:00
Mike Jerris
8d4e72af16 FS-10140: [core] add switch_img_grey, makes i420 switch_img_t image grey scale 2017-03-16 11:09:29 -05:00
Anthony Minessale
50358d1cce FS-10107 can of worms contd 2017-03-15 16:55:06 -05:00
Mike Jerris
70ab6964b1 FS-10036: fix windows build issues. These patches need to go upstream 2017-03-15 16:13:40 -05:00
Anthony Minessale
2c368307d8 FS-10138: [freeswitch-core,mod_conference] Add alpha video to conference #resolve 2017-03-15 15:28:08 -05:00
Anthony Minessale
f4ad4ed6c4 FS-10126: [freeswitch-core] General Video Improvements #resolve 2017-03-15 15:24:01 -05:00
Seven Du
d1625f85a5 FS-10094 Alpha Video support
Alpha webm support
RGBA alpha support
2017-03-15 11:45:58 +08:00
Anthony Minessale
1b88dba5db FS-9922: [mod_conference] Auto Energy Level 2017-03-13 11:52:15 -05:00
Anthony Minessale
c6ce9da470 FS-10050: [core] chromakey Optimizations broke solid color mode 2017-03-09 14:15:09 -06:00
Anthony Minessale
51dd5e87a7 FS-9922: [mod_conference] Auto Energy Level #resolve 2017-03-09 12:03:55 -06:00
Anthony Minessale
da6b9e001c FS-9742: [mod_conference,mod_cv] Refactor canvas zoom code #resolve 2017-03-09 11:54:13 -06:00
Anthony Minessale
40687ccb6a FS-10050: [core] chromakey 2017-03-03 19:01:48 -06:00
Seven Du
2bd0ff45f4 FS-10080 2017-03-02 18:46:23 -06:00
Anthony Minessale
b733e8d974 FS-10050: [core] chromakey 2017-03-02 18:04:36 -06:00
Anthony Minessale
dbbe00332b FS-10050: [core] chromakey 2017-03-01 20:01:36 -06:00
Anthony Minessale
129f6eb69b FS-10050: [core] chromakey add flag to detect keyframe 2017-03-01 11:38:57 -06:00
Anthony Minessale
50072f2ce2 FS-10075: [freeswitch-core] WebRTC mods #resolve 2017-02-28 16:16:37 -06:00
Mike Jerris
20bcb2edef FS-10036: update cJSON code to pre 1.4.0 release of cJSON. this includes backports of all our fixes, and our build macros for windows and visibility. It also makes it easy to drop in a new version, and to in the future be able to switch to a system version of cJSON easily (after all these updates are in, probably around v2.0 timeframe. Note this new version adds a lot of extra error checking, fixes some buffer overruns, and improves parser and printer performance 2017-02-27 18:53:23 -06:00
Anthony Minessale
91d62b7cc6 FS-10050 polish 2017-02-24 16:49:43 -06:00
Anthony Minessale
c60ae0f0e1 FS-10050 cont 2017-02-21 15:52:59 -06:00
Seven Du
f31393d3c9 FS-10050 add chromakey 2017-02-17 01:19:57 +08:00
Anthony Minessale
40bfe0fff5 FS-9154: [freeswitch-core] Add & remove video on re-invites #resolve 2017-02-15 13:56:35 -06:00
Mike Jerris
5160a55f57 Merge pull request #1190 in FS/freeswitch from ~RAZVANC/freeswitch:feature/FS-10038-tune-heartbeat-events-interval to master
* commit '6d056e16989dc28b20a9b64d2d043edc6320c4fd':
  FS-10038: [core] tune heartbeat events interval
2017-02-14 10:12:54 -06:00