Commit Graph

72 Commits (df4631d65ba5e7b213e798f226102cf4de5ce05b)

Author SHA1 Message Date
David Baker d8483ddf0d Don't place another call if there's already one ongoing
The 'call' button doesn't turn into a hangup button as soon as there's
a call in the room, but we should have been doing this anyway.
2021-03-03 20:23:21 +00:00
David Baker 90af6ddcce Log when turn creds expire
Which, due to how special the js-sdk API is, needs to be done accross
two different projects.
2021-02-26 14:48:18 +00:00
David Baker 428af8b9e2 Jitsi conferences names, take 3
Shorter, capatalised, just 'Jitsi' prefix rather than 'JitsiConference'
2021-02-22 16:48:12 +00:00
David Baker 6130bdf0d2 Use creation content to signal virtual-ness
This makes things a lot simpler.
2021-02-17 18:51:21 +00:00
David Baker e787d11c73 Merge remote-tracking branch 'origin/develop' into dbkr/virtual_rooms_v2 2021-02-16 19:41:54 +00:00
David Baker 3b16645b59 Make fields optional 2021-02-16 18:52:49 +00:00
David Baker 5535d7fb97 Prepare to encrypt when a call arrives
So we're ready to send an answer straight away if the user answers
2021-02-16 14:52:11 +00:00
Travis Ralston cb757b5b50 Fix import 2021-02-15 08:56:38 -07:00
Travis Ralston cd82d97c3e Use randomly generated conference names for Jitsi
Fixes https://github.com/vector-im/element-web/issues/15205
Replaces https://github.com/matrix-org/matrix-react-sdk/pull/5322

This change uses a random ID for the Jitsi conference name to avoid any badly-named Jitsi calls, and overrides the "subject" (title) of the call so end users aren't typically exposed to the random ID.
2021-02-15 08:53:37 -07:00
David Baker d339dc447f Add specific fields to third party lookup response fields 2021-02-15 15:25:07 +00:00
David Baker d7bf57af13 Add missing 'd' 2021-02-15 15:04:01 +00:00
David Baker 196507a730 VoIP virtual rooms, mk II
Does a thirdparty protocol lookup to the homeserver to get the
corresponding native/virtual user for a matrix ID. Stores the
mappings in room account data. Involves some slightly nasty workarounds
for that fact that room account data has no local echo.
2021-02-12 20:55:54 +00:00
Šimon Brandner 5b211897ec
Handle undefined call stats
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-02-09 14:52:48 +01:00
David Baker c77f0bcfa4 Fix the %s in logs
Finally
2021-02-08 14:47:03 +00:00
David Baker cf5ec7720c
Merge pull request #5525 from SimonBrandner/fix-screen-sharing
Fix desktop Matrix screen sharing and add a screen/window picker
2021-02-08 13:54:51 +00:00
J. Ryan Stinnett 2c313e0c5e Add managed hybrid call widgets when supported
If your homeserver is configured with an experiment `widget_build_url`, this
will take over the functionality of the call buttons and turn them into a
general widget installer.
2021-01-29 14:45:25 +00:00
David Baker 9ac31747f6 This was missing a break somehow 2021-01-27 10:36:40 +00:00
David Baker e43adef438 firefox uses 'address' instead of 'ip' 2021-01-26 10:52:35 +00:00
David Baker ec0266d82b Log candidates for calls
First attempt at this was sending everything from
RTCPeerConnection.getStats() as a separate item in the rageshake,
but the rageshake server doesn't handle that in a particularly sensible
way and it's probably better to pick & choose what data we want explicitly
from a privacy PoV. This summarises the candidates used for the calls into
the log that will be included in rageshakes so we can diagnose connectivity
issues from rageshakes.

Requires https://github.com/matrix-org/matrix-js-sdk/pull/1584
2021-01-26 09:41:57 +00:00
David Baker 303694754b
Merge pull request #5572 from matrix-org/dbkr/dont_play_hangup_sound_when_answered_elsewhere
Don't play the hangup sound when the call is answered from elsewhere
2021-01-25 16:39:44 +00:00
David Baker 8783765ce3 Don't play the hangup sound when the call is answered from elsewhere 2021-01-25 16:18:14 +00:00
David Baker 0a90c982c7 Add VoIP user mapper
The accompanying element-web PR with the config documentation should
explain what this is & why. Internally, this breaks the assumption
that call.roomId is the room that the call appears in for the user.
call.roomId may now be a 'virtual' room while the react SDK actually
displays it in a different room. React SDK always stores the calls
under the user-facing rooms, and provides a function to get the
user-facing room for a given call.
2021-01-21 19:20:35 +00:00
Šimon Brandner eca8ef3b35
Update thumbnails
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-01-14 12:44:48 +01:00
Šimon Brandner 640e6d68b3
Merge branch 'develop' into fix-screen-sharing
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-01-05 20:41:06 +01:00
Šimon Brandner 5779a543c9
Type cleanup
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2020-12-26 18:10:50 +01:00
Šimon Brandner 1dc1bc68db
Clean up
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2020-12-26 08:40:58 +01:00
Šimon Brandner eae3c1c496
Get screen-sharing working, somehow
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2020-12-26 08:32:51 +01:00
David Baker 452fbb076b Add a dialpad UI for PSTN lookup
Queries the homeserver for PSTN protocol support, and if found,
the add-room button on the DM rooms list section opens a context
menu instead with a 'dial pad' option as well as the current 'start chat'
dialog. Entering a number into this and pressing dial performs
a thirdparty user query for the given string and starts a DM with that
user.
2020-12-23 19:02:01 +00:00
David Baker 68c5482c05
Comment typo
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2020-12-21 11:21:41 +00:00
David Baker 12474bb434 Merge remote-tracking branch 'origin/develop' into dbkr/call_ui_fixups 2020-12-21 11:10:31 +00:00
David Baker eab764a3c8 Vary resume link text
Use 'Switch' if unholding that call would hold another
2020-12-18 19:35:41 +00:00
David Baker 453575d70a Don't play call end sound for calls that never started 2020-12-18 13:46:58 +00:00
David Baker 973a0b7b8a set dispatcher ref to null so we don't double-unregister 2020-12-16 10:53:59 +00:00
David Baker a77d675664 Better null check
to make tests happy
2020-12-15 18:01:42 +00:00
David Baker a798772e80 Unregister from the dispatcher in CallHandler
otherwise you end up getting multiple place_call dispatches if you
place a call after logging in
2020-12-15 16:53:11 +00:00
David Baker 5282c6bbe8 Merge remote-tracking branch 'origin/develop' into dbkr/line_1_2 2020-12-10 12:36:11 +00:00
Lukas a856484139 Fix typos in some strings
This commit fixes some typos that I've stumbled upon.
2020-12-06 10:32:52 +01:00
David Baker 4c50125e9d Don't remove call when we call hangup
as hopefully explained by comment
2020-12-04 20:22:01 +00:00
David Baker 1ce63f0fa7 Line 1 / 2 Support
Support one active call plus one call on hold
2020-12-03 17:45:49 +00:00
David Baker 3a3775b523 Only show 'answered elsewhere' if we tried to answer too
and don't play the hangup tone

Fixes https://github.com/vector-im/element-web/issues/15735
2020-11-30 15:17:20 +00:00
David Baker 522c2d9dc7
Typo
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2020-11-27 14:03:52 +00:00
David Baker 65ab0ee665 Slightly better error if we can't capture user media
Fixes https://github.com/vector-im/element-web/issues/15837
2020-11-27 12:53:09 +00:00
David Baker 37059a3fcd Move call listener out of MatrixChat
and into callhandler
2020-11-23 16:20:15 +00:00
David Baker cf2d8d2f1f Wrench createNewMatrixCall straight out of call
rather than importing browser-index
2020-11-05 17:59:02 +00:00
David Baker 9be3ce928f explicitly retuen null
and also sort out formatting from a different time
2020-11-05 09:47:43 +00:00
David Baker 7796621e8d Merge remote-tracking branch 'origin/develop' into dbkr/call_hold 2020-10-30 16:49:42 +00:00
David Baker f828c6d494 Implement call hold
Currently just by adding /holdcall and /unholdcall slash commands

The only place the hold status of the call is currently represented
is when the call is a voice call and you're viewing a different room:
it's not wired up when you're viewing the room because that currently
uses the room status bar which it won't do with the new UI.

Also convert VideoFeed to typescript, and remove videoview because
it essentially just managed the fullscreen functionality, but we'll
want and 'on hold' representation (and probably chrome for hagnup etc)
in the fullscreen UI too, so let's just make CallView the thing that
gets fullscreened.
2020-10-29 17:56:24 +00:00
Michael Telatynski c3a355097d Initial Countly work 2020-10-29 15:57:16 +00:00
David Baker 765fdf93e6 Support 'answered elsewhere'
Show a dialog for now, telling the user someone beat them to it.

Only useful with https://github.com/matrix-org/matrix-js-sdk/pull/1522
(but can be merged safely without).
2020-10-21 11:54:48 +01:00
David Baker 88b7210f5c consistent quotes 2020-10-19 15:04:57 +01:00