Commit Graph

70 Commits

Author SHA1 Message Date
prlanzarin
325887e325 feat(audio): rework audio join without listen only
This is a rework of the audio join procedure whithout the explict listen
only separation in mind. It's supposed to be used in conjunction with
the transparent listen only feature so that the distinction between
modes is seamless with minimal server-side impact. An abridged list of
changes:
  - Let the user pick no input device when joining microphone while
    allowing them to set an input device on the fly later on
  - Give the user the option to join audio with no input device whenever
    we fail to obtain input devices, with the option to try re-enabling
    them on the fly later on
  - Add the option to open the audio settings modal (echo test et al)
    via the in-call device selection chevron
  - Rework the SFU audio bridge and its services to support
    adding/removing tracks on the fly without renegotiation
  - Rework the SFU audio bridge and its services to support a new peer
    role called "passive-sendrecv". That role is used by dupled peers
    that have no active input source on start, but might have one later
    on.
  - Remove stale PermissionsOverlay component from the audio modal
  - Rework how permission errors are detected using the Permissions API
  - Rework the local echo test so that it uses a separate media tag
    rather than the remote
  - Add new, separate dialplans that mute/hold FreeSWITCH channels on
    hold based on UA strings. This is orchestrated server-side via
    webrtc-sfu and akka-apps. The basic difference here is that channels
    now join in their desired state rather than waiting for client side
    observers to sync the state up. It also mitigates transparent listen
    only performance edge cases on multiple audio channels joining at
    the same time.

The old, decoupled listen only mode is still present in code while we
validate this new approach. To test this, transparentListenOnly
must be enabled and listen only mode must be disable on audio join so
that the user skips straight through microphone join.
2024-08-15 00:43:28 +00:00
Anton Georgiev
ef300cf28e
chore: Fix typo (found by typos) (port) #19834
Co-authored-by: Stefan Weil <sw@weilnetz.de>
2024-03-18 09:58:53 -04:00
prlanzarin
8200a0ef64 build(freeswitch): load mod_audio_fork by default 2023-04-25 10:05:06 -03:00
Fred Dixon
4c359d83a7
Merge branch 'develop' into fixjitterbuffer 2022-12-30 07:28:55 -05:00
Paulo Lanzarin
7d0a30befa
Merge pull request #15537 from znerol-forks/fix/develop/remove-spurious-freeswitch-dialplan
fix: Remove spurious FreeSWITCH dialplan bbb_sip.xml
2022-11-07 09:45:45 -03:00
Fred Dixon
f9a218cdf6 Updated FreeSWITCH settings to improve audio 2022-10-02 14:49:41 -05:00
Fred Dixon
12e05cdae0 Updated FreeSWITCH settings to improve audio 2022-10-02 14:43:36 -05:00
invokablegmbh
9a456362de
Fix jitterbuffer values
Providing just "120" as a jitterbuffer is not a good idea, because it just specifies the initial size of the jitter buffer. We changed it to "100:250" which uses 100ms jitterbuffer as a default, but 250ms as a maximum jitterbuffer size. This is big enough even for bad internet connections. However it is also small enough to always provide minimum delay.
2022-09-22 05:37:31 +02:00
invokablegmbh
12c57059d7
Fix jitterbuffer values
Providing just "120" as a jitterbuffer is not a good idea, because it just specifies the initial size of the jitter buffer. We changed it to "100:250" which uses 100ms jitterbuffer as a default, but 250ms as a maximum jitterbuffer size. This is big enough even for bad internet connections. However it is also small enough to always provide minimum delay.
2022-09-22 05:37:05 +02:00
znerol
f7bca98d32 fix: Remove spurious FreeSWITCH dialplan bbb_sip.xml 2022-08-15 17:58:54 +02:00
prlanzarin
7d85c4f4e2 feat: add filterable identifier to FS channels originated from SFU
Use the presence_data field to annotate channels with a filterable
identifier that allows us to differentiate SIP.js channels from SFU
ones.

The motivation: allow metrics exporters/instrumentations/etc to
generate comparison metrics (eg.: mediaStats, usage) between the default
bridge and the experimental one without having to do multiple or overly
verbose json_api or mod_command/fs_cli calls to filter channels out.
2022-05-12 13:08:11 +00:00
Ramon Souza
0d3a5326fc Merge remote-tracking branch 'upstream/v2.5.x-release' into 25260-may10 2022-05-10 10:53:00 -03:00
Fred Dixon
145307d4db Adjust jitterbuffer settings to improve audio 2022-04-26 19:36:59 -05:00
Anton Georgiev
44015cf0a8
Merge pull request #12231 from znerol-forks/feature/develop/freeswitch-in-memory-db
Store FreeSWITCH databases fully in memory
2022-03-28 14:57:55 -04:00
Daniel Schreiber
15c68aeae7 build: enable G722 by default
it was enabled in the config but the module was not loaded.
2022-03-03 16:01:45 +01:00
prlanzarin
3d1b2c841d feat: add new dialplan rule for bbb-webrtc-sfu calls
This new dialplan rule filters calls originating from bbb-webrtc-sfu via SIP
user agent parsing. The default bbb-webrtc-sfu UA is "bbb-webrtc-sfu".

A new dialplan rule is needed to force RTP auto-adjustment for calls originating
in bbb-webrtc-sfu (rtp_manual_bugs=ACCEPT_ANY_PACKETS).
That is due to the fact that bidirectional mediasoup bridging is done via an
RTP/AVPF endpoint which does not use ICE. FreeSWITCH arbitrarily blocks off auto
adjustment for AVPF profiles (presuming ICE), so it needs to be forced otherwise
the bridge won't work properly in all environments.

Bridging mediasoup and FS via WebRTC (which would circumvent that) is currently
not an option due to the fact that FreeSWITCH doesn't handle STUN role conflicts
properly (and there will always be a conflict since the initiator is controlled
and FS always defaults to controlled)

Briding mediasoup and FS via plain RTP/AVP (which would also circumvent that) is
not an option right now due to the fact that FreeSWITCH doesn't make ssrcs
public in signaling for RTP/AVP profiles. mediasoup needs the remote ssrcs.
This could work by pre-generating a ssrc in bbb-webrtc-sfu, signaling it via a
SIP header and then specifying it in the rtp_use_ssrc channel variable in FS,
which would allow us to shim the ssrc in FS's answer in bbb-webrtc-sfu.
Maybe in the future.
2022-01-28 14:53:39 -03:00
Fred Dixon
64981e527b
Merge pull request #11846 from znerol-forks/feature/develop/simplify-freeswitch-nat-setup
Instruct FreeSWITCH to announce external IP in SDP
2021-10-14 22:44:01 -03:00
znerol
e93bd67eb8 Store FreeSWITCH databases fully in memory 2021-05-01 16:06:18 +02:00
Anton Georgiev
eb37347294
Merge pull request #12029 from fireba11/reduce_freeswitch_log_level
Reduce freeswitch log level
2021-04-22 15:02:33 -04:00
Anton Georgiev
4cac6cea8a
FS: Add cdquality video-auto-floor-msec for #12004 2021-04-22 10:31:39 -04:00
fireba11
1cdcddd95a set max to 100MB since rollover by age is not an option,
so we will end up at 100MB+10 sooner or later
2021-04-19 19:28:50 +02:00
fireba11
63168c8b79 reduce max ligfile size to 1GB and # of files to 10 (so 10GB total log size 2021-04-19 19:25:40 +02:00
fireba11
d2b17c8c4e reduce freeswitch log level
disables console and debug log levels to not create huge log files by
default
2021-04-14 19:44:05 +02:00
znerol
a630922709 Remove unused FreeSWITCH modules from configuration 2021-04-02 16:47:02 +02:00
znerol
2c9b7a10bb Instruct FreeSWITCH to announce external IP in SDP 2021-04-01 16:56:46 +02:00
chandi
e11e77710f freeswitch config from v2.3-alpha-6 release 2021-02-09 18:44:17 +01:00
Ghaz Triki
d6c49af4f4 Updated freeswitch configuration default user flag to "nomoh", no music on hold when this member is the only member in the conference. 2016-02-16 19:04:23 +01:00
Richard Alam
bafedc0c07 - enable recording when there is only 1 user in fs 2014-04-04 15:28:30 +00:00
Richard Alam
e458a15237 - cleanup fs config 2013-03-27 15:27:19 +00:00
Richard Alam
b7e83ae3ab set rtp timeout to 5 minutes so that FS kicks user out if a user is disconnected
and not sending rtp
2011-09-23 15:09:45 -04:00
Richard Alam
472b44d78f removing create sip user script 2011-09-23 09:06:04 -04:00
Fred Dixon
e82f5c21d1 updates to freeswitch/conf for 0.8 2011-05-31 15:11:30 -04:00
Richard Alam
74a8665777 - don't resize deskshare preview window when region is smaller than preview window 2010-11-08 16:42:25 -05:00
Fred Dixon
d3847eda55 - Added app_konference-10.04-32.so from Jeremy Thomerson 2010-10-31 14:40:53 -04:00
Fred Dixon
6adf280768 - Checked in updated app_konference.so (32-bit) from Jeremy Thomerson 2010-10-30 16:43:48 -07:00
Fred Dixon
d8c1d75924 - Added app_konference-10.04-64.so from Generic Conferencing 2010-10-24 17:05:13 -07:00
Richard Alam
63188cbf87 - remove the xml tag from comment as they still get processed and overrides the config 2010-10-19 08:59:36 -04:00
Fred Dixon
6070346629 - made nellymoser the default codec for the BigBlueButton client 2010-10-09 18:31:16 -04:00
Fred Dixon
36bfbdeac1 -added --stop and --start to bbb-conf; -accelerated --restart by removing sleep statements 2010-10-09 18:10:24 -04:00
Richard Alam
81f16f4ab7 - don't mute incoming users by default 2010-10-05 13:03:54 -04:00
Fred Dixon
3f7cd420b6 - Set Freeswitch event socket layer to listen on 127.0.0.1
- Added checks in bbb-conf to test ports 80, 1935, and 9123 to aid in setting up BigBlueButton behind a firewall
2010-10-04 03:27:23 +00:00
Fred Dixon
db89deba78 Added more checks to bbb-conf & set esl.host=127.0.0.1 in bigbluebutton.properites so we don't need to assign an IP address for red5 to connect to freeswitch 2010-09-20 01:47:17 +00:00
Sebastian
2941ec714d Moved the entry for bbb in default.xml to public.xml to allow freeswitch to connect 2010-08-10 14:38:53 -04:00
Richard Alam
53b03709f5 - make also preffered outgoing codec to SPeex WB 2010-08-05 08:19:25 -04:00
Richard Alam
d3a0778cb2 - remove localhost acl as it didn't work 2010-07-23 16:20:33 -04:00
Richard Alam
548b97b4b3 - add comma to separate codecs 2010-07-23 15:51:24 -04:00
Richard Alam
ea911c0f47 - changed conference pattern to 7{4} as it is what's dynamically generated by demo
- switch SIP ports in vars.xml:
   - Internal to port 5090 from port 5060. 5060 is assigned to external sip profile
     as bbb-voice only connects to 5060. Tried fixing bbb-voice but can't figure it out.
   - Use 5090 instead of 5080 since 5080 is used by Red5.
2010-07-23 14:16:24 -04:00
Leif Jackson
1d0761b97a Example minimal freeswitch config handling auto created conf numbers
^8{4}$ e.g. 85115 which seems to be the default.
 Thus 80000 thru 89999.
2010-07-15 04:17:00 +00:00
Sebastian
2bc31c06e2 Updated app_konference-10.04-32.so 2010-07-05 16:31:22 -04:00
sebsschneider
e5bfffc7ae Updated the file app_konference-10.04-32.so 2010-07-05 11:03:45 -04:00