Commit Graph

1850 Commits

Author SHA1 Message Date
Bruno Windels
4d5f202d94
Merge pull request #889 from vector-im/login_with_access_token
Add abiity to setup session immediately after registration without using /login
2022-10-14 08:54:52 +00:00
Bruno Windels
1f8a591cf6 dont need extra log depth 2022-10-14 10:28:42 +02:00
Bruno Windels
f46d2c1bf5 make startWithFinishedRegistration more broadly useful 2022-10-14 10:17:32 +02:00
RMidhunSuresh
dcba6d1500
Split method 2022-10-11 18:05:54 +05:30
RMidhunSuresh
a448c0218d
Fix missing semicolon 2022-10-11 18:01:54 +05:30
RMidhunSuresh
1f764664c9
Expose homeserver from Registration object 2022-10-11 17:58:33 +05:30
RMidhunSuresh
85a9a019c8
Don't inhibit login 2022-10-11 17:58:07 +05:30
R Midhun Suresh
8ef163353a
Merge pull request #793 from ibeckermayer/ibeckermayer/ts-conversion-observable-map
Typescript conversion for `src/observable/map`
2022-10-10 11:31:25 +05:30
Bruno Windels
7d10bec4ac remove comment not relevant anymore 2022-10-07 10:59:13 +02:00
Bruno Windels
4350537004 cleanup 2022-10-07 10:58:12 +02:00
Bruno Windels
7936863934 remove options on dispose in Member
to ensure callback can't be called anymore, as we don't check
that the member argument is the one currently in GroupCall._members.
2022-10-07 10:07:46 +02:00
Bruno Windels
400df6a4ff ensure removing expired members from call is always logged
also return the log item from logger.log so we can ref it
2022-10-07 10:07:10 +02:00
Bruno Windels
a07be730f9 bring member validity period back to 1h 2022-10-06 16:10:50 +02:00
Bruno Windels
a8ac504efd explain when joinedData is set 2022-10-06 16:10:36 +02:00
Bruno Windels
7ae9c3af0d renew at least 10s before own membership expires 2022-10-06 16:00:38 +02:00
Bruno Windels
c87fd4dfed cleanup 2022-10-06 15:59:45 +02:00
Bruno Windels
2ecfb8f139 unify dispose logic in Member 2022-10-06 15:22:15 +02:00
Bruno Windels
7eb8015ace ensure member.dispose is called when removing member
so expiration timer is always stopped
2022-10-06 15:20:05 +02:00
Bruno Windels
56ecd39f26 don't assume joinedData is set here
although not entirely sure why it wouldn't be
2022-09-30 17:46:57 +02:00
Bruno Windels
1dddabc038 make removing own membership a bit clearer in the logs 2022-09-30 11:21:26 +02:00
Bruno Windels
b694d13348 can be readonly 2022-09-30 11:20:33 +02:00
Bruno Windels
f2564ed5cc also emit updates for expired, connected members that we didn't kick 2022-09-30 11:20:00 +02:00
Bruno Windels
b5f686b10e also allow clean up while still in Joining state, otherwise we get stuck
in joined state but without joinedData
2022-09-30 11:17:54 +02:00
Bruno Windels
282cba0ff1 call points for PeerCall.delay rely on AbortError actually being thrown
+ fix this in one call point where it wasn't the case
2022-09-30 11:17:07 +02:00
Bruno Windels
8f8a964b3b allow to actually process the invite in the new peer call 2022-09-30 11:15:48 +02:00
Bruno Windels
05bb360c00 allow to dequeue signalling messages with repeated seq (from other call)
they will just be ignored by peerCall.getMessageAction() but we don't
want to block dequeuing on these
2022-09-30 11:12:04 +02:00
Bruno Windels
6f0e781b49 WIP 2022-09-26 19:15:13 +02:00
Bruno Windels
bf71a88799
Merge pull request #880 from vector-im/matthew/turn
Implement TURN
2022-09-26 14:19:00 +00:00
Bruno Windels
c660d82d6a make internal method private 2022-09-26 16:00:25 +02:00
Bruno Windels
eccbab1491 cleanup polling and also hangup on all ongoing calls on dispose session 2022-09-26 15:57:20 +02:00
Bruno Windels
24ebf6c559 cleanup 2022-09-26 15:47:48 +02:00
Bruno Windels
ac319bdafd we can assume setConfiguration is available 2022-09-26 15:45:41 +02:00
Bruno Windels
d36b9be24f fix screwing up whitespace 2022-09-26 15:41:30 +02:00
Bruno Windels
05c2da95c4 fix typo 2022-09-26 15:38:04 +02:00
Bruno Windels
e6bf49a6cc remove previous hardcoded turnServers setting 2022-09-26 15:27:41 +02:00
Bruno Windels
f74c4e6425 remove previous approach 2022-09-26 15:26:16 +02:00
Bruno Windels
917ad52302 use observable for turnserver in peercall
and subscribe if changing config is supported
2022-09-26 15:25:53 +02:00
Bruno Windels
3a4c38086c fetch turn server settings when joining a call, and pass down 2022-09-26 15:25:24 +02:00
Bruno Windels
035ead0d5b implement polling of voip turnServer settings from HS in separate class 2022-09-26 15:24:41 +02:00
Matthew Hodgson
6570ec46f4
setTurnServers doesn't need to be async 2022-09-26 09:02:22 +01:00
Matthew Hodgson
3d7852a469 set array of turnservers 2022-09-26 01:07:24 +01:00
Matthew Hodgson
eab87e5157 fix plurals 2022-09-26 00:52:41 +01:00
Matthew Hodgson
af2098327b first cut at implementing TURN 2022-09-26 00:47:12 +01:00
Matthew Hodgson
31e67142bd typo 2022-09-25 22:11:35 +01:00
Matthew Hodgson
8aa62b2573 don't ignore end-of-ICE candidates 2022-09-25 21:39:38 +01:00
Bruno Windels
7ce5cdfc4a prevent concurrent calls of OlmEncryption.encrypt to OOM olm wasm heap
This is being triggered by connecting to many call members at once,
while encrypting the signaling messages. This keeps many olm.Session
objects into memory at the same time, which makes olm run out of
wasm heap memory.
2022-09-22 13:19:56 +02:00
Bruno Windels
bb2e63b05b don't queue messages for different callIds so last seq doesn't corrupt
this includes handling invite glares differently
2022-09-20 17:27:39 +02:00
RMidhunSuresh
1898c4892e
Specify return type 2022-09-12 23:44:51 +05:30
RMidhunSuresh
88091622db
Rename variable 2022-09-12 23:21:55 +05:30
RMidhunSuresh
2d4b6b0341
Exctract into function 2022-09-12 17:22:10 +05:30
R Midhun Suresh
ca4f6d83f9
Merge pull request #850 from vector-im/fix-798
Perform forced logout when access token is invalidated
2022-08-26 16:31:06 +05:30
RMidhunSuresh
216c5da386 Implement forced logout 2022-08-22 21:59:33 +05:30
RMidhunSuresh
d6cea6fc5c Extract method to function outside class 2022-08-19 16:36:21 +05:30
RMidhunSuresh
34dd7e4fa5 Remove code 2022-08-19 16:31:48 +05:30
RMidhunSuresh
bfd54f2764 Delete localstorage on logout 2022-08-09 23:11:02 +05:30
Isaiah Becker-Mayer
b33db1df36 refactors ObservableMap 2022-08-07 21:12:59 -07:00
Kaki In
f812519187
Merge branch 'vector-im:master' into recalculate_dm 2022-07-29 16:29:02 +02:00
Bruno Windels
4838e19c92
Merge pull request #811 from vector-im/bwindels/sharekeyswithinvitees
Key sharing based on room history visibility
2022-07-29 14:23:26 +00:00
Bruno Windels
cb0ac846c7 remove obsolete comment 2022-07-29 16:22:01 +02:00
Kaki In
69871ab985
Merge branch 'vector-im:master' into recalculate_dm 2022-07-29 12:08:33 +02:00
Bruno Windels
2a5e0302dc
Merge pull request #785 from vector-im/hs/log-when-storage-access-fails
Log the error when we can't get storage access
2022-07-29 09:47:58 +00:00
Half-Shot
5b5c852401 Revert "use logging items"
This reverts commit d937b9b14b.
2022-07-29 10:44:37 +01:00
Half-Shot
d937b9b14b use logging items 2022-07-29 10:39:41 +01:00
Bruno Windels
d3e93196e3
Merge pull request #777 from ibeckermayer/ibeckermayer/ts-conversion-loginviewmodel
TS conversion for `LoginViewModel`
2022-07-29 09:27:10 +00:00
Bruno Windels
62b3a67e33 write unit tests for correctly reading history visibility when needed 2022-07-28 17:09:41 +02:00
Kaki In
b73e3e9883 Don't add a memeber to the members list if it left the DM 2022-07-28 13:06:47 +02:00
Bruno Windels
319ec37864 fix typos preventing to load the history visibility 2022-07-28 11:44:50 +02:00
Isaiah Becker-Mayer
7b7b19476c updates some signatures to be more verbose, fixes wrong type for attemptLogin 2022-07-27 22:09:30 -07:00
Isaiah Becker-Mayer
ad0bd82bda creating default exports 2022-07-27 22:09:30 -07:00
Isaiah Becker-Mayer
d7657dcc4d first draft of fully typescriptified LoginViewModel.ts 2022-07-27 22:09:30 -07:00
Bruno Windels
0df66b5aea track room before listing user ids when sharing key 2022-07-27 12:06:55 +02:00
Bruno Windels
f18520a2fe let loadMembers use own txn in case members haven't been fetched yet
if they haven't, it will need a network request, meaning that the txn
will get closed, so we can't reuse it afterwards
2022-07-27 11:39:50 +02:00
Bruno Windels
50b6ee91d7 don't need history visibility here 2022-07-27 11:39:36 +02:00
Bruno Windels
bfaba63f47 fix ts error 2022-07-26 17:55:21 +02:00
Bruno Windels
544afef902 test adding and removing when tracking multiple rooms 2022-07-26 17:41:26 +02:00
Bruno Windels
dd878bb8d6 also take rejecting invites into account to remove user identity 2022-07-26 16:58:07 +02:00
Bruno Windels
dea3852425 add some tests for sharing keys with invitees 2022-07-26 16:57:28 +02:00
Bruno Windels
4c17612b05 allow passing txn to loadMembers so we can do it as part of sync txn
to rewrite useridentities upon receiving new history visibility
2022-07-26 16:53:02 +02:00
Bruno Windels
a23df8a545 pass history visibility to device tracker
and delegate adding and removing members to share keys with to it
2022-07-22 17:49:59 +02:00
Bruno Windels
17f42f523a add write method for when history visibility changes
also returning added and removed user ids
2022-07-22 17:49:26 +02:00
Bruno Windels
f6011f3f34 take history visibility into account in device tracker
and return added and removed userids to their userIdentity for the given
room, so room encryption can share and discard the keys for them
2022-07-22 17:48:26 +02:00
Bruno Windels
86c0e9e669 logic for whether a key should be shared by membership and h. visibility 2022-07-22 17:46:53 +02:00
Bruno Windels
f337940202 this migration shouldn't be needed anymore
and undoes the export of addRoomToIdentity, which is somewhat internal
2022-07-22 17:46:29 +02:00
Bruno Windels
22831e710c support async callback in iterateResponseStateEvents 2022-07-22 14:15:26 +02:00
Bruno Windels
c8a8eb10b5 get user ids for sharing a new key when the message is sent
rather than when the key happens to get sent
2022-07-20 15:21:33 +02:00
Bruno Windels
d79e5f7806 create key share operations for invitees when history visibility=invited 2022-07-20 15:20:23 +02:00
Bruno Windels
3346f68d25 WIP 2022-07-12 11:59:52 +02:00
Bruno Windels
e9649ec7c2 different streams never have the same id, even for same devices 2022-07-07 15:47:09 +02:00
Bruno Windels
2f08cd8984 clone localMedia in Member when connection, like we do for setMedia 2022-07-07 15:36:49 +02:00
Bruno Windels
f187a51c97 stop replaced track in PeerCall 2022-07-07 15:36:30 +02:00
RMidhunSuresh
cd9e00b847 Support power_level_content_override 2022-07-07 17:17:05 +05:30
Will Hunt
a85d2c96d6
Log the error when we can't get storage access
This is quite useful when debugging why a session isn't working properly.
2022-07-06 10:06:00 +01:00
Bruno Windels
206ac6e2dd WIP: prevent stream id from changing when upgrading call 2022-07-05 18:22:36 +02:00
Bruno Windels
6aab049052 Merge branch 'master' into bwindels/calls 2022-07-04 16:59:17 +02:00
Bruno Windels
84bac0afe9 Also allow undefined, which means at the end of the paginated direction
we already detect the end by chunk.length===0, so we just need to not throw
2022-06-25 19:37:36 +02:00
Bruno Windels
8a90c48d1e debugging unmuting not working 2022-06-25 05:56:43 +02:00
Bruno Windels
375d8b066c complete settings view model for logs ui 2022-06-15 11:13:46 +02:00
Bruno Windels
a644621889 basic support for sending rageshake in view model 2022-06-14 18:46:02 +02:00
Bruno Windels
41288683fc allow unmuting when we don't yet have a mic/cam track 2022-06-10 17:10:23 +02:00
Bruno Windels
bfdea03bbd start with seq 1, like Element Call does 2022-06-03 15:50:02 +02:00
Bruno Windels
ed5fdb8154 don't withhold member event for call just because we don't have profile 2022-06-03 12:43:51 +02:00
Bruno Windels
c8b5c6dd41 expose own user on BaseRoom
so we don't have to pass session around everywhere we need this
2022-06-02 17:30:17 +02:00
Bruno Windels
8ba1d085f6 fix refactor mistake in logging 2022-06-02 15:58:50 +02:00
Bruno Windels
90b6a5ccb6 update call member info with room member info 2022-06-02 15:56:23 +02:00
Bruno Windels
a52740ed1b give room state handler access to member sync to get sender profile info 2022-06-02 15:55:08 +02:00
Bruno Windels
a530944f7d add logging to seq queueing 2022-06-02 11:11:32 +02:00
Bruno Windels
513c059459 buffer messages as long as seq numbers in between haven't been received 2022-06-02 10:59:14 +02:00
Bruno Windels
a139571e20 move setting seq on outbound messages to member, is specific to_device 2022-06-02 10:59:03 +02:00
Bruno Windels
a014740e72 don't throw when we can't encrypt, just fall back to sending unencrypted 2022-06-01 15:55:43 +02:00
Bruno Windels
83eef2be9d log lack of persisted storage in ... persisted logs! 2022-06-01 15:30:41 +02:00
Bruno Windels
3edfbd2cf6 await hangup here, so log doesn't terminate early 2022-06-01 15:30:25 +02:00
Bruno Windels
9efe294a79 fetch and verify keys on olm call signalling message 2022-06-01 15:29:24 +02:00
Bruno Windels
50ae51e893 encrypt call signalling message only for given device 2022-06-01 15:28:49 +02:00
Bruno Windels
6f0ebeacb7 fetch single device key in DeviceTracker 2022-06-01 15:27:00 +02:00
Bruno Windels
9384fdc885 Merge branch 'bwindels/fix-tracker-changed-key-check' into bwindels/calls 2022-05-31 13:46:10 +02:00
Bruno Windels
c62c8da10b fix changed key not being ignored 2022-05-31 13:39:35 +02:00
Bruno Windels
bc51644868 reassignment is not used later on, remove 2022-05-31 13:39:23 +02:00
Bruno Windels
3d3d590334 add failing test for device with changed key being returned 2022-05-31 13:39:05 +02:00
Bruno Windels
11d7535c23 add some basic tests (with mock utils) for DeviceTracker 2022-05-31 13:38:34 +02:00
Bruno Windels
b2d787b96c fix wrong extension in import 2022-05-17 15:55:15 +02:00
Bruno Windels
6225574df6 write test for ObservedStateKeyValue 2022-05-12 17:52:17 +02:00
Bruno Windels
a50ea7e77b add support for observing room state for single room + initial state 2022-05-12 17:27:03 +02:00
Bruno Windels
db05338596 extract function to iterate over room response state events 2022-05-12 17:26:29 +02:00
Bruno Windels
d727dfd843 add session.observeRoomState to observe state changes in all rooms
and use it for calls
this won't be called for state already received and stored in storage,
that you need to still do yourself
2022-05-12 11:58:28 +02:00
Bruno Windels
ae0973b916 Merge branch 'master' into bwindels/calls 2022-05-11 15:13:27 +02:00
Bruno Windels
a923e7e5e1 don't pass errors as log levels 2022-05-11 13:15:03 +02:00
Bruno Windels
5ee4e39bc7 add return type 2022-05-11 10:06:15 +02:00
Robert Long
21065791a8 Fix removing members in handleCallMemberEvent 2022-05-10 16:58:03 -07:00
Bruno Windels
cd8fac2872 update TODO 2022-05-09 14:31:19 +02:00
Bruno Windels
d69b1dc3e2 expose log items for exposing debugging info in sdk users 2022-05-06 17:06:56 +02:00
Bruno Windels
fc08fc3744 always log device removal in same way and prevent call id overwritten 2022-05-06 16:59:26 +02:00
Bruno Windels
1a08616df1 logging improvements 2022-05-04 18:44:11 +02:00
Bruno Windels
1a0b11ff7e also log payload when receiving to_device call message, help debug with thirdroom 2022-04-29 14:59:19 +01:00
Bruno Windels
c1c08e9eb0 more logging of callId and sessionIds 2022-04-29 14:58:44 +01:00
Bruno Windels
9938071e1c more sessionId logging 2022-04-29 14:34:03 +01:00
Bruno Windels
bb92d2e30d log session id when adding a member entry 2022-04-29 14:19:10 +01:00
Bruno Windels
8e2e92cd2c this timer should not fire after disposing 2022-04-29 10:11:12 +01:00
Bruno Windels
e1974711f3 dont close this when disconnecting as long as we haven't restructured the log items in general, we can always connect again fr now and assume to reuse the same log item 2022-04-28 16:56:32 +01:00
Bruno Windels
d346f4a3fb add & remove rather than update when session id changed 2022-04-28 16:52:42 +01:00
Bruno Windels
3d83fda69f some more cleanup 2022-04-28 16:52:17 +01:00
Bruno Windels
2d9b69751f some logging cleanup 2022-04-28 16:52:00 +01:00
Bruno Windels
0be75d9c59 update the TODO 2022-04-28 12:45:15 +01:00
Bruno Windels
a91bcf5d22 ensure there is no race between reconnecting & updating the session id
it's probably fine as connect has to wait to receive the
negotiationneeded event before it can send out an invite, but just to
be sure update the session id beforehand
2022-04-28 12:44:13 +01:00
Bruno Windels
b03b296391 comments, todo housekeeping 2022-04-27 19:41:25 +02:00
Bruno Windels
4f2999f8d8 reconnect when detecting session id change, so we send invite if needed 2022-04-27 19:41:02 +02:00
Bruno Windels
bffce7fafe more logging 2022-04-27 19:40:49 +02:00
Bruno Windels
be04eeded0 always reevaluate remote media when receiving a new remote track
not just when we don't know the stream already
this caused the video track to not appear when the other party sends the
invite.
Also added more logging
2022-04-27 17:33:27 +02:00
Bruno Windels
230ccd95ab reset retryCount when disconnecting 2022-04-27 17:33:12 +02:00
Bruno Windels
6b22078140 prevent localMedia being disposed when disconnecting on session change
this would cause us to not send any media anymore and a black screen
on the other side that just refreshed
2022-04-27 11:34:05 +01:00
RMidhunSuresh
049a477008 Pass flowSelector from Client.startRegistration 2022-04-27 12:27:19 +05:30