telnyx 3.6.0a0__py3-none-any.whl → 3.7.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of telnyx might be problematic. Click here for more details.

Files changed (212) hide show
  1. telnyx/_client.py +3 -754
  2. telnyx/_version.py +1 -1
  3. telnyx/resources/advanced_orders.py +63 -63
  4. telnyx/resources/ai/assistants/assistants.py +15 -17
  5. telnyx/resources/ai/assistants/versions.py +13 -15
  6. telnyx/resources/brand/brand.py +8 -4
  7. telnyx/resources/calls/actions.py +10 -6
  8. telnyx/resources/calls/calls.py +16 -2
  9. telnyx/resources/documents.py +242 -37
  10. telnyx/resources/legacy/reporting/batch_detail_records/messaging.py +3 -2
  11. telnyx/resources/legacy/reporting/batch_detail_records/voice.py +3 -2
  12. telnyx/resources/messaging_profiles/messaging_profiles.py +16 -0
  13. telnyx/resources/messaging_tollfree/verification/requests.py +203 -1
  14. telnyx/resources/outbound_voice_profiles.py +24 -4
  15. telnyx/resources/sim_cards/actions.py +12 -12
  16. telnyx/resources/texml/accounts/calls/calls.py +11 -0
  17. telnyx/resources/texml/accounts/conferences/participants.py +11 -0
  18. telnyx/resources/verified_numbers/verified_numbers.py +25 -4
  19. telnyx/resources/verify_profiles.py +9 -10
  20. telnyx/resources/webhooks.py +19 -0
  21. telnyx/types/__init__.py +18 -15
  22. telnyx/types/access_ip_address_list_response.py +3 -12
  23. telnyx/types/access_ip_range_list_response.py +3 -12
  24. telnyx/types/addresses/action_validate_response.py +8 -3
  25. telnyx/types/{advanced_order_update_params.py → advanced_order_update_requirement_group_params.py} +2 -2
  26. telnyx/types/ai/__init__.py +1 -3
  27. telnyx/types/ai/assistant_import_params.py +1 -1
  28. telnyx/types/ai/assistants/__init__.py +0 -3
  29. telnyx/types/ai/assistants_list.py +4 -88
  30. telnyx/types/ai/import_metadata.py +1 -1
  31. telnyx/types/ai/{assistant_clone_response.py → inference_embedding.py} +2 -2
  32. telnyx/types/ai/inference_embedding_transfer_tool_params.py +6 -0
  33. telnyx/types/ai/inference_embedding_transfer_tool_params_param.py +6 -0
  34. telnyx/types/ai/voice_settings.py +49 -2
  35. telnyx/types/ai/voice_settings_param.py +49 -2
  36. telnyx/types/brand_create_params.py +2 -1
  37. telnyx/types/brand_update_params.py +2 -1
  38. telnyx/types/call_ai_gather_ended_webhook_event1.py +78 -0
  39. telnyx/types/call_ai_gather_message_history_updated_webhook_event1.py +69 -0
  40. telnyx/types/call_ai_gather_partial_results_webhook_event1.py +75 -0
  41. telnyx/types/call_answered_webhook_event1.py +75 -0
  42. telnyx/types/call_bridged_webhook_event1.py +58 -0
  43. telnyx/types/call_conversation_ended_webhook_event1.py +84 -0
  44. telnyx/types/call_conversation_insights_generated_webhook_event1.py +67 -0
  45. telnyx/types/call_dial_params.py +10 -1
  46. telnyx/types/call_dtmf_received_webhook_event1.py +61 -0
  47. telnyx/types/call_enqueued_webhook_event1.py +59 -0
  48. telnyx/types/call_fork_started_webhook_event1.py +53 -0
  49. telnyx/types/call_fork_stopped_webhook_event1.py +53 -0
  50. telnyx/types/call_gather_ended_webhook_event1.py +64 -0
  51. telnyx/types/call_hangup_webhook_event1.py +150 -0
  52. telnyx/types/call_initiated_webhook_event1.py +96 -0
  53. telnyx/types/call_left_queue_webhook_event1.py +62 -0
  54. telnyx/types/call_machine_detection_ended_webhook_event1.py +61 -0
  55. telnyx/types/call_machine_greeting_ended_webhook_event1.py +61 -0
  56. telnyx/types/call_machine_premium_detection_ended_webhook_event1.py +63 -0
  57. telnyx/types/call_machine_premium_greeting_ended_webhook_event1.py +61 -0
  58. telnyx/types/call_playback_ended_webhook_event1.py +70 -0
  59. telnyx/types/call_playback_started_webhook_event1.py +62 -0
  60. telnyx/types/call_recording_error_webhook_event1.py +60 -0
  61. telnyx/types/call_recording_saved_webhook_event1.py +94 -0
  62. telnyx/types/call_recording_transcription_saved_webhook_event1.py +71 -0
  63. telnyx/types/call_refer_completed_webhook_event1.py +61 -0
  64. telnyx/types/call_refer_failed_webhook_event1.py +61 -0
  65. telnyx/types/call_refer_started_webhook_event1.py +61 -0
  66. telnyx/types/call_siprec_failed_webhook_event1.py +53 -0
  67. telnyx/types/call_siprec_started_webhook_event1.py +50 -0
  68. telnyx/types/call_siprec_stopped_webhook_event1.py +53 -0
  69. telnyx/types/call_speak_ended_webhook_event1.py +53 -0
  70. telnyx/types/call_speak_started_webhook_event1.py +50 -0
  71. telnyx/types/call_streaming_failed_webhook_event1.py +70 -0
  72. telnyx/types/call_streaming_started_webhook_event1.py +53 -0
  73. telnyx/types/call_streaming_stopped_webhook_event1.py +53 -0
  74. telnyx/types/calls/__init__.py +1 -0
  75. telnyx/types/calls/action_start_streaming_params.py +2 -1
  76. telnyx/types/calls/action_start_transcription_params.py +160 -6
  77. telnyx/types/calls/telnyx_transcription_language.py +108 -0
  78. telnyx/types/calls/transcription_engine_b_config_param.py +3 -102
  79. telnyx/types/calls/transcription_start_request_param.py +161 -6
  80. telnyx/types/campaign_status_update_webhook_event1.py +26 -0
  81. telnyx/types/conference_created_webhook_event1.py +53 -0
  82. telnyx/types/conference_ended_webhook_event1.py +56 -0
  83. telnyx/types/conference_floor_changed_webhook_event1.py +45 -0
  84. telnyx/types/conference_participant_joined_webhook_event1.py +53 -0
  85. telnyx/types/conference_participant_left_webhook_event1.py +53 -0
  86. telnyx/types/conference_participant_playback_ended_webhook_event1.py +65 -0
  87. telnyx/types/conference_participant_playback_started_webhook_event1.py +65 -0
  88. telnyx/types/conference_participant_speak_ended_webhook_event1.py +56 -0
  89. telnyx/types/conference_participant_speak_started_webhook_event1.py +56 -0
  90. telnyx/types/conference_playback_ended_webhook_event1.py +49 -0
  91. telnyx/types/conference_playback_started_webhook_event1.py +49 -0
  92. telnyx/types/conference_recording_saved_webhook_event1.py +103 -0
  93. telnyx/types/conference_speak_ended_webhook_event1.py +40 -0
  94. telnyx/types/conference_speak_started_webhook_event1.py +40 -0
  95. telnyx/types/country_coverage_retrieve_country_response.py +7 -0
  96. telnyx/types/country_coverage_retrieve_response.py +7 -0
  97. telnyx/types/customer_service_record_status_changed_webhook_event1.py +55 -0
  98. telnyx/types/delivery_update_webhook_event1.py +40 -0
  99. telnyx/types/document_upload_json_params.py +39 -0
  100. telnyx/types/document_upload_json_response.py +12 -0
  101. telnyx/types/fax_delivered_webhook_event1.py +69 -0
  102. telnyx/types/fax_failed_webhook_event1.py +66 -0
  103. telnyx/types/fax_media_processed_webhook_event1.py +63 -0
  104. telnyx/types/fax_queued_webhook_event1.py +63 -0
  105. telnyx/types/fax_sending_started_webhook_event1.py +63 -0
  106. telnyx/types/inbound_message_webhook_event1.py +227 -0
  107. telnyx/types/legacy/reporting/__init__.py +2 -0
  108. telnyx/types/legacy/reporting/batch_detail_records/__init__.py +4 -0
  109. telnyx/types/legacy/reporting/batch_detail_records/batch_csv_pagination_meta.py +17 -0
  110. telnyx/types/legacy/reporting/batch_detail_records/cdr_detailed_req_response.py +63 -0
  111. telnyx/types/legacy/reporting/batch_detail_records/mdr_detail_report_response.py +42 -0
  112. telnyx/types/legacy/reporting/batch_detail_records/messaging_create_params.py +4 -26
  113. telnyx/types/legacy/reporting/batch_detail_records/messaging_create_response.py +4 -60
  114. telnyx/types/legacy/reporting/batch_detail_records/messaging_delete_response.py +4 -60
  115. telnyx/types/legacy/reporting/batch_detail_records/messaging_list_response.py +5 -70
  116. telnyx/types/legacy/reporting/batch_detail_records/messaging_retrieve_response.py +4 -60
  117. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_create_response.py +3 -22
  118. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_delete_response.py +3 -22
  119. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_list_response.py +3 -22
  120. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_retrieve_response.py +3 -22
  121. telnyx/types/legacy/reporting/batch_detail_records/stt_detail_report_response.py +27 -0
  122. telnyx/types/legacy/reporting/batch_detail_records/voice_create_params.py +4 -26
  123. telnyx/types/legacy/reporting/batch_detail_records/voice_create_response.py +4 -82
  124. telnyx/types/legacy/reporting/batch_detail_records/voice_delete_response.py +4 -82
  125. telnyx/types/legacy/reporting/batch_detail_records/voice_list_response.py +5 -92
  126. telnyx/types/legacy/reporting/batch_detail_records/voice_retrieve_response.py +4 -82
  127. telnyx/types/legacy/reporting/filter.py +31 -0
  128. telnyx/types/legacy/reporting/filter_param.py +30 -0
  129. telnyx/types/legacy/reporting/usage_reports/__init__.py +3 -0
  130. telnyx/types/legacy/reporting/usage_reports/cdr_usage_report_response_legacy.py +43 -0
  131. telnyx/types/legacy/reporting/usage_reports/mdr_usage_report_response_legacy.py +38 -0
  132. telnyx/types/legacy/reporting/usage_reports/messaging_create_response.py +4 -34
  133. telnyx/types/legacy/reporting/usage_reports/messaging_delete_response.py +4 -34
  134. telnyx/types/legacy/reporting/usage_reports/messaging_list_response.py +5 -44
  135. telnyx/types/legacy/reporting/usage_reports/messaging_retrieve_response.py +4 -34
  136. telnyx/types/legacy/reporting/usage_reports/standard_pagination_meta.py +17 -0
  137. telnyx/types/legacy/reporting/usage_reports/voice_create_response.py +4 -39
  138. telnyx/types/legacy/reporting/usage_reports/voice_delete_response.py +4 -39
  139. telnyx/types/legacy/reporting/usage_reports/voice_list_response.py +5 -49
  140. telnyx/types/legacy/reporting/usage_reports/voice_retrieve_response.py +4 -39
  141. telnyx/types/message_template.py +12 -0
  142. telnyx/types/messaging_profile.py +3 -0
  143. telnyx/types/messaging_profile_create_params.py +3 -0
  144. telnyx/types/messaging_profile_update_params.py +3 -0
  145. telnyx/types/messaging_tollfree/verification/__init__.py +1 -0
  146. telnyx/types/messaging_tollfree/verification/request_create_params.py +51 -1
  147. telnyx/types/messaging_tollfree/verification/request_update_params.py +51 -1
  148. telnyx/types/messaging_tollfree/verification/toll_free_verification_entity_type.py +9 -0
  149. telnyx/types/messaging_tollfree/verification/verification_request_egress.py +24 -0
  150. telnyx/types/messaging_tollfree/verification/verification_request_status.py +24 -0
  151. telnyx/types/number_order_status_update_webhook_event1.py +38 -0
  152. telnyx/types/oauth_client.py +59 -0
  153. telnyx/types/oauth_client_create_response.py +4 -55
  154. telnyx/types/oauth_client_list_response.py +5 -69
  155. telnyx/types/oauth_client_retrieve_response.py +4 -55
  156. telnyx/types/oauth_client_update_response.py +4 -55
  157. telnyx/types/oauth_grant.py +29 -0
  158. telnyx/types/oauth_grant_delete_response.py +4 -25
  159. telnyx/types/oauth_grant_list_response.py +5 -39
  160. telnyx/types/oauth_grant_retrieve_response.py +4 -25
  161. telnyx/types/outbound_voice_profile.py +27 -1
  162. telnyx/types/outbound_voice_profile_create_params.py +27 -1
  163. telnyx/types/outbound_voice_profile_list_params.py +1 -1
  164. telnyx/types/outbound_voice_profile_update_params.py +27 -1
  165. telnyx/types/pagination_meta_cloudflare_ip_list_sync.py +15 -0
  166. telnyx/types/pagination_meta_oauth.py +21 -0
  167. telnyx/types/phone_number_blocks/__init__.py +1 -0
  168. telnyx/types/phone_number_blocks/job.py +3 -34
  169. telnyx/types/phone_number_blocks/job_error.py +32 -0
  170. telnyx/types/phone_numbers/phone_numbers_job.py +3 -36
  171. telnyx/types/replaced_link_click_webhook_event1.py +32 -0
  172. telnyx/types/report_list_mdrs_response.py +3 -12
  173. telnyx/types/reports/__init__.py +1 -0
  174. telnyx/types/reports/mdr_usage_report_list_response.py +3 -12
  175. telnyx/types/reports/pagination_meta_reporting.py +17 -0
  176. telnyx/types/requirement_group.py +2 -2
  177. telnyx/types/requirement_group_list_params.py +1 -1
  178. telnyx/types/shared/__init__.py +1 -0
  179. telnyx/types/{error.py → shared/api_error.py} +3 -3
  180. telnyx/types/stream_bidirectional_sampling_rate.py +7 -0
  181. telnyx/types/streaming_failed_webhook_event1.py +70 -0
  182. telnyx/types/streaming_started_webhook_event1.py +53 -0
  183. telnyx/types/streaming_stopped_webhook_event1.py +53 -0
  184. telnyx/types/texml/accounts/call_calls_params.py +16 -1
  185. telnyx/types/texml/accounts/conferences/participant_participants_params.py +16 -1
  186. telnyx/types/transcription_webhook_event1.py +72 -0
  187. telnyx/types/unsafe_unwrap_webhook_event.py +138 -0
  188. telnyx/types/verifications/__init__.py +1 -0
  189. telnyx/types/verifications/by_phone_number_list_response.py +4 -13
  190. telnyx/types/verifications/verify_meta.py +17 -0
  191. telnyx/types/verified_number_create_params.py +10 -0
  192. telnyx/types/verify_profile.py +18 -3
  193. telnyx/types/verify_profile_list_response.py +4 -13
  194. telnyx/types/{verify_profile_create_template_response.py → verify_profile_message_template_response.py} +2 -6
  195. telnyx/types/verify_profile_retrieve_templates_response.py +4 -9
  196. {telnyx-3.6.0a0.dist-info → telnyx-3.7.0.dist-info}/METADATA +4 -4
  197. {telnyx-3.6.0a0.dist-info → telnyx-3.7.0.dist-info}/RECORD +199 -125
  198. telnyx/types/ai/assistant_create_response.py +0 -92
  199. telnyx/types/ai/assistant_retrieve_response.py +0 -92
  200. telnyx/types/ai/assistants/version_promote_response.py +0 -92
  201. telnyx/types/ai/assistants/version_retrieve_response.py +0 -92
  202. telnyx/types/ai/assistants/version_update_response.py +0 -92
  203. telnyx/types/client_create_bucket_params.py +0 -13
  204. telnyx/types/client_delete_objects_params.py +0 -20
  205. telnyx/types/client_get_object_params.py +0 -15
  206. telnyx/types/client_list_objects_params.py +0 -13
  207. telnyx/types/client_put_object_params.py +0 -20
  208. telnyx/types/list_buckets_response.py +0 -20
  209. telnyx/types/list_objects_response.py +0 -24
  210. telnyx/types/verify_profile_update_template_response.py +0 -17
  211. {telnyx-3.6.0a0.dist-info → telnyx-3.7.0.dist-info}/WHEEL +0 -0
  212. {telnyx-3.6.0a0.dist-info → telnyx-3.7.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,67 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Union, Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from .._models import BaseModel
8
+
9
+ __all__ = ["CallConversationInsightsGeneratedWebhookEvent", "Data", "DataPayload", "DataPayloadResult"]
10
+
11
+
12
+ class DataPayloadResult(BaseModel):
13
+ insight_id: Optional[str] = None
14
+ """ID that is unique to the insight result being generated for the call."""
15
+
16
+ result: Union[str, object, None] = None
17
+ """The result of the insight."""
18
+
19
+
20
+ class DataPayload(BaseModel):
21
+ call_control_id: Optional[str] = None
22
+ """Call ID used to issue commands via Call Control API."""
23
+
24
+ call_leg_id: Optional[str] = None
25
+ """ID that is unique to the call and can be used to correlate webhook events."""
26
+
27
+ call_session_id: Optional[str] = None
28
+ """
29
+ ID that is unique to the call session and can be used to correlate webhook
30
+ events. Call session is a group of related call legs that logically belong to
31
+ the same phone call, e.g. an inbound and outbound leg of a transferred call.
32
+ """
33
+
34
+ calling_party_type: Optional[Literal["pstn", "sip"]] = None
35
+ """The type of calling party connection."""
36
+
37
+ client_state: Optional[str] = None
38
+ """State received from a command."""
39
+
40
+ connection_id: Optional[str] = None
41
+ """Call Control App ID (formerly Telnyx connection ID) used in the call."""
42
+
43
+ insight_group_id: Optional[str] = None
44
+ """ID that is unique to the insight group being generated for the call."""
45
+
46
+ results: Optional[List[DataPayloadResult]] = None
47
+ """Array of insight results being generated for the call."""
48
+
49
+
50
+ class Data(BaseModel):
51
+ id: Optional[str] = None
52
+ """Identifies the type of resource."""
53
+
54
+ event_type: Optional[Literal["call.conversation_insights.generated"]] = None
55
+ """The type of event being delivered."""
56
+
57
+ occurred_at: Optional[datetime] = None
58
+ """ISO 8601 datetime of when the event occurred."""
59
+
60
+ payload: Optional[DataPayload] = None
61
+
62
+ record_type: Optional[Literal["event"]] = None
63
+ """Identifies the type of the resource."""
64
+
65
+
66
+ class CallConversationInsightsGeneratedWebhookEvent(BaseModel):
67
+ data: Optional[Data] = None
@@ -15,6 +15,7 @@ from .sound_modifications_param import SoundModificationsParam
15
15
  from .stream_bidirectional_mode import StreamBidirectionalMode
16
16
  from .stream_bidirectional_codec import StreamBidirectionalCodec
17
17
  from .stream_bidirectional_target_legs import StreamBidirectionalTargetLegs
18
+ from .stream_bidirectional_sampling_rate import StreamBidirectionalSamplingRate
18
19
  from .calls.transcription_start_request_param import TranscriptionStartRequestParam
19
20
 
20
21
  __all__ = ["CallDialParams", "AnsweringMachineDetectionConfig", "ConferenceConfig"]
@@ -139,6 +140,14 @@ class CallDialParams(TypedDict, total=False):
139
140
  WAV or MP3 file.
140
141
  """
141
142
 
143
+ park_after_unbridge: str
144
+ """If supplied with the value `self`, the current leg will be parked after
145
+ unbridge.
146
+
147
+ If not set, the default behavior is to hang up the leg. When park_after_unbridge
148
+ is set, link_to becomes required.
149
+ """
150
+
142
151
  preferred_codecs: str
143
152
  """
144
153
  The list of comma-separated codecs in a preferred order for the forked media to
@@ -225,7 +234,7 @@ class CallDialParams(TypedDict, total=False):
225
234
  stream_bidirectional_mode: StreamBidirectionalMode
226
235
  """Configures method of bidirectional streaming (mp3, rtp)."""
227
236
 
228
- stream_bidirectional_sampling_rate: Literal[8000, 16000, 22050, 24000, 48000]
237
+ stream_bidirectional_sampling_rate: StreamBidirectionalSamplingRate
229
238
  """Audio sampling rate."""
230
239
 
231
240
  stream_bidirectional_target_legs: StreamBidirectionalTargetLegs
@@ -0,0 +1,61 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from pydantic import Field as FieldInfo
8
+
9
+ from .._models import BaseModel
10
+
11
+ __all__ = ["CallDtmfReceivedWebhookEvent", "Data", "DataPayload"]
12
+
13
+
14
+ class DataPayload(BaseModel):
15
+ call_control_id: Optional[str] = None
16
+ """Call ID used to issue commands via Call Control API."""
17
+
18
+ call_leg_id: Optional[str] = None
19
+ """ID that is unique to the call and can be used to correlate webhook events."""
20
+
21
+ call_session_id: Optional[str] = None
22
+ """
23
+ ID that is unique to the call session and can be used to correlate webhook
24
+ events. Call session is a group of related call legs that logically belong to
25
+ the same phone call, e.g. an inbound and outbound leg of a transferred call.
26
+ """
27
+
28
+ client_state: Optional[str] = None
29
+ """State received from a command."""
30
+
31
+ connection_id: Optional[str] = None
32
+ """Identifies the type of resource."""
33
+
34
+ digit: Optional[str] = None
35
+ """The received DTMF digit or symbol."""
36
+
37
+ from_: Optional[str] = FieldInfo(alias="from", default=None)
38
+ """Number or SIP URI placing the call."""
39
+
40
+ to: Optional[str] = None
41
+ """Destination number or SIP URI of the call."""
42
+
43
+
44
+ class Data(BaseModel):
45
+ id: Optional[str] = None
46
+ """Identifies the type of resource."""
47
+
48
+ event_type: Optional[Literal["call.dtmf.received"]] = None
49
+ """The type of event being delivered."""
50
+
51
+ occurred_at: Optional[datetime] = None
52
+ """ISO 8601 datetime of when the event occurred."""
53
+
54
+ payload: Optional[DataPayload] = None
55
+
56
+ record_type: Optional[Literal["event"]] = None
57
+ """Identifies the type of the resource."""
58
+
59
+
60
+ class CallDtmfReceivedWebhookEvent(BaseModel):
61
+ data: Optional[Data] = None
@@ -0,0 +1,59 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from .._models import BaseModel
8
+
9
+ __all__ = ["CallEnqueuedWebhookEvent", "Data", "DataPayload"]
10
+
11
+
12
+ class DataPayload(BaseModel):
13
+ call_control_id: Optional[str] = None
14
+ """Call ID used to issue commands via Call Control API."""
15
+
16
+ call_leg_id: Optional[str] = None
17
+ """ID that is unique to the call and can be used to correlate webhook events."""
18
+
19
+ call_session_id: Optional[str] = None
20
+ """
21
+ ID that is unique to the call session and can be used to correlate webhook
22
+ events. Call session is a group of related call legs that logically belong to
23
+ the same phone call, e.g. an inbound and outbound leg of a transferred call.
24
+ """
25
+
26
+ client_state: Optional[str] = None
27
+ """State received from a command."""
28
+
29
+ connection_id: Optional[str] = None
30
+ """Call Control App ID (formerly Telnyx connection ID) used in the call."""
31
+
32
+ current_position: Optional[int] = None
33
+ """Current position of the call in the queue."""
34
+
35
+ queue: Optional[str] = None
36
+ """The name of the queue"""
37
+
38
+ queue_avg_wait_time_secs: Optional[int] = None
39
+ """Average time call spends in the queue in seconds."""
40
+
41
+
42
+ class Data(BaseModel):
43
+ id: Optional[str] = None
44
+ """Identifies the type of resource."""
45
+
46
+ event_type: Optional[Literal["call.enqueued"]] = None
47
+ """The type of event being delivered."""
48
+
49
+ occurred_at: Optional[datetime] = None
50
+ """ISO 8601 datetime of when the event occurred."""
51
+
52
+ payload: Optional[DataPayload] = None
53
+
54
+ record_type: Optional[Literal["event"]] = None
55
+ """Identifies the type of the resource."""
56
+
57
+
58
+ class CallEnqueuedWebhookEvent(BaseModel):
59
+ data: Optional[Data] = None
@@ -0,0 +1,53 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from .._models import BaseModel
8
+
9
+ __all__ = ["CallForkStartedWebhookEvent", "Data", "DataPayload"]
10
+
11
+
12
+ class DataPayload(BaseModel):
13
+ call_control_id: Optional[str] = None
14
+ """Unique ID for controlling the call."""
15
+
16
+ call_leg_id: Optional[str] = None
17
+ """ID that is unique to the call and can be used to correlate webhook events."""
18
+
19
+ call_session_id: Optional[str] = None
20
+ """
21
+ ID that is unique to the call session and can be used to correlate webhook
22
+ events. Call session is a group of related call legs that logically belong to
23
+ the same phone call, e.g. an inbound and outbound leg of a transferred call.
24
+ """
25
+
26
+ client_state: Optional[str] = None
27
+ """State received from a command."""
28
+
29
+ connection_id: Optional[str] = None
30
+ """Call Control App ID (formerly Telnyx connection ID) used in the call."""
31
+
32
+ stream_type: Optional[Literal["decrypted"]] = None
33
+ """Type of media streamed. It can be either 'raw' or 'decrypted'."""
34
+
35
+
36
+ class Data(BaseModel):
37
+ id: Optional[str] = None
38
+ """Identifies the type of resource."""
39
+
40
+ event_type: Optional[Literal["call.fork.started"]] = None
41
+ """The type of event being delivered."""
42
+
43
+ occurred_at: Optional[datetime] = None
44
+ """ISO 8601 datetime of when the event occurred."""
45
+
46
+ payload: Optional[DataPayload] = None
47
+
48
+ record_type: Optional[Literal["event"]] = None
49
+ """Identifies the type of the resource."""
50
+
51
+
52
+ class CallForkStartedWebhookEvent(BaseModel):
53
+ data: Optional[Data] = None
@@ -0,0 +1,53 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from .._models import BaseModel
8
+
9
+ __all__ = ["CallForkStoppedWebhookEvent", "Data", "DataPayload"]
10
+
11
+
12
+ class DataPayload(BaseModel):
13
+ call_control_id: Optional[str] = None
14
+ """Unique ID for controlling the call."""
15
+
16
+ call_leg_id: Optional[str] = None
17
+ """ID that is unique to the call and can be used to correlate webhook events."""
18
+
19
+ call_session_id: Optional[str] = None
20
+ """
21
+ ID that is unique to the call session and can be used to correlate webhook
22
+ events. Call session is a group of related call legs that logically belong to
23
+ the same phone call, e.g. an inbound and outbound leg of a transferred call.
24
+ """
25
+
26
+ client_state: Optional[str] = None
27
+ """State received from a command."""
28
+
29
+ connection_id: Optional[str] = None
30
+ """Call Control App ID (formerly Telnyx connection ID) used in the call."""
31
+
32
+ stream_type: Optional[Literal["decrypted"]] = None
33
+ """Type of media streamed. It can be either 'raw' or 'decrypted'."""
34
+
35
+
36
+ class Data(BaseModel):
37
+ id: Optional[str] = None
38
+ """Identifies the type of resource."""
39
+
40
+ event_type: Optional[Literal["call.fork.stopped"]] = None
41
+ """The type of event being delivered."""
42
+
43
+ occurred_at: Optional[datetime] = None
44
+ """ISO 8601 datetime of when the event occurred."""
45
+
46
+ payload: Optional[DataPayload] = None
47
+
48
+ record_type: Optional[Literal["event"]] = None
49
+ """Identifies the type of the resource."""
50
+
51
+
52
+ class CallForkStoppedWebhookEvent(BaseModel):
53
+ data: Optional[Data] = None
@@ -0,0 +1,64 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from pydantic import Field as FieldInfo
8
+
9
+ from .._models import BaseModel
10
+
11
+ __all__ = ["CallGatherEndedWebhookEvent", "Data", "DataPayload"]
12
+
13
+
14
+ class DataPayload(BaseModel):
15
+ call_control_id: Optional[str] = None
16
+ """Call ID used to issue commands via Call Control API."""
17
+
18
+ call_leg_id: Optional[str] = None
19
+ """ID that is unique to the call and can be used to correlate webhook events."""
20
+
21
+ call_session_id: Optional[str] = None
22
+ """
23
+ ID that is unique to the call session and can be used to correlate webhook
24
+ events. Call session is a group of related call legs that logically belong to
25
+ the same phone call, e.g. an inbound and outbound leg of a transferred call.
26
+ """
27
+
28
+ client_state: Optional[str] = None
29
+ """State received from a command."""
30
+
31
+ connection_id: Optional[str] = None
32
+ """Call Control App ID (formerly Telnyx connection ID) used in the call."""
33
+
34
+ digits: Optional[str] = None
35
+ """The received DTMF digit or symbol."""
36
+
37
+ from_: Optional[str] = FieldInfo(alias="from", default=None)
38
+ """Number or SIP URI placing the call."""
39
+
40
+ status: Optional[Literal["valid", "invalid", "call_hangup", "cancelled", "cancelled_amd", "timeout"]] = None
41
+ """Reflects how command ended."""
42
+
43
+ to: Optional[str] = None
44
+ """Destination number or SIP URI of the call."""
45
+
46
+
47
+ class Data(BaseModel):
48
+ id: Optional[str] = None
49
+ """Identifies the type of resource."""
50
+
51
+ event_type: Optional[Literal["call.gather.ended"]] = None
52
+ """The type of event being delivered."""
53
+
54
+ occurred_at: Optional[datetime] = None
55
+ """ISO 8601 datetime of when the event occurred."""
56
+
57
+ payload: Optional[DataPayload] = None
58
+
59
+ record_type: Optional[Literal["event"]] = None
60
+ """Identifies the type of the resource."""
61
+
62
+
63
+ class CallGatherEndedWebhookEvent(BaseModel):
64
+ data: Optional[Data] = None
@@ -0,0 +1,150 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from pydantic import Field as FieldInfo
8
+
9
+ from .._models import BaseModel
10
+ from .sip_header import SipHeader
11
+ from .custom_sip_header import CustomSipHeader
12
+
13
+ __all__ = [
14
+ "CallHangupWebhookEvent",
15
+ "Data",
16
+ "DataPayload",
17
+ "DataPayloadCallQualityStats",
18
+ "DataPayloadCallQualityStatsInbound",
19
+ "DataPayloadCallQualityStatsOutbound",
20
+ ]
21
+
22
+
23
+ class DataPayloadCallQualityStatsInbound(BaseModel):
24
+ jitter_max_variance: Optional[str] = None
25
+ """Maximum jitter variance for inbound audio."""
26
+
27
+ jitter_packet_count: Optional[str] = None
28
+ """Number of packets used for jitter calculation on inbound audio."""
29
+
30
+ mos: Optional[str] = None
31
+ """Mean Opinion Score (MOS) for inbound audio quality."""
32
+
33
+ packet_count: Optional[str] = None
34
+ """Total number of inbound audio packets."""
35
+
36
+ skip_packet_count: Optional[str] = None
37
+ """Number of skipped inbound packets (packet loss)."""
38
+
39
+
40
+ class DataPayloadCallQualityStatsOutbound(BaseModel):
41
+ packet_count: Optional[str] = None
42
+ """Total number of outbound audio packets."""
43
+
44
+ skip_packet_count: Optional[str] = None
45
+ """Number of skipped outbound packets (packet loss)."""
46
+
47
+
48
+ class DataPayloadCallQualityStats(BaseModel):
49
+ inbound: Optional[DataPayloadCallQualityStatsInbound] = None
50
+ """Inbound call quality statistics."""
51
+
52
+ outbound: Optional[DataPayloadCallQualityStatsOutbound] = None
53
+ """Outbound call quality statistics."""
54
+
55
+
56
+ class DataPayload(BaseModel):
57
+ call_control_id: Optional[str] = None
58
+ """Call ID used to issue commands via Call Control API."""
59
+
60
+ call_leg_id: Optional[str] = None
61
+ """ID that is unique to the call and can be used to correlate webhook events."""
62
+
63
+ call_quality_stats: Optional[DataPayloadCallQualityStats] = None
64
+ """Call quality statistics aggregated from the CHANNEL_HANGUP_COMPLETE event.
65
+
66
+ Only includes metrics that are available (filters out nil values). Returns nil
67
+ if no metrics are available.
68
+ """
69
+
70
+ call_session_id: Optional[str] = None
71
+ """
72
+ ID that is unique to the call session and can be used to correlate webhook
73
+ events. Call session is a group of related call legs that logically belong to
74
+ the same phone call, e.g. an inbound and outbound leg of a transferred call.
75
+ """
76
+
77
+ client_state: Optional[str] = None
78
+ """State received from a command."""
79
+
80
+ connection_id: Optional[str] = None
81
+ """Call Control App ID (formerly Telnyx connection ID) used in the call."""
82
+
83
+ custom_headers: Optional[List[CustomSipHeader]] = None
84
+ """Custom headers set on answer command"""
85
+
86
+ from_: Optional[str] = FieldInfo(alias="from", default=None)
87
+ """Number or SIP URI placing the call."""
88
+
89
+ hangup_cause: Optional[
90
+ Literal[
91
+ "call_rejected",
92
+ "normal_clearing",
93
+ "originator_cancel",
94
+ "timeout",
95
+ "time_limit",
96
+ "user_busy",
97
+ "not_found",
98
+ "unspecified",
99
+ ]
100
+ ] = None
101
+ """
102
+ The reason the call was ended (`call_rejected`, `normal_clearing`,
103
+ `originator_cancel`, `timeout`, `time_limit`, `user_busy`, `not_found` or
104
+ `unspecified`).
105
+ """
106
+
107
+ hangup_source: Optional[Literal["caller", "callee", "unknown"]] = None
108
+ """The party who ended the call (`callee`, `caller`, `unknown`)."""
109
+
110
+ sip_hangup_cause: Optional[str] = None
111
+ """The reason the call was ended (SIP response code).
112
+
113
+ If the SIP response is unavailable (in inbound calls for example) this is set to
114
+ `unspecified`.
115
+ """
116
+
117
+ sip_headers: Optional[List[SipHeader]] = None
118
+ """User-to-User and Diversion headers from sip invite."""
119
+
120
+ start_time: Optional[datetime] = None
121
+ """ISO 8601 datetime of when the call started."""
122
+
123
+ state: Optional[Literal["hangup"]] = None
124
+ """State received from a command."""
125
+
126
+ tags: Optional[List[str]] = None
127
+ """Array of tags associated to number."""
128
+
129
+ to: Optional[str] = None
130
+ """Destination number or SIP URI of the call."""
131
+
132
+
133
+ class Data(BaseModel):
134
+ id: Optional[str] = None
135
+ """Identifies the type of resource."""
136
+
137
+ event_type: Optional[Literal["call.hangup"]] = None
138
+ """The type of event being delivered."""
139
+
140
+ occurred_at: Optional[datetime] = None
141
+ """ISO 8601 datetime of when the event occurred."""
142
+
143
+ payload: Optional[DataPayload] = None
144
+
145
+ record_type: Optional[Literal["event"]] = None
146
+ """Identifies the type of the resource."""
147
+
148
+
149
+ class CallHangupWebhookEvent(BaseModel):
150
+ data: Optional[Data] = None
@@ -0,0 +1,96 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from pydantic import Field as FieldInfo
8
+
9
+ from .._models import BaseModel
10
+ from .sip_header import SipHeader
11
+ from .custom_sip_header import CustomSipHeader
12
+
13
+ __all__ = ["CallInitiatedWebhookEvent", "Data", "DataPayload"]
14
+
15
+
16
+ class DataPayload(BaseModel):
17
+ call_control_id: Optional[str] = None
18
+ """Call ID used to issue commands via Call Control API."""
19
+
20
+ call_leg_id: Optional[str] = None
21
+ """ID that is unique to the call and can be used to correlate webhook events."""
22
+
23
+ call_screening_result: Optional[str] = None
24
+ """Call screening result."""
25
+
26
+ call_session_id: Optional[str] = None
27
+ """
28
+ ID that is unique to the call session and can be used to correlate webhook
29
+ events. Call session is a group of related call legs that logically belong to
30
+ the same phone call, e.g. an inbound and outbound leg of a transferred call.
31
+ """
32
+
33
+ caller_id_name: Optional[str] = None
34
+ """Caller id."""
35
+
36
+ client_state: Optional[str] = None
37
+ """State received from a command."""
38
+
39
+ connection_codecs: Optional[str] = None
40
+ """The list of comma-separated codecs enabled for the connection."""
41
+
42
+ connection_id: Optional[str] = None
43
+ """Call Control App ID (formerly Telnyx connection ID) used in the call."""
44
+
45
+ custom_headers: Optional[List[CustomSipHeader]] = None
46
+ """Custom headers from sip invite"""
47
+
48
+ direction: Optional[Literal["incoming", "outgoing"]] = None
49
+ """Whether the call is `incoming` or `outgoing`."""
50
+
51
+ from_: Optional[str] = FieldInfo(alias="from", default=None)
52
+ """Number or SIP URI placing the call."""
53
+
54
+ offered_codecs: Optional[str] = None
55
+ """The list of comma-separated codecs offered by caller."""
56
+
57
+ shaken_stir_attestation: Optional[str] = None
58
+ """SHAKEN/STIR attestation level."""
59
+
60
+ shaken_stir_validated: Optional[bool] = None
61
+ """Whether attestation was successfully validated or not."""
62
+
63
+ sip_headers: Optional[List[SipHeader]] = None
64
+ """User-to-User and Diversion headers from sip invite."""
65
+
66
+ start_time: Optional[datetime] = None
67
+ """ISO 8601 datetime of when the call started."""
68
+
69
+ state: Optional[Literal["parked", "bridging"]] = None
70
+ """State received from a command."""
71
+
72
+ tags: Optional[List[str]] = None
73
+ """Array of tags associated to number."""
74
+
75
+ to: Optional[str] = None
76
+ """Destination number or SIP URI of the call."""
77
+
78
+
79
+ class Data(BaseModel):
80
+ id: Optional[str] = None
81
+ """Identifies the type of resource."""
82
+
83
+ event_type: Optional[Literal["call.initiated"]] = None
84
+ """The type of event being delivered."""
85
+
86
+ occurred_at: Optional[datetime] = None
87
+ """ISO 8601 datetime of when the event occurred."""
88
+
89
+ payload: Optional[DataPayload] = None
90
+
91
+ record_type: Optional[Literal["event"]] = None
92
+ """Identifies the type of the resource."""
93
+
94
+
95
+ class CallInitiatedWebhookEvent(BaseModel):
96
+ data: Optional[Data] = None