1+ // Copyright 2025 LiveKit, Inc.
2+ //
3+ // Licensed under the Apache License, Version 2.0 (the "License");
4+ // you may not use this file except in compliance with the License.
5+ // You may obtain a copy of the License at
6+ //
7+ // http://www.apache.org/licenses/LICENSE-2.0
8+ //
9+ // Unless required by applicable law or agreed to in writing, software
10+ // distributed under the License is distributed on an "AS IS" BASIS,
11+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+ // See the License for the specific language governing permissions and
13+ // limitations under the License.
14+
15+ syntax = "proto3" ;
16+
17+ package livekit ;
18+ option go_package = "github.com/livekit/protocol/livekit" ;
19+ option csharp_namespace = "LiveKit.Proto" ;
20+ option ruby_package = "LiveKit::Proto" ;
21+
22+ import "connectors/whatsapp_webhook.proto" ;
23+ import "connectors/whatsapp_common.proto" ;
24+
25+ service ConnectorsService {
26+ rpc CreateWhatsAppParticipant (CreateWhatsAppParticipantRequest ) returns (CreateWhatsAppParticipantResponse );
27+
28+ rpc DeleteWhatsAppParticipant (DeleteWhatsAppParticipantRequest ) returns (DeleteWhatsAppParticipantResponse );
29+
30+ rpc ConnectWhatsAppCall (ConnectWhatsAppCallRequest ) returns (ConnectWhatsAppCallResponse );
31+
32+ rpc RejectWhatsAppCall (RejectWhatsAppCallRequest ) returns (RejectWhatsAppCallResponse );
33+
34+ rpc ListWhatsAppCalls (ListWhatsAppCallsRequest ) returns (ListWhatsAppCallsResponse );
35+ }
36+
37+ message CreateWhatsAppParticipantRequest {
38+ string from_phone_number_id = 1 ;
39+ string to_phone_number_id = 2 ;
40+ optional string biz_opaque_callback_data = 3 ; // for logging purposes
41+ }
42+
43+ message CreateWhatsAppParticipantResponse {
44+ }
45+
46+ message DeleteWhatsAppParticipantRequest {
47+ optional string whatsapp_call_id = 1 ;
48+ optional livekit.connectors.WhatsAppCallWebhook call_terminate_webhook = 2 ;
49+ optional bool is_call_rejected = 3 ;
50+ }
51+
52+ message DeleteWhatsAppParticipantResponse {
53+ }
54+
55+ message ConnectWhatsAppCallRequest {
56+ string livekit_participant_identity = 1 ;
57+ map <string , string > participant_attributes = 2 ;
58+ livekit.connectors.WhatsAppCallWebhook call_connect_webhook = 3 ;
59+ ConnectorsDispatchRule dispatch_rule = 4 ;
60+ }
61+
62+ message ConnectWhatsAppCallResponse {
63+ string whatsapp_call_id = 1 ;
64+ }
65+
66+ message RejectWhatsAppCallRequest {
67+ optional string whatsapp_call_id = 1 ;
68+ optional livekit.connectors.WhatsAppCallWebhook call_connect_webhook = 2 ;
69+ }
70+
71+ message RejectWhatsAppCallResponse {
72+ }
73+
74+ message ListWhatsAppCallsRequest {
75+ string from_phone_number_id = 1 ;
76+ }
77+
78+ message ListWhatsAppCallsResponse {
79+ repeated livekit.connectors.WhatsAppCall calls = 1 ;
80+ }
81+
82+ message ConnectorsDispatchRule {
83+ optional string room = 1 ;
84+ optional string room_prefix = 2 ;
85+ optional string room_suffix = 3 ;
86+ optional string agent_name = 4 ;
87+ // what is metadata for agent dispath? do we need it here?
88+ }
0 commit comments