|
1 | 1 | """Twilio adapter for chat-sdk. |
2 | 2 |
|
3 | 3 | Python port of upstream ``packages/adapter-twilio``. Supports SMS and MMS |
4 | | -bots over Twilio Messaging webhooks and the Messages REST API, plus |
5 | | -low-level voice helpers for custom Twilio voice routes. |
| 4 | +bots over Twilio Messaging webhooks (X-Twilio-Signature verification) and |
| 5 | +the Messages REST API, plus low-level ``api`` / ``webhook`` / ``voice`` |
| 6 | +helpers for apps that only need Twilio primitives — like upstream, none |
| 7 | +of it depends on the official ``twilio`` SDK. |
6 | 8 | """ |
7 | 9 |
|
| 10 | +from chat_sdk.adapters.twilio.adapter import TwilioAdapter, create_twilio_adapter |
| 11 | +from chat_sdk.adapters.twilio.api import ( |
| 12 | + DEFAULT_API_URL, |
| 13 | + TwilioApiError, |
| 14 | + TwilioApiResponse, |
| 15 | + call_twilio_api, |
| 16 | + delete_twilio_message, |
| 17 | + encode_twilio_form, |
| 18 | + fetch_twilio_media, |
| 19 | + fetch_twilio_message, |
| 20 | + list_twilio_messages, |
| 21 | + resolve_twilio_credential, |
| 22 | + send_twilio_message, |
| 23 | + update_twilio_call, |
| 24 | +) |
8 | 25 | from chat_sdk.adapters.twilio.cards import card_to_twilio_text |
9 | 26 | from chat_sdk.adapters.twilio.format_converter import ( |
10 | 27 | TWILIO_MESSAGE_LIMIT, |
|
13 | 30 | truncate_twilio_text, |
14 | 31 | twilio_text_or_placeholder, |
15 | 32 | ) |
| 33 | +from chat_sdk.adapters.twilio.thread import ( |
| 34 | + decode_twilio_thread_id, |
| 35 | + encode_twilio_thread_id, |
| 36 | + twilio_channel_id, |
| 37 | +) |
16 | 38 | from chat_sdk.adapters.twilio.types import ( |
17 | 39 | TwilioAdapterConfig, |
18 | 40 | TwilioCallResource, |
|
37 | 59 | TwilioWebhookVerificationError, |
38 | 60 | TwilioWebhookVerifier, |
39 | 61 | ) |
| 62 | +from chat_sdk.adapters.twilio.voice import ( |
| 63 | + TwilioGatherSpeechResponseOptions, |
| 64 | + TwilioVoiceCallPayload, |
| 65 | + TwilioVoiceTranscriptionPayload, |
| 66 | + empty_twilio_response, |
| 67 | + escape_xml, |
| 68 | + gather_speech_twilio_response, |
| 69 | + parse_twilio_voice_call, |
| 70 | + parse_twilio_voice_transcription, |
| 71 | + say_twilio_response, |
| 72 | + twilio_response, |
| 73 | +) |
| 74 | +from chat_sdk.adapters.twilio.webhook import ( |
| 75 | + parse_twilio_webhook_body, |
| 76 | + read_twilio_webhook, |
| 77 | + resolve_twilio_webhook_url, |
| 78 | + sign_twilio_request, |
| 79 | + twilio_signature_base, |
| 80 | + verify_twilio_request, |
| 81 | +) |
40 | 82 |
|
41 | 83 | __all__ = [ |
| 84 | + "DEFAULT_API_URL", |
42 | 85 | "TWILIO_MESSAGE_LIMIT", |
| 86 | + "TwilioAdapter", |
43 | 87 | "TwilioAdapterConfig", |
| 88 | + "TwilioApiError", |
| 89 | + "TwilioApiResponse", |
44 | 90 | "TwilioCallResource", |
45 | 91 | "TwilioCredential", |
46 | 92 | "TwilioCredentials", |
47 | 93 | "TwilioFormFields", |
48 | 94 | "TwilioFormParams", |
49 | 95 | "TwilioFormatConverter", |
| 96 | + "TwilioGatherSpeechResponseOptions", |
50 | 97 | "TwilioHttpRequest", |
51 | 98 | "TwilioHttpResponse", |
52 | 99 | "TwilioMediaPayload", |
|
58 | 105 | "TwilioThreadId", |
59 | 106 | "TwilioUnsupportedPayload", |
60 | 107 | "TwilioVerifiedRequest", |
| 108 | + "TwilioVoiceCallPayload", |
| 109 | + "TwilioVoiceTranscriptionPayload", |
61 | 110 | "TwilioWebhookError", |
62 | 111 | "TwilioWebhookParseError", |
63 | 112 | "TwilioWebhookPayload", |
64 | 113 | "TwilioWebhookUrl", |
65 | 114 | "TwilioWebhookVerificationError", |
66 | 115 | "TwilioWebhookVerifier", |
| 116 | + "call_twilio_api", |
67 | 117 | "card_to_twilio_text", |
| 118 | + "create_twilio_adapter", |
| 119 | + "decode_twilio_thread_id", |
| 120 | + "delete_twilio_message", |
| 121 | + "empty_twilio_response", |
| 122 | + "encode_twilio_form", |
| 123 | + "encode_twilio_thread_id", |
| 124 | + "escape_xml", |
| 125 | + "fetch_twilio_media", |
| 126 | + "fetch_twilio_message", |
| 127 | + "gather_speech_twilio_response", |
| 128 | + "list_twilio_messages", |
| 129 | + "parse_twilio_voice_call", |
| 130 | + "parse_twilio_voice_transcription", |
| 131 | + "parse_twilio_webhook_body", |
| 132 | + "read_twilio_webhook", |
| 133 | + "resolve_twilio_credential", |
| 134 | + "resolve_twilio_webhook_url", |
| 135 | + "say_twilio_response", |
| 136 | + "send_twilio_message", |
| 137 | + "sign_twilio_request", |
68 | 138 | "truncate_twilio_text", |
| 139 | + "twilio_channel_id", |
| 140 | + "twilio_response", |
| 141 | + "twilio_signature_base", |
69 | 142 | "twilio_text_or_placeholder", |
| 143 | + "update_twilio_call", |
| 144 | + "verify_twilio_request", |
70 | 145 | ] |
0 commit comments