Commit Graph

20 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
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
Fred Dixon
145307d4db Adjust jitterbuffer settings to improve audio 2022-04-26 19:36:59 -05: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
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
Fred Dixon
e82f5c21d1 updates to freeswitch/conf for 0.8 2011-05-31 15:11:30 -04: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
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