Skip to content

Commit 6dec858

Browse files
Removing cost info and unifying inventory/purchased phone number data types
1 parent 7b3b388 commit 6dec858

File tree

1 file changed

+59
-90
lines changed

1 file changed

+59
-90
lines changed

protobufs/livekit_phone_number.proto

Lines changed: 59 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,6 @@ option go_package = "github.com/livekit/protocol/livekit";
77
import "google/protobuf/timestamp.proto";
88
import "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
2112
enum PhoneNumberStatus {
@@ -27,42 +18,42 @@ enum PhoneNumberStatus {
2718

2819
// Public Phone Number Service - External API for phone number management
2920
service 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
7667
message 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

Comments
 (0)