Commit Graph

32994 Commits

Author SHA1 Message Date
Anthony Minessale afde4b63bb FS-10860: [core] Distorted music when playing it as local stream into a conference as hold music #resolve 2018-07-24 07:21:38 +00:00
Anthony Minessale 2e66aceb14 FS-10854: [mod_conference] Canvas FG Image not refreshed before writing to video recordings #resolve 2018-07-24 07:21:37 +00:00
Anthony Minessale 586d3349a7 FS-10243: [mod_conference] Add conference variables 2018-07-24 07:21:37 +00:00
Brian West 31d9584f59 FS-10840: [mod_sofia] max-registrations-per-extension parameter is not multi-tennant 2018-07-24 07:21:37 +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
Anthony Minessale 8fabf32f8f FS-10890: [mod_av] Wrongly calculated delta_tmp for end of video file recording #resolve 2018-07-24 07:21:37 +00:00
Anthony Minessale 683f59f38d FS-10821: [mod_conference] fix arg parser in file vol command in conference #resolve 2018-07-24 07:21:37 +00:00
Seven Du 2e449917b2 fix split slice 2018-07-24 07:21:37 +00:00
Brian West 105a291bb7 FS-10892: [mod_av] Lip Sync Improvements #resolve 2018-07-24 07:21:37 +00:00
Anthony Minessale 0d40025e09 FS-10891: [mod_conference] Refactor mux video to be smoother #resolve 2018-07-24 07:21:37 +00:00
Anthony Minessale 57daad7af8 FS-10802: [mod_conference] Convert conference floor to id based 2018-07-24 07:21:36 +00:00
Anthony Minessale 2c66f126d7 FS-10769: [mod_av,mod_conference] Lipsync issues in conference recording 2018-07-24 07:21:36 +00:00
Anthony Minessale 6bd169abc2 FS-10802: [mod_conference] Convert conference floor to id based 2018-07-24 07:21:36 +00:00
Anthony Minessale 86ae01462a FS-10802: [mod_conference] Convert conference floor to id based 2018-07-24 07:21:36 +00:00
Anthony Minessale 376cc03f58 FS-10803: [mod_conference] Add support for alternate video layout config per conference profile 2018-07-24 07:21:36 +00:00
Anthony Minessale b8744e4c6d FS-10803: [mod_conference] Add support for alternate video layout config per conference profile #resolve 2018-07-24 07:21:36 +00:00
Anthony Minessale 2b5b9341e7 FS-10802: [mod_conference] Convert conference floor to id based #resolve 2018-07-24 07:21:36 +00:00
Anthony Minessale 2e1f828363 remove hack for chrome we don't need anymore 2018-07-24 07:21:36 +00:00
Anthony Minessale 892181bbc2 FS-8761: [freeswitch-core] Memory leak in FreeSWITCH 2018-07-24 07:21:35 +00:00
Anthony Minessale bcd5753d17 FS-10799: [mod_commands] Add toupper and tolower api funcs #resolve 2018-07-24 07:21:35 +00:00
Anthony Minessale 2d5e52a012 FS-10762: [freeswitch-core] Websocket logic error #resolve 2018-07-24 07:21:35 +00:00
Anthony Minessale f3d8a3b07a FS-10762: [freeswitch-core] Websocket logic error 2018-07-24 07:21:35 +00:00
Anthony Minessale 247ac09792 FS-10770: [freeswitch-core] Make nack buffer bigger by default 2018-07-24 07:21:35 +00:00
Anthony Minessale 5a6f4679cd FS-10770: [freeswitch-core] Make nack buffer bigger by default 2018-07-24 07:21:35 +00:00
Anthony Minessale d395223fa2 FS-10762: [freeswitch-core] Websocket logic error #resolve 2018-07-24 07:21:35 +00:00
Piotr Gregor 333516c471 FS-10778: Fix for MKI regression introduced in FS-10778 2018-07-24 07:21:35 +00:00
Mike Jerris 177823f9c3 swigall 2018-07-24 07:21:35 +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
Anthony Minessale 63f3531cdd FS-10843: [freeswitch-core] Tweak RTP write timing #resolve 2018-07-24 07:21:34 +00:00
Piotr a17993a22e FS-10778: Evaluate rtp_secure_media_mki variable with switch_channel_var_true
Previously rtp_secure_media_mki channel variable was checked only
for existence, now it is checked if it's defined and evaluates
to true with switch_channel_var_true().
2018-07-24 07:21:34 +00:00
Anthony Minessale 67b56343a2 FS-10823: [mod_sofia] curly brackets on SDP header causes FS to crash #resolve 2018-07-24 07:21:34 +00:00
Piotr b0106ac17f FS-10778: Fix compilation and refactor code
Prefer break over indent.

if (!p) {
    break;
}

// the code...

over

if (p) {
    // the
    // code
    // ...
}
2018-07-24 07:21:34 +00:00
Mike Jerris 477f3bc549 FS-10778: fix MKI compile error 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
Anthony Minessale 180d427cd6 FS-8761: [freeswitch-core] Memory leak in FreeSWITCH 2018-07-24 07:21:33 +00:00
Anthony Minessale 34f0ab58c1 FS-10762: [freeswitch-core] Websocket logic error #resolve 2018-07-24 07:21:33 +00:00
Anthony Minessale c5e662c9bc FS-10762: [freeswitch-core] Websocket logic error 2018-07-24 07:21:33 +00:00
Anthony Minessale 1064bb043c FS-10784: [freeswitch-core] Make Users lists compatible with all forms of xml #resolve 2018-07-24 07:21:33 +00:00
Italo Rossi 8f1b7e066e Merge pull request #1503 in FS/freeswitch from ~SERGIOKALMIK/freeswitch:bugfix/FS-11088-mod_verto-verto-status-showing-running to master
* commit '18f11c7c6d2569ed23df118f14acab2be783601b':
  FS-11088: Fixing verto status api
2018-07-23 20:59:30 +00:00
Brian West a577683797 Merge pull request #1536 in FS/freeswitch from ~MARCELL-G/freeswitch:bugfix/FS-11236-sync-tag-with-localtag-video-device-streaming to master
* commit '15227e01f27d87ec0657452412d1398373f6899c':
  FS-11236 [verto_communicator] call useCamera property on video constraints
2018-07-19 22:44:37 +00:00
Anthony Minessale II 84a3de1495 Merge pull request #1537 in FS/freeswitch from ~MARCELL-G/freeswitch:bugfix/FS-11262-vertojs-undefined-wsfallback to master
* commit 'ee1418a5cab7568b7d61c7c844f7b1fcf075fcc3':
  FS-11262 [verto_communicator] prevent vertojs from stop retrying socket connection by undefined socketfallbackurl
2018-07-19 18:32:22 +00:00
Marcell Guilherme Costa da Silva ee1418a5ca FS-11262 [verto_communicator] prevent vertojs from stop retrying socket connection by undefined socketfallbackurl 2018-07-19 15:26:45 -03:00
Marcell Guilherme Costa da Silva 15227e01f2 FS-11236 [verto_communicator] call useCamera property on video constraints 2018-07-18 18:19:21 -03:00
Brian West 9bc84ac638 Merge pull request #1535 in FS/freeswitch from ~NETOGUIMARAES/freeswitch:fix/deprecating_create_url to master
* commit 'fc6661ccb31bff245465a29ab0cc89db6d8c2fa2':
  FS-11229 - [verto_communicator]: deprecating use of URL.createObjectURL
2018-07-13 19:20:47 +00:00
Mike Jerris b1a3c704b7 FS-11230: [core] Fix bad rtp timestamps triggered by cng/missed packet detection 2018-07-13 15:18:35 -04:00
Mike Jerris 9e3da931e5 FS-11230: [core] Fix bad rtp timestamps triggered by cng/missed packet detection 2018-07-13 15:14:00 -04:00
netoguimaraes fc6661ccb3 FS-11229 - [verto_communicator]: deprecating use of URL.createObjectURL 2018-07-13 15:03:47 -03:00
Brian West ccebe22c07 Merge pull request #1534 in FS/freeswitch from ~NETOGUIMARAES/freeswitch:feat/stops_localStream to master
* commit '49b8cc3a3ef5d41090a6b697009fa190d2cc7ad8':
  FS-11227 - [verto_communicator]: stops localVideoStream tracks properly
2018-07-12 14:07:10 +00:00
netoguimaraes 49b8cc3a3e FS-11227 - [verto_communicator]: stops localVideoStream tracks properly 2018-07-11 15:49:02 -03:00
Mike Jerris de3df8dc0e Merge pull request #1531 in FS/freeswitch from ~STEFAN_YOHANSSON/freeswitch:feat/wss_fallbacks to master
* commit '68e256597ad7993d1786aedeb6680dc752c1dd88':
  FS-11211 - [verto_communicator]: Adding turnServer and socketFallbackUrl options.
2018-07-06 16:03:34 +00:00