Feat/inbound telephony (#113)

* feat: inbound telephony (twilio & vobiz)

* chore: add ruff and lint formatting

* fix: add missing cloudonix interface compliance implementation
This commit is contained in:
Sabiha Khan 2026-01-12 10:10:30 +05:30 committed by GitHub
parent b79bc4221d
commit 97fbd9b37b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
22 changed files with 1998 additions and 40 deletions

4
api/errors/__init__.py Normal file
View file

@ -0,0 +1,4 @@
"""
Errors package for the Dograh API.
Contains centralized error definitions and messages for various domains.
"""

View file

@ -0,0 +1,31 @@
"""
Telephony error constants and messages for inbound call validation.
Centralizes error handling across all telephony providers.
"""
from enum import Enum
class TelephonyError(Enum):
"""Telephony validation error types"""
PROVIDER_MISMATCH = "PROVIDER_MISMATCH"
WORKFLOW_NOT_FOUND = "WORKFLOW_NOT_FOUND"
ACCOUNT_VALIDATION_FAILED = "ACCOUNT_VALIDATION_FAILED"
PHONE_NUMBER_NOT_CONFIGURED = "PHONE_NUMBER_NOT_CONFIGURED"
SIGNATURE_VALIDATION_FAILED = "SIGNATURE_VALIDATION_FAILED"
QUOTA_EXCEEDED = "QUOTA_EXCEEDED"
GENERAL_AUTH_FAILED = "GENERAL_AUTH_FAILED"
VALID = "VALID"
# Error messages for organizations (debugging-focused)
TELEPHONY_ERROR_MESSAGES = {
TelephonyError.PROVIDER_MISMATCH: "Configuration error: This phone number is configured for a different telephony provider. Please check your dashboard settings and update your webhook URL configuration.",
TelephonyError.WORKFLOW_NOT_FOUND: "Workflow not found. Please verify the workflow ID in your webhook URL is correct and the workflow exists in your dashboard.",
TelephonyError.ACCOUNT_VALIDATION_FAILED: "Authentication error: Account credentials do not match. Please verify your account SID configuration in the dashboard matches your telephony provider settings.",
TelephonyError.PHONE_NUMBER_NOT_CONFIGURED: "Phone number not configured: This number is not set up for inbound calls in your account. Please add this number to your telephony configuration.",
TelephonyError.SIGNATURE_VALIDATION_FAILED: "Security error: Webhook signature validation failed. Please verify your auth token configuration and ensure requests are coming from your telephony provider.",
TelephonyError.QUOTA_EXCEEDED: "Service temporarily unavailable: Your account has exceeded usage limits. Please contact your administrator or upgrade your plan to continue receiving calls.",
TelephonyError.GENERAL_AUTH_FAILED: "Authentication failed: Please check your webhook URL configuration and ensure your telephony provider settings match your dashboard configuration.",
}