This PR:
- Adds StartAgentJobRequest/StopAgentJobRequest calls to start an handle manually mange an agent lifecycle
- Deprecates the JobType field in WorkerInfo as workers will now be expected to handle both kinds jobs (if the namespace supports both kinds in the first place)
- Adds a metadata string -> string map to Job to allow agent implementation to take anonymous (to us) parameters
- Adds a JobStatus and error fields to Job for status reporting (Similar to egress and ingress)
- Makes livekit_agent.proto indentation consistent with other proto files
- Add room configuration and management APIs to the Room service. Rooms configuration allow bundling most room configuration parameters under a single id, that can eventually be put as part of the room creation token.
* Support for key/value attributes on Participant
Key/value attributes lets us:
* allow various components to provide more information about the participant (i.e. SIP including the phone number)
* allow Agents to communicate their own status to the end user via RTC
* enable applications to update specific fields without overriding others
* generated protobuf
* Attribute support for SIP.
* generated protobuf
* generated protobuf
* allow specifying attributes during token generation
* Remove sip prefix and rename phone number attrs.
* regenerate protos
* update tests
* add kv attrs to sip token
* add attribute test
* changeset
---------
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Denys Smirnov <dennwc@pm.me>
* Include node_id with analytics events
in order to make it easier to reconcile in a distributed setup
* generated protobuf
* changeset
---------
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
changes:
* add retries to advance clock to unblock rate limiters
* rewrite some tests to be more robust and simpler
* add assertCount with noise to consider oversubscribed CI machines
* remove parallel tests, reduce CPU pressure on CI machines
* replaced assert with require
There are two fields named participant_identity in context of Transcription. It's not clear which one corresponds to the transcriber agent, and which one is for the participant which got its speech transcribed.
This change renames the Transcription field to transcribed_participant_identity so to clarify that it's used for the transcribed participant.
* Adding a simulation option for leave request.
@lukasIO I was thinking of making the simulation option
just a `LeaveRequest`. And when simulating, client side
can just set `Action` field of `LeaveRequest`.
But, decided against it as I did not use case for it
and also wanted to keep it simple/specific.
Let me know if I should change that to a generic `LeaveRequest`.
If doing generic `LeaveRequest`, server behaviour would be
1. `Action = DISCONNECT`: server will close the participant and send a
`LeaveRequest` with `Action = DISCONNECT`.
2. `Action = RESUME`, server will send `LeaveRequest` with `Action = RESUME`
and it will not include self region in `RegionSettings`.
3. `Action = RECONNECT`, server will send `LeaveRequest` with `Action = RECONNECT`
and it will not include self region in `RegionSettings`.
As the current simulation is only for full reconnect, it will behave
like #3 above.
Also, this option will be supported in cloud.
Please let me know if I should change this or just leave it as a
boolean.
* generated protobuf
---------
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Also redact image outputs, and support AliOSS uploads for auto egress
---------
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Allow inbound number filtering on SIP Dispatch Rules. It works similar to Trunks, where rules without a number filter are grouped together and take less priority than number-specific rules.
While at it, simplify the rule evaluation.
Previously it was doing some hand-crafted checks for evaluation path, that matched the validation path. Same double logic existed for priorities as well.
Now the validation is always called from evaluation, thus sharing the logic. And rule selection is simplified by just picking the first one after priority filtering.
* Deprecate UpdateVideoLayers.
Believe this was never used.
* generated protobuf
---------
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>