Skip to main content
TelephonyClient is reachable on every Kataven client as client.telephony. Each method maps to one HTTP endpoint on the Hub API; links to the underlying spec entry are inline below. Carrier credentials (encrypted) and phone-number management. Pin a number to an agent so inbound calls route to that agent.

Methods at a glance

MethodHTTPSummary
list_providersGET /api/telephony/providersList telephony provider credentials
create_providerPOST /api/telephony/providersAdd a telephony provider credential
delete_providerDELETE /api/telephony/providers/{provider_id}Delete a telephony provider credential
list_numbersGET /api/telephony/numbersList phone numbers
create_numberPOST /api/telephony/numbersRegister a phone number
update_numberPATCH /api/telephony/numbers/{number_id}Pin or unpin a phone number to an agent
delete_numberDELETE /api/telephony/numbers/{number_id}Delete a phone number

Reference

client.telephony.list_providers(...)

List telephony provider credentials HTTPGET /api/telephony/providers · API reference →
    def list_providers(self) -> Dict[str, Any]:
Returns metadata about every carrier credential configured for this account. Plaintext credentials are not returned.

client.telephony.create_provider(...)

Add a telephony provider credential HTTPPOST /api/telephony/providers · API reference →
    def create_provider(
        self,
        provider: str,
        label: str,
        credentials: Dict[str, Any],
    ) -> Dict[str, Any]:
Required credentials keys per provider:
  • twilio: account_sid, auth_token
  • plivo: auth_id, auth_token
  • vobiz: auth_id, auth_token
Encrypts the credentials JSON via the Secret Encryptor service, then inserts the row. Plaintext is never persisted.

client.telephony.delete_provider(...)

Delete a telephony provider credential HTTPDELETE /api/telephony/providers/{id} · API reference →
    def delete_provider(self, provider_id: str) -> None:
Refuses if any phone-number row still references this credential — detach numbers first.

client.telephony.list_numbers(...)

List phone numbers HTTPGET /api/telephony/numbers · API reference →
    def list_numbers(self, agent_id: Optional[str] = None) -> Dict[str, Any]:

client.telephony.create_number(...)

Register a phone number HTTPPOST /api/telephony/numbers · API reference →
    def create_number(
        self,
        e164: str,
        provider: str,
        credentials_id: str,
        agent_id: Optional[str] = None,
        inbound_enabled: bool = True,
        outbound_enabled: bool = True,
    ) -> Dict[str, Any]:
Binds an E.164 number to a carrier credential row and (optionally) pins it to one agent. Inbound + outbound default to enabled.

client.telephony.update_number(...)

Pin or unpin a phone number to an agent HTTPPATCH /api/telephony/numbers/{id} · API reference →
    def update_number(self, number_id: str, agent_id: Optional[str]) -> None:

client.telephony.delete_number(...)

Delete a phone number HTTPDELETE /api/telephony/numbers/{id} · API reference →
    def delete_number(self, number_id: str) -> None: