wavix-python-sdk 1.0.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.
- wavix/__init__.py +801 -0
- wavix/_default_clients.py +32 -0
- wavix/api_keys/__init__.py +4 -0
- wavix/api_keys/client.py +764 -0
- wavix/api_keys/raw_client.py +1191 -0
- wavix/billing/__init__.py +41 -0
- wavix/billing/client.py +82 -0
- wavix/billing/invoices/__init__.py +34 -0
- wavix/billing/invoices/client.py +203 -0
- wavix/billing/invoices/raw_client.py +302 -0
- wavix/billing/invoices/types/__init__.py +34 -0
- wavix/billing/invoices/types/list_invoices_response.py +31 -0
- wavix/billing/raw_client.py +13 -0
- wavix/billing/transactions/__init__.py +34 -0
- wavix/billing/transactions/client.py +209 -0
- wavix/billing/transactions/raw_client.py +253 -0
- wavix/billing/transactions/types/__init__.py +34 -0
- wavix/billing/transactions/types/list_transactions_response.py +31 -0
- wavix/buy/__init__.py +61 -0
- wavix/buy/cities/__init__.py +34 -0
- wavix/buy/cities/client.py +134 -0
- wavix/buy/cities/raw_client.py +201 -0
- wavix/buy/cities/types/__init__.py +34 -0
- wavix/buy/cities/types/list_cities_response.py +23 -0
- wavix/buy/client.py +139 -0
- wavix/buy/countries/__init__.py +34 -0
- wavix/buy/countries/client.py +116 -0
- wavix/buy/countries/raw_client.py +144 -0
- wavix/buy/countries/types/__init__.py +34 -0
- wavix/buy/countries/types/list_countries_response.py +23 -0
- wavix/buy/numbers/__init__.py +34 -0
- wavix/buy/numbers/client.py +168 -0
- wavix/buy/numbers/raw_client.py +227 -0
- wavix/buy/numbers/types/__init__.py +34 -0
- wavix/buy/numbers/types/list_numbers_response.py +26 -0
- wavix/buy/raw_client.py +13 -0
- wavix/buy/region_cities/__init__.py +34 -0
- wavix/buy/region_cities/client.py +142 -0
- wavix/buy/region_cities/raw_client.py +207 -0
- wavix/buy/region_cities/types/__init__.py +34 -0
- wavix/buy/region_cities/types/list_region_cities_response.py +23 -0
- wavix/buy/regions/__init__.py +34 -0
- wavix/buy/regions/client.py +132 -0
- wavix/buy/regions/raw_client.py +222 -0
- wavix/buy/regions/types/__init__.py +34 -0
- wavix/buy/regions/types/list_regions_response.py +23 -0
- wavix/call_control/__init__.py +40 -0
- wavix/call_control/audio/__init__.py +4 -0
- wavix/call_control/audio/client.py +195 -0
- wavix/call_control/audio/raw_client.py +333 -0
- wavix/call_control/client.py +796 -0
- wavix/call_control/raw_client.py +1224 -0
- wavix/call_control/streams/__init__.py +4 -0
- wavix/call_control/streams/client.py +250 -0
- wavix/call_control/streams/raw_client.py +325 -0
- wavix/call_control/types/__init__.py +38 -0
- wavix/call_control/types/call_dtmf_collect_request_prompt.py +33 -0
- wavix/call_control/types/call_dtmf_collect_request_prompt_say.py +31 -0
- wavix/call_recording/__init__.py +4 -0
- wavix/call_recording/client.py +430 -0
- wavix/call_recording/raw_client.py +726 -0
- wavix/call_webhooks/__init__.py +37 -0
- wavix/call_webhooks/client.py +281 -0
- wavix/call_webhooks/raw_client.py +529 -0
- wavix/call_webhooks/types/__init__.py +38 -0
- wavix/call_webhooks/types/call_webhooks_create_request_event_type.py +5 -0
- wavix/call_webhooks/types/delete_call_webhooks_request_event_type.py +5 -0
- wavix/cart/__init__.py +38 -0
- wavix/cart/client.py +327 -0
- wavix/cart/raw_client.py +629 -0
- wavix/cart/types/__init__.py +40 -0
- wavix/cart/types/checkout_cart_response.py +22 -0
- wavix/cart/types/get_cart_response.py +29 -0
- wavix/cart/types/remove_cart_response.py +22 -0
- wavix/cdrs/__init__.py +39 -0
- wavix/cdrs/client.py +968 -0
- wavix/cdrs/raw_client.py +1176 -0
- wavix/cdrs/transcription/__init__.py +4 -0
- wavix/cdrs/transcription/client.py +112 -0
- wavix/cdrs/transcription/raw_client.py +156 -0
- wavix/cdrs/types/__init__.py +38 -0
- wavix/cdrs/types/cdr_search_request_disposition.py +5 -0
- wavix/cdrs/types/cdr_search_request_type.py +5 -0
- wavix/client.py +578 -0
- wavix/core/__init__.py +127 -0
- wavix/core/api_error.py +23 -0
- wavix/core/client_wrapper.py +119 -0
- wavix/core/datetime_utils.py +70 -0
- wavix/core/file.py +67 -0
- wavix/core/force_multipart.py +18 -0
- wavix/core/http_client.py +839 -0
- wavix/core/http_response.py +59 -0
- wavix/core/http_sse/__init__.py +42 -0
- wavix/core/http_sse/_api.py +170 -0
- wavix/core/http_sse/_decoders.py +61 -0
- wavix/core/http_sse/_exceptions.py +7 -0
- wavix/core/http_sse/_models.py +17 -0
- wavix/core/jsonable_encoder.py +120 -0
- wavix/core/logging.py +107 -0
- wavix/core/parse_error.py +36 -0
- wavix/core/pydantic_utilities.py +508 -0
- wavix/core/query_encoder.py +58 -0
- wavix/core/remove_none_from_dict.py +11 -0
- wavix/core/request_options.py +35 -0
- wavix/core/serialization.py +347 -0
- wavix/environment.py +7 -0
- wavix/errors/__init__.py +56 -0
- wavix/errors/bad_request_error.py +10 -0
- wavix/errors/forbidden_error.py +10 -0
- wavix/errors/not_found_error.py +10 -0
- wavix/errors/service_unavailable_error.py +11 -0
- wavix/errors/too_many_requests_error.py +11 -0
- wavix/errors/unauthorized_error.py +11 -0
- wavix/errors/unprocessable_entity_error.py +10 -0
- wavix/link_shortener/__init__.py +34 -0
- wavix/link_shortener/client.py +194 -0
- wavix/link_shortener/metrics/__init__.py +4 -0
- wavix/link_shortener/metrics/client.py +198 -0
- wavix/link_shortener/metrics/raw_client.py +218 -0
- wavix/link_shortener/raw_client.py +265 -0
- wavix/number_validator/__init__.py +35 -0
- wavix/number_validator/client.py +271 -0
- wavix/number_validator/raw_client.py +383 -0
- wavix/number_validator/results/__init__.py +4 -0
- wavix/number_validator/results/client.py +114 -0
- wavix/number_validator/results/raw_client.py +156 -0
- wavix/number_validator/types/__init__.py +34 -0
- wavix/number_validator/types/get_number_validator_response.py +112 -0
- wavix/numbers/__init__.py +39 -0
- wavix/numbers/client.py +689 -0
- wavix/numbers/papers/__init__.py +4 -0
- wavix/numbers/papers/client.py +155 -0
- wavix/numbers/papers/raw_client.py +208 -0
- wavix/numbers/raw_client.py +1000 -0
- wavix/numbers/types/__init__.py +38 -0
- wavix/numbers/types/bulk_update_numbers_response.py +23 -0
- wavix/numbers/types/delete_numbers_response.py +22 -0
- wavix/profile/__init__.py +41 -0
- wavix/profile/client.py +308 -0
- wavix/profile/config/__init__.py +34 -0
- wavix/profile/config/client.py +100 -0
- wavix/profile/config/raw_client.py +124 -0
- wavix/profile/config/types/__init__.py +34 -0
- wavix/profile/config/types/get_config_response.py +25 -0
- wavix/profile/raw_client.py +360 -0
- wavix/profile/types/__init__.py +38 -0
- wavix/profile/types/profile_update_request_company_info.py +48 -0
- wavix/profile/types/profile_update_request_company_info_industry.py +22 -0
- wavix/py.typed +0 -0
- wavix/sip_trunks/__init__.py +4 -0
- wavix/sip_trunks/client.py +927 -0
- wavix/sip_trunks/raw_client.py +1324 -0
- wavix/sms_and_mms/__init__.py +66 -0
- wavix/sms_and_mms/client.py +101 -0
- wavix/sms_and_mms/messages/__init__.py +49 -0
- wavix/sms_and_mms/messages/client.py +625 -0
- wavix/sms_and_mms/messages/raw_client.py +793 -0
- wavix/sms_and_mms/messages/types/__init__.py +47 -0
- wavix/sms_and_mms/messages/types/get_messages_response.py +97 -0
- wavix/sms_and_mms/messages/types/list_all_messages_request_message_type.py +5 -0
- wavix/sms_and_mms/messages/types/list_messages_request_message_type.py +5 -0
- wavix/sms_and_mms/messages/types/list_messages_response.py +26 -0
- wavix/sms_and_mms/opt_outs/__init__.py +34 -0
- wavix/sms_and_mms/opt_outs/client.py +277 -0
- wavix/sms_and_mms/opt_outs/raw_client.py +438 -0
- wavix/sms_and_mms/opt_outs/types/__init__.py +34 -0
- wavix/sms_and_mms/opt_outs/types/create_opt_outs_response.py +22 -0
- wavix/sms_and_mms/raw_client.py +13 -0
- wavix/sms_and_mms/sender_ids/__init__.py +38 -0
- wavix/sms_and_mms/sender_ids/client.py +391 -0
- wavix/sms_and_mms/sender_ids/raw_client.py +617 -0
- wavix/sms_and_mms/sender_ids/types/__init__.py +40 -0
- wavix/sms_and_mms/sender_ids/types/delete_sender_ids_response.py +22 -0
- wavix/sms_and_mms/sender_ids/types/sender_id_create_request_monthly_volume.py +7 -0
- wavix/sms_and_mms/sender_ids/types/sender_id_create_request_usecase.py +5 -0
- wavix/speech_analytics/__init__.py +52 -0
- wavix/speech_analytics/client.py +372 -0
- wavix/speech_analytics/file/__init__.py +4 -0
- wavix/speech_analytics/file/client.py +114 -0
- wavix/speech_analytics/file/raw_client.py +148 -0
- wavix/speech_analytics/raw_client.py +527 -0
- wavix/speech_analytics/types/__init__.py +47 -0
- wavix/speech_analytics/types/create_speech_analytics_response.py +32 -0
- wavix/speech_analytics/types/get_speech_analytics_response.py +77 -0
- wavix/speech_analytics/types/get_speech_analytics_response_language.py +5 -0
- wavix/speech_analytics/types/get_speech_analytics_response_status.py +5 -0
- wavix/sub_accounts/__init__.py +52 -0
- wavix/sub_accounts/client.py +442 -0
- wavix/sub_accounts/raw_client.py +775 -0
- wavix/sub_accounts/transactions/__init__.py +4 -0
- wavix/sub_accounts/transactions/client.py +198 -0
- wavix/sub_accounts/transactions/raw_client.py +265 -0
- wavix/sub_accounts/types/__init__.py +47 -0
- wavix/sub_accounts/types/list_sub_accounts_request_status.py +5 -0
- wavix/sub_accounts/types/sub_accounts_create_request_default_destinations.py +31 -0
- wavix/sub_accounts/types/sub_accounts_update_request_default_destinations.py +31 -0
- wavix/sub_accounts/types/sub_accounts_update_request_status.py +5 -0
- wavix/ten_dlc/__init__.py +167 -0
- wavix/ten_dlc/brand_appeals/__init__.py +34 -0
- wavix/ten_dlc/brand_appeals/client.py +244 -0
- wavix/ten_dlc/brand_appeals/raw_client.py +390 -0
- wavix/ten_dlc/brand_appeals/types/__init__.py +34 -0
- wavix/ten_dlc/brand_appeals/types/create_brand_appeals_response.py +22 -0
- wavix/ten_dlc/brand_evidence/__init__.py +37 -0
- wavix/ten_dlc/brand_evidence/client.py +365 -0
- wavix/ten_dlc/brand_evidence/raw_client.py +599 -0
- wavix/ten_dlc/brand_evidence/types/__init__.py +38 -0
- wavix/ten_dlc/brand_evidence/types/delete_brand_evidence_response.py +22 -0
- wavix/ten_dlc/brand_evidence/types/upload_brand_evidence_response.py +38 -0
- wavix/ten_dlc/brand_vetting_appeals/__init__.py +34 -0
- wavix/ten_dlc/brand_vetting_appeals/client.py +258 -0
- wavix/ten_dlc/brand_vetting_appeals/raw_client.py +381 -0
- wavix/ten_dlc/brand_vetting_appeals/types/__init__.py +36 -0
- wavix/ten_dlc/brand_vetting_appeals/types/create_brand_vetting_appeals_response.py +22 -0
- wavix/ten_dlc/brand_vettings/__init__.py +4 -0
- wavix/ten_dlc/brand_vettings/client.py +325 -0
- wavix/ten_dlc/brand_vettings/raw_client.py +518 -0
- wavix/ten_dlc/brands/__init__.py +85 -0
- wavix/ten_dlc/brands/client.py +870 -0
- wavix/ten_dlc/brands/raw_client.py +1263 -0
- wavix/ten_dlc/brands/types/__init__.py +83 -0
- wavix/ten_dlc/brands/types/create_brands_response.py +143 -0
- wavix/ten_dlc/brands/types/create_brands_response_entity_type.py +7 -0
- wavix/ten_dlc/brands/types/create_brands_response_status.py +7 -0
- wavix/ten_dlc/brands/types/delete_brands_response.py +22 -0
- wavix/ten_dlc/brands/types/get_brands_response.py +143 -0
- wavix/ten_dlc/brands/types/get_brands_response_entity_type.py +7 -0
- wavix/ten_dlc/brands/types/get_brands_response_status.py +7 -0
- wavix/ten_dlc/brands/types/list_brands_response.py +33 -0
- wavix/ten_dlc/brands/types/list_brands_response_pagination.py +41 -0
- wavix/ten_dlc/brands/types/qualify_usecase_brands_request_use_case.py +35 -0
- wavix/ten_dlc/brands/types/qualify_usecase_brands_response.py +33 -0
- wavix/ten_dlc/brands/types/ten_dlc_brand_update_request_entity_type.py +7 -0
- wavix/ten_dlc/brands/types/ten_dlc_brand_update_request_vertical.py +18 -0
- wavix/ten_dlc/brands/types/update_brands_response.py +143 -0
- wavix/ten_dlc/brands/types/update_brands_response_entity_type.py +7 -0
- wavix/ten_dlc/brands/types/update_brands_response_status.py +7 -0
- wavix/ten_dlc/campaign_numbers/__init__.py +38 -0
- wavix/ten_dlc/campaign_numbers/client.py +304 -0
- wavix/ten_dlc/campaign_numbers/raw_client.py +448 -0
- wavix/ten_dlc/campaign_numbers/types/__init__.py +40 -0
- wavix/ten_dlc/campaign_numbers/types/link_campaign_numbers_response.py +22 -0
- wavix/ten_dlc/campaign_numbers/types/list_campaign_numbers_response.py +33 -0
- wavix/ten_dlc/campaign_numbers/types/unlink_campaign_numbers_response.py +22 -0
- wavix/ten_dlc/campaigns/__init__.py +64 -0
- wavix/ten_dlc/campaigns/client.py +1493 -0
- wavix/ten_dlc/campaigns/raw_client.py +1840 -0
- wavix/ten_dlc/campaigns/types/__init__.py +62 -0
- wavix/ten_dlc/campaigns/types/create_campaigns_response.py +211 -0
- wavix/ten_dlc/campaigns/types/delete_campaigns_response.py +22 -0
- wavix/ten_dlc/campaigns/types/get_campaigns_response.py +211 -0
- wavix/ten_dlc/campaigns/types/list_by_brand_campaigns_response.py +33 -0
- wavix/ten_dlc/campaigns/types/list_by_brand_campaigns_response_pagination.py +41 -0
- wavix/ten_dlc/campaigns/types/list_campaigns_response.py +33 -0
- wavix/ten_dlc/campaigns/types/list_campaigns_response_pagination.py +41 -0
- wavix/ten_dlc/campaigns/types/ten_dlc_campaign_update_request_usecase.py +15 -0
- wavix/ten_dlc/campaigns/types/update_campaigns_response.py +211 -0
- wavix/ten_dlc/client.py +196 -0
- wavix/ten_dlc/raw_client.py +13 -0
- wavix/ten_dlc/subscriptions/__init__.py +37 -0
- wavix/ten_dlc/subscriptions/client.py +271 -0
- wavix/ten_dlc/subscriptions/raw_client.py +398 -0
- wavix/ten_dlc/subscriptions/types/__init__.py +38 -0
- wavix/ten_dlc/subscriptions/types/create_subscriptions_response.py +31 -0
- wavix/ten_dlc/subscriptions/types/delete_subscriptions_response.py +22 -0
- wavix/two_fa/__init__.py +56 -0
- wavix/two_fa/client.py +101 -0
- wavix/two_fa/events/__init__.py +4 -0
- wavix/two_fa/events/client.py +114 -0
- wavix/two_fa/events/raw_client.py +156 -0
- wavix/two_fa/raw_client.py +13 -0
- wavix/two_fa/sessions/__init__.py +4 -0
- wavix/two_fa/sessions/client.py +142 -0
- wavix/two_fa/sessions/raw_client.py +200 -0
- wavix/two_fa/verification/__init__.py +49 -0
- wavix/two_fa/verification/client.py +395 -0
- wavix/two_fa/verification/raw_client.py +664 -0
- wavix/two_fa/verification/types/__init__.py +47 -0
- wavix/two_fa/verification/types/check_verification_response.py +22 -0
- wavix/two_fa/verification/types/create_verification_response.py +51 -0
- wavix/two_fa/verification/types/resend_verification_response.py +38 -0
- wavix/two_fa/verification/types/two_factor_verification_resend_request_channel.py +5 -0
- wavix/types/__init__.py +637 -0
- wavix/types/account_error_response.py +31 -0
- wavix/types/account_limits.py +32 -0
- wavix/types/allowed_i_ps.py +7 -0
- wavix/types/allowed_i_ps_item.py +27 -0
- wavix/types/api_key.py +138 -0
- wavix/types/api_key_calls_scope_permission.py +30 -0
- wavix/types/api_key_calls_scope_permission_allow.py +5 -0
- wavix/types/api_key_scope_permission.py +30 -0
- wavix/types/api_key_scope_permission_allow.py +5 -0
- wavix/types/available_number.py +97 -0
- wavix/types/available_number_list_response.py +26 -0
- wavix/types/bad_request_error_body.py +27 -0
- wavix/types/billing_transaction_list_response.py +31 -0
- wavix/types/brand_status_updated_webhook.py +28 -0
- wavix/types/brand_status_updated_webhook_status.py +7 -0
- wavix/types/call.py +92 -0
- wavix/types/call_control_validation_error_response.py +34 -0
- wavix/types/call_create_response.py +92 -0
- wavix/types/call_create_response_event_type.py +18 -0
- wavix/types/call_direction.py +5 -0
- wavix/types/call_disposition.py +5 -0
- wavix/types/call_event_type.py +18 -0
- wavix/types/call_list_response.py +28 -0
- wavix/types/call_recording_list_response.py +28 -0
- wavix/types/call_response.py +24 -0
- wavix/types/call_status_webhook.py +70 -0
- wavix/types/call_status_webhook_direction.py +5 -0
- wavix/types/call_stream_channel.py +5 -0
- wavix/types/call_stream_response.py +27 -0
- wavix/types/call_stream_type.py +5 -0
- wavix/types/call_webhook.py +37 -0
- wavix/types/call_webhook_event_type.py +5 -0
- wavix/types/call_webhook_list_response.py +10 -0
- wavix/types/call_webhook_list_response_item.py +28 -0
- wavix/types/call_webhook_list_response_item_event_type.py +5 -0
- wavix/types/campaign_status_updated_webhook.py +41 -0
- wavix/types/campaign_status_updated_webhook_status.py +7 -0
- wavix/types/cart_response.py +29 -0
- wavix/types/cdr.py +97 -0
- wavix/types/cdr_list_response.py +26 -0
- wavix/types/cdr_response.py +104 -0
- wavix/types/cdr_transcription_completed_webhook.py +28 -0
- wavix/types/cdr_transcription_completed_webhook_status.py +5 -0
- wavix/types/cdr_transcription_response.py +74 -0
- wavix/types/cdr_transcription_search_response.py +26 -0
- wavix/types/cdr_with_transcription.py +97 -0
- wavix/types/city.py +32 -0
- wavix/types/city_list_response.py +23 -0
- wavix/types/country.py +32 -0
- wavix/types/country_has_no_regions_error_response.py +27 -0
- wavix/types/country_list_response.py +23 -0
- wavix/types/document_type.py +32 -0
- wavix/types/document_type_id.py +7 -0
- wavix/types/file_transcript_response.py +30 -0
- wavix/types/file_transcript_turn.py +46 -0
- wavix/types/file_transcription_completed_webhook.py +32 -0
- wavix/types/file_transcription_response.py +77 -0
- wavix/types/file_transcription_response_language.py +5 -0
- wavix/types/file_transcription_response_status.py +5 -0
- wavix/types/financial_transaction.py +57 -0
- wavix/types/forbidden_error_response.py +27 -0
- wavix/types/inbound_call_destination.py +53 -0
- wavix/types/inbound_call_transport.py +6 -0
- wavix/types/inbound_message.py +46 -0
- wavix/types/invalid_recording.py +31 -0
- wavix/types/invoice.py +42 -0
- wavix/types/invoice_list_response.py +31 -0
- wavix/types/list_brand_evidence_response.py +23 -0
- wavix/types/list_sessions_response_item.py +58 -0
- wavix/types/message.py +103 -0
- wavix/types/message_body.py +29 -0
- wavix/types/message_create_request.py +46 -0
- wavix/types/message_delivery_status.py +8 -0
- wavix/types/message_list_response.py +26 -0
- wavix/types/message_response.py +97 -0
- wavix/types/messages_delivery_report.py +81 -0
- wavix/types/not_found_error_body.py +27 -0
- wavix/types/not_found_error_response.py +27 -0
- wavix/types/number.py +160 -0
- wavix/types/number_destination.py +38 -0
- wavix/types/number_document.py +58 -0
- wavix/types/number_list_response.py +32 -0
- wavix/types/number_status_updated_webhook.py +38 -0
- wavix/types/number_status_updated_webhook_status.py +5 -0
- wavix/types/number_validator_create_bulk_response.py +10 -0
- wavix/types/number_validator_create_bulk_response_request_id.py +26 -0
- wavix/types/on_call_event_payload.py +34 -0
- wavix/types/on_call_event_payload_type.py +5 -0
- wavix/types/opt_out.py +27 -0
- wavix/types/opt_out_item.py +38 -0
- wavix/types/opt_outs_list_response.py +26 -0
- wavix/types/pagination.py +37 -0
- wavix/types/phone_lookup_details.py +32 -0
- wavix/types/phone_number_validation_type.py +5 -0
- wavix/types/phone_validation_batch_response.py +38 -0
- wavix/types/phone_validation_batch_result_response.py +41 -0
- wavix/types/phone_validation_response.py +112 -0
- wavix/types/phone_validation_result_response.py +115 -0
- wavix/types/profile_config_response.py +25 -0
- wavix/types/profile_response.py +79 -0
- wavix/types/profile_response_company_info.py +53 -0
- wavix/types/profile_response_company_info_country.py +31 -0
- wavix/types/profile_response_company_info_industry.py +22 -0
- wavix/types/profile_response_default_destinations_item.py +27 -0
- wavix/types/record_not_found_error_response.py +27 -0
- wavix/types/recording.py +57 -0
- wavix/types/recording_deleted_error_response.py +38 -0
- wavix/types/region.py +31 -0
- wavix/types/region_list_response.py +23 -0
- wavix/types/send_messages_response.py +100 -0
- wavix/types/sender_id.py +48 -0
- wavix/types/sender_id_details.py +44 -0
- wavix/types/sender_id_list_response.py +23 -0
- wavix/types/sender_id_response.py +48 -0
- wavix/types/sender_id_response_type.py +5 -0
- wavix/types/sender_id_type.py +5 -0
- wavix/types/short_link_metrics_item.py +69 -0
- wavix/types/short_link_metrics_response.py +26 -0
- wavix/types/short_link_response.py +22 -0
- wavix/types/sip_trunk_create_request.py +132 -0
- wavix/types/sip_trunk_create_request_allowed_ips_item.py +22 -0
- wavix/types/sip_trunk_create_request_host_request.py +26 -0
- wavix/types/sip_trunk_list_response.py +26 -0
- wavix/types/sip_trunk_response.py +145 -0
- wavix/types/sip_trunk_summary.py +114 -0
- wavix/types/sip_trunk_summary_host_request.py +31 -0
- wavix/types/sub_accounts_list_response.py +26 -0
- wavix/types/sub_accounts_transactions_list_response.py +30 -0
- wavix/types/sub_accounts_transactions_list_response_transactions_item.py +48 -0
- wavix/types/sub_organization_response.py +59 -0
- wavix/types/sub_organization_response_default_destinations.py +31 -0
- wavix/types/sub_organization_response_status.py +5 -0
- wavix/types/submit_file_transcription_response.py +32 -0
- wavix/types/success_response.py +22 -0
- wavix/types/tcr_error_message.py +27 -0
- wavix/types/tcr_feedback.py +23 -0
- wavix/types/tcr_feedback_category.py +47 -0
- wavix/types/ten_dlc_brand.py +143 -0
- wavix/types/ten_dlc_brand_appeal.py +54 -0
- wavix/types/ten_dlc_brand_appeal_create_request.py +36 -0
- wavix/types/ten_dlc_brand_appeal_outcome.py +38 -0
- wavix/types/ten_dlc_brand_appeal_outcome_feedback.py +27 -0
- wavix/types/ten_dlc_brand_appeal_outcome_vetting_status.py +7 -0
- wavix/types/ten_dlc_brand_create_request.py +8 -0
- wavix/types/ten_dlc_brand_create_request_entity_type.py +7 -0
- wavix/types/ten_dlc_brand_create_request_stock_exchange.py +26 -0
- wavix/types/ten_dlc_brand_create_request_stock_exchange_entity_type.py +7 -0
- wavix/types/ten_dlc_brand_create_request_vertical.py +18 -0
- wavix/types/ten_dlc_brand_create_request_zero.py +24 -0
- wavix/types/ten_dlc_brand_create_request_zero_entity_type.py +5 -0
- wavix/types/ten_dlc_brand_entity_type.py +7 -0
- wavix/types/ten_dlc_brand_evidence.py +38 -0
- wavix/types/ten_dlc_brand_identity_verification_status.py +7 -0
- wavix/types/ten_dlc_brand_list_response.py +33 -0
- wavix/types/ten_dlc_brand_list_response_pagination.py +41 -0
- wavix/types/ten_dlc_brand_qualification_result.py +33 -0
- wavix/types/ten_dlc_brand_status.py +7 -0
- wavix/types/ten_dlc_brand_vetting.py +71 -0
- wavix/types/ten_dlc_brand_vetting_appeal.py +78 -0
- wavix/types/ten_dlc_brand_vetting_appeal_appeal_outcome.py +37 -0
- wavix/types/ten_dlc_brand_vetting_appeal_appeal_outcome_feedback.py +26 -0
- wavix/types/ten_dlc_brand_vetting_appeal_outcome.py +33 -0
- wavix/types/ten_dlc_brand_vetting_appeal_outcome_feedback.py +26 -0
- wavix/types/ten_dlc_brand_vetting_appeal_outcome_reason.py +22 -0
- wavix/types/ten_dlc_campaign.py +211 -0
- wavix/types/ten_dlc_campaign_list_response.py +33 -0
- wavix/types/ten_dlc_campaign_list_response_pagination.py +41 -0
- wavix/types/ten_dlc_campaign_nudge_request.py +32 -0
- wavix/types/ten_dlc_campaign_number.py +27 -0
- wavix/types/ten_dlc_campaign_number_list_response.py +33 -0
- wavix/types/ten_dlc_event_subscription.py +31 -0
- wavix/types/ten_dlcmno_metadata.py +101 -0
- wavix/types/transaction_status.py +5 -0
- wavix/types/transaction_type.py +50 -0
- wavix/types/transcript_turn.py +46 -0
- wavix/types/transcription_filter.py +35 -0
- wavix/types/transcription_filter_agent.py +36 -0
- wavix/types/transcription_filter_any.py +36 -0
- wavix/types/transcription_filter_client.py +36 -0
- wavix/types/transcription_language.py +5 -0
- wavix/types/transcription_reference.py +29 -0
- wavix/types/transcription_status.py +5 -0
- wavix/types/tts_language.py +5 -0
- wavix/types/tts_voice_id.py +25 -0
- wavix/types/two_factor_verification_check_response.py +22 -0
- wavix/types/two_factor_verification_event.py +47 -0
- wavix/types/two_factor_verification_resend_response.py +38 -0
- wavix/types/two_factor_verification_response.py +51 -0
- wavix/types/unauthorized_error_response.py +32 -0
- wavix/types/unprocessable_entity_error_body.py +27 -0
- wavix/types/validation_error_response.py +27 -0
- wavix/types/voice_campaign_create_request.py +20 -0
- wavix/types/voice_campaign_response.py +41 -0
- wavix/types/voice_campaigns_create_response.py +20 -0
- wavix/types/voice_campaigns_create_response_voice_campaign.py +43 -0
- wavix/types/voice_campaigns_get_response.py +20 -0
- wavix/types/voice_campaigns_get_response_voice_campaign.py +43 -0
- wavix/types/web_rtc_token.py +43 -0
- wavix/types/web_rtc_token_response.py +44 -0
- wavix/types/web_rtc_tokens_list_response.py +30 -0
- wavix/version.py +3 -0
- wavix/voice_campaigns/__init__.py +4 -0
- wavix/voice_campaigns/client.py +197 -0
- wavix/voice_campaigns/raw_client.py +332 -0
- wavix/webrtc/__init__.py +34 -0
- wavix/webrtc/client.py +63 -0
- wavix/webrtc/raw_client.py +13 -0
- wavix/webrtc/tokens/__init__.py +4 -0
- wavix/webrtc/tokens/client.py +432 -0
- wavix/webrtc/tokens/raw_client.py +869 -0
- wavix_python_sdk-1.0.0.dist-info/LICENSE +21 -0
- wavix_python_sdk-1.0.0.dist-info/METADATA +339 -0
- wavix_python_sdk-1.0.0.dist-info/RECORD +497 -0
- wavix_python_sdk-1.0.0.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,927 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
6
|
+
from ..core.request_options import RequestOptions
|
|
7
|
+
from ..types.sip_trunk_create_request_allowed_ips_item import SipTrunkCreateRequestAllowedIpsItem
|
|
8
|
+
from ..types.sip_trunk_create_request_host_request import SipTrunkCreateRequestHostRequest
|
|
9
|
+
from ..types.sip_trunk_list_response import SipTrunkListResponse
|
|
10
|
+
from ..types.sip_trunk_response import SipTrunkResponse
|
|
11
|
+
from ..types.success_response import SuccessResponse
|
|
12
|
+
from .raw_client import AsyncRawSipTrunksClient, RawSipTrunksClient
|
|
13
|
+
|
|
14
|
+
# this is used as the default value for optional parameters
|
|
15
|
+
OMIT = typing.cast(typing.Any, ...)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class SipTrunksClient:
|
|
19
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
20
|
+
self._raw_client = RawSipTrunksClient(client_wrapper=client_wrapper)
|
|
21
|
+
|
|
22
|
+
@property
|
|
23
|
+
def with_raw_response(self) -> RawSipTrunksClient:
|
|
24
|
+
"""
|
|
25
|
+
Retrieves a raw implementation of this client that returns raw responses.
|
|
26
|
+
|
|
27
|
+
Returns
|
|
28
|
+
-------
|
|
29
|
+
RawSipTrunksClient
|
|
30
|
+
"""
|
|
31
|
+
return self._raw_client
|
|
32
|
+
|
|
33
|
+
def list(
|
|
34
|
+
self,
|
|
35
|
+
*,
|
|
36
|
+
page: typing.Optional[int] = None,
|
|
37
|
+
per_page: typing.Optional[int] = None,
|
|
38
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
39
|
+
) -> SipTrunkListResponse:
|
|
40
|
+
"""
|
|
41
|
+
Returns a paginated list of SIP trunks for the authenticated account.
|
|
42
|
+
|
|
43
|
+
Parameters
|
|
44
|
+
----------
|
|
45
|
+
page : typing.Optional[int]
|
|
46
|
+
Page number to retrieve. Default `1`.
|
|
47
|
+
|
|
48
|
+
per_page : typing.Optional[int]
|
|
49
|
+
Number of records to return per page. Default `25`.
|
|
50
|
+
|
|
51
|
+
request_options : typing.Optional[RequestOptions]
|
|
52
|
+
Request-specific configuration.
|
|
53
|
+
|
|
54
|
+
Returns
|
|
55
|
+
-------
|
|
56
|
+
SipTrunkListResponse
|
|
57
|
+
Returns a paginated list of SIP trunks.
|
|
58
|
+
|
|
59
|
+
Examples
|
|
60
|
+
--------
|
|
61
|
+
from wavix import Wavix
|
|
62
|
+
|
|
63
|
+
client = Wavix(
|
|
64
|
+
token="YOUR_TOKEN",
|
|
65
|
+
)
|
|
66
|
+
client.sip_trunks.list()
|
|
67
|
+
"""
|
|
68
|
+
_response = self._raw_client.list(page=page, per_page=per_page, request_options=request_options)
|
|
69
|
+
return _response.data
|
|
70
|
+
|
|
71
|
+
def create(
|
|
72
|
+
self,
|
|
73
|
+
*,
|
|
74
|
+
label: str,
|
|
75
|
+
password: str,
|
|
76
|
+
callerid: str,
|
|
77
|
+
ip_restrict: bool,
|
|
78
|
+
didinfo_enabled: bool,
|
|
79
|
+
call_restrict: bool,
|
|
80
|
+
cost_limit: bool,
|
|
81
|
+
channels_restrict: bool,
|
|
82
|
+
rewrite_enabled: bool,
|
|
83
|
+
transcription_enabled: bool,
|
|
84
|
+
transcription_threshold: int,
|
|
85
|
+
host_request: typing.Optional[SipTrunkCreateRequestHostRequest] = OMIT,
|
|
86
|
+
multiple_numbers: typing.Optional[bool] = OMIT,
|
|
87
|
+
allowed_ips: typing.Optional[typing.Sequence[SipTrunkCreateRequestAllowedIpsItem]] = OMIT,
|
|
88
|
+
call_limit: typing.Optional[int] = OMIT,
|
|
89
|
+
max_call_cost: typing.Optional[float] = OMIT,
|
|
90
|
+
max_channels: typing.Optional[int] = OMIT,
|
|
91
|
+
rewrite_prefix: typing.Optional[str] = OMIT,
|
|
92
|
+
rewrite_cond: typing.Optional[str] = OMIT,
|
|
93
|
+
call_recording_enabled: typing.Optional[bool] = OMIT,
|
|
94
|
+
machine_detection_enabled: typing.Optional[bool] = OMIT,
|
|
95
|
+
encrypted_media: typing.Optional[bool] = OMIT,
|
|
96
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
97
|
+
) -> SipTrunkResponse:
|
|
98
|
+
"""
|
|
99
|
+
Creates a SIP trunk for routing inbound and outbound calls. Returns the trunk with its generated `access_token`.
|
|
100
|
+
|
|
101
|
+
Parameters
|
|
102
|
+
----------
|
|
103
|
+
label : str
|
|
104
|
+
User-defined name of the SIP trunk
|
|
105
|
+
|
|
106
|
+
password : str
|
|
107
|
+
Password set for the SIP trunk. A strong password helps keep the trunk secure.
|
|
108
|
+
|
|
109
|
+
callerid : str
|
|
110
|
+
Caller ID associated with the SIP trunk. Must be an active or verified number on the account.
|
|
111
|
+
|
|
112
|
+
ip_restrict : bool
|
|
113
|
+
Indicates whether SIP trunk registration is allowed from only specific public static IP addresses. When set to `true`, the `allowed_ips` parameter must be provided.
|
|
114
|
+
|
|
115
|
+
didinfo_enabled : bool
|
|
116
|
+
Indicates whether inbound calls include dialed number information in the `To` header of SIP INVITE requests
|
|
117
|
+
|
|
118
|
+
call_restrict : bool
|
|
119
|
+
Indicates whether a maximum call duration limit is enforced for the SIP trunk
|
|
120
|
+
|
|
121
|
+
cost_limit : bool
|
|
122
|
+
Indicates if the max cost limit for an outbound call limit is activated for the SIP trunk.
|
|
123
|
+
|
|
124
|
+
channels_restrict : bool
|
|
125
|
+
Indicates whether a limit on the number of concurrent outbound calls is enforced for the SIP trunk
|
|
126
|
+
|
|
127
|
+
rewrite_enabled : bool
|
|
128
|
+
Indicates whether a custom dial plan is activated for the SIP trunk
|
|
129
|
+
|
|
130
|
+
transcription_enabled : bool
|
|
131
|
+
Indicates whether automatic call transcription is enabled for the SIP trunk.
|
|
132
|
+
Available for `Flex Pro` customers only.
|
|
133
|
+
|
|
134
|
+
transcription_threshold : int
|
|
135
|
+
Transcriptions will be generated for calls that meet or exceed the specified minimal call duration threshold, in seconds.
|
|
136
|
+
Available for `Flex Pro` customers only.
|
|
137
|
+
|
|
138
|
+
host_request : typing.Optional[SipTrunkCreateRequestHostRequest]
|
|
139
|
+
For SIP trunks with IP authentication, includes the SIP endpoint public static IP address and the status of the authentication request. Wavix authenticates all SIP traffic originating from this IP address.
|
|
140
|
+
|
|
141
|
+
multiple_numbers : typing.Optional[bool]
|
|
142
|
+
Indicates whether any active or verified phone number on the account can be used as the Caller ID for the SIP trunk.
|
|
143
|
+
|
|
144
|
+
allowed_ips : typing.Optional[typing.Sequence[SipTrunkCreateRequestAllowedIpsItem]]
|
|
145
|
+
A list of public static IP addresses allowed to register with the SIP trunk
|
|
146
|
+
|
|
147
|
+
call_limit : typing.Optional[int]
|
|
148
|
+
Maximum call duration for the SIP trunk, in seconds. Must not exceed the maximum duration set for the account. Ignored when `call_restrict` is `false`.
|
|
149
|
+
|
|
150
|
+
max_call_cost : typing.Optional[float]
|
|
151
|
+
Maximum cost for an outbound call, in USD
|
|
152
|
+
|
|
153
|
+
max_channels : typing.Optional[int]
|
|
154
|
+
Maximum number of concurrent outbound calls for the SIP trunk. Must not exceed the outbound channel capacity set for the account. Ignored when `channels_restrict` is `false`.
|
|
155
|
+
|
|
156
|
+
rewrite_prefix : typing.Optional[str]
|
|
157
|
+
Digits to automatically prepend to each dialed phone number
|
|
158
|
+
|
|
159
|
+
rewrite_cond : typing.Optional[str]
|
|
160
|
+
Number of leading digits to automatically remove from each dialed phone number
|
|
161
|
+
|
|
162
|
+
call_recording_enabled : typing.Optional[bool]
|
|
163
|
+
Indicates whether outbound call recording is enabled for the SIP trunk
|
|
164
|
+
|
|
165
|
+
machine_detection_enabled : typing.Optional[bool]
|
|
166
|
+
Indicates whether automatic voicemail detection is enabled for the SIP trunk.
|
|
167
|
+
Available for `Flex Pro` customers only.
|
|
168
|
+
|
|
169
|
+
encrypted_media : typing.Optional[bool]
|
|
170
|
+
Indicates whether SRTP media encryption is enabled for the SIP trunk.
|
|
171
|
+
|
|
172
|
+
request_options : typing.Optional[RequestOptions]
|
|
173
|
+
Request-specific configuration.
|
|
174
|
+
|
|
175
|
+
Returns
|
|
176
|
+
-------
|
|
177
|
+
SipTrunkResponse
|
|
178
|
+
Returns the created SIP trunk.
|
|
179
|
+
|
|
180
|
+
Examples
|
|
181
|
+
--------
|
|
182
|
+
from wavix import Wavix
|
|
183
|
+
|
|
184
|
+
client = Wavix(
|
|
185
|
+
token="YOUR_TOKEN",
|
|
186
|
+
)
|
|
187
|
+
client.sip_trunks.create(
|
|
188
|
+
label="My trunk",
|
|
189
|
+
password="4r=h;EaCB85QNtr2",
|
|
190
|
+
callerid="13132847320",
|
|
191
|
+
ip_restrict=False,
|
|
192
|
+
didinfo_enabled=True,
|
|
193
|
+
call_restrict=True,
|
|
194
|
+
cost_limit=True,
|
|
195
|
+
channels_restrict=False,
|
|
196
|
+
rewrite_enabled=True,
|
|
197
|
+
transcription_enabled=True,
|
|
198
|
+
transcription_threshold=10,
|
|
199
|
+
)
|
|
200
|
+
"""
|
|
201
|
+
_response = self._raw_client.create(
|
|
202
|
+
label=label,
|
|
203
|
+
password=password,
|
|
204
|
+
callerid=callerid,
|
|
205
|
+
ip_restrict=ip_restrict,
|
|
206
|
+
didinfo_enabled=didinfo_enabled,
|
|
207
|
+
call_restrict=call_restrict,
|
|
208
|
+
cost_limit=cost_limit,
|
|
209
|
+
channels_restrict=channels_restrict,
|
|
210
|
+
rewrite_enabled=rewrite_enabled,
|
|
211
|
+
transcription_enabled=transcription_enabled,
|
|
212
|
+
transcription_threshold=transcription_threshold,
|
|
213
|
+
host_request=host_request,
|
|
214
|
+
multiple_numbers=multiple_numbers,
|
|
215
|
+
allowed_ips=allowed_ips,
|
|
216
|
+
call_limit=call_limit,
|
|
217
|
+
max_call_cost=max_call_cost,
|
|
218
|
+
max_channels=max_channels,
|
|
219
|
+
rewrite_prefix=rewrite_prefix,
|
|
220
|
+
rewrite_cond=rewrite_cond,
|
|
221
|
+
call_recording_enabled=call_recording_enabled,
|
|
222
|
+
machine_detection_enabled=machine_detection_enabled,
|
|
223
|
+
encrypted_media=encrypted_media,
|
|
224
|
+
request_options=request_options,
|
|
225
|
+
)
|
|
226
|
+
return _response.data
|
|
227
|
+
|
|
228
|
+
def get(self, id: int, *, request_options: typing.Optional[RequestOptions] = None) -> SipTrunkResponse:
|
|
229
|
+
"""
|
|
230
|
+
Returns the SIP trunk identified by `id`.
|
|
231
|
+
|
|
232
|
+
Parameters
|
|
233
|
+
----------
|
|
234
|
+
id : int
|
|
235
|
+
The unique ID of the SIP trunk.
|
|
236
|
+
|
|
237
|
+
request_options : typing.Optional[RequestOptions]
|
|
238
|
+
Request-specific configuration.
|
|
239
|
+
|
|
240
|
+
Returns
|
|
241
|
+
-------
|
|
242
|
+
SipTrunkResponse
|
|
243
|
+
Returns the SIP trunk.
|
|
244
|
+
|
|
245
|
+
Examples
|
|
246
|
+
--------
|
|
247
|
+
from wavix import Wavix
|
|
248
|
+
|
|
249
|
+
client = Wavix(
|
|
250
|
+
token="YOUR_TOKEN",
|
|
251
|
+
)
|
|
252
|
+
client.sip_trunks.get(
|
|
253
|
+
id=3107,
|
|
254
|
+
)
|
|
255
|
+
"""
|
|
256
|
+
_response = self._raw_client.get(id, request_options=request_options)
|
|
257
|
+
return _response.data
|
|
258
|
+
|
|
259
|
+
def update(
|
|
260
|
+
self,
|
|
261
|
+
id: int,
|
|
262
|
+
*,
|
|
263
|
+
label: str,
|
|
264
|
+
password: str,
|
|
265
|
+
callerid: str,
|
|
266
|
+
ip_restrict: bool,
|
|
267
|
+
didinfo_enabled: bool,
|
|
268
|
+
call_restrict: bool,
|
|
269
|
+
cost_limit: bool,
|
|
270
|
+
channels_restrict: bool,
|
|
271
|
+
rewrite_enabled: bool,
|
|
272
|
+
transcription_enabled: bool,
|
|
273
|
+
transcription_threshold: int,
|
|
274
|
+
host_request: typing.Optional[SipTrunkCreateRequestHostRequest] = OMIT,
|
|
275
|
+
multiple_numbers: typing.Optional[bool] = OMIT,
|
|
276
|
+
allowed_ips: typing.Optional[typing.Sequence[SipTrunkCreateRequestAllowedIpsItem]] = OMIT,
|
|
277
|
+
call_limit: typing.Optional[int] = OMIT,
|
|
278
|
+
max_call_cost: typing.Optional[float] = OMIT,
|
|
279
|
+
max_channels: typing.Optional[int] = OMIT,
|
|
280
|
+
rewrite_prefix: typing.Optional[str] = OMIT,
|
|
281
|
+
rewrite_cond: typing.Optional[str] = OMIT,
|
|
282
|
+
call_recording_enabled: typing.Optional[bool] = OMIT,
|
|
283
|
+
machine_detection_enabled: typing.Optional[bool] = OMIT,
|
|
284
|
+
encrypted_media: typing.Optional[bool] = OMIT,
|
|
285
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
286
|
+
) -> SipTrunkResponse:
|
|
287
|
+
"""
|
|
288
|
+
Replaces the configuration of the SIP trunk identified by `id`. Omitted fields revert to their defaults.
|
|
289
|
+
|
|
290
|
+
Parameters
|
|
291
|
+
----------
|
|
292
|
+
id : int
|
|
293
|
+
The unique ID of the SIP trunk.
|
|
294
|
+
|
|
295
|
+
label : str
|
|
296
|
+
User-defined name of the SIP trunk
|
|
297
|
+
|
|
298
|
+
password : str
|
|
299
|
+
Password set for the SIP trunk. A strong password helps keep the trunk secure.
|
|
300
|
+
|
|
301
|
+
callerid : str
|
|
302
|
+
Caller ID associated with the SIP trunk. Must be an active or verified number on the account.
|
|
303
|
+
|
|
304
|
+
ip_restrict : bool
|
|
305
|
+
Indicates whether SIP trunk registration is allowed from only specific public static IP addresses. When set to `true`, the `allowed_ips` parameter must be provided.
|
|
306
|
+
|
|
307
|
+
didinfo_enabled : bool
|
|
308
|
+
Indicates whether inbound calls include dialed number information in the `To` header of SIP INVITE requests
|
|
309
|
+
|
|
310
|
+
call_restrict : bool
|
|
311
|
+
Indicates whether a maximum call duration limit is enforced for the SIP trunk
|
|
312
|
+
|
|
313
|
+
cost_limit : bool
|
|
314
|
+
Indicates if the max cost limit for an outbound call limit is activated for the SIP trunk.
|
|
315
|
+
|
|
316
|
+
channels_restrict : bool
|
|
317
|
+
Indicates whether a limit on the number of concurrent outbound calls is enforced for the SIP trunk
|
|
318
|
+
|
|
319
|
+
rewrite_enabled : bool
|
|
320
|
+
Indicates whether a custom dial plan is activated for the SIP trunk
|
|
321
|
+
|
|
322
|
+
transcription_enabled : bool
|
|
323
|
+
Indicates whether automatic call transcription is enabled for the SIP trunk.
|
|
324
|
+
Available for `Flex Pro` customers only.
|
|
325
|
+
|
|
326
|
+
transcription_threshold : int
|
|
327
|
+
Transcriptions will be generated for calls that meet or exceed the specified minimal call duration threshold, in seconds.
|
|
328
|
+
Available for `Flex Pro` customers only.
|
|
329
|
+
|
|
330
|
+
host_request : typing.Optional[SipTrunkCreateRequestHostRequest]
|
|
331
|
+
For SIP trunks with IP authentication, includes the SIP endpoint public static IP address and the status of the authentication request. Wavix authenticates all SIP traffic originating from this IP address.
|
|
332
|
+
|
|
333
|
+
multiple_numbers : typing.Optional[bool]
|
|
334
|
+
Indicates whether any active or verified phone number on the account can be used as the Caller ID for the SIP trunk.
|
|
335
|
+
|
|
336
|
+
allowed_ips : typing.Optional[typing.Sequence[SipTrunkCreateRequestAllowedIpsItem]]
|
|
337
|
+
A list of public static IP addresses allowed to register with the SIP trunk
|
|
338
|
+
|
|
339
|
+
call_limit : typing.Optional[int]
|
|
340
|
+
Maximum call duration for the SIP trunk, in seconds. Must not exceed the maximum duration set for the account. Ignored when `call_restrict` is `false`.
|
|
341
|
+
|
|
342
|
+
max_call_cost : typing.Optional[float]
|
|
343
|
+
Maximum cost for an outbound call, in USD
|
|
344
|
+
|
|
345
|
+
max_channels : typing.Optional[int]
|
|
346
|
+
Maximum number of concurrent outbound calls for the SIP trunk. Must not exceed the outbound channel capacity set for the account. Ignored when `channels_restrict` is `false`.
|
|
347
|
+
|
|
348
|
+
rewrite_prefix : typing.Optional[str]
|
|
349
|
+
Digits to automatically prepend to each dialed phone number
|
|
350
|
+
|
|
351
|
+
rewrite_cond : typing.Optional[str]
|
|
352
|
+
Number of leading digits to automatically remove from each dialed phone number
|
|
353
|
+
|
|
354
|
+
call_recording_enabled : typing.Optional[bool]
|
|
355
|
+
Indicates whether outbound call recording is enabled for the SIP trunk
|
|
356
|
+
|
|
357
|
+
machine_detection_enabled : typing.Optional[bool]
|
|
358
|
+
Indicates whether automatic voicemail detection is enabled for the SIP trunk.
|
|
359
|
+
Available for `Flex Pro` customers only.
|
|
360
|
+
|
|
361
|
+
encrypted_media : typing.Optional[bool]
|
|
362
|
+
Indicates whether SRTP media encryption is enabled for the SIP trunk.
|
|
363
|
+
|
|
364
|
+
request_options : typing.Optional[RequestOptions]
|
|
365
|
+
Request-specific configuration.
|
|
366
|
+
|
|
367
|
+
Returns
|
|
368
|
+
-------
|
|
369
|
+
SipTrunkResponse
|
|
370
|
+
Returns the updated SIP trunk.
|
|
371
|
+
|
|
372
|
+
Examples
|
|
373
|
+
--------
|
|
374
|
+
from wavix import Wavix
|
|
375
|
+
|
|
376
|
+
client = Wavix(
|
|
377
|
+
token="YOUR_TOKEN",
|
|
378
|
+
)
|
|
379
|
+
client.sip_trunks.update(
|
|
380
|
+
id=3107,
|
|
381
|
+
label="My trunk",
|
|
382
|
+
password="4r=h;EaCB85QNtr2",
|
|
383
|
+
callerid="13132847320",
|
|
384
|
+
ip_restrict=False,
|
|
385
|
+
didinfo_enabled=True,
|
|
386
|
+
call_restrict=True,
|
|
387
|
+
cost_limit=True,
|
|
388
|
+
channels_restrict=False,
|
|
389
|
+
rewrite_enabled=True,
|
|
390
|
+
transcription_enabled=True,
|
|
391
|
+
transcription_threshold=10,
|
|
392
|
+
)
|
|
393
|
+
"""
|
|
394
|
+
_response = self._raw_client.update(
|
|
395
|
+
id,
|
|
396
|
+
label=label,
|
|
397
|
+
password=password,
|
|
398
|
+
callerid=callerid,
|
|
399
|
+
ip_restrict=ip_restrict,
|
|
400
|
+
didinfo_enabled=didinfo_enabled,
|
|
401
|
+
call_restrict=call_restrict,
|
|
402
|
+
cost_limit=cost_limit,
|
|
403
|
+
channels_restrict=channels_restrict,
|
|
404
|
+
rewrite_enabled=rewrite_enabled,
|
|
405
|
+
transcription_enabled=transcription_enabled,
|
|
406
|
+
transcription_threshold=transcription_threshold,
|
|
407
|
+
host_request=host_request,
|
|
408
|
+
multiple_numbers=multiple_numbers,
|
|
409
|
+
allowed_ips=allowed_ips,
|
|
410
|
+
call_limit=call_limit,
|
|
411
|
+
max_call_cost=max_call_cost,
|
|
412
|
+
max_channels=max_channels,
|
|
413
|
+
rewrite_prefix=rewrite_prefix,
|
|
414
|
+
rewrite_cond=rewrite_cond,
|
|
415
|
+
call_recording_enabled=call_recording_enabled,
|
|
416
|
+
machine_detection_enabled=machine_detection_enabled,
|
|
417
|
+
encrypted_media=encrypted_media,
|
|
418
|
+
request_options=request_options,
|
|
419
|
+
)
|
|
420
|
+
return _response.data
|
|
421
|
+
|
|
422
|
+
def delete(self, id: int, *, request_options: typing.Optional[RequestOptions] = None) -> SuccessResponse:
|
|
423
|
+
"""
|
|
424
|
+
Deletes the SIP trunk identified by `id`. Deletion is permanent and stops call routing through the trunk.
|
|
425
|
+
|
|
426
|
+
Parameters
|
|
427
|
+
----------
|
|
428
|
+
id : int
|
|
429
|
+
The unique ID of the SIP trunk.
|
|
430
|
+
|
|
431
|
+
request_options : typing.Optional[RequestOptions]
|
|
432
|
+
Request-specific configuration.
|
|
433
|
+
|
|
434
|
+
Returns
|
|
435
|
+
-------
|
|
436
|
+
SuccessResponse
|
|
437
|
+
Returns a success confirmation. The SIP trunk is deleted.
|
|
438
|
+
|
|
439
|
+
Examples
|
|
440
|
+
--------
|
|
441
|
+
from wavix import Wavix
|
|
442
|
+
|
|
443
|
+
client = Wavix(
|
|
444
|
+
token="YOUR_TOKEN",
|
|
445
|
+
)
|
|
446
|
+
client.sip_trunks.delete(
|
|
447
|
+
id=3107,
|
|
448
|
+
)
|
|
449
|
+
"""
|
|
450
|
+
_response = self._raw_client.delete(id, request_options=request_options)
|
|
451
|
+
return _response.data
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
class AsyncSipTrunksClient:
|
|
455
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
456
|
+
self._raw_client = AsyncRawSipTrunksClient(client_wrapper=client_wrapper)
|
|
457
|
+
|
|
458
|
+
@property
|
|
459
|
+
def with_raw_response(self) -> AsyncRawSipTrunksClient:
|
|
460
|
+
"""
|
|
461
|
+
Retrieves a raw implementation of this client that returns raw responses.
|
|
462
|
+
|
|
463
|
+
Returns
|
|
464
|
+
-------
|
|
465
|
+
AsyncRawSipTrunksClient
|
|
466
|
+
"""
|
|
467
|
+
return self._raw_client
|
|
468
|
+
|
|
469
|
+
async def list(
|
|
470
|
+
self,
|
|
471
|
+
*,
|
|
472
|
+
page: typing.Optional[int] = None,
|
|
473
|
+
per_page: typing.Optional[int] = None,
|
|
474
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
475
|
+
) -> SipTrunkListResponse:
|
|
476
|
+
"""
|
|
477
|
+
Returns a paginated list of SIP trunks for the authenticated account.
|
|
478
|
+
|
|
479
|
+
Parameters
|
|
480
|
+
----------
|
|
481
|
+
page : typing.Optional[int]
|
|
482
|
+
Page number to retrieve. Default `1`.
|
|
483
|
+
|
|
484
|
+
per_page : typing.Optional[int]
|
|
485
|
+
Number of records to return per page. Default `25`.
|
|
486
|
+
|
|
487
|
+
request_options : typing.Optional[RequestOptions]
|
|
488
|
+
Request-specific configuration.
|
|
489
|
+
|
|
490
|
+
Returns
|
|
491
|
+
-------
|
|
492
|
+
SipTrunkListResponse
|
|
493
|
+
Returns a paginated list of SIP trunks.
|
|
494
|
+
|
|
495
|
+
Examples
|
|
496
|
+
--------
|
|
497
|
+
import asyncio
|
|
498
|
+
|
|
499
|
+
from wavix import AsyncWavix
|
|
500
|
+
|
|
501
|
+
client = AsyncWavix(
|
|
502
|
+
token="YOUR_TOKEN",
|
|
503
|
+
)
|
|
504
|
+
|
|
505
|
+
|
|
506
|
+
async def main() -> None:
|
|
507
|
+
await client.sip_trunks.list()
|
|
508
|
+
|
|
509
|
+
|
|
510
|
+
asyncio.run(main())
|
|
511
|
+
"""
|
|
512
|
+
_response = await self._raw_client.list(page=page, per_page=per_page, request_options=request_options)
|
|
513
|
+
return _response.data
|
|
514
|
+
|
|
515
|
+
async def create(
|
|
516
|
+
self,
|
|
517
|
+
*,
|
|
518
|
+
label: str,
|
|
519
|
+
password: str,
|
|
520
|
+
callerid: str,
|
|
521
|
+
ip_restrict: bool,
|
|
522
|
+
didinfo_enabled: bool,
|
|
523
|
+
call_restrict: bool,
|
|
524
|
+
cost_limit: bool,
|
|
525
|
+
channels_restrict: bool,
|
|
526
|
+
rewrite_enabled: bool,
|
|
527
|
+
transcription_enabled: bool,
|
|
528
|
+
transcription_threshold: int,
|
|
529
|
+
host_request: typing.Optional[SipTrunkCreateRequestHostRequest] = OMIT,
|
|
530
|
+
multiple_numbers: typing.Optional[bool] = OMIT,
|
|
531
|
+
allowed_ips: typing.Optional[typing.Sequence[SipTrunkCreateRequestAllowedIpsItem]] = OMIT,
|
|
532
|
+
call_limit: typing.Optional[int] = OMIT,
|
|
533
|
+
max_call_cost: typing.Optional[float] = OMIT,
|
|
534
|
+
max_channels: typing.Optional[int] = OMIT,
|
|
535
|
+
rewrite_prefix: typing.Optional[str] = OMIT,
|
|
536
|
+
rewrite_cond: typing.Optional[str] = OMIT,
|
|
537
|
+
call_recording_enabled: typing.Optional[bool] = OMIT,
|
|
538
|
+
machine_detection_enabled: typing.Optional[bool] = OMIT,
|
|
539
|
+
encrypted_media: typing.Optional[bool] = OMIT,
|
|
540
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
541
|
+
) -> SipTrunkResponse:
|
|
542
|
+
"""
|
|
543
|
+
Creates a SIP trunk for routing inbound and outbound calls. Returns the trunk with its generated `access_token`.
|
|
544
|
+
|
|
545
|
+
Parameters
|
|
546
|
+
----------
|
|
547
|
+
label : str
|
|
548
|
+
User-defined name of the SIP trunk
|
|
549
|
+
|
|
550
|
+
password : str
|
|
551
|
+
Password set for the SIP trunk. A strong password helps keep the trunk secure.
|
|
552
|
+
|
|
553
|
+
callerid : str
|
|
554
|
+
Caller ID associated with the SIP trunk. Must be an active or verified number on the account.
|
|
555
|
+
|
|
556
|
+
ip_restrict : bool
|
|
557
|
+
Indicates whether SIP trunk registration is allowed from only specific public static IP addresses. When set to `true`, the `allowed_ips` parameter must be provided.
|
|
558
|
+
|
|
559
|
+
didinfo_enabled : bool
|
|
560
|
+
Indicates whether inbound calls include dialed number information in the `To` header of SIP INVITE requests
|
|
561
|
+
|
|
562
|
+
call_restrict : bool
|
|
563
|
+
Indicates whether a maximum call duration limit is enforced for the SIP trunk
|
|
564
|
+
|
|
565
|
+
cost_limit : bool
|
|
566
|
+
Indicates if the max cost limit for an outbound call limit is activated for the SIP trunk.
|
|
567
|
+
|
|
568
|
+
channels_restrict : bool
|
|
569
|
+
Indicates whether a limit on the number of concurrent outbound calls is enforced for the SIP trunk
|
|
570
|
+
|
|
571
|
+
rewrite_enabled : bool
|
|
572
|
+
Indicates whether a custom dial plan is activated for the SIP trunk
|
|
573
|
+
|
|
574
|
+
transcription_enabled : bool
|
|
575
|
+
Indicates whether automatic call transcription is enabled for the SIP trunk.
|
|
576
|
+
Available for `Flex Pro` customers only.
|
|
577
|
+
|
|
578
|
+
transcription_threshold : int
|
|
579
|
+
Transcriptions will be generated for calls that meet or exceed the specified minimal call duration threshold, in seconds.
|
|
580
|
+
Available for `Flex Pro` customers only.
|
|
581
|
+
|
|
582
|
+
host_request : typing.Optional[SipTrunkCreateRequestHostRequest]
|
|
583
|
+
For SIP trunks with IP authentication, includes the SIP endpoint public static IP address and the status of the authentication request. Wavix authenticates all SIP traffic originating from this IP address.
|
|
584
|
+
|
|
585
|
+
multiple_numbers : typing.Optional[bool]
|
|
586
|
+
Indicates whether any active or verified phone number on the account can be used as the Caller ID for the SIP trunk.
|
|
587
|
+
|
|
588
|
+
allowed_ips : typing.Optional[typing.Sequence[SipTrunkCreateRequestAllowedIpsItem]]
|
|
589
|
+
A list of public static IP addresses allowed to register with the SIP trunk
|
|
590
|
+
|
|
591
|
+
call_limit : typing.Optional[int]
|
|
592
|
+
Maximum call duration for the SIP trunk, in seconds. Must not exceed the maximum duration set for the account. Ignored when `call_restrict` is `false`.
|
|
593
|
+
|
|
594
|
+
max_call_cost : typing.Optional[float]
|
|
595
|
+
Maximum cost for an outbound call, in USD
|
|
596
|
+
|
|
597
|
+
max_channels : typing.Optional[int]
|
|
598
|
+
Maximum number of concurrent outbound calls for the SIP trunk. Must not exceed the outbound channel capacity set for the account. Ignored when `channels_restrict` is `false`.
|
|
599
|
+
|
|
600
|
+
rewrite_prefix : typing.Optional[str]
|
|
601
|
+
Digits to automatically prepend to each dialed phone number
|
|
602
|
+
|
|
603
|
+
rewrite_cond : typing.Optional[str]
|
|
604
|
+
Number of leading digits to automatically remove from each dialed phone number
|
|
605
|
+
|
|
606
|
+
call_recording_enabled : typing.Optional[bool]
|
|
607
|
+
Indicates whether outbound call recording is enabled for the SIP trunk
|
|
608
|
+
|
|
609
|
+
machine_detection_enabled : typing.Optional[bool]
|
|
610
|
+
Indicates whether automatic voicemail detection is enabled for the SIP trunk.
|
|
611
|
+
Available for `Flex Pro` customers only.
|
|
612
|
+
|
|
613
|
+
encrypted_media : typing.Optional[bool]
|
|
614
|
+
Indicates whether SRTP media encryption is enabled for the SIP trunk.
|
|
615
|
+
|
|
616
|
+
request_options : typing.Optional[RequestOptions]
|
|
617
|
+
Request-specific configuration.
|
|
618
|
+
|
|
619
|
+
Returns
|
|
620
|
+
-------
|
|
621
|
+
SipTrunkResponse
|
|
622
|
+
Returns the created SIP trunk.
|
|
623
|
+
|
|
624
|
+
Examples
|
|
625
|
+
--------
|
|
626
|
+
import asyncio
|
|
627
|
+
|
|
628
|
+
from wavix import AsyncWavix
|
|
629
|
+
|
|
630
|
+
client = AsyncWavix(
|
|
631
|
+
token="YOUR_TOKEN",
|
|
632
|
+
)
|
|
633
|
+
|
|
634
|
+
|
|
635
|
+
async def main() -> None:
|
|
636
|
+
await client.sip_trunks.create(
|
|
637
|
+
label="My trunk",
|
|
638
|
+
password="4r=h;EaCB85QNtr2",
|
|
639
|
+
callerid="13132847320",
|
|
640
|
+
ip_restrict=False,
|
|
641
|
+
didinfo_enabled=True,
|
|
642
|
+
call_restrict=True,
|
|
643
|
+
cost_limit=True,
|
|
644
|
+
channels_restrict=False,
|
|
645
|
+
rewrite_enabled=True,
|
|
646
|
+
transcription_enabled=True,
|
|
647
|
+
transcription_threshold=10,
|
|
648
|
+
)
|
|
649
|
+
|
|
650
|
+
|
|
651
|
+
asyncio.run(main())
|
|
652
|
+
"""
|
|
653
|
+
_response = await self._raw_client.create(
|
|
654
|
+
label=label,
|
|
655
|
+
password=password,
|
|
656
|
+
callerid=callerid,
|
|
657
|
+
ip_restrict=ip_restrict,
|
|
658
|
+
didinfo_enabled=didinfo_enabled,
|
|
659
|
+
call_restrict=call_restrict,
|
|
660
|
+
cost_limit=cost_limit,
|
|
661
|
+
channels_restrict=channels_restrict,
|
|
662
|
+
rewrite_enabled=rewrite_enabled,
|
|
663
|
+
transcription_enabled=transcription_enabled,
|
|
664
|
+
transcription_threshold=transcription_threshold,
|
|
665
|
+
host_request=host_request,
|
|
666
|
+
multiple_numbers=multiple_numbers,
|
|
667
|
+
allowed_ips=allowed_ips,
|
|
668
|
+
call_limit=call_limit,
|
|
669
|
+
max_call_cost=max_call_cost,
|
|
670
|
+
max_channels=max_channels,
|
|
671
|
+
rewrite_prefix=rewrite_prefix,
|
|
672
|
+
rewrite_cond=rewrite_cond,
|
|
673
|
+
call_recording_enabled=call_recording_enabled,
|
|
674
|
+
machine_detection_enabled=machine_detection_enabled,
|
|
675
|
+
encrypted_media=encrypted_media,
|
|
676
|
+
request_options=request_options,
|
|
677
|
+
)
|
|
678
|
+
return _response.data
|
|
679
|
+
|
|
680
|
+
async def get(self, id: int, *, request_options: typing.Optional[RequestOptions] = None) -> SipTrunkResponse:
|
|
681
|
+
"""
|
|
682
|
+
Returns the SIP trunk identified by `id`.
|
|
683
|
+
|
|
684
|
+
Parameters
|
|
685
|
+
----------
|
|
686
|
+
id : int
|
|
687
|
+
The unique ID of the SIP trunk.
|
|
688
|
+
|
|
689
|
+
request_options : typing.Optional[RequestOptions]
|
|
690
|
+
Request-specific configuration.
|
|
691
|
+
|
|
692
|
+
Returns
|
|
693
|
+
-------
|
|
694
|
+
SipTrunkResponse
|
|
695
|
+
Returns the SIP trunk.
|
|
696
|
+
|
|
697
|
+
Examples
|
|
698
|
+
--------
|
|
699
|
+
import asyncio
|
|
700
|
+
|
|
701
|
+
from wavix import AsyncWavix
|
|
702
|
+
|
|
703
|
+
client = AsyncWavix(
|
|
704
|
+
token="YOUR_TOKEN",
|
|
705
|
+
)
|
|
706
|
+
|
|
707
|
+
|
|
708
|
+
async def main() -> None:
|
|
709
|
+
await client.sip_trunks.get(
|
|
710
|
+
id=3107,
|
|
711
|
+
)
|
|
712
|
+
|
|
713
|
+
|
|
714
|
+
asyncio.run(main())
|
|
715
|
+
"""
|
|
716
|
+
_response = await self._raw_client.get(id, request_options=request_options)
|
|
717
|
+
return _response.data
|
|
718
|
+
|
|
719
|
+
async def update(
|
|
720
|
+
self,
|
|
721
|
+
id: int,
|
|
722
|
+
*,
|
|
723
|
+
label: str,
|
|
724
|
+
password: str,
|
|
725
|
+
callerid: str,
|
|
726
|
+
ip_restrict: bool,
|
|
727
|
+
didinfo_enabled: bool,
|
|
728
|
+
call_restrict: bool,
|
|
729
|
+
cost_limit: bool,
|
|
730
|
+
channels_restrict: bool,
|
|
731
|
+
rewrite_enabled: bool,
|
|
732
|
+
transcription_enabled: bool,
|
|
733
|
+
transcription_threshold: int,
|
|
734
|
+
host_request: typing.Optional[SipTrunkCreateRequestHostRequest] = OMIT,
|
|
735
|
+
multiple_numbers: typing.Optional[bool] = OMIT,
|
|
736
|
+
allowed_ips: typing.Optional[typing.Sequence[SipTrunkCreateRequestAllowedIpsItem]] = OMIT,
|
|
737
|
+
call_limit: typing.Optional[int] = OMIT,
|
|
738
|
+
max_call_cost: typing.Optional[float] = OMIT,
|
|
739
|
+
max_channels: typing.Optional[int] = OMIT,
|
|
740
|
+
rewrite_prefix: typing.Optional[str] = OMIT,
|
|
741
|
+
rewrite_cond: typing.Optional[str] = OMIT,
|
|
742
|
+
call_recording_enabled: typing.Optional[bool] = OMIT,
|
|
743
|
+
machine_detection_enabled: typing.Optional[bool] = OMIT,
|
|
744
|
+
encrypted_media: typing.Optional[bool] = OMIT,
|
|
745
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
746
|
+
) -> SipTrunkResponse:
|
|
747
|
+
"""
|
|
748
|
+
Replaces the configuration of the SIP trunk identified by `id`. Omitted fields revert to their defaults.
|
|
749
|
+
|
|
750
|
+
Parameters
|
|
751
|
+
----------
|
|
752
|
+
id : int
|
|
753
|
+
The unique ID of the SIP trunk.
|
|
754
|
+
|
|
755
|
+
label : str
|
|
756
|
+
User-defined name of the SIP trunk
|
|
757
|
+
|
|
758
|
+
password : str
|
|
759
|
+
Password set for the SIP trunk. A strong password helps keep the trunk secure.
|
|
760
|
+
|
|
761
|
+
callerid : str
|
|
762
|
+
Caller ID associated with the SIP trunk. Must be an active or verified number on the account.
|
|
763
|
+
|
|
764
|
+
ip_restrict : bool
|
|
765
|
+
Indicates whether SIP trunk registration is allowed from only specific public static IP addresses. When set to `true`, the `allowed_ips` parameter must be provided.
|
|
766
|
+
|
|
767
|
+
didinfo_enabled : bool
|
|
768
|
+
Indicates whether inbound calls include dialed number information in the `To` header of SIP INVITE requests
|
|
769
|
+
|
|
770
|
+
call_restrict : bool
|
|
771
|
+
Indicates whether a maximum call duration limit is enforced for the SIP trunk
|
|
772
|
+
|
|
773
|
+
cost_limit : bool
|
|
774
|
+
Indicates if the max cost limit for an outbound call limit is activated for the SIP trunk.
|
|
775
|
+
|
|
776
|
+
channels_restrict : bool
|
|
777
|
+
Indicates whether a limit on the number of concurrent outbound calls is enforced for the SIP trunk
|
|
778
|
+
|
|
779
|
+
rewrite_enabled : bool
|
|
780
|
+
Indicates whether a custom dial plan is activated for the SIP trunk
|
|
781
|
+
|
|
782
|
+
transcription_enabled : bool
|
|
783
|
+
Indicates whether automatic call transcription is enabled for the SIP trunk.
|
|
784
|
+
Available for `Flex Pro` customers only.
|
|
785
|
+
|
|
786
|
+
transcription_threshold : int
|
|
787
|
+
Transcriptions will be generated for calls that meet or exceed the specified minimal call duration threshold, in seconds.
|
|
788
|
+
Available for `Flex Pro` customers only.
|
|
789
|
+
|
|
790
|
+
host_request : typing.Optional[SipTrunkCreateRequestHostRequest]
|
|
791
|
+
For SIP trunks with IP authentication, includes the SIP endpoint public static IP address and the status of the authentication request. Wavix authenticates all SIP traffic originating from this IP address.
|
|
792
|
+
|
|
793
|
+
multiple_numbers : typing.Optional[bool]
|
|
794
|
+
Indicates whether any active or verified phone number on the account can be used as the Caller ID for the SIP trunk.
|
|
795
|
+
|
|
796
|
+
allowed_ips : typing.Optional[typing.Sequence[SipTrunkCreateRequestAllowedIpsItem]]
|
|
797
|
+
A list of public static IP addresses allowed to register with the SIP trunk
|
|
798
|
+
|
|
799
|
+
call_limit : typing.Optional[int]
|
|
800
|
+
Maximum call duration for the SIP trunk, in seconds. Must not exceed the maximum duration set for the account. Ignored when `call_restrict` is `false`.
|
|
801
|
+
|
|
802
|
+
max_call_cost : typing.Optional[float]
|
|
803
|
+
Maximum cost for an outbound call, in USD
|
|
804
|
+
|
|
805
|
+
max_channels : typing.Optional[int]
|
|
806
|
+
Maximum number of concurrent outbound calls for the SIP trunk. Must not exceed the outbound channel capacity set for the account. Ignored when `channels_restrict` is `false`.
|
|
807
|
+
|
|
808
|
+
rewrite_prefix : typing.Optional[str]
|
|
809
|
+
Digits to automatically prepend to each dialed phone number
|
|
810
|
+
|
|
811
|
+
rewrite_cond : typing.Optional[str]
|
|
812
|
+
Number of leading digits to automatically remove from each dialed phone number
|
|
813
|
+
|
|
814
|
+
call_recording_enabled : typing.Optional[bool]
|
|
815
|
+
Indicates whether outbound call recording is enabled for the SIP trunk
|
|
816
|
+
|
|
817
|
+
machine_detection_enabled : typing.Optional[bool]
|
|
818
|
+
Indicates whether automatic voicemail detection is enabled for the SIP trunk.
|
|
819
|
+
Available for `Flex Pro` customers only.
|
|
820
|
+
|
|
821
|
+
encrypted_media : typing.Optional[bool]
|
|
822
|
+
Indicates whether SRTP media encryption is enabled for the SIP trunk.
|
|
823
|
+
|
|
824
|
+
request_options : typing.Optional[RequestOptions]
|
|
825
|
+
Request-specific configuration.
|
|
826
|
+
|
|
827
|
+
Returns
|
|
828
|
+
-------
|
|
829
|
+
SipTrunkResponse
|
|
830
|
+
Returns the updated SIP trunk.
|
|
831
|
+
|
|
832
|
+
Examples
|
|
833
|
+
--------
|
|
834
|
+
import asyncio
|
|
835
|
+
|
|
836
|
+
from wavix import AsyncWavix
|
|
837
|
+
|
|
838
|
+
client = AsyncWavix(
|
|
839
|
+
token="YOUR_TOKEN",
|
|
840
|
+
)
|
|
841
|
+
|
|
842
|
+
|
|
843
|
+
async def main() -> None:
|
|
844
|
+
await client.sip_trunks.update(
|
|
845
|
+
id=3107,
|
|
846
|
+
label="My trunk",
|
|
847
|
+
password="4r=h;EaCB85QNtr2",
|
|
848
|
+
callerid="13132847320",
|
|
849
|
+
ip_restrict=False,
|
|
850
|
+
didinfo_enabled=True,
|
|
851
|
+
call_restrict=True,
|
|
852
|
+
cost_limit=True,
|
|
853
|
+
channels_restrict=False,
|
|
854
|
+
rewrite_enabled=True,
|
|
855
|
+
transcription_enabled=True,
|
|
856
|
+
transcription_threshold=10,
|
|
857
|
+
)
|
|
858
|
+
|
|
859
|
+
|
|
860
|
+
asyncio.run(main())
|
|
861
|
+
"""
|
|
862
|
+
_response = await self._raw_client.update(
|
|
863
|
+
id,
|
|
864
|
+
label=label,
|
|
865
|
+
password=password,
|
|
866
|
+
callerid=callerid,
|
|
867
|
+
ip_restrict=ip_restrict,
|
|
868
|
+
didinfo_enabled=didinfo_enabled,
|
|
869
|
+
call_restrict=call_restrict,
|
|
870
|
+
cost_limit=cost_limit,
|
|
871
|
+
channels_restrict=channels_restrict,
|
|
872
|
+
rewrite_enabled=rewrite_enabled,
|
|
873
|
+
transcription_enabled=transcription_enabled,
|
|
874
|
+
transcription_threshold=transcription_threshold,
|
|
875
|
+
host_request=host_request,
|
|
876
|
+
multiple_numbers=multiple_numbers,
|
|
877
|
+
allowed_ips=allowed_ips,
|
|
878
|
+
call_limit=call_limit,
|
|
879
|
+
max_call_cost=max_call_cost,
|
|
880
|
+
max_channels=max_channels,
|
|
881
|
+
rewrite_prefix=rewrite_prefix,
|
|
882
|
+
rewrite_cond=rewrite_cond,
|
|
883
|
+
call_recording_enabled=call_recording_enabled,
|
|
884
|
+
machine_detection_enabled=machine_detection_enabled,
|
|
885
|
+
encrypted_media=encrypted_media,
|
|
886
|
+
request_options=request_options,
|
|
887
|
+
)
|
|
888
|
+
return _response.data
|
|
889
|
+
|
|
890
|
+
async def delete(self, id: int, *, request_options: typing.Optional[RequestOptions] = None) -> SuccessResponse:
|
|
891
|
+
"""
|
|
892
|
+
Deletes the SIP trunk identified by `id`. Deletion is permanent and stops call routing through the trunk.
|
|
893
|
+
|
|
894
|
+
Parameters
|
|
895
|
+
----------
|
|
896
|
+
id : int
|
|
897
|
+
The unique ID of the SIP trunk.
|
|
898
|
+
|
|
899
|
+
request_options : typing.Optional[RequestOptions]
|
|
900
|
+
Request-specific configuration.
|
|
901
|
+
|
|
902
|
+
Returns
|
|
903
|
+
-------
|
|
904
|
+
SuccessResponse
|
|
905
|
+
Returns a success confirmation. The SIP trunk is deleted.
|
|
906
|
+
|
|
907
|
+
Examples
|
|
908
|
+
--------
|
|
909
|
+
import asyncio
|
|
910
|
+
|
|
911
|
+
from wavix import AsyncWavix
|
|
912
|
+
|
|
913
|
+
client = AsyncWavix(
|
|
914
|
+
token="YOUR_TOKEN",
|
|
915
|
+
)
|
|
916
|
+
|
|
917
|
+
|
|
918
|
+
async def main() -> None:
|
|
919
|
+
await client.sip_trunks.delete(
|
|
920
|
+
id=3107,
|
|
921
|
+
)
|
|
922
|
+
|
|
923
|
+
|
|
924
|
+
asyncio.run(main())
|
|
925
|
+
"""
|
|
926
|
+
_response = await self._raw_client.delete(id, request_options=request_options)
|
|
927
|
+
return _response.data
|