Raja Subramanian
6acd2944bc
As "remote" is a logging context key already, use a different name. ( #910 )
2022-08-12 23:51:20 +05:30
Raja Subramanian
b7c44f1ecd
Move reset of local description sent on ICE restart internally ( #909 )
2022-08-12 13:04:06 +05:30
Raja Subramanian
692c4d804f
Cache local candidates till local description is sent ( #908 )
2022-08-12 12:31:26 +05:30
Raja Subramanian
641f8d4519
Transport refactor ( #907 )
...
* WIP commit
* WIP commit
* WIP commit
* WIP commit
* WIP commit
* Clean up
* fix tests
* debug logs
* Remove comments
* Fix data channel creation on migration and clean up unused stuff
* log offer/answer send/receive
2022-08-12 11:20:54 +05:30
David Zhao
f09885825e
Return ServerInfo to clients on join ( #904 )
...
* checkpoint
* Return ServerInfo in join response
* also include node information
* less verbose quality score
* update go modules
2022-08-10 17:04:17 -07:00
Raja Subramanian
2192b0fc8d
Limit dynacast to video and media loss proxy to audio ( #902 )
...
* Limit dynacast to video and media loss proxy to audio
Was looking at keeping the track type out of those modules
and do a check at a higher level, but it is a bit unwieldy.
So, adding checks to the modules.
Also, ensuring that media loss proxy does not reset unconditionally
every second. Audio RTCP happens once in 5 seconds or so.
So, if server proxied let say 2% at t = 5, t = 6 would have
proxied 0 loss which may or may not be true. So, ensure that
a report was received and proxy value is updated by an actual
report.
* Remove track type from modules
2022-08-10 11:30:49 +05:30
Raja Subramanian
49cf15cdca
Fix filtering candidates ( #901 )
...
* Filter candidate after setting description
* comment
* Fix filtering candidates
- For offer/answer from remote, do filtering before setting remote
description so that Pion does not see filtered candidates
- For offer/answer originating from server, do filtering after setting
local description (comments in code) so that remote side does not
see filtered candidates.
- Make logging a little consistent and use right context.
* Comment
* TCP fallback config and UT (broken now)
* log SDP only when preferring TCP
* Remove TCP fallback test attempt
2022-08-10 10:42:46 +05:30
Benjamin Pracht
67d3f21122
Only update an IngressInfo if the StartedAt field is newer or equal to the one currently in storage ( #897 )
...
This is meant to ensure that we will not overwrite the state of an ingress that already reconnected to a different server on failure or timeout
2022-08-09 19:07:56 -07:00
Raja Subramanian
4ec7e71b2d
Logging negotiation as we are seeing some errors with filtering candi… ( #900 )
2022-08-09 16:57:15 +05:30
Raja Subramanian
82439538e7
Do not send blank frame if not sending leave ( #899 )
2022-08-09 15:54:59 +05:30
Raja Subramanian
4d7df612ec
Refactor DynacastQuality & MediaLossProxy into separate modules ( #894 )
...
* WIP commit
* Refactor media loss proxy
* Use DynacastQuality and MediaLossProxy from MediaTrack
* fix test
* Remove unused param
* Remove unused interfaces
* Move interface methods to local
* Split out DynacastManager
* have to add codec to dynacast manager
* RUnlock
* fix restart
* Adding API to force quality and also maintain closed state
* Address PR comments
2022-08-09 11:47:06 +05:30
cnderrauber
1d2bca373b
queue restart ice offer while publisher pc gathering ice ( #895 )
...
* queue restart ice offer while publisher pc gathering ice
* fix test case fail
2022-08-08 15:40:45 +08:00
Raja Subramanian
07ac4da86b
Log setting ICE config in participant ( #877 )
2022-08-06 12:06:07 +05:30
Raja Subramanian
4703e30047
Use constants ( #875 )
2022-08-06 00:15:00 +05:30
Raja Subramanian
ab4d57ab5b
Filter out UDP candidates from SDP if allowing only TCP. ( #874 )
...
* Filter out UDP candidates from SDP if allowing only TCP.
* Do it properly
* static check
* Adding TCP candidates to test
2022-08-05 23:11:07 +05:30
David Zhao
ab1ccae0c7
Respond to signal ping / pong ( #871 )
...
* Respond to signal ping / pong
* Pass back 1 for pong for now, we don't need the timestamp
* update protocol
2022-08-05 09:24:47 -07:00
Raja Subramanian
c75090a0fe
Use a TTL of 1 hour for ICE config cache ( #873 )
2022-08-05 17:31:28 +05:30
Raja Subramanian
3f16018b62
Cache ICE config in room manager. ( #872 )
...
* Cache ICE config in room manager.
* mage generate
* Read ICE config within lock
2022-08-05 12:49:19 +05:30
Raja Subramanian
339181a534
Enable fallback to TCP. ( #870 )
2022-08-05 10:49:34 +05:30
Benjamin Pracht
0cffbe69e9
Fix ingress stream key lookup and avoid nil dereference when room in auth claims doesn't match ( #869 )
2022-08-04 16:22:55 -07:00
Benjamin Pracht
c333b7a026
Add support for Ingress service ( #868 )
...
Also check for Join permission on ingress API calls
2022-08-04 09:48:53 -07:00
Raja Subramanian
6b6f61b4df
Adding transport fallback ( #866 )
...
* Adding transport fallback
Commented out for now so that we can gather some data.
* Promoting a few logs to info
2022-08-03 23:03:10 +05:30
Raja Subramanian
3c9a2cc66a
Log selected ICE candidate pair ( #865 )
...
* Log selected ICE candidate pair
* simplify
2022-08-03 13:31:37 +05:30
Raja Subramanian
0f074aeb98
Remove period from log ( #863 )
2022-08-03 00:41:34 +05:30
Benjamin Pracht
5558aa5228
Make sure CreateIngest populates the stream_key and URL fields ( #861 )
2022-08-01 11:35:30 -07:00
Raja Subramanian
a393d64ccc
Do not re-use transceiver when negotiation is pending. ( #862 )
2022-07-31 10:50:55 +05:30
cnderrauber
997461a2b6
rtpstats add update last packet method ( #858 )
2022-07-29 15:29:36 +08:00
Raja Subramanian
52b2e6398b
Queue AddTrack if a published track is not yet closed ( #857 )
...
* Queue `AddTrack` if a published track is not yet closed
- Adding a queue for pending track by signal cid.
Ideally, there should not be more than one pending,
but making a queue to be generic.
- `TrackPublished` is sent if the queue has entries
when a published track is closed.
* Fix tests and add more checks for queueing AddTrack
2022-07-29 11:51:36 +05:30
David Colburn
7aa5888338
Keep egress info for 24h ( #856 )
...
* Keep egress info for 24h
* updates
* better version comparison
* fix test
* duplicated if
2022-07-28 20:27:59 -05:00
David Colburn
0ab4379c5c
Separate egress/ingress storage ( #855 )
2022-07-28 17:01:33 -05:00
Benjamin Pracht
7a2eac8e86
Initial Ingress support in API ( #852 )
...
This adds support for the Ingress related endpoints to LiveKit server. This currently doesn't handle reconnections safely.
2022-07-28 09:49:54 -07:00
Benjamin Pracht
188f9c675e
Add support for Ingress in store interface ( #849 )
2022-07-26 16:55:03 -07:00
shishirng
a3e8304b56
send participant info/identity during track_published event ( #846 )
...
Signed-off-by: shishir gowda <shishir@livekit.io >
2022-07-21 17:34:52 -04:00
Raja Subramanian
e624604453
Revert "ListRooms using sid ( #842 )" ( #845 )
...
This reverts commit f2e1e67e58 .
2022-07-21 14:49:41 +05:30
David Zhao
53f51c8cb0
Logging cleanup ( #843 )
...
* Logging cleanup
Changes log levels to better match significance
* fix lock
2022-07-21 00:39:49 -07:00
Raja Subramanian
f2e1e67e58
ListRooms using sid ( #842 )
...
* ListRooms using `sid`
* correct field name
* Remove contains and latest protocol
2022-07-21 11:05:33 +05:30
Raja Subramanian
51073e8918
Use TimedVersion for subscription permission update ( #839 )
...
* Use a read version for subscription permission
* Use TimedVersion for subscription permission updates
* Minor clean up
* latest protocol
2022-07-21 08:52:37 +05:30
Raja Subramanian
c88d2f9af5
Make media track test more stable(hopefully) ( #841 )
2022-07-20 23:44:10 +05:30
cnderrauber
b69c314145
update non block tcpmux ( #840 )
2022-07-20 16:33:56 +08:00
Raja Subramanian
29039b4e76
Use a go routine to clean up stats workers. ( #836 )
...
* Use a go routine to clean up stats workers.
It is possible that certain events (like TrackUnpublished) can
happen after the participant is closed. For webhooks pertaining
to those events, need details like room name/id. So,reap stats
workers a little while after the participant left event happens.
* handle data race report
* log analytics worker reap
* debug log
2022-07-18 11:47:43 +05:30
cnderrauber
aee97c68bc
retransmit dd extension ( #837 )
2022-07-18 13:06:33 +08:00
Mathew Kamkar
e0676132d4
Packet stats from TC ( #832 )
...
* system level packet stats from tc
* drop percent
* test fix
* formatting
* formatting/wording
* prometheus metrics
* update livekit protocol go module
2022-07-15 10:41:40 -07:00
Raja Subramanian
4c7d3161a9
Record dynacast requirement of a subscriber synchronously. ( #834 )
...
With rapid changes to subscription settings, use of a goroutine
could end up processing dynacast needs for that subscriber in
a different order. So, record the susbcription needs of a subscriber
in the callback and process the data in a go routine.
2022-07-15 11:46:02 +05:30
cnderrauber
a0578db3ed
resolve downtrack.bind/close timing issue ( #833 )
...
* resolve downtrack.bind/close timing issue
* fix test case
2022-07-15 14:09:45 +08:00
David Zhao
a2bf32797b
Allow binding HTTP server to specific address ( #831 )
...
Improves security when running with placeholder keys. Only allowing
access from loopback by default.
2022-07-13 23:58:33 -07:00
Raja Subramanian
af93954c26
Close data channels ( #830 )
...
* Close data channels
* don't need to explicitly close data channels
2022-07-13 21:55:12 +05:30
cnderrauber
fcdff4f97a
enable nack for audio track ( #829 )
2022-07-13 16:05:57 +08:00
Ramakrishna Chilaka
677b7c16d1
removing piBy180 from critical path ( #821 )
2022-07-11 16:02:51 -07:00
cnderrauber
4280a5993b
correct RUnlock ( #826 )
2022-07-11 12:27:57 +08:00
Raja Subramanian
01f7309adc
Separate close and stop on MediaTrackSubscriptions. ( #823 )
2022-07-09 12:42:54 +05:30