@@ -7,15 +7,6 @@ option go_package = "github.com/livekit/protocol/livekit";
77import "google/protobuf/timestamp.proto" ;
88import "livekit_models.proto" ;
99
10- // Telephony cost type enumeration
11- enum TelephonyCostType {
12- TELEPHONY_COST_TYPE_UNSPECIFIED = 0 ; // Default value
13- TELEPHONY_COST_TYPE_NUMBER_RENTAL = 1 ; // Monthly rental for the phone number
14- TELEPHONY_COST_TYPE_VOICE_INBOUND = 2 ; // Inbound voice calls
15- TELEPHONY_COST_TYPE_VOICE_OUTBOUND = 3 ; // Outbound voice calls
16- TELEPHONY_COST_TYPE_SMS_INBOUND = 4 ; // Inbound SMS
17- TELEPHONY_COST_TYPE_SMS_OUTBOUND = 5 ; // Outbound SMS
18- }
1910
2011// Phone number status enumeration
2112enum PhoneNumberStatus {
@@ -27,42 +18,42 @@ enum PhoneNumberStatus {
2718
2819// Public Phone Number Service - External API for phone number management
2920service PhoneNumberService {
30- // List available phone numbers in inventory
31- rpc ListPhoneNumberInventory ( ListPhoneNumberInventoryRequest )
32- returns (ListPhoneNumberInventoryResponse ) {}
21+ // Search available phone numbers in inventory
22+ rpc SearchPhoneNumbers ( SearchPhoneNumbersRequest )
23+ returns (SearchPhoneNumbersResponse ) {}
3324
3425 // Purchase a phone number from inventory
3526 rpc PurchasePhoneNumber (PurchasePhoneNumberRequest )
3627 returns (PurchasePhoneNumberResponse ) {}
3728
38- // List purchased phone numbers for a project
39- rpc ListPurchasedPhoneNumbers ( ListPurchasedPhoneNumbersRequest )
40- returns (ListPurchasedPhoneNumbersResponse ) {}
29+ // List phone numbers for a project
30+ rpc ListPhoneNumbers ( ListPhoneNumbersRequest )
31+ returns (ListPhoneNumbersResponse ) {}
4132
42- // Get a purchased phone number
43- rpc GetPurchasedPhoneNumber ( GetPurchasedPhoneNumberRequest )
44- returns (GetPurchasedPhoneNumberResponse ) {}
33+ // Get a phone number from a project
34+ rpc GetPhoneNumber ( GetPhoneNumberRequest )
35+ returns (GetPhoneNumberResponse ) {}
4536
46- // Update a purchased phone number
47- rpc UpdatePurchasedPhoneNumber ( UpdatePurchasedPhoneNumberRequest )
48- returns (UpdatePurchasedPhoneNumberResponse ) {}
37+ // Update a phone number in a project
38+ rpc UpdatePhoneNumber ( UpdatePhoneNumberRequest )
39+ returns (UpdatePhoneNumberResponse ) {}
4940
50- // Release a purchased phone number
51- rpc ReleasePurchasedPhoneNumber ( ReleasePurchasedPhoneNumbersRequest )
52- returns (ReleasePurchasedPhoneNumbersResponse ) {}
41+ // Release phone numbers
42+ rpc ReleasePhoneNumbers ( ReleasePhoneNumbersRequest )
43+ returns (ReleasePhoneNumbersResponse ) {}
5344}
5445
55- // ListPhoneNumberInventoryRequest - Request to list available phone numbers
56- message ListPhoneNumberInventoryRequest {
46+ // SearchPhoneNumbersRequest - Request to search available phone numbers
47+ message SearchPhoneNumbersRequest {
5748 string country_code = 1 ; // Optional: Filter by country code (e.g., "US", "CA")
5849 string area_code = 2 ; // Optional: Filter by area code (e.g., "415")
5950 int32 limit = 3 ; // Optional: Maximum number of results (default: 50)
6051 TokenPagination page_token = 4 ; // Optional: Token for pagination (empty for first page)
6152}
6253
63- // ListPhoneNumberInventoryResponse - Response containing available phone numbers
64- message ListPhoneNumberInventoryResponse {
65- repeated PhoneNumberInventoryItem items = 1 ; // List of available phone numbers
54+ // SearchPhoneNumbersResponse - Response containing available phone numbers
55+ message SearchPhoneNumbersResponse {
56+ repeated PhoneNumber items = 1 ; // List of available phone numbers
6657 TokenPagination next_page_token = 2 ; // Token for next page (empty if no more pages)
6758}
6859
@@ -74,95 +65,73 @@ message PurchasePhoneNumberRequest {
7465
7566// PurchasePhoneNumberResponse - Response containing the purchased phone numbers
7667message PurchasePhoneNumberResponse {
77- repeated PurchasedPhoneNumber phone_numbers = 1 ; // Details of the purchased phone numbers
68+ repeated PhoneNumber phone_numbers = 1 ; // Details of the purchased phone numbers
7869}
7970
80- // ListPurchasedPhoneNumbersRequest - Request to list purchased phone numbers
81- message ListPurchasedPhoneNumbersRequest {
71+ // ListPhoneNumbersRequest - Request to list phone numbers
72+ message ListPhoneNumbersRequest {
8273 int32 limit = 1 ; // Optional: Maximum number of results (default: 50)
8374 PhoneNumberStatus status = 2 ; // Optional: Filter by status (active, pending, released)
8475 TokenPagination page_token = 3 ; // Optional: Token for pagination (empty for first page)
8576 string sip_dispatch_rule_id = 4 ; // Optional: Filter by SIP dispatch rule ID
8677}
8778
88- // ListPurchasedPhoneNumbersResponse - Response containing purchased phone numbers
89- message ListPurchasedPhoneNumbersResponse {
90- repeated PurchasedPhoneNumber items = 1 ; // List of purchased phone numbers
79+ // ListPhoneNumbersResponse - Response containing phone numbers
80+ message ListPhoneNumbersResponse {
81+ repeated PhoneNumber items = 1 ; // List of phone numbers
9182 TokenPagination next_page_token = 2 ; // Token for next page (empty if no more pages)
92- int32 total_count = 3 ; // Total number of purchased phone numbers
83+ int32 total_count = 3 ; // Total number of phone numbers
9384}
9485
95- // GetPurchasedPhoneNumberRequest - Request to get a purchased phone number
96- message GetPurchasedPhoneNumberRequest {
97- string purchased_phone_number_id = 1 ; // Optional: Use purchased phone number ID for direct lookup
86+ // GetPhoneNumberRequest - Request to get a phone number
87+ message GetPhoneNumberRequest {
88+ string id = 1 ; // Optional: Use phone number ID for direct lookup
9889 string phone_number = 2 ; // Optional: Use phone number string for lookup
9990}
10091
101- // GetPurchasedPhoneNumberResponse - Response containing the purchased phone number
102- message GetPurchasedPhoneNumberResponse {
103- PurchasedPhoneNumber phone_number = 1 ; // The purchased phone number details
92+ // GetPhoneNumberResponse - Response containing the phone number
93+ message GetPhoneNumberResponse {
94+ PhoneNumber phone_number = 1 ; // The phone number details
10495}
10596
106- // UpdatePurchasedPhoneNumberRequest - Request to update a purchased phone number
107- message UpdatePurchasedPhoneNumberRequest {
108- string purchased_phone_number_id = 1 ; // Optional: Use purchased phone number ID for direct lookup
97+ // UpdatePhoneNumberRequest - Request to update a phone number
98+ message UpdatePhoneNumberRequest {
99+ string id = 1 ; // Optional: Use phone number ID for direct lookup
109100 string phone_number = 2 ; // Optional: Use phone number string for lookup
110101 string sip_dispatch_rule_id = 3 ; // Optional: SIP dispatch rule ID to assign to the phone number
111102}
112103
113- // UpdatePurchasedPhoneNumberResponse - Response containing the updated purchased phone number
114- message UpdatePurchasedPhoneNumberResponse {
115- PurchasedPhoneNumber phone_number = 1 ; // The updated purchased phone number details
104+ // UpdatePhoneNumberResponse - Response containing the updated phone number
105+ message UpdatePhoneNumberResponse {
106+ PhoneNumber phone_number = 1 ; // The updated phone number details
116107}
117108
118- // ReleasePurchasedPhoneNumbersRequest - Request to release purchased phone numbers
119- message ReleasePurchasedPhoneNumbersRequest {
120- repeated string purchased_phone_number_ids = 1 ; // Optional: Use purchased phone number IDs for direct lookup
109+ // ReleasePhoneNumbersRequest - Request to release phone numbers
110+ message ReleasePhoneNumbersRequest {
111+ repeated string ids = 1 ; // Optional: Use phone number IDs for direct lookup
121112 repeated string phone_numbers = 2 ; // Optional: Use phone number strings for lookup
122113}
123114
124- // ReleasePurchasedPhoneNumbersResponse - Response for releasing purchased phone numbers
125- message ReleasePurchasedPhoneNumbersResponse {
115+ // ReleasePhoneNumbersResponse - Response for releasing phone numbers
116+ message ReleasePhoneNumbersResponse {
126117 // Empty response - operation completed successfully
127118}
128119
129- // GlobalPhoneNumber represents a phone number with standardized format
130- message GlobalPhoneNumber {
131- string id = 1 ; // unique identifier
132- string e164_format = 2 ; // e.g., "+14155552671"
133- string country_code = 3 ; // e.g., "US"
134- string area_code = 4 ; // e.g., "415"
135- string number_type = 5 ; // e.g., local, toll-free, national, mobile
120+ // PhoneNumber - Unified phone number type for inventory and purchased numbers
121+ message PhoneNumber {
122+ string id = 1 ; // Unique identifier
123+ string e164_format = 2 ; // Phone number in E.164 format ( e.g., "+14155552671")
124+ string country_code = 3 ; // Country code ( e.g., "US")
125+ string area_code = 4 ; // Area code ( e.g., "415")
126+ string number_type = 5 ; // Number type ( e.g., local, toll-free, national, mobile)
136127 string locality = 6 ; // City/locality (e.g., "San Francisco")
137128 string region = 7 ; // State/region (e.g., "CA")
138- double spam_score = 8 ; // can be used later for fraud detection
139- google.protobuf.Timestamp created_at = 9 ; // timestamp when created
140- google.protobuf.Timestamp updated_at = 10 ; // timestamp when updated
141- }
142-
143- // TelephonyCost represents the pricing structure for a specific telephony service
144- message TelephonyCost {
145- TelephonyCostType resource = 1 ; // Type of telephony service
146- string currency = 2 ; // Currency code (e.g., "USD", "EUR")
147- double price = 3 ; // Price for this service
148- string billing_unit = 4 ; // Billing unit (e.g., "month", "minute", "message", "call")
149- }
150-
151-
152-
153- // PhoneNumberInventoryItem - Represents an available phone number for purchase
154- message PhoneNumberInventoryItem {
155- GlobalPhoneNumber phone_number = 1 ; // Common phone number fields
156- repeated string capabilities = 2 ; // Comma-separated capabilities (e.g., "voice,sms")
157- repeated TelephonyCost costs = 3 ; // Array of costs for different services
158- }
159-
160- // PurchasedPhoneNumber - Represents a phone number owned by a LiveKit project
161- message PurchasedPhoneNumber {
162- string purchased_phone_number_id = 1 ; // Unique identifier for the purchased phone number
163- GlobalPhoneNumber phone_number = 2 ; // Common phone number fields
164- PhoneNumberStatus status = 3 ; // Current status of the phone number
165- google.protobuf.Timestamp assigned_at = 4 ; // Timestamp when the number was assigned
166- google.protobuf.Timestamp released_at = 5 ; // Timestamp when the number was released (if applicable)
167- string sip_dispatch_rule_id = 6 ; // Optional: Associated SIP dispatch rule
129+ double spam_score = 8 ; // Spam score for fraud detection
130+ google.protobuf.Timestamp created_at = 9 ; // Creation timestamp
131+ google.protobuf.Timestamp updated_at = 10 ; // Last update timestamp
132+ repeated string capabilities = 11 ; // Available capabilities (e.g., "voice", "sms")
133+ PhoneNumberStatus status = 12 ; // Current status
134+ google.protobuf.Timestamp assigned_at = 13 ; // Assignment timestamp
135+ google.protobuf.Timestamp released_at = 14 ; // Release timestamp (if applicable)
136+ string sip_dispatch_rule_id = 15 ; // Associated SIP dispatch rule ID
168137}
0 commit comments