jaxl-python 0.0.11__tar.gz → 0.0.13__tar.gz
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.
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/.github/workflows/sdk.yml +1 -1
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/.gitignore +2 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/PKG-INFO +60 -82
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/README.md +44 -72
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/examples/README.md +1 -0
- jaxl_python-0.0.13/examples/prompts/example.txt +15 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/examples/request_code_and_send_to_phone.py +2 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/examples/send_to_phone.py +2 -0
- jaxl_python-0.0.13/examples/streaming_aiagent.py +150 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/examples/streaming_audio_chunks.py +1 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/examples/streaming_speech_segments.py +1 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/examples/streaming_transcriptions.py +1 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/__init__.py +2 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/_client.py +7 -3
- jaxl_python-0.0.13/jaxl/api/_sdk.py +40 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/base.py +10 -4
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/_scm_version.py +2 -2
- jaxl_python-0.0.13/jaxl/api/client/api/v1/v1_calls_add_create.py +127 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/__init__.py +2 -0
- jaxl_python-0.0.13/jaxl/api/client/models/call_add_request_request.py +82 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/ivr_options_response.py +1 -1
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/organization_employee.py +8 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/resources/accounts.py +16 -2
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/resources/apps.py +6 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/resources/calls.py +86 -4
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/resources/campaigns.py +12 -1
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/resources/devices.py +17 -2
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/resources/ivrs.py +37 -3
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/resources/kycs.py +11 -1
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/resources/members.py +11 -1
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/resources/messages.py +11 -1
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/resources/notifications.py +4 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/resources/payments.py +30 -2
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/resources/phones.py +39 -5
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/resources/teams.py +11 -1
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl_python.egg-info/PKG-INFO +60 -82
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl_python.egg-info/SOURCES.txt +4 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl_python.egg-info/requires.txt +18 -8
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/setup.cfg +11 -5
- jaxl_python-0.0.11/examples/streaming_aiagent.py +0 -129
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/.isort.cfg +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/.pylintrc +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/.vscode/settings.json +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/LICENSE.md +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/SPECIFICATION.md +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/docs.sh +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/examples/__init__.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/examples/py.typed +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/examples/request_and_confirm_code_then_send_to_phone.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/cli.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/__init__.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/__init__.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v1/__init__.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v1/v1_appusers_me_retrieve.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v1/v1_calls_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v1/v1_calls_token_create.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v1/v1_calls_tts_create.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v1/v1_calls_usage_retrieve.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v1/v1_campaign_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v1/v1_customer_consumables_retrieve.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v1/v1_devices_attest_create.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v1/v1_devices_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v1/v1_ivr_create.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v1/v1_ivr_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v1/v1_ivr_options_create.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v1/v1_ivr_options_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v1/v1_ivr_options_partial_update.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v1/v1_kyc_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v1/v1_messages_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v1/v1_phonenumbers_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v1/v1_phonenumbers_partial_update.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v1/v1_phonenumbers_search_retrieve.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v2/__init__.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v2/v2_app_organizations_employees_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v2/v2_app_organizations_groups_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v3/__init__.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/api/v3/v3_orders_subscriptions_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/client.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/errors.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/address_provider.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/address_provider_status_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/analytic.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/app_price.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/app_user.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/available_phone_number.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/available_phone_number_capabilities.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/available_phone_number_provider_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/call.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/call_cost.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/call_location_epoch.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/call_metadata.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/call_tag_response.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/call_token_request.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/call_token_response.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/call_tts_request_request.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/call_type_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/call_usage_by_currency_response.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/call_usage_response.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/call_usage_stats_response.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/campaign_metadata.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/campaign_metadata_metadata.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/campaign_response.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/campaign_response_status_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/campaign_stats.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/campaign_tag.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/can_user_resubscribe_plan.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/canceled_by_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/capabilities.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/connection.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/country.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/cta.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/cta_request.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/currency_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/customer_consumable_total.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/customer_order_subscriptions_serializer_v2.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/customer_order_subscriptions_serializer_v2_status_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/customer_provider_serializer_v2.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/device.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/device_attestation_error.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/device_attestation_error_reason_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/device_attestation_response.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/dh_message.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/dh_message_attachment.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/dh_message_reaction.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/dh_message_type_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/direction_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/emoji.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/emoji_reaction.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/id_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/intent_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/iso_country_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/item.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/ivr_collection.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/ivr_collection_request.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/ivr_menu_request.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/ivr_menu_response.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/ivr_menu_response_status_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/ivr_options_invalid_response.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/ivr_options_request.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/kyc.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/kyc_status_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/kyc_upload_metadata.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/location.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/next_or_cta_request.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/order_status_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/organization_employee_preferences.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/organization_employee_status_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/organization_group_inline.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/organization_group_response.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/paginated_call_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/paginated_campaign_response_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/paginated_customer_order_subscriptions_serializer_v2_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/paginated_device_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/paginated_dh_message_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/paginated_ivr_menu_response_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/paginated_ivr_options_response_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/paginated_kyc_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/paginated_organization_employee_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/paginated_organization_group_response_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/paginated_phone_number_list.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/patched_ivr_options_update_request.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/patched_phone_number_request.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/payment_gateway_fees_info.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/period_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/phone_number.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/phone_number_attributes.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/phone_number_capabilities.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/phone_number_provider_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/phone_number_search_response.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/phone_number_status_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/plan.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/plan_cancel_info.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/plan_expiry_timestamp.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/plan_expiry_timestamp_type_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/plan_extra_details.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/plan_item.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/plan_type.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/plan_type_cycle.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/platform_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/product_group.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/proof.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/proof_status_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/provider_status_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/reaction_by.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/rental_currency_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/resource_enum.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/user_agent.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/user_agent_browser.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/user_agent_device.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/user_agent_operating_system.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/user_agent_platform.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/user_identity.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/v1_calls_list_direction.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/v1_campaign_list_status_item.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/v1_customer_consumables_retrieve_currency.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/v1_ivr_list_duration.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/v1_kyc_list_iso_country.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/v1_kyc_list_provider_status_item.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/v1_kyc_list_resource.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/v1_kyc_list_status.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/v1_phonenumbers_list_additional_status_item.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/v1_phonenumbers_list_provider.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/v1_phonenumbers_list_status.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/v1_phonenumbers_search_retrieve_intent.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/v1_phonenumbers_search_retrieve_iso_country_code.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/v1_phonenumbers_search_retrieve_resource.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/v2_app_organizations_employees_list_status_item.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/v3_orders_subscriptions_list_currency.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/models/v3_orders_subscriptions_list_status_item.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/client/types.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/py.typed +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/resources/__init__.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/resources/_constants.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl/api/resources/silence.py +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl_python.egg-info/dependency_links.txt +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl_python.egg-info/entry_points.txt +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl_python.egg-info/not-zip-safe +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/jaxl_python.egg-info/top_level.txt +0 -0
- {jaxl_python-0.0.11 → jaxl_python-0.0.13}/pyproject.toml +0 -0
|
@@ -29,7 +29,7 @@ jobs:
|
|
|
29
29
|
python -m venv .venv
|
|
30
30
|
source .venv/bin/activate
|
|
31
31
|
python -m pip install --upgrade pip
|
|
32
|
-
pip install -e .[dev,app,grout,silence,transcribe]
|
|
32
|
+
pip install -e .[dev,docs,types,app,grout,silence,transcribe,release]
|
|
33
33
|
- name: Run mypy
|
|
34
34
|
run: |
|
|
35
35
|
source .venv/bin/activate
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: jaxl-python
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.13
|
|
4
4
|
Summary: Official Python SDK and CLI for interfacing with the Jaxl API. Manage calls, messages, IVRs, devices, teams, payments, campaigns, streaming transcriptions and AI Agents. Built on OpenAPI, it offers both generated API clients and Pythonic wrappers for ease of use.
|
|
5
5
|
Home-page: https://github.com/jaxl-innovations-private-limited/jaxl-python
|
|
6
6
|
Download-URL: https://github.com/jaxl-innovations-private-limited/jaxl-python/archive/main.zip
|
|
@@ -48,22 +48,23 @@ License-File: LICENSE.md
|
|
|
48
48
|
Requires-Dist: httpx<0.24.0,>=0.15.0
|
|
49
49
|
Requires-Dist: attrs>=21.3.0
|
|
50
50
|
Requires-Dist: python-dateutil<3,>=2.8.0
|
|
51
|
-
Requires-Dist: cryptography==
|
|
51
|
+
Requires-Dist: cryptography==46.0.2
|
|
52
52
|
Requires-Dist: PyJWT==2.8.0
|
|
53
53
|
Requires-Dist: requests==2.32.4
|
|
54
54
|
Requires-Dist: pydantic==2.11.9
|
|
55
55
|
Provides-Extra: dev
|
|
56
|
-
Requires-Dist: types-python-dateutil; extra == "dev"
|
|
57
56
|
Requires-Dist: isort; extra == "dev"
|
|
58
57
|
Requires-Dist: mypy; extra == "dev"
|
|
59
58
|
Requires-Dist: autoflake; extra == "dev"
|
|
60
59
|
Requires-Dist: pylint==3.3.3; extra == "dev"
|
|
61
|
-
|
|
62
|
-
Requires-Dist: pdoc3==0.11.6; extra == "
|
|
63
|
-
|
|
64
|
-
Requires-Dist: types-
|
|
65
|
-
Requires-Dist: types-
|
|
66
|
-
Requires-Dist: types-
|
|
60
|
+
Provides-Extra: docs
|
|
61
|
+
Requires-Dist: pdoc3==0.11.6; extra == "docs"
|
|
62
|
+
Provides-Extra: types
|
|
63
|
+
Requires-Dist: types-python-dateutil; extra == "types"
|
|
64
|
+
Requires-Dist: types-PyYAML==6.0.12.20250915; extra == "types"
|
|
65
|
+
Requires-Dist: types-Pygments==2.19.0.20250809; extra == "types"
|
|
66
|
+
Requires-Dist: types-ujson==5.10.0.20250822; extra == "types"
|
|
67
|
+
Requires-Dist: types-requests==2.32.0.20240602; extra == "types"
|
|
67
68
|
Provides-Extra: app
|
|
68
69
|
Requires-Dist: uvicorn[standard]==0.35.0; extra == "app"
|
|
69
70
|
Requires-Dist: fastapi==0.116.1; extra == "app"
|
|
@@ -72,9 +73,14 @@ Requires-Dist: proxy.py==2.4.10; extra == "grout"
|
|
|
72
73
|
Provides-Extra: silence
|
|
73
74
|
Requires-Dist: webrtcvad==2.0.10; extra == "silence"
|
|
74
75
|
Requires-Dist: setuptools==80.9.0; extra == "silence"
|
|
75
|
-
Requires-Dist: numpy==1.26.4; extra == "silence"
|
|
76
76
|
Provides-Extra: transcribe
|
|
77
77
|
Requires-Dist: openai-whisper==20240930; extra == "transcribe"
|
|
78
|
+
Requires-Dist: numpy==1.26.4; extra == "transcribe"
|
|
79
|
+
Provides-Extra: openai
|
|
80
|
+
Requires-Dist: openai==2.1.0; extra == "openai"
|
|
81
|
+
Provides-Extra: release
|
|
82
|
+
Requires-Dist: build; extra == "release"
|
|
83
|
+
Requires-Dist: twine; extra == "release"
|
|
78
84
|
Dynamic: download-url
|
|
79
85
|
Dynamic: license-file
|
|
80
86
|
|
|
@@ -95,10 +101,9 @@ Use Jaxl from Python code or directly via the `jaxl` command-line tool.
|
|
|
95
101
|
- [Assign a Phone Number to IVR by ID](#assign-a-phone-number-to-ivr-by-id)
|
|
96
102
|
- [Place Outgoing Cellular Call with Existing IVR](#place-outgoing-cellular-call-with-existing-ivr)
|
|
97
103
|
- [Place Outgoing Cellular Call with Ad-hoc IVR](#place-outgoing-cellular-call-with-ad-hoc-ivr)
|
|
98
|
-
- [Dial-out Multi-Party Conference between Cellular Numbers](#dial-out-multi-party-conference-between-cellular-numbers)
|
|
99
|
-
- [Dial-out Agent Team and Cellular Numbers](#dial-out-agent-team-and-cellular-numbers)
|
|
100
104
|
- [Dial-out 2-Party Conference with Ad-hoc IVR](#dial-out-2-party-conference-with-ad-hoc-ivr)
|
|
101
105
|
- [Add External Phone Number to an Active Call](#add-external-phone-number-to-an-active-call)
|
|
106
|
+
- [Add External Phone Number via Another Phone Number to an Active Call](#add-external-phone-number-via-another-phone-number-to-an-active-call)
|
|
102
107
|
- [Add Agent to an Active Call](#add-agent-to-an-active-call)
|
|
103
108
|
- [Remove External Phone Number from an Active Call](#remove-external-phone-number-from-an-active-call)
|
|
104
109
|
- [Remove Agent from an Active Call](#remove-agent-from-an-active-call)
|
|
@@ -194,13 +199,13 @@ This IVR will speak the message and then hangup the call.
|
|
|
194
199
|
|
|
195
200
|
```bash
|
|
196
201
|
jaxl ivrs create \
|
|
197
|
-
--message "Hello, we are calling via Jaxl IVR demo created from CLI" \
|
|
202
|
+
--message "Hello, we are calling via Jaxl IVR demo created from CLI. Will hang up after speaking this message." \
|
|
198
203
|
--hangup
|
|
199
204
|
```
|
|
200
205
|
|
|
201
206
|
### Configure IVR Options
|
|
202
207
|
|
|
203
|
-
This IVR option uses `--next` to send user to another IVR.
|
|
208
|
+
This IVR option uses `--next` to send user to another IVR or to the same IVR for a "repeat this menu" experience.
|
|
204
209
|
|
|
205
210
|
```bash
|
|
206
211
|
jaxl ivrs options configure \
|
|
@@ -210,7 +215,7 @@ jaxl ivrs options configure \
|
|
|
210
215
|
--next <NEXT IVR ID>
|
|
211
216
|
```
|
|
212
217
|
|
|
213
|
-
> Use <IVR ID TO CONFIGURE>
|
|
218
|
+
> Use same value for <IVR ID TO CONFIGURE> and <NEXT IVR ID> to complete the "repeat this menu" experience.
|
|
214
219
|
|
|
215
220
|
One of the CTA key flag must be provided. Allowed CTA keys are:
|
|
216
221
|
|
|
@@ -235,7 +240,7 @@ jaxl phones list
|
|
|
235
240
|
You can also search for a specific purchased number:
|
|
236
241
|
|
|
237
242
|
```bash
|
|
238
|
-
jaxl phones list --e164 "+
|
|
243
|
+
jaxl phones list --e164 "+CC<Purchased Jaxl Number>"
|
|
239
244
|
```
|
|
240
245
|
|
|
241
246
|
### Assign a Phone Number to IVR by ID
|
|
@@ -244,7 +249,7 @@ All incoming calls to this number will send user to the assigned IVR.
|
|
|
244
249
|
|
|
245
250
|
```bash
|
|
246
251
|
jaxl phones ivrs \
|
|
247
|
-
--e164 "+
|
|
252
|
+
--e164 "+CC<Purchased Jaxl Number>" \
|
|
248
253
|
--ivr <IVR ID>
|
|
249
254
|
```
|
|
250
255
|
|
|
@@ -258,8 +263,8 @@ Below command will execute the following flow:
|
|
|
258
263
|
|
|
259
264
|
```bash
|
|
260
265
|
jaxl calls create \
|
|
261
|
-
--to "+
|
|
262
|
-
--from "+
|
|
266
|
+
--to "+CC<Callee Number>" \
|
|
267
|
+
--from "+CC<Purchased Jaxl Number>" \
|
|
263
268
|
--ivr <IVR ID>
|
|
264
269
|
```
|
|
265
270
|
|
|
@@ -274,46 +279,13 @@ Below command will execute the following flow:
|
|
|
274
279
|
|
|
275
280
|
```bash
|
|
276
281
|
jaxl calls create \
|
|
277
|
-
--to "+
|
|
278
|
-
--from "+
|
|
282
|
+
--to "+CC<Callee Number>" \
|
|
283
|
+
--from "+CC<Purchased Jaxl Number>" \
|
|
279
284
|
--message "Hello, we are calling you from MyCompany" \
|
|
280
285
|
--option "1=Press 1 for sales:team=<Sales Team ID>" \
|
|
281
286
|
--option "2=Press 2 for HR department:team=<HR Team ID>
|
|
282
287
|
```
|
|
283
288
|
|
|
284
|
-
## Dial-out Multi-Party Conference between Cellular Numbers
|
|
285
|
-
|
|
286
|
-
Below command will execute the following flow:
|
|
287
|
-
|
|
288
|
-
- Dials out all `--to` participants in parallel
|
|
289
|
-
- Connects them together as they answer the call
|
|
290
|
-
- Ends the call when one but all others have hanged up the call
|
|
291
|
-
|
|
292
|
-
```bash
|
|
293
|
-
jaxl calls create \
|
|
294
|
-
--to "+91<Doctors Number>" \
|
|
295
|
-
--to "+91<Patient Number>" \
|
|
296
|
-
--to "+91<Supervisor Number>" \
|
|
297
|
-
--from "+91<Purchased Jaxl Number>"
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
### Dial-out Agent Team and Cellular Numbers
|
|
301
|
-
|
|
302
|
-
Below command will execute the following flow:
|
|
303
|
-
|
|
304
|
-
- Dials out multiple teams of doctors & patient in parallel
|
|
305
|
-
- Connects the patient with first doctor to pick the call from the teams
|
|
306
|
-
- Doctors are called on their cellular number first (if added on Jaxl app),
|
|
307
|
-
followed by an attempt to call on Jaxl app directly (VoIP).
|
|
308
|
-
- Calling preference can be controlled per agent (doctor) or team to dictate
|
|
309
|
-
whether to use cellular or voip first to connect with a doctor.
|
|
310
|
-
|
|
311
|
-
```bash
|
|
312
|
-
jaxl calls create \
|
|
313
|
-
--to "teams=<Doctors Team ID1>,<Doctors Team ID2>" \
|
|
314
|
-
--to "+91<Patient Number>"
|
|
315
|
-
```
|
|
316
|
-
|
|
317
289
|
### Dial-out 2-Party Conference with Ad-hoc IVR
|
|
318
290
|
|
|
319
291
|
Below command will execute the following flow:
|
|
@@ -325,34 +297,40 @@ Below command will execute the following flow:
|
|
|
325
297
|
|
|
326
298
|
```bash
|
|
327
299
|
jaxl calls create \
|
|
328
|
-
--to "+
|
|
329
|
-
--from "+
|
|
300
|
+
--to "+CC<Doctors Number>" \
|
|
301
|
+
--from "+CC<Purchased Jaxl Number>" \
|
|
330
302
|
--message "Hello Doctor, this is a call from MyCompany regarding your appointment with Mr. Patient Name. When ready please, " \
|
|
331
|
-
--option "1=Press 1 to connect with the patient:phone=+
|
|
303
|
+
--option "1=Press 1 to connect with the patient:phone=+CC<Patient Number>"
|
|
332
304
|
```
|
|
333
305
|
|
|
334
306
|
### Add External Phone Number to an Active Call
|
|
335
307
|
|
|
336
308
|
```bash
|
|
337
|
-
jaxl calls add --call-id 1234 --
|
|
309
|
+
jaxl calls add --call-id 1234 --e164 +CC<Mobile Number>
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
### Add External Phone Number via Another Phone Number to an Active Call
|
|
313
|
+
|
|
314
|
+
```bash
|
|
315
|
+
jaxl calls add --call-id 1234 --e164 +CC<Mobile Number> --from-e164 +CC<Purchased Jaxl Number>
|
|
338
316
|
```
|
|
339
317
|
|
|
340
318
|
### Add Agent to an Active Call
|
|
341
319
|
|
|
342
320
|
```bash
|
|
343
|
-
jaxl calls add --call-id 1234 --
|
|
321
|
+
jaxl calls add --call-id 1234 --email <someone@mycompany.com>
|
|
344
322
|
```
|
|
345
323
|
|
|
346
324
|
### Remove External Phone Number from an Active Call
|
|
347
325
|
|
|
348
326
|
```bash
|
|
349
|
-
jaxl calls remove --call-id 1234 --
|
|
327
|
+
jaxl calls remove --call-id 1234 --e164 +CC<Mobile Number>
|
|
350
328
|
```
|
|
351
329
|
|
|
352
330
|
### Remove Agent from an Active Call
|
|
353
331
|
|
|
354
332
|
```bash
|
|
355
|
-
jaxl calls remove --call-id 1234 --
|
|
333
|
+
jaxl calls remove --call-id 1234 --email <someone@mycompany.com>
|
|
356
334
|
```
|
|
357
335
|
|
|
358
336
|
### Send Text Prompts (TTS) in an Active Call
|
|
@@ -378,13 +356,13 @@ jaxl calls play --call-id 1234 --audio /path/to/a/file/on/local/disk/or/public/u
|
|
|
378
356
|
Mute a specific cellular user in a call.
|
|
379
357
|
|
|
380
358
|
```bash
|
|
381
|
-
jaxl calls mute --call-id 1234 --
|
|
359
|
+
jaxl calls mute --call-id 1234 --e164 +CC<Mobile Number>
|
|
382
360
|
```
|
|
383
361
|
|
|
384
362
|
Mute an agent (Jaxl App User) in a call.
|
|
385
363
|
|
|
386
364
|
```bash
|
|
387
|
-
jaxl calls mute --call-id 1235 --
|
|
365
|
+
jaxl calls mute --call-id 1235 --email <someone@mycompany.com>
|
|
388
366
|
```
|
|
389
367
|
|
|
390
368
|
### Unmute a Participant in an Active Call
|
|
@@ -392,13 +370,13 @@ jaxl calls mute --call-id 1235 --agent <someone@mycompany.com>
|
|
|
392
370
|
Unmute a specific cellular user in a call.
|
|
393
371
|
|
|
394
372
|
```bash
|
|
395
|
-
jaxl calls unmute --call-id 1234 --
|
|
373
|
+
jaxl calls unmute --call-id 1234 --e164 +CC<Mobile Number>
|
|
396
374
|
```
|
|
397
375
|
|
|
398
376
|
Unmute a specific agent (Jaxl App User) in a call.
|
|
399
377
|
|
|
400
378
|
```bash
|
|
401
|
-
jaxl calls unmute --call-id 1235 --
|
|
379
|
+
jaxl calls unmute --call-id 1235 --email <someone@mycompany.com>
|
|
402
380
|
```
|
|
403
381
|
|
|
404
382
|
### Hold a Participant in an Active Call
|
|
@@ -406,13 +384,13 @@ jaxl calls unmute --call-id 1235 --agent <someone@mycompany.com>
|
|
|
406
384
|
Put a cellular user on-hold in a call
|
|
407
385
|
|
|
408
386
|
```bash
|
|
409
|
-
jaxl calls hold --call-id 1234 --
|
|
387
|
+
jaxl calls hold --call-id 1234 --e164 +CC<Mobile Number>
|
|
410
388
|
```
|
|
411
389
|
|
|
412
390
|
Put an agent on-hold in a call
|
|
413
391
|
|
|
414
392
|
```bash
|
|
415
|
-
jaxl calls hold --call-id 1235 --
|
|
393
|
+
jaxl calls hold --call-id 1235 --email <someone@mycompany.com>
|
|
416
394
|
```
|
|
417
395
|
|
|
418
396
|
### Unhold a Participant in an Active Call
|
|
@@ -420,13 +398,13 @@ jaxl calls hold --call-id 1235 --agent <someone@mycompany.com>
|
|
|
420
398
|
Unhold a cellular user in a call
|
|
421
399
|
|
|
422
400
|
```bash
|
|
423
|
-
jaxl calls unhold --call-id 1234 --
|
|
401
|
+
jaxl calls unhold --call-id 1234 --e164 +CC<Mobile Number>
|
|
424
402
|
```
|
|
425
403
|
|
|
426
404
|
Unhold an agent in a call
|
|
427
405
|
|
|
428
406
|
```bash
|
|
429
|
-
jaxl calls unhold --call-id 1235 --
|
|
407
|
+
jaxl calls unhold --call-id 1235 --email <someone@mycompany.com>
|
|
430
408
|
```
|
|
431
409
|
|
|
432
410
|
### Receive Call Events via Webhook IVRs
|
|
@@ -479,25 +457,21 @@ jaxl payments consumables total
|
|
|
479
457
|
## Jaxl Python SDK
|
|
480
458
|
|
|
481
459
|
- Jaxl APIs is built upon [OpenAPI specification](https://www.openapis.org/)
|
|
482
|
-
- `jaxl-python` contains following Python modules:
|
|
483
|
-
- `jaxl.api.client`: Generated OpenAPI SDK
|
|
484
|
-
- `jaxl.api.resources`: Wrapper methods written to support `jaxl` CLI
|
|
485
|
-
- `jaxl_api_client`: Helper function to retrieve an instance of `JaxlApiClient`
|
|
486
460
|
|
|
487
461
|
### SDK Example Usage:
|
|
488
462
|
|
|
489
463
|
```python
|
|
490
|
-
from jaxl.api import
|
|
491
|
-
from jaxl.api.client.api.v1 import v1_calls_list
|
|
464
|
+
from jaxl.api import JaxlSDK
|
|
492
465
|
|
|
493
466
|
os.environ.setdefault("JAXL_API_CREDENTIALS", "/path/to/jaxl-api-credentials.json")
|
|
494
467
|
|
|
495
468
|
os.environ.setdefault("JAXL_API_AUTH_TOKEN", "....authentication token...")
|
|
496
469
|
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
)
|
|
470
|
+
sdk = JaxlSDK()
|
|
471
|
+
|
|
472
|
+
response = sdk.calls.create(to="+CC<Callee Number>", from_="+CC<Purchased Jaxl Number>", ivr=1234)
|
|
473
|
+
response = sdk.calls.list(currency=2) # 1=USD, 2=INR
|
|
474
|
+
response = sdk.accounts.me()
|
|
501
475
|
```
|
|
502
476
|
|
|
503
477
|
## SDK Documentation
|
|
@@ -516,7 +490,7 @@ python3 -m venv .venv
|
|
|
516
490
|
source .venv/bin/activate
|
|
517
491
|
|
|
518
492
|
# Install
|
|
519
|
-
pip install -e ".[dev]"
|
|
493
|
+
pip install -e ".[dev,docs]"
|
|
520
494
|
|
|
521
495
|
# Generate documentation
|
|
522
496
|
./docs.sh
|
|
@@ -527,6 +501,10 @@ open docs/jaxl/index.html
|
|
|
527
501
|
|
|
528
502
|
## Status
|
|
529
503
|
|
|
530
|
-
[](https://pypi.org/project/jaxl-python/)
|
|
505
|
+
|
|
506
|
+
[](https://pypi.org/project/jaxl-python/)
|
|
507
|
+
|
|
508
|
+
[](https://www.python.org/)
|
|
531
509
|
|
|
532
|
-
[](http://mypy-lang.org/)
|
|
@@ -15,10 +15,9 @@ Use Jaxl from Python code or directly via the `jaxl` command-line tool.
|
|
|
15
15
|
- [Assign a Phone Number to IVR by ID](#assign-a-phone-number-to-ivr-by-id)
|
|
16
16
|
- [Place Outgoing Cellular Call with Existing IVR](#place-outgoing-cellular-call-with-existing-ivr)
|
|
17
17
|
- [Place Outgoing Cellular Call with Ad-hoc IVR](#place-outgoing-cellular-call-with-ad-hoc-ivr)
|
|
18
|
-
- [Dial-out Multi-Party Conference between Cellular Numbers](#dial-out-multi-party-conference-between-cellular-numbers)
|
|
19
|
-
- [Dial-out Agent Team and Cellular Numbers](#dial-out-agent-team-and-cellular-numbers)
|
|
20
18
|
- [Dial-out 2-Party Conference with Ad-hoc IVR](#dial-out-2-party-conference-with-ad-hoc-ivr)
|
|
21
19
|
- [Add External Phone Number to an Active Call](#add-external-phone-number-to-an-active-call)
|
|
20
|
+
- [Add External Phone Number via Another Phone Number to an Active Call](#add-external-phone-number-via-another-phone-number-to-an-active-call)
|
|
22
21
|
- [Add Agent to an Active Call](#add-agent-to-an-active-call)
|
|
23
22
|
- [Remove External Phone Number from an Active Call](#remove-external-phone-number-from-an-active-call)
|
|
24
23
|
- [Remove Agent from an Active Call](#remove-agent-from-an-active-call)
|
|
@@ -114,13 +113,13 @@ This IVR will speak the message and then hangup the call.
|
|
|
114
113
|
|
|
115
114
|
```bash
|
|
116
115
|
jaxl ivrs create \
|
|
117
|
-
--message "Hello, we are calling via Jaxl IVR demo created from CLI" \
|
|
116
|
+
--message "Hello, we are calling via Jaxl IVR demo created from CLI. Will hang up after speaking this message." \
|
|
118
117
|
--hangup
|
|
119
118
|
```
|
|
120
119
|
|
|
121
120
|
### Configure IVR Options
|
|
122
121
|
|
|
123
|
-
This IVR option uses `--next` to send user to another IVR.
|
|
122
|
+
This IVR option uses `--next` to send user to another IVR or to the same IVR for a "repeat this menu" experience.
|
|
124
123
|
|
|
125
124
|
```bash
|
|
126
125
|
jaxl ivrs options configure \
|
|
@@ -130,7 +129,7 @@ jaxl ivrs options configure \
|
|
|
130
129
|
--next <NEXT IVR ID>
|
|
131
130
|
```
|
|
132
131
|
|
|
133
|
-
> Use <IVR ID TO CONFIGURE>
|
|
132
|
+
> Use same value for <IVR ID TO CONFIGURE> and <NEXT IVR ID> to complete the "repeat this menu" experience.
|
|
134
133
|
|
|
135
134
|
One of the CTA key flag must be provided. Allowed CTA keys are:
|
|
136
135
|
|
|
@@ -155,7 +154,7 @@ jaxl phones list
|
|
|
155
154
|
You can also search for a specific purchased number:
|
|
156
155
|
|
|
157
156
|
```bash
|
|
158
|
-
jaxl phones list --e164 "+
|
|
157
|
+
jaxl phones list --e164 "+CC<Purchased Jaxl Number>"
|
|
159
158
|
```
|
|
160
159
|
|
|
161
160
|
### Assign a Phone Number to IVR by ID
|
|
@@ -164,7 +163,7 @@ All incoming calls to this number will send user to the assigned IVR.
|
|
|
164
163
|
|
|
165
164
|
```bash
|
|
166
165
|
jaxl phones ivrs \
|
|
167
|
-
--e164 "+
|
|
166
|
+
--e164 "+CC<Purchased Jaxl Number>" \
|
|
168
167
|
--ivr <IVR ID>
|
|
169
168
|
```
|
|
170
169
|
|
|
@@ -178,8 +177,8 @@ Below command will execute the following flow:
|
|
|
178
177
|
|
|
179
178
|
```bash
|
|
180
179
|
jaxl calls create \
|
|
181
|
-
--to "+
|
|
182
|
-
--from "+
|
|
180
|
+
--to "+CC<Callee Number>" \
|
|
181
|
+
--from "+CC<Purchased Jaxl Number>" \
|
|
183
182
|
--ivr <IVR ID>
|
|
184
183
|
```
|
|
185
184
|
|
|
@@ -194,46 +193,13 @@ Below command will execute the following flow:
|
|
|
194
193
|
|
|
195
194
|
```bash
|
|
196
195
|
jaxl calls create \
|
|
197
|
-
--to "+
|
|
198
|
-
--from "+
|
|
196
|
+
--to "+CC<Callee Number>" \
|
|
197
|
+
--from "+CC<Purchased Jaxl Number>" \
|
|
199
198
|
--message "Hello, we are calling you from MyCompany" \
|
|
200
199
|
--option "1=Press 1 for sales:team=<Sales Team ID>" \
|
|
201
200
|
--option "2=Press 2 for HR department:team=<HR Team ID>
|
|
202
201
|
```
|
|
203
202
|
|
|
204
|
-
## Dial-out Multi-Party Conference between Cellular Numbers
|
|
205
|
-
|
|
206
|
-
Below command will execute the following flow:
|
|
207
|
-
|
|
208
|
-
- Dials out all `--to` participants in parallel
|
|
209
|
-
- Connects them together as they answer the call
|
|
210
|
-
- Ends the call when one but all others have hanged up the call
|
|
211
|
-
|
|
212
|
-
```bash
|
|
213
|
-
jaxl calls create \
|
|
214
|
-
--to "+91<Doctors Number>" \
|
|
215
|
-
--to "+91<Patient Number>" \
|
|
216
|
-
--to "+91<Supervisor Number>" \
|
|
217
|
-
--from "+91<Purchased Jaxl Number>"
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
### Dial-out Agent Team and Cellular Numbers
|
|
221
|
-
|
|
222
|
-
Below command will execute the following flow:
|
|
223
|
-
|
|
224
|
-
- Dials out multiple teams of doctors & patient in parallel
|
|
225
|
-
- Connects the patient with first doctor to pick the call from the teams
|
|
226
|
-
- Doctors are called on their cellular number first (if added on Jaxl app),
|
|
227
|
-
followed by an attempt to call on Jaxl app directly (VoIP).
|
|
228
|
-
- Calling preference can be controlled per agent (doctor) or team to dictate
|
|
229
|
-
whether to use cellular or voip first to connect with a doctor.
|
|
230
|
-
|
|
231
|
-
```bash
|
|
232
|
-
jaxl calls create \
|
|
233
|
-
--to "teams=<Doctors Team ID1>,<Doctors Team ID2>" \
|
|
234
|
-
--to "+91<Patient Number>"
|
|
235
|
-
```
|
|
236
|
-
|
|
237
203
|
### Dial-out 2-Party Conference with Ad-hoc IVR
|
|
238
204
|
|
|
239
205
|
Below command will execute the following flow:
|
|
@@ -245,34 +211,40 @@ Below command will execute the following flow:
|
|
|
245
211
|
|
|
246
212
|
```bash
|
|
247
213
|
jaxl calls create \
|
|
248
|
-
--to "+
|
|
249
|
-
--from "+
|
|
214
|
+
--to "+CC<Doctors Number>" \
|
|
215
|
+
--from "+CC<Purchased Jaxl Number>" \
|
|
250
216
|
--message "Hello Doctor, this is a call from MyCompany regarding your appointment with Mr. Patient Name. When ready please, " \
|
|
251
|
-
--option "1=Press 1 to connect with the patient:phone=+
|
|
217
|
+
--option "1=Press 1 to connect with the patient:phone=+CC<Patient Number>"
|
|
252
218
|
```
|
|
253
219
|
|
|
254
220
|
### Add External Phone Number to an Active Call
|
|
255
221
|
|
|
256
222
|
```bash
|
|
257
|
-
jaxl calls add --call-id 1234 --
|
|
223
|
+
jaxl calls add --call-id 1234 --e164 +CC<Mobile Number>
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Add External Phone Number via Another Phone Number to an Active Call
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
jaxl calls add --call-id 1234 --e164 +CC<Mobile Number> --from-e164 +CC<Purchased Jaxl Number>
|
|
258
230
|
```
|
|
259
231
|
|
|
260
232
|
### Add Agent to an Active Call
|
|
261
233
|
|
|
262
234
|
```bash
|
|
263
|
-
jaxl calls add --call-id 1234 --
|
|
235
|
+
jaxl calls add --call-id 1234 --email <someone@mycompany.com>
|
|
264
236
|
```
|
|
265
237
|
|
|
266
238
|
### Remove External Phone Number from an Active Call
|
|
267
239
|
|
|
268
240
|
```bash
|
|
269
|
-
jaxl calls remove --call-id 1234 --
|
|
241
|
+
jaxl calls remove --call-id 1234 --e164 +CC<Mobile Number>
|
|
270
242
|
```
|
|
271
243
|
|
|
272
244
|
### Remove Agent from an Active Call
|
|
273
245
|
|
|
274
246
|
```bash
|
|
275
|
-
jaxl calls remove --call-id 1234 --
|
|
247
|
+
jaxl calls remove --call-id 1234 --email <someone@mycompany.com>
|
|
276
248
|
```
|
|
277
249
|
|
|
278
250
|
### Send Text Prompts (TTS) in an Active Call
|
|
@@ -298,13 +270,13 @@ jaxl calls play --call-id 1234 --audio /path/to/a/file/on/local/disk/or/public/u
|
|
|
298
270
|
Mute a specific cellular user in a call.
|
|
299
271
|
|
|
300
272
|
```bash
|
|
301
|
-
jaxl calls mute --call-id 1234 --
|
|
273
|
+
jaxl calls mute --call-id 1234 --e164 +CC<Mobile Number>
|
|
302
274
|
```
|
|
303
275
|
|
|
304
276
|
Mute an agent (Jaxl App User) in a call.
|
|
305
277
|
|
|
306
278
|
```bash
|
|
307
|
-
jaxl calls mute --call-id 1235 --
|
|
279
|
+
jaxl calls mute --call-id 1235 --email <someone@mycompany.com>
|
|
308
280
|
```
|
|
309
281
|
|
|
310
282
|
### Unmute a Participant in an Active Call
|
|
@@ -312,13 +284,13 @@ jaxl calls mute --call-id 1235 --agent <someone@mycompany.com>
|
|
|
312
284
|
Unmute a specific cellular user in a call.
|
|
313
285
|
|
|
314
286
|
```bash
|
|
315
|
-
jaxl calls unmute --call-id 1234 --
|
|
287
|
+
jaxl calls unmute --call-id 1234 --e164 +CC<Mobile Number>
|
|
316
288
|
```
|
|
317
289
|
|
|
318
290
|
Unmute a specific agent (Jaxl App User) in a call.
|
|
319
291
|
|
|
320
292
|
```bash
|
|
321
|
-
jaxl calls unmute --call-id 1235 --
|
|
293
|
+
jaxl calls unmute --call-id 1235 --email <someone@mycompany.com>
|
|
322
294
|
```
|
|
323
295
|
|
|
324
296
|
### Hold a Participant in an Active Call
|
|
@@ -326,13 +298,13 @@ jaxl calls unmute --call-id 1235 --agent <someone@mycompany.com>
|
|
|
326
298
|
Put a cellular user on-hold in a call
|
|
327
299
|
|
|
328
300
|
```bash
|
|
329
|
-
jaxl calls hold --call-id 1234 --
|
|
301
|
+
jaxl calls hold --call-id 1234 --e164 +CC<Mobile Number>
|
|
330
302
|
```
|
|
331
303
|
|
|
332
304
|
Put an agent on-hold in a call
|
|
333
305
|
|
|
334
306
|
```bash
|
|
335
|
-
jaxl calls hold --call-id 1235 --
|
|
307
|
+
jaxl calls hold --call-id 1235 --email <someone@mycompany.com>
|
|
336
308
|
```
|
|
337
309
|
|
|
338
310
|
### Unhold a Participant in an Active Call
|
|
@@ -340,13 +312,13 @@ jaxl calls hold --call-id 1235 --agent <someone@mycompany.com>
|
|
|
340
312
|
Unhold a cellular user in a call
|
|
341
313
|
|
|
342
314
|
```bash
|
|
343
|
-
jaxl calls unhold --call-id 1234 --
|
|
315
|
+
jaxl calls unhold --call-id 1234 --e164 +CC<Mobile Number>
|
|
344
316
|
```
|
|
345
317
|
|
|
346
318
|
Unhold an agent in a call
|
|
347
319
|
|
|
348
320
|
```bash
|
|
349
|
-
jaxl calls unhold --call-id 1235 --
|
|
321
|
+
jaxl calls unhold --call-id 1235 --email <someone@mycompany.com>
|
|
350
322
|
```
|
|
351
323
|
|
|
352
324
|
### Receive Call Events via Webhook IVRs
|
|
@@ -399,25 +371,21 @@ jaxl payments consumables total
|
|
|
399
371
|
## Jaxl Python SDK
|
|
400
372
|
|
|
401
373
|
- Jaxl APIs is built upon [OpenAPI specification](https://www.openapis.org/)
|
|
402
|
-
- `jaxl-python` contains following Python modules:
|
|
403
|
-
- `jaxl.api.client`: Generated OpenAPI SDK
|
|
404
|
-
- `jaxl.api.resources`: Wrapper methods written to support `jaxl` CLI
|
|
405
|
-
- `jaxl_api_client`: Helper function to retrieve an instance of `JaxlApiClient`
|
|
406
374
|
|
|
407
375
|
### SDK Example Usage:
|
|
408
376
|
|
|
409
377
|
```python
|
|
410
|
-
from jaxl.api import
|
|
411
|
-
from jaxl.api.client.api.v1 import v1_calls_list
|
|
378
|
+
from jaxl.api import JaxlSDK
|
|
412
379
|
|
|
413
380
|
os.environ.setdefault("JAXL_API_CREDENTIALS", "/path/to/jaxl-api-credentials.json")
|
|
414
381
|
|
|
415
382
|
os.environ.setdefault("JAXL_API_AUTH_TOKEN", "....authentication token...")
|
|
416
383
|
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
)
|
|
384
|
+
sdk = JaxlSDK()
|
|
385
|
+
|
|
386
|
+
response = sdk.calls.create(to="+CC<Callee Number>", from_="+CC<Purchased Jaxl Number>", ivr=1234)
|
|
387
|
+
response = sdk.calls.list(currency=2) # 1=USD, 2=INR
|
|
388
|
+
response = sdk.accounts.me()
|
|
421
389
|
```
|
|
422
390
|
|
|
423
391
|
## SDK Documentation
|
|
@@ -436,7 +404,7 @@ python3 -m venv .venv
|
|
|
436
404
|
source .venv/bin/activate
|
|
437
405
|
|
|
438
406
|
# Install
|
|
439
|
-
pip install -e ".[dev]"
|
|
407
|
+
pip install -e ".[dev,docs]"
|
|
440
408
|
|
|
441
409
|
# Generate documentation
|
|
442
410
|
./docs.sh
|
|
@@ -447,6 +415,10 @@ open docs/jaxl/index.html
|
|
|
447
415
|
|
|
448
416
|
## Status
|
|
449
417
|
|
|
450
|
-
[](https://pypi.org/project/jaxl-python/)
|
|
419
|
+
|
|
420
|
+
[](https://pypi.org/project/jaxl-python/)
|
|
421
|
+
|
|
422
|
+
[](https://www.python.org/)
|
|
451
423
|
|
|
452
|
-
[](http://mypy-lang.org/)
|
|
@@ -136,6 +136,7 @@ PYTHONPATH=. jaxl apps run --app examples:JaxlAppStreamingTranscription --transc
|
|
|
136
136
|
```bash
|
|
137
137
|
# Requires ffmpeg installed on your system
|
|
138
138
|
pip install -U jaxl-python[silence,transcribe]
|
|
139
|
+
# Defaults to gemma3:1b model, ensure you have the model installed
|
|
139
140
|
export JAXL_OLLAMA_URL=https://<llm.domain>/api/chat
|
|
140
141
|
PYTHONPATH=. jaxl apps run --app examples:JaxlAppStreamingAIAgent --transcribe
|
|
141
142
|
```
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
You are a concise and precise virtual assistant
|
|
2
|
+
for the domain {domain}, representing the brand '{brand_name}'.
|
|
3
|
+
Always reply in plain text.
|
|
4
|
+
|
|
5
|
+
User may mispronounce '{brand_name}'.
|
|
6
|
+
Try to infer the mispronunciations and treat all such variants
|
|
7
|
+
as references to '{brand_name}' and always refer to the name correctly
|
|
8
|
+
as '{brand_name}' in your responses.
|
|
9
|
+
|
|
10
|
+
Keep your responses short (one or two sentences) and to the point,
|
|
11
|
+
unless the user asks for more details. Avoid unnecessary elaboration.
|
|
12
|
+
When appropriate, follow this template: provide a brief answer,
|
|
13
|
+
and ask a clarifying question. Your primary goal is to be concise, precise, clear and efficient.
|
|
14
|
+
|
|
15
|
+
Use the system role context in following messages to answer queries related to {domain}.
|
|
@@ -21,6 +21,8 @@ from jaxl.api.base import (
|
|
|
21
21
|
|
|
22
22
|
ASK_FOR_CODE_RESPONSE = JaxlWebhookResponse(
|
|
23
23
|
prompt=["Please enter your code followed by star sign"],
|
|
24
|
+
# Because we expect user to end their input with a star sign,
|
|
25
|
+
# we will use num_characters="*". Only other option is "#".
|
|
24
26
|
num_characters="*",
|
|
25
27
|
)
|
|
26
28
|
|
|
@@ -22,6 +22,8 @@ class JaxlAppSendToCellular(BaseJaxlApp):
|
|
|
22
22
|
"""This Jaxl App example bridges the user with another cellular user."""
|
|
23
23
|
|
|
24
24
|
async def handle_setup(self, req: JaxlWebhookRequest) -> HANDLER_RESPONSE:
|
|
25
|
+
# As soon as someone calls this call flow,
|
|
26
|
+
# place another outgoing call and bridge them together.
|
|
25
27
|
return JaxlCtaResponse(
|
|
26
28
|
phone=JaxlPhoneCta(
|
|
27
29
|
to_number=os.environ.get(
|