sdk/Vxc.h
Classes
Name | |
---|---|
struct | vx_message_base |
struct | vx_req_base |
struct | vx_resp_base |
struct | vx_evt_base |
struct | vx_state_buddy_contact |
struct | vx_state_buddy |
struct | vx_state_buddy_group |
struct | vx_participant Channel participant. |
struct | vx_state_participant State participant. |
struct | vx_state_session State session. |
struct | vx_state_sessiongroup State session group. |
struct | vx_state_account State account. |
struct | vx_state_connector State connector. |
struct | vx_channel Channel struct. |
struct | vx_voice_font Voice font struct. |
struct | vx_block_rule |
struct | vx_auto_accept_rule |
struct | vx_user_channel |
struct | vx_connectivity_test_result test_type - Enumeration that defines the test performed (for values, see appendix ?15.8). |
struct | vx_account |
struct | vx_device |
struct | vx_buddy |
struct | vx_group |
struct | vx_name_value_pair |
struct | vx_conversation |
struct | vx_stat_sample |
struct | vx_stat_thread |
struct | vx_system_stats |
struct | vxa_capture_device_stats_t Get statistics that are useful for debugging audio capture issues. |
struct | vxa_render_device_stats_t Get statistics that are useful for debugging audio render issues. |
struct | vx_vxd The Vivox eXtended Data (VXD) that is received. |
struct | vx_tts_utterance Text-to-speech utterance. |
struct | vx_tts_voice Text-to-speech voice. |
Types
Name | |
---|---|
enum | vx_attempt_stun { attempt_stun_unspecified = 0, attempt_stun_on = 1, attempt_stun_off = 2} A type of STUN probe. |
enum | vx_connector_mode { connector_mode_normal = 0, connector_mode_legacy = 1} A type of API mode. |
enum | vx_session_handle_type { session_handle_type_unique = 0, session_handle_type_legacy = 1, session_handle_type_heirarchical_numeric = 2, session_handle_type_heirarchical_unique = 3} A type of API mode. |
enum | vx_log_type { log_to_none = 0, log_to_file = 1, log_to_callback = 2, log_to_file_and_callback = 3} A type of logging for the application. |
enum | vx_message_type { msg_none = 0, msg_request = 1, msg_response = 2, msg_event = 3} Used as a run time type indicator for all messages passed between the application and SDK. |
enum | vx_sessiongroup_recording_control_type { VX_SESSIONGROUP_RECORDING_CONTROL_STOP = 0, VX_SESSIONGROUP_RECORDING_CONTROL_START = 1, VX_SESSIONGROUP_RECORDING_CONTROL_FLUSH_TO_FILE = 2} |
enum | vx_sessiongroup_audio_injection_control_type { VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_STOP = 0, vx_sessiongroup_audio_injection_control_stop = VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_STOP, VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_START = 1, vx_sessiongroup_audio_injection_control_start = VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_START, VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_RESTART = 2, vx_sessiongroup_audio_injection_control_restart = VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_RESTART, VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_MIN = VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_STOP, vx_sessiongroup_audio_injection_control_min = vx_sessiongroup_audio_injection_control_stop, VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_MAX = VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_RESTART, vx_sessiongroup_audio_injection_control_max = vx_sessiongroup_audio_injection_control_restart} |
enum | vx_sessiongroup_playback_control_type { VX_SESSIONGROUP_PLAYBACK_CONTROL_STOP = 0, VX_SESSIONGROUP_PLAYBACK_CONTROL_START = 1, VX_SESSIONGROUP_PLAYBACK_CONTROL_PAUSE = 3, VX_SESSIONGROUP_PLAYBACK_CONTROL_UNPAUSE = 4} |
enum | vx_sessiongroup_playback_mode { VX_SESSIONGROUP_PLAYBACK_MODE_NORMAL = 0, VX_SESSIONGROUP_PLAYBACK_MODE_VOX = 1} |
enum | vx_control_communications_operation { vx_control_communications_operation_block = 0, vx_control_communications_operation_unblock = 1, vx_control_communications_operation_list = 2, vx_control_communications_operation_block_list = 2, vx_control_communications_operation_clear = 3, vx_control_communications_operation_clear_block_list = 3, vx_control_communications_operation_mute = 4, vx_control_communications_operation_unmute = 5, vx_control_communications_operation_mute_list = 6, vx_control_communications_operation_clear_mute_list = 7} The methods in which communication can be controlled. |
enum | vx_media_type { media_type_none = 0, media_type_text = 1, media_type_audio = 2, media_type_video = 3, media_type_audiovideo = 4} |
enum | vx_termination_status { termination_status_none = 0, termination_status_busy = 1, termination_status_decline = 2} |
enum | vx_diagnostic_dump_level { diagnostic_dump_level_all = 0, diagnostic_dump_level_sessions = 1} |
enum | vx_media_ringback { media_ringback_none = 0, media_ringback_ringing = 1, media_ringback_busy = 3} |
enum | vx_channel_type { channel_type_normal = 0, channel_type_positional = 2} |
enum | vx_channel_mode { channel_mode_none = 0, channel_mode_normal = 1, channel_mode_presentation = 2, channel_mode_lecture = 3, channel_mode_open = 4, channel_mode_auditorium = 5} |
enum | vx_channel_search_type { channel_search_type_all = 0, channel_search_type_non_positional = 1, channel_search_type_positional = 2} |
enum | vx_channel_moderation_type { channel_moderation_type_all = 0, channel_moderation_type_current_user = 1} |
enum | vx_sessiongroup_type { sessiongroup_type_normal = 0, sessiongroup_type_playback = 1} The type of the session group specified at session group creation time. |
enum | vx_participant_removed_reason { participant_left = 0, participant_timeout = 1, participant_kicked = 2, participant_banned = 3} Indicates the reason why a participant was removed from a session. |
enum | vx_connection_state { connection_state_disconnected = 0, connection_state_connected = 1, connection_state_recovering = 3, connection_state_failed_to_recover = 4, connection_state_recovered = 5} Indicates current network connection state. |
enum | vx_request_type { req_none = 0, req_connector_create = 1, req_connector_initiate_shutdown = 2, req_account_login = 3, req_account_logout = 4, req_account_set_login_properties = 5, req_sessiongroup_create = 6, req_sessiongroup_terminate = 7, req_sessiongroup_add_session = 8, req_sessiongroup_remove_session = 9, req_sessiongroup_set_focus = 10, req_sessiongroup_unset_focus = 11, req_sessiongroup_reset_focus = 12, req_sessiongroup_set_tx_session = 13, req_sessiongroup_set_tx_all_sessions = 14, req_sessiongroup_set_tx_no_session = 15, req_session_create = 16, req_session_media_connect = 18, req_session_media_disconnect = 19, req_session_terminate = 21, req_session_mute_local_speaker = 22, req_session_set_local_speaker_volume = 23, req_session_set_local_render_volume = 24, req_session_channel_invite_user = 25, req_session_set_participant_volume_for_me = 26, req_session_set_participant_mute_for_me = 27, req_session_set_3d_position = 28, req_session_set_voice_font = 29, req_account_channel_add_acl = 53, req_account_channel_remove_acl = 54, req_account_channel_get_acl = 55, req_channel_mute_user = 56, req_channel_ban_user = 57, req_channel_get_banned_users = 58, req_channel_kick_user = 59, req_channel_mute_all_users = 60, req_connector_mute_local_mic = 61, req_connector_mute_local_speaker = 62, req_connector_set_local_mic_volume = 63, req_connector_set_local_speaker_volume = 64, req_connector_get_local_audio_info = 65, req_account_buddy_set = 67, req_account_buddy_delete = 68, req_account_list_buddies_and_groups = 71, req_session_send_message = 72, req_account_set_presence = 73, req_account_send_subscription_reply = 74, req_session_send_notification = 75, req_account_create_block_rule = 76, req_account_delete_block_rule = 77, req_account_list_block_rules = 78, req_account_create_auto_accept_rule = 79, req_account_delete_auto_accept_rule = 80, req_account_list_auto_accept_rules = 81, req_account_update_account = 82, req_account_get_account = 83, req_account_send_sms = 84, req_aux_connectivity_info = 86, req_aux_get_render_devices = 87, req_aux_get_capture_devices = 88, req_aux_set_render_device = 89, req_aux_set_capture_device = 90, req_aux_get_mic_level = 91, req_aux_get_speaker_level = 92, req_aux_set_mic_level = 93, req_aux_set_speaker_level = 94, req_aux_render_audio_start = 95, req_aux_render_audio_stop = 96, req_aux_capture_audio_start = 97, req_aux_capture_audio_stop = 98, req_aux_global_monitor_keyboard_mouse = 99, req_aux_set_idle_timeout = 100, req_aux_create_account = 101, req_aux_reactivate_account = 102, req_aux_deactivate_account = 103, req_account_post_crash_dump = 104, req_aux_reset_password = 105, req_sessiongroup_set_session_3d_position = 106, req_account_get_session_fonts = 107, req_account_get_template_fonts = 108, req_aux_start_buffer_capture = 109, req_aux_play_audio_buffer = 110, req_sessiongroup_control_recording = 111, req_sessiongroup_control_playback = 112, req_sessiongroup_set_playback_options = 113, req_session_text_connect = 114, req_session_text_disconnect = 115, req_channel_set_lock_mode = 116, req_aux_render_audio_modify = 117, req_session_send_dtmf = 118, req_aux_set_vad_properties = 120, req_aux_get_vad_properties = 121, req_sessiongroup_control_audio_injection = 124, req_account_channel_change_owner = 125, req_account_send_user_app_data = 128, req_aux_diagnostic_state_dump = 129, req_account_web_call = 130, req_account_anonymous_login = 131, req_account_authtoken_login = 132, req_sessiongroup_get_stats = 133, req_account_send_message = 134, req_aux_notify_application_state_change = 135, req_account_control_communications = 136, req_session_archive_query = 137, req_account_archive_query = 138, req_session_transcription_control = 139, req_aux_get_derumbler_properties = 140, req_aux_set_derumbler_properties = 141, req_session_chat_history_query = 142, req_account_chat_history_query = 143, req_account_chat_history_get_last_read = 144, req_session_edit_message = 145, req_account_edit_message = 146, req_session_delete_message = 147, req_account_delete_message = 148, req_account_get_conversations = 149, req_account_chat_history_set_marker = 150, req_account_safe_voice_update_consent = 151, req_account_safe_voice_get_consent = 152, req_max = req_account_safe_voice_get_consent + 1} The set of requests that can be issued. |
enum | vx_response_type { resp_none = 0, resp_connector_create = 1, resp_connector_initiate_shutdown = 2, resp_account_login = 3, resp_account_logout = 4, resp_account_set_login_properties = 5, resp_sessiongroup_create = 6, resp_sessiongroup_terminate = 7, resp_sessiongroup_add_session = 8, resp_sessiongroup_remove_session = 9, resp_sessiongroup_set_focus = 10, resp_sessiongroup_unset_focus = 11, resp_sessiongroup_reset_focus = 12, resp_sessiongroup_set_tx_session = 13, resp_sessiongroup_set_tx_all_sessions = 14, resp_sessiongroup_set_tx_no_session = 15, resp_session_create = 16, resp_session_media_connect = 18, resp_session_media_disconnect = 19, resp_session_terminate = 21, resp_session_mute_local_speaker = 22, resp_session_set_local_speaker_volume = 23, resp_session_set_local_render_volume = 24, resp_session_channel_invite_user = 25, resp_session_set_participant_volume_for_me = 26, resp_session_set_participant_mute_for_me = 27, resp_session_set_3d_position = 28, resp_session_set_voice_font = 29, resp_account_channel_get_list = 33, resp_account_channel_add_acl = 53, resp_account_channel_remove_acl = 54, resp_account_channel_get_acl = 55, resp_channel_mute_user = 56, resp_channel_ban_user = 57, resp_channel_get_banned_users = 58, resp_channel_kick_user = 59, resp_channel_mute_all_users = 60, resp_connector_mute_local_mic = 61, resp_connector_mute_local_speaker = 62, resp_connector_set_local_mic_volume = 63, resp_connector_set_local_speaker_volume = 64, resp_connector_get_local_audio_info = 65, resp_account_buddy_set = 67, resp_account_buddy_delete = 68, resp_account_list_buddies_and_groups = 71, resp_session_send_message = 72, resp_account_set_presence = 73, resp_account_send_subscription_reply = 74, resp_session_send_notification = 75, resp_account_create_block_rule = 76, resp_account_delete_block_rule = 77, resp_account_list_block_rules = 78, resp_account_create_auto_accept_rule = 79, resp_account_delete_auto_accept_rule = 80, resp_account_list_auto_accept_rules = 81, resp_account_update_account = 82, resp_account_get_account = 83, resp_account_send_sms = 84, resp_aux_connectivity_info = 86, resp_aux_get_render_devices = 87, resp_aux_get_capture_devices = 88, resp_aux_set_render_device = 89, resp_aux_set_capture_device = 90, resp_aux_get_mic_level = 91, resp_aux_get_speaker_level = 92, resp_aux_set_mic_level = 93, resp_aux_set_speaker_level = 94, resp_aux_render_audio_start = 95, resp_aux_render_audio_stop = 96, resp_aux_capture_audio_start = 97, resp_aux_capture_audio_stop = 98, resp_aux_global_monitor_keyboard_mouse = 99, resp_aux_set_idle_timeout = 100, resp_aux_create_account = 101, resp_aux_reactivate_account = 102, resp_aux_deactivate_account = 103, resp_account_post_crash_dump = 104, resp_aux_reset_password = 105, resp_sessiongroup_set_session_3d_position = 106, resp_account_get_session_fonts = 107, resp_account_get_template_fonts = 108, resp_aux_start_buffer_capture = 109, resp_aux_play_audio_buffer = 110, resp_sessiongroup_control_recording = 111, resp_sessiongroup_control_playback = 112, resp_sessiongroup_set_playback_options = 113, resp_session_text_connect = 114, resp_session_text_disconnect = 115, resp_channel_set_lock_mode = 116, resp_aux_render_audio_modify = 117, resp_session_send_dtmf = 118, resp_aux_set_vad_properties = 120, resp_aux_get_vad_properties = 121, resp_sessiongroup_control_audio_injection = 124, resp_account_channel_change_owner = 125, resp_account_send_user_app_data = 128, resp_aux_diagnostic_state_dump = 129, resp_account_web_call = 130, resp_account_anonymous_login = 131, resp_account_authtoken_login = 132, resp_sessiongroup_get_stats = 133, resp_account_send_message = 134, resp_aux_notify_application_state_change = 135, resp_account_control_communications = 136, resp_session_archive_query = 137, resp_account_archive_query = 138, resp_session_transcription_control = 139, resp_aux_get_derumbler_properties = 140, resp_aux_set_derumbler_properties = 141, resp_session_chat_history_query = 142, resp_account_chat_history_query = 143, resp_account_chat_history_get_last_read = 144, resp_session_edit_message = 145, resp_account_edit_message = 146, resp_session_delete_message = 147, resp_account_delete_message = 148, resp_account_get_conversations = 149, resp_account_chat_history_set_marker = 150, resp_account_safe_voice_update_consent = 151, resp_account_safe_voice_get_consent = 152, resp_max = resp_account_safe_voice_get_consent + 1} Response types that are reported back to the calling app. |
enum | vx_event_type { evt_none = 0, evt_account_login_state_change = 2, evt_buddy_presence = 7, evt_subscription = 8, evt_session_notification = 9, evt_message = 10, evt_aux_audio_properties = 11, evt_buddy_changed = 15, evt_buddy_group_changed = 16, evt_buddy_and_group_list_changed = 17, evt_keyboard_mouse = 18, evt_idle_state_changed = 19, evt_media_stream_updated = 20, evt_text_stream_updated = 21, evt_sessiongroup_added = 22, evt_sessiongroup_removed = 23, evt_session_added = 24, evt_session_removed = 25, evt_participant_added = 26, evt_participant_removed = 27, evt_participant_updated = 28, evt_sessiongroup_playback_frame_played = 30, evt_session_updated = 31, evt_sessiongroup_updated = 32, evt_media_completion = 33, evt_server_app_data = 35, evt_user_app_data = 36, evt_network_message = 38, evt_voice_service_connection_state_changed = 39, evt_publication_state_changed = 40, evt_audio_device_hot_swap = 41, evt_user_to_user_message = 42, evt_session_archive_message = 43, evt_session_archive_query_end = 44, evt_account_archive_message = 45, evt_account_archive_query_end = 46, evt_account_send_message_failed = 47, evt_transcribed_message = 48, evt_tts_injection_started = 49, evt_tts_injection_ended = 50, evt_tts_injection_failed = 51, evt_stt_failed = 52, evt_connection_state_changed = 53, evt_presence_updated = 54, evt_session_edit_message = 55, evt_account_edit_message = 56, evt_session_delete_message = 57, evt_account_delete_message = 58, evt_max = evt_account_delete_message + 1} Event types that are reported back to the calling app. |
enum | ND_ERROR { ND_E_NO_ERROR = 0, ND_E_TEST_NOT_RUN = 1, ND_E_NO_INTERFACE = 2, ND_E_NO_INTERFACE_WITH_GATEWAY = 3, ND_E_NO_INTERFACE_WITH_ROUTE = 4, ND_E_TIMEOUT = 5, ND_E_CANT_ICMP = 6, ND_E_CANT_RESOLVE_VIVOX_UDP_SERVER = 7, ND_E_CANT_RESOLVE_ROOT_DNS_SERVER = 8, ND_E_CANT_CONVERT_LOCAL_IP_ADDRESS = 9, ND_E_CANT_CONTACT_STUN_SERVER_ON_UDP_PORT_3478 = 10, ND_E_CANT_CREATE_TCP_SOCKET = 11, ND_E_CANT_LOAD_ICMP_LIBRARY = 12, ND_E_CANT_FIND_SENDECHO2_PROCADDR = 13, ND_E_CANT_CONNECT_TO_ECHO_SERVER = 14, ND_E_ECHO_SERVER_LOGIN_SEND_FAILED = 15, ND_E_ECHO_SERVER_LOGIN_RECV_FAILED = 16, ND_E_ECHO_SERVER_LOGIN_RESPONSE_MISSING_STATUS = 17, ND_E_ECHO_SERVER_LOGIN_RESPONSE_FAILED_STATUS = 18, ND_E_ECHO_SERVER_LOGIN_RESPONSE_MISSING_SESSIONID = 19, ND_E_ECHO_SERVER_LOGIN_RESPONSE_MISSING_SIPPORT = 20, ND_E_ECHO_SERVER_LOGIN_RESPONSE_MISSING_AUDIORTP = 21, ND_E_ECHO_SERVER_LOGIN_RESPONSE_MISSING_AUDIORTCP = 22, ND_E_ECHO_SERVER_LOGIN_RESPONSE_MISSING_VIDEORTP = 23, ND_E_ECHO_SERVER_LOGIN_RESPONSE_MISSING_VIDEORTCP = 24, ND_E_ECHO_SERVER_CANT_ALLOCATE_SIP_SOCKET = 25, ND_E_ECHO_SERVER_CANT_ALLOCATE_MEDIA_SOCKET = 26, ND_E_ECHO_SERVER_SIP_UDP_SEND_FAILED = 27, ND_E_ECHO_SERVER_SIP_UDP_RECV_FAILED = 28, ND_E_ECHO_SERVER_SIP_TCP_SEND_FAILED = 29, ND_E_ECHO_SERVER_SIP_TCP_RECV_FAILED = 30, ND_E_ECHO_SERVER_SIP_NO_UDP_OR_TCP = 31, ND_E_ECHO_SERVER_SIP_NO_UDP = 32, ND_E_ECHO_SERVER_SIP_NO_TCP = 33, ND_E_ECHO_SERVER_SIP_MALFORMED_TCP_PACKET = 34, ND_E_ECHO_SERVER_SIP_UDP_DIFFERENT_LENGTH = 35, ND_E_ECHO_SERVER_SIP_UDP_DATA_DIFFERENT = 36, ND_E_ECHO_SERVER_SIP_TCP_PACKETS_DIFFERENT = 37, ND_E_ECHO_SERVER_SIP_TCP_PACKETS_DIFFERENT_SIZE = 38, ND_E_ECHO_SERVER_LOGIN_RECV_FAILED_TIMEOUT = 39, ND_E_ECHO_SERVER_TCP_SET_ASYNC_FAILED = 40, ND_E_ECHO_SERVER_UDP_SET_ASYNC_FAILED = 41, ND_E_ECHO_SERVER_CANT_RESOLVE_NAME = 42} |
enum | ND_TEST_TYPE { ND_TEST_LOCATE_INTERFACE = 0, ND_TEST_PING_GATEWAY = 1, ND_TEST_DNS = 2, ND_TEST_STUN = 3, ND_TEST_ECHO = 4, ND_TEST_ECHO_SIP_FIRST_PORT = 5, ND_TEST_ECHO_SIP_FIRST_PORT_INVITE_REQUEST = 6, ND_TEST_ECHO_SIP_FIRST_PORT_INVITE_RESPONSE = 7, ND_TEST_ECHO_SIP_FIRST_PORT_REGISTER_REQUEST = 8, ND_TEST_ECHO_SIP_FIRST_PORT_REGISTER_RESPONSE = 9, ND_TEST_ECHO_SIP_SECOND_PORT = 10, ND_TEST_ECHO_SIP_SECOND_PORT_INVITE_REQUEST = 11, ND_TEST_ECHO_SIP_SECOND_PORT_INVITE_RESPONSE = 12, ND_TEST_ECHO_SIP_SECOND_PORT_REGISTER_REQUEST = 13, ND_TEST_ECHO_SIP_SECOND_PORT_REGISTER_RESPONSE = 14, ND_TEST_ECHO_MEDIA = 15, ND_TEST_ECHO_MEDIA_LARGE_PACKET = 16} |
enum | vx_session_answer_mode { mode_none = 0, mode_auto_answer = 1, mode_verify_answer = 2, mode_busy_answer = 3} Determine how incoming calls are handled. |
enum | vx_buddy_management_mode { mode_auto_accept = 0, mode_auto_add = 1, mode_block = 2, mode_hide = 3, mode_application = 4} |
enum | vx_rule_type { rule_none = 0, rule_allow = 1, rule_block = 2, rule_hide = 3} |
enum | vx_font_type { type_none = 0, type_root = 1, type_user = 2} |
enum | vx_font_status { status_none = 0, status_free = 1, status_not_free = 2} |
enum | vx_subscription_type { subscription_presence = 0} |
enum | vx_notification_type { notification_not_typing = 0, notification_typing = 1, notification_hand_lowered = 2, notification_hand_raised = 3, notification_min = notification_not_typing, notification_max = notification_hand_raised} |
enum | vx_dtmf_type { dtmf_0 = 0, dtmf_1 = 1, dtmf_2 = 2, dtmf_3 = 3, dtmf_4 = 4, dtmf_5 = 5, dtmf_6 = 6, dtmf_7 = 7, dtmf_8 = 8, dtmf_9 = 9, dtmf_pound = 10, dtmf_star = 11, dtmf_A = 12, dtmf_B = 13, dtmf_C = 14, dtmf_D = 15, dtmf_max = dtmf_D} |
enum | vx_text_mode { text_mode_disabled = 0, text_mode_enabled = 1} |
enum | vx_channel_lock_mode { channel_unlock = 0, channel_lock = 1} |
enum | vx_mute_scope { mute_scope_all = 0, mute_scope_audio = 1, mute_scope_text = 2} |
enum | vx_recording_frame_type_t { VX_RECORDING_FRAME_TYPE_DELTA = 0, VX_RECORDING_FRAME_TYPE_CONTROL = 1} Hold a recorded audio frame. |
enum | vx_audiosource_operation { op_none = 0, op_safeupdate = 1, op_delete = 2} |
enum | vx_aux_audio_properties_state { aux_audio_properties_none = 0} |
enum | vx_login_state_change_state { login_state_logged_out = 0, login_state_logged_in = 1, login_state_logging_in = 2, login_state_logging_out = 3, login_state_resetting = 4, login_state_error = 100} |
enum | vx_publication_state_change_state { publication_state_success = 0, publication_state_transient_error = 1, publication_state_permanent_error = 2} |
enum | vx_buddy_presence_state { buddy_presence_unknown = 0, buddy_presence_pending = 1, buddy_presence_online = 2, buddy_presence_busy = 3, buddy_presence_brb = 4, buddy_presence_away = 5, buddy_presence_onthephone = 6, buddy_presence_outtolunch = 7, buddy_presence_custom = 8, buddy_presence_online_slc = 9, buddy_presence_closed = 0, buddy_presence_offline = 0, buddy_presence_chat = 10, buddy_presence_extended_away = 11, buddy_presence_min = buddy_presence_unknown, buddy_presence_max = buddy_presence_extended_away} |
enum | vx_presence_state { presence_online = 0, presence_busy = 1, presence_brb = 2, presence_away = 3, presence_onthephone = 4, presence_offline = 5, presence_chat = 6, presence_extended_away = 7, presence_min = presence_online, presence_max = presence_extended_away} |
enum | vx_session_notification_state { session_notification_none = 0} |
enum | vx_message_state { message_none = 0} |
enum | vx_session_text_state { session_text_disconnected = 0, session_text_connected = 1, session_text_connecting = 2, session_text_disconnecting = 3} |
enum | vx_session_media_state { session_media_disconnected = 1, session_media_connected = 2, session_media_ringing = 3, session_media_connecting = 6, session_media_disconnecting = 7} |
enum | vx_participant_type { participant_user = 0, part_user = participant_user, participant_moderator = 1, part_moderator = participant_moderator, participant_owner = 2, part_focus = participant_owner} |
enum | orientation_type { orientation_default = 0, orientation_legacy = 1, orientation_vivox = 2} |
enum | vx_media_completion_type { media_completion_type_none = 0, aux_buffer_audio_capture = 1, aux_buffer_audio_render = 2, sessiongroup_audio_injection = 3} |
enum | vx_device_type { vx_device_type_specific_device = 0, vx_device_type_default_system = 1, vx_device_type_null = 2, vx_device_type_default_communication = 3} The type of device. |
enum | vx_conversation_type { vx_conversation_channel = 0, vx_conversation_direct = 1} |
enum | vx_codec { vx_codec_siren7 = 0x2, vx_codec_siren14 = 0x4, vx_codec_opus8 = 0x10, vx_codec_opus40 = 0x20, vx_codec_opus57 = 0x40, vx_codec_opus72 = 0x80, VX_DEPRECATED_ENUM_GCC =(vx_codec_pcmu, 5.19) = 0x10} The configured_codecs field in vx_req_connector_create is a mask of these constants. |
enum | vx_application_state_notification_type { vx_application_state_notification_type_before_background = 0, vx_application_state_notification_type_after_foreground = 1, vx_application_state_notification_type_periodic_background_idle = 2} Indicates the state of the application. |
enum | VXA_ERROR_CODES { VXA_SUCCESS = 0, VXA_INVALID_PARAMETER = 1, VXA_DEVICE_DOES_NOT_EXIST = 2, VXA_INTERNAL_ERROR = 3, VXA_OUT_OF_MEMORY = 4, VXA_INVALID_STATE = 5, VXA_NO_MORE_DATA = 6, VXA_FEATURE_NOT_SUPPORTED = 7, VXA_MAX_DEVICES_EXCEEDED = 8, VXA_NO_BUFFERS_AVAILABLE = 9, VXA_ACCESS_DENIED = 10} Error codes that are returned by the VXA subsystem. |
enum | VXA_CAPTURE_FLAGS { VXA_CAPTURE_OPEN_FLAG_USE_AEC = 0x00000001, VXA_CAPTURE_OPEN_FLAG_USE_AGC = 0x00000002} Values passed when opening capture devices. |
enum | vx_channel_rolloff_curve_type { channel_rolloff_curve_type_none = 0, channel_rolloff_curve_type_inverse_distance_clamped = 1, channel_rolloff_curve_type_linear_distance_clamped = 2, channel_rolloff_curve_type_exponential_distance_clamped = 3} Rolloff curve types to serve as the distance model for a positional channel. |
enum | vx_opus_vbr_mode { opus_mode_cbr = 0, opus_mode_lvbr = 1, opus_mode_vbr = 2} Values for OPUS VBR mode. |
enum | vx_opus_bandwidth { opus_bandwidth_auto = 0, opus_bandwidth_nb = 1, opus_bandwidth_mb = 2, opus_bandwidth_wb = 3, opus_bandwidth_swb = 4, opus_bandwidth_fb = 5} Values for OPUS bandwidth. |
enum | vx_crash_test_type { vx_crash_access_zero_pointer = 0, vx_crash_access_violation = 1, vx_crash_stack_overflow = 2, vx_crash_heap_corruption = 3} Values for vx_crash_test( crash type ). |
enum | vx_path_id { path_cache_folder = 0} The type of path used by the SDK. |
enum | vx_noise_suppression_level { noise_suppression_low = 0, noise_suppression_moderate = 1, noise_suppression_high = 2, noise_suppression_very_high = 3} |
enum | vx_tts_destination { tts_dest_remote_transmission = 0, tts_dest_local_playback = 1, tts_dest_remote_transmission_with_local_playback = 2, tts_dest_queued_remote_transmission = 3, tts_dest_queued_local_playback = 4, tts_dest_queued_remote_transmission_with_local_playback = 5, tts_dest_screen_reader = 6} Text-to-speech (TTS) definitions. |
enum | vx_tts_status { tts_status_success = 0, tts_error_invalid_engine_type = -1001, tts_error_engine_allocation_failed = -1002, tts_error_not_supported = -1003, tts_error_max_characters_exceeded = -1004, tts_error_utterance_below_min_duration = -1005, tts_status_input_text_was_enqueued = -1006, tts_error_sdk_not_initialized = -1007, tts_error_destination_queue_is_full = -1008, tts_status_enqueue_not_necessary = -1009, tts_error_utterance_not_found = -1010, tts_error_manager_not_found = -1011, tts_error_invalid_argument = -1012, tts_error_internal = -1013} Status codes that are returned by the text-to-speech subsystem. |
enum | vx_tts_engine_type { tts_engine_vivox_default = 0} Text-to-speech engine types. |
typedef char * | VX_COOKIE A request cookie type. |
typedef VX_COOKIE | VX_HANDLE A generic handle type for state objects (for example: accounts, connectors, sessions, or session groups). |
typedef unsigned int | VX_SDK_HANDLE |
typedef time_t | vx_time_t |
typedef struct vx_message_base | vx_message_base_t |
typedef struct vx_req_base | vx_req_base_t |
typedef struct vx_resp_base | vx_resp_base_t |
typedef struct vx_evt_base | vx_evt_base_t |
typedef struct vx_state_buddy_contact | vx_state_buddy_contact_t |
typedef vx_state_buddy_contact_t * | vx_state_buddy_contact_ref_t |
typedef vx_state_buddy_contact_ref_t * | vx_state_buddy_contact_list_t |
typedef struct vx_state_buddy | vx_state_buddy_t |
typedef vx_state_buddy_t * | vx_state_buddy_ref_t |
typedef vx_state_buddy_ref_t * | vx_state_buddy_list_t |
typedef struct vx_state_buddy_group | vx_state_buddy_group_t |
typedef vx_state_buddy_group_t * | vx_state_buddy_group_ref_t |
typedef vx_state_buddy_group_ref_t * | vx_state_buddy_group_list_t |
typedef struct vx_participant | vx_participant_t Channel participant. |
typedef vx_participant_t * | vx_participant_ref_t Creates a participant list with the given size. |
typedef vx_participant_ref_t * | vx_participant_list_t |
typedef struct vx_state_participant | vx_state_participant_t State participant. |
typedef vx_state_participant_t * | vx_state_participant_ref_t Creates a state_participant list with the given size. |
typedef vx_state_participant_ref_t * | vx_state_participant_list_t |
typedef struct vx_state_session | vx_state_session_t State session. |
typedef vx_state_session_t * | vx_state_session_ref_t Creates a state_session list with the given size. |
typedef vx_state_session_ref_t * | vx_state_session_list_t |
typedef struct vx_state_sessiongroup | vx_state_sessiongroup_t State session group. |
typedef vx_state_sessiongroup_t * | vx_state_sessiongroup_ref_t Creates a state_sessiongroup list with the given size. |
typedef vx_state_sessiongroup_ref_t * | vx_state_sessiongroup_list_t |
typedef struct vx_state_account | vx_state_account_t State account. |
typedef vx_state_account_t * | vx_state_account_ref_t Creates a state_account list with the given size. |
typedef vx_state_account_ref_t * | vx_state_account_list_t |
typedef struct vx_state_connector | vx_state_connector_t State connector. |
typedef vx_state_connector_t * | vx_state_connector_ref_t Creates a state_connector list with the given size. |
typedef vx_state_connector_ref_t * | vx_state_connector_list_t |
typedef struct vx_channel | vx_channel_t Channel struct. |
typedef vx_channel_t * | vx_channel_ref_t |
typedef vx_channel_ref_t * | vx_channel_list_t |
typedef struct vx_voice_font | vx_voice_font_t Voice font struct. |
typedef vx_voice_font_t * | vx_voice_font_ref_t |
typedef vx_voice_font_ref_t * | vx_voice_font_list_t |
typedef struct vx_block_rule | vx_block_rule_t |
typedef vx_block_rule_t * | vx_block_rule_ref_t |
typedef vx_block_rule_ref_t * | vx_block_rules_t |
typedef struct vx_auto_accept_rule | vx_auto_accept_rule_t |
typedef vx_auto_accept_rule_t * | vx_auto_accept_rule_ref_t |
typedef vx_auto_accept_rule_ref_t * | vx_auto_accept_rules_t |
typedef struct vx_user_channel | vx_user_channel_t |
typedef vx_user_channel_t * | vx_user_channel_ref_t |
typedef vx_user_channel_ref_t * | vx_user_channels_t |
typedef struct vx_connectivity_test_result | vx_connectivity_test_result_t test_type - Enumeration that defines the test performed (for values, see appendix ?15.8). |
typedef vx_connectivity_test_result_t * | vx_connectivity_test_result_ref_t |
typedef vx_connectivity_test_result_ref_t * | vx_connectivity_test_results_t |
typedef struct vx_account | vx_account_t |
typedef enum vx_device_type | vx_device_type_t The type of device. |
typedef struct vx_device | vx_device_t |
typedef vx_device_t * | vx_device_ref_t |
typedef vx_device_ref_t * | vx_devices_t |
typedef struct vx_buddy | vx_buddy_t |
typedef vx_buddy_t * | vx_buddy_ref_t |
typedef vx_buddy_ref_t * | vx_buddy_list_t |
typedef struct vx_group | vx_group_t |
typedef vx_group_t * | vx_group_ref_t |
typedef vx_group_ref_t * | vx_group_list_t |
typedef struct vx_name_value_pair | vx_name_value_pair_t |
typedef vx_name_value_pair_t * | vx_name_value_pair_ref_t |
typedef vx_name_value_pair_ref_t * | vx_name_value_pairs_t |
typedef struct vx_conversation | vx_conversation_t |
typedef vx_conversation_t * | vx_conversation_ref_t |
typedef vx_conversation_ref_t * | vx_conversation_list_t |
typedef struct vx_stat_sample | vx_stat_sample_t |
typedef struct vx_stat_thread | vx_stat_thread_t |
typedef struct vx_system_stats | vx_system_stats_t |
typedef enum vx_application_state_notification_type | vx_application_state_notification_type_t Indicates the state of the application. |
typedef int | vxa_status_t The common return code for vxa* methods. |
typedef struct vxa_capture_device_stats_t | vxa_capture_device_stats_t Get statistics that are useful for debugging audio capture issues. |
typedef struct vxa_render_device_stats_t | vxa_render_device_stats_t Get statistics that are useful for debugging audio render issues. |
typedef enum vx_crash_test_type | vx_crash_test_type_t Values for vx_crash_test( crash type ). |
typedef struct vx_vxd | vx_vxd_t The Vivox eXtended Data (VXD) that is received. |
typedef unsigned int | vx_tts_manager_id |
typedef unsigned int | vx_tts_utterance_id |
typedef unsigned int | vx_tts_voice_id |
typedef struct vx_tts_utterance_impl | vx_tts_utterance_impl_t |
typedef struct vx_tts_utterance | vx_tts_utterance_t Text-to-speech utterance. |
typedef struct vx_tts_voice | vx_tts_voice_t Text-to-speech voice. |
Functions
Name | |
---|---|
VIVOXSDK_DLLEXPORT int | vx_cookie_create(const char * value, VX_COOKIE * cookie) Allocate and initialize a cookie. |
VIVOXSDK_DLLEXPORT int | vx_cookie_free(VX_COOKIE * cookie) Free a cookie. |
VIVOXSDK_DLLEXPORT int | vx_state_buddy_contact_create(vx_state_buddy_contact_t ** contact) |
VIVOXSDK_DLLEXPORT int | vx_state_buddy_contact_free(vx_state_buddy_contact_t * contact) |
VIVOXSDK_DLLEXPORT int | vx_state_buddy_contact_list_create(int size, vx_state_buddy_contact_list_t * list_out) |
VIVOXSDK_DLLEXPORT int | vx_state_buddy_contact_list_free(vx_state_buddy_contact_t ** list, int size) |
VIVOXSDK_DLLEXPORT int | vx_state_buddy_create(vx_state_buddy_t ** buddy) |
VIVOXSDK_DLLEXPORT int | vx_state_buddy_free(vx_state_buddy_t * buddy) |
VIVOXSDK_DLLEXPORT int | vx_state_buddy_list_create(int size, vx_state_buddy_list_t * list_out) |
VIVOXSDK_DLLEXPORT int | vx_state_buddy_list_free(vx_state_buddy_t ** list, int size) |
VIVOXSDK_DLLEXPORT int | vx_state_buddy_group_create(vx_state_buddy_group_t ** group) |
VIVOXSDK_DLLEXPORT int | vx_state_buddy_group_free(vx_state_buddy_group_t * group) |
VIVOXSDK_DLLEXPORT int | vx_state_buddy_group_list_create(int size, vx_state_buddy_group_list_t * list_out) |
VIVOXSDK_DLLEXPORT int | vx_state_buddy_group_list_free(vx_state_buddy_group_t ** list, int size) |
VIVOXSDK_DLLEXPORT int | vx_participant_create(vx_participant_t ** participant) |
VIVOXSDK_DLLEXPORT int | vx_participant_free(vx_participant_t * participant) |
VIVOXSDK_DLLEXPORT int | vx_participant_list_create(int size, vx_participant_list_t * list_out) |
VIVOXSDK_DLLEXPORT int | vx_participant_list_free(vx_participant_t ** list, int size) |
VIVOXSDK_DLLEXPORT int | vx_state_participant_create(vx_state_participant_t ** state_participant) |
VIVOXSDK_DLLEXPORT int | vx_state_participant_free(vx_state_participant_t * state_participant) |
VIVOXSDK_DLLEXPORT int | vx_state_participant_list_create(int size, vx_state_participant_list_t * list_out) |
VIVOXSDK_DLLEXPORT int | vx_state_participant_list_free(vx_state_participant_t ** list, int size) |
VIVOXSDK_DLLEXPORT int | vx_state_session_create(vx_state_session_t ** state_session) |
VIVOXSDK_DLLEXPORT int | vx_state_session_free(vx_state_session_t * state_session) |
VIVOXSDK_DLLEXPORT int | vx_state_session_list_create(int size, vx_state_session_list_t * list_out) |
VIVOXSDK_DLLEXPORT int | vx_state_session_list_free(vx_state_session_t ** list, int size) |
VIVOXSDK_DLLEXPORT int | vx_state_sessiongroup_create(vx_state_sessiongroup_t ** state_sessiongroup) |
VIVOXSDK_DLLEXPORT int | vx_state_sessiongroup_free(vx_state_sessiongroup_t * state_sessiongroup) |
VIVOXSDK_DLLEXPORT int | vx_state_sessiongroup_list_create(int size, vx_state_sessiongroup_list_t * list_out) |
VIVOXSDK_DLLEXPORT int | vx_state_sessiongroup_list_free(vx_state_sessiongroup_t ** list, int size) |
VIVOXSDK_DLLEXPORT int | vx_state_account_create(vx_state_account_t ** state_account) |
VIVOXSDK_DLLEXPORT int | vx_state_account_free(vx_state_account_t * state_account) |
VIVOXSDK_DLLEXPORT int | vx_state_account_list_create(int size, vx_state_account_list_t * list_out) |
VIVOXSDK_DLLEXPORT int | vx_state_account_list_free(vx_state_account_t ** list, int size) |
VIVOXSDK_DLLEXPORT int | vx_state_connector_create(vx_state_connector_t ** state_connector) |
VIVOXSDK_DLLEXPORT int | vx_state_connector_free(vx_state_connector_t * state_connector) |
VIVOXSDK_DLLEXPORT int | vx_state_connector_list_create(int size, vx_state_connector_list_t * list_out) |
VIVOXSDK_DLLEXPORT int | vx_state_connector_list_free(vx_state_connector_t ** list, int size) |
VIVOXSDK_DLLEXPORT int | vx_channel_create(vx_channel_t ** channel) |
VIVOXSDK_DLLEXPORT int | vx_channel_free(vx_channel_t * channel) |
VIVOXSDK_DLLEXPORT int | vx_channel_list_create(int size, vx_channel_list_t * list_out) |
VIVOXSDK_DLLEXPORT int | vx_channel_list_free(vx_channel_t ** list, int size) |
VIVOXSDK_DLLEXPORT int | vx_voice_font_create(vx_voice_font_t ** channel) |
VIVOXSDK_DLLEXPORT int | vx_voice_font_free(vx_voice_font_t * channel) |
VIVOXSDK_DLLEXPORT int | vx_voice_font_list_create(int size, vx_voice_font_list_t * list_out) |
VIVOXSDK_DLLEXPORT int | vx_voice_font_list_free(vx_voice_font_t ** list, int size) |
VIVOXSDK_DLLEXPORT int | vx_string_list_create(int size, char *** list_out) |
VIVOXSDK_DLLEXPORT int | vx_string_list_free(char ** list) |
VIVOXSDK_DLLEXPORT int | vx_block_rule_create(vx_block_rule_t ** block_rule) |
VIVOXSDK_DLLEXPORT int | vx_block_rule_free(vx_block_rule_t * block_rule) |
VIVOXSDK_DLLEXPORT int | vx_block_rules_create(int size, vx_block_rules_t * list_out) |
VIVOXSDK_DLLEXPORT int | vx_block_rules_free(vx_block_rule_t ** list, int size) |
VIVOXSDK_DLLEXPORT int | vx_auto_accept_rule_create(vx_auto_accept_rule_t ** auto_accept_rule) |
VIVOXSDK_DLLEXPORT int | vx_auto_accept_rule_free(vx_auto_accept_rule_t * auto_accept_rule) |
VIVOXSDK_DLLEXPORT int | vx_auto_accept_rules_create(int size, vx_auto_accept_rules_t * list_out) |
VIVOXSDK_DLLEXPORT int | vx_auto_accept_rules_free(vx_auto_accept_rule_t ** list, int size) |
VIVOXSDK_DLLEXPORT int | vx_user_channel_create(vx_user_channel_t ** user_channel) |
VIVOXSDK_DLLEXPORT int | vx_user_channel_free(vx_user_channel_t * user_channel) |
VIVOXSDK_DLLEXPORT int | vx_user_channels_create(int size, vx_user_channels_t * list_out) |
VIVOXSDK_DLLEXPORT int | vx_user_channels_free(vx_user_channel_t ** list, int size) |
VIVOXSDK_DLLEXPORT int | vx_connectivity_test_result_create(vx_connectivity_test_result_t ** connectivity_test_result, ND_TEST_TYPE tt) |
VIVOXSDK_DLLEXPORT int | vx_connectivity_test_result_free(vx_connectivity_test_result_t * connectivity_test_result) |
VIVOXSDK_DLLEXPORT int | vx_connectivity_test_results_create(int size, vx_connectivity_test_results_t * list_out) |
VIVOXSDK_DLLEXPORT int | vx_connectivity_test_results_free(vx_connectivity_test_result_t ** list, int size) |
VIVOXSDK_DLLEXPORT int | vx_account_create(vx_account_t ** account) |
VIVOXSDK_DLLEXPORT int | vx_account_free(vx_account_t * account) |
VIVOXSDK_DLLEXPORT int | vx_device_create(vx_device_t ** device) |
VIVOXSDK_DLLEXPORT int | vx_device_free(vx_device_t * device) |
VIVOXSDK_DLLEXPORT int | vx_devices_create(int size, vx_devices_t * list_out) |
VIVOXSDK_DLLEXPORT int | vx_devices_free(vx_device_t ** list, int size) |
VIVOXSDK_DLLEXPORT int | vx_buddy_create(vx_buddy_t ** buddy) |
VIVOXSDK_DLLEXPORT int | vx_buddy_free(vx_buddy_t * buddy) |
VIVOXSDK_DLLEXPORT int | vx_buddy_list_create(int size, vx_buddy_list_t * list_out) |
VIVOXSDK_DLLEXPORT int | vx_buddy_list_free(vx_buddy_t ** list, int size) |
VIVOXSDK_DLLEXPORT int | vx_group_create(vx_group_t ** group) |
VIVOXSDK_DLLEXPORT int | vx_group_free(vx_group_t * group) |
VIVOXSDK_DLLEXPORT int | vx_group_list_create(int size, vx_group_list_t * list_out) |
VIVOXSDK_DLLEXPORT int | vx_group_list_free(vx_group_t ** list, int size) |
VIVOXSDK_DLLEXPORT int | vx_name_value_pair_create(vx_name_value_pair_t ** nvpair) |
VIVOXSDK_DLLEXPORT int | vx_name_value_pair_free(vx_name_value_pair_t * nvpair) |
VIVOXSDK_DLLEXPORT int | vx_name_value_pairs_create(int size, vx_name_value_pairs_t * list_out) |
VIVOXSDK_DLLEXPORT int | vx_name_value_pairs_free(vx_name_value_pair_t ** list, int size) |
VIVOXSDK_DLLEXPORT int | vx_conversation_create(vx_conversation_t ** conversation) |
VIVOXSDK_DLLEXPORT int | vx_conversation_free(vx_conversation_t * conversation) |
VIVOXSDK_DLLEXPORT int | vx_conversation_list_create(int size, vx_conversation_list_t * list_out) |
VIVOXSDK_DLLEXPORT int | vx_conversation_list_free(int size, vx_conversation_t ** list) |
VIVOXSDK_DLLEXPORT char * | vx_strdup(const char * ) Allocate string data to send to the SDK. |
VIVOXSDK_DLLEXPORT int | vx_free(char * ) Free string data returned to the application. |
VIVOXSDK_DLLEXPORT int | vx_unallocate(void * p) |
VIVOXSDK_DLLEXPORT void * | vx_allocate(size_t nBytes) |
VIVOXSDK_DLLEXPORT void * | vx_reallocate(void * p, size_t nBytes) |
VIVOXSDK_DLLEXPORT void * | vx_calloc(size_t num, size_t bytesPerElement) |
VIVOXSDK_DLLEXPORT void * | vx_allocate_aligned(size_t alignment, size_t size) |
VIVOXSDK_DLLEXPORT int | vx_unallocate_aligned(void * p) |
VIVOXSDK_DLLEXPORT int | vx_get_message(vx_message_base_t ** message) The VxSDK polling function. |
VIVOXSDK_DLLEXPORT int | vx_issue_request(vx_req_base_t * request) |
VIVOXSDK_DLLEXPORT int | vx_issue_request2(vx_req_base_t * request) Execute the given request. |
VIVOXSDK_DLLEXPORT int | vx_issue_request3(vx_req_base_t * request, int * request_count) Execute the given request. |
VIVOXSDK_DLLEXPORT int | vx_request_to_xml(void * request, char ** xml) Get the XML for the given request. |
VIVOXSDK_DLLEXPORT vx_request_type | vx_xml_to_request(const char * xml, void ** request, char ** error) Get a request for the given XML string. |
VIVOXSDK_DLLEXPORT int | vx_response_to_xml(void * response, char ** xml) Get the XML for the given response. |
VIVOXSDK_DLLEXPORT vx_response_type | vx_xml_to_response(const char * xml, void ** response, char ** error) Get a response for the given XML string. |
VIVOXSDK_DLLEXPORT int | vx_event_to_xml(void * event, char ** xml) Get the XML for the given event. |
VIVOXSDK_DLLEXPORT vx_event_type | vx_xml_to_event(const char * xml, void ** event, char ** error) Get a event for the given XML string. |
VIVOXSDK_DLLEXPORT vx_message_type | vx_get_message_type(const char * xml) Determine whether the XML refers to a request, response, or event. |
VIVOXSDK_DLLEXPORT unsigned long long | vx_get_time_ms(void ) Get Millisecond Counter. |
VIVOXSDK_DLLEXPORT unsigned long long | vx_get_time_milli_seconds(void ) Get Millisecond Counter. |
VIVOXSDK_DLLEXPORT unsigned long long | vx_get_time_micro_seconds(void ) Get Microsecond Counter. |
VIVOXSDK_DLLEXPORT long long | vx_sleep_milli_seconds(unsigned long long milli_seconds) Sleep for the specified number of milliseconds. |
VIVOXSDK_DLLEXPORT int | vx_register_message_notification_handler(void(*)(void *) pf_handler, void * cookie) Register a callback that is called when a message is placed in the queue. |
VIVOXSDK_DLLEXPORT int | vx_unregister_message_notification_handler(void(*)(void *) pf_handler, void * cookie) Unregister a notification handler. |
VIVOXSDK_DLLEXPORT vx_message_base_t * | vx_wait_for_message(int msTimeout) Block the caller until a message is available. |
VIVOXSDK_DLLEXPORT int | vx_register_logging_initialization(vx_log_type log_type, const char * log_folder, const char * log_filename_prefix, const char * log_filename_suffix, int log_level, void(*)(const char *source, const char *level, const char *message) pf_handler) Register a callback that is called to initialize logging. |
VIVOXSDK_DLLEXPORT char * | vx_get_log_file_path(void ) |
VIVOXSDK_DLLEXPORT int | vx_unregister_logging_handler(void(*)(void *) pf_handler, void * cookie) Unregister the logging callback notification handler. |
VIVOXSDK_DLLEXPORT int | vx_create_account(const char * acct_mgmt_server, const char * admin_name, const char * admin_pw, const char * uname, const char * pw) |
VIVOXSDK_DLLEXPORT int | vx_get_crash_dump_count(void ) The number of crash dumps stored on disk. |
VIVOXSDK_DLLEXPORT int | vx_set_crash_dump_generation_enabled(int value) Enable crash dump generation. |
VIVOXSDK_DLLEXPORT int | vx_get_crash_dump_generation(void ) Determine if crash dump generation is enabled. |
VIVOXSDK_DLLEXPORT char * | vx_read_crash_dump(int index) Get the Base64-encoded crash dump information. |
VIVOXSDK_DLLEXPORT time_t | vx_get_crash_dump_timestamp(int index) Get the timestamp of a crash. |
VIVOXSDK_DLLEXPORT int | vx_delete_crash_dump(int index) Delete the crash dump. |
VIVOXSDK_DLLEXPORT int | vx_on_application_exit(void ) Some applications may need to call this routine before exiting. |
VIVOXSDK_DLLEXPORT const char * | vx_get_sdk_version_info(void ) Get the SDK version info. |
VIVOXSDK_DLLEXPORT const char * | vx_get_sdk_version_info_ex(void ) Get the SDK extended version info. |
VIVOXSDK_DLLEXPORT int | vx_apply_font_to_file(const char * fontDefinition, const char * inputFile, const char * outputFile) Apply a Vivox voice font to a .wav file. |
VIVOXSDK_DLLEXPORT int | vx_apply_font_to_file_return_energy_ratio(const char * fontDefinition, const char * inputFile, const char * outputFile, double * energyRatio) Apply a Vivox voice font to a .wav file and return the energy ratio (Output Energy/Input Energy). |
VIVOXSDK_DLLEXPORT int | vx_apply_font_to_vxz_file_return_energy_ratio(const char * fontDefinition, const char * inputFile, const char * outputFile, double * energyRatio) Apply a Vivox voice font to a .vxz file and return the energy ratio (Output Energy/Input Energy) |
VIVOXSDK_DLLEXPORT void * | vx_copy_audioBuffer(void * audioBufferPtr) Create a copy of the internal local audio buffer associated with the vx_req_aux_start_buffer_capture_t request/response. |
VIVOXSDK_DLLEXPORT double | vx_get_audioBuffer_duration(void * audioBufferPtr) Get the duration of the audio buffer in seconds. |
VIVOXSDK_DLLEXPORT int | vx_get_audioBuffer_sample_rate(void * audioBufferPtr) Get the sample rate of the audio buffer. |
VIVOXSDK_DLLEXPORT int | vx_free_audioBuffer(void ** audioBufferPtr) Free up all memory associated with an allocated Vivox audioBufferPtr. |
VIVOXSDK_DLLEXPORT int | vx_export_audioBuffer_to_pcm(void * audioBufferPtr, short * pcmBuffer, int maxSamples) Export audio data in an audioBufferPtr to a memory buffer as PCM. |
VIVOXSDK_DLLEXPORT int | vx_export_audioBuffer_to_wav_file(void * audioBufferPtr, const char * outputFile) Export audio data in an audioBufferPtr to a .wav file. |
VIVOXSDK_DLLEXPORT int | vx_export_audioBuffer_to_memory(void * audioBufferPtr, short ** audioBufferOut, int * nSamplesOut, int * sampleRateOut, int * nChannelsOut) Export audio data in an audioBufferPtr to memory. |
VIVOXSDK_DLLEXPORT int | vx_set_out_of_process_server_address(const char * address, unsigned short port) Set the default out of process server address. |
VIVOXSDK_DLLEXPORT int | vx_initialize(void ) |
VIVOXSDK_DLLEXPORT int | vx_initialize3(vx_sdk_config_t * config, size_t config_size) An application must call this API before calling any other Vivox API, except vx_get_default_config3();. |
VIVOXSDK_DLLEXPORT int | vx_is_initialized(void ) Check if the Vivox SDK was initialized with an vx_initialize3() call, and not yet uninitialized with an vx_uninitialize() call. |
VIVOXSDK_DLLEXPORT int | vx_get_default_config3(vx_sdk_config_t * config, size_t config_size) An application must call this API before calling any other Vivox API. |
VIVOXSDK_DLLEXPORT int | vx_uninitialize(void ) An application must call this before exit. |
VIVOXSDK_DLLEXPORT int | vx_debug_call(void * ) |
VIVOXSDK_DLLEXPORT int | vx_get_system_stats(vx_system_stats_t * system_stats) Get statistics about various system internals. |
VIVOXSDK_DLLEXPORT int | vx_get_int_var(const char * var_name, int * p_value) Get named variables. |
VIVOXSDK_DLLEXPORT int | vx_set_int_var(const char * var_name, int value) Set named variables. |
VIVOXSDK_DLLEXPORT int | vx_destroy_message(vx_message_base_t * message) Deallocate any message of any type. |
VIVOXSDK_DLLEXPORT char * | vx_debug_generate_token(const char * issuer, vx_time_t expiration, const char * vxa, unsigned long long serial, const char * subject, const char * from_uri, const char * to_uri, const unsigned char * key, size_t key_len) Generate a Vivox Access Token. |
VIVOXSDK_DLLEXPORT unsigned int | vx_get_http(const char * url, unsigned int * response_code, char ** content, size_t * content_len, char ** content_type, size_t * content_type_len) Synchronously download the contents of the specified URL with the GET method. |
VIVOXSDK_DLLEXPORT int | vx_free_http(char ** content, char ** content_type) Free the memory allocated during the vx_get_http() call. |
VIVOXSDK_DLLEXPORT char * | vx_get_random_user_id(const char * prefix) Get a random guest user ID with the given prefix. |
VIVOXSDK_DLLEXPORT char * | vx_get_random_user_id_ex(const char * prefix, const char * issuer) Get a random guest user ID for the given issuer with the given prefix. |
VIVOXSDK_DLLEXPORT char * | vx_get_random_channel_uri(const char * prefix, const char * realm) Get a random ephemeral channel ID with the given prefix for the specific realm. |
VIVOXSDK_DLLEXPORT char * | vx_get_random_channel_uri_ex(const char * prefix, const char * realm, const char * issuer) Get a random ephemeral channel ID for the given issuer with the given prefix for the specific realm. |
VIVOXSDK_DLLEXPORT char * | vx_get_user_uri(const char * name, const char * realm, const char * issuer) Generate the fully specified URI of a user with the given name for the given realm and issuer. |
VIVOXSDK_DLLEXPORT char * | vx_get_echo_channel_uri(const char * name, const char * realm, const char * issuer) Generate the fully specified URI of an echo channel with the given name for the given realm and issuer. |
VIVOXSDK_DLLEXPORT char * | vx_get_general_channel_uri(const char * name, const char * realm, const char * issuer) Generate the fully specified URI of a general non-positional channel with the given name for the given realm and issuer. |
VIVOXSDK_DLLEXPORT char * | vx_get_positional_channel_uri(const char * name, const char * realm, int max_range, int clamping_distance, double rolloff, vx_channel_rolloff_curve_type distance_model, const char * issuer) Generate the fully specified URI of a positional channel with the given name and 3D properties for the given realm and issuer. |
VIVOXSDK_DLLEXPORT char * | vx_uri_to_string(int is_multitenant, const char * uri) Return a textual representation of the compositional elements of a Vivox URI, suitable for logging. |
VIVOXSDK_DLLEXPORT int | vx_opus_set_bit_rate(int bits_per_second) Set the bitrate for all OPUS encoders. |
VIVOXSDK_DLLEXPORT int | vx_opus_get_bit_rate(int * p_bits_per_second) Get the current OPUS bitrate. |
VIVOXSDK_DLLEXPORT int | vx_opus_set_complexity(int complexity) Set the complexity for all OPUS encoders. |
VIVOXSDK_DLLEXPORT int | vx_opus_get_complexity(int * p_complexity) Get the current OPUS complexity. |
VIVOXSDK_DLLEXPORT int | vx_opus_set_vbr_mode(int vbr_mode) Set the VBR mode for all OPUS encoders. |
VIVOXSDK_DLLEXPORT int | vx_opus_get_vbr_mode(int * p_vbr_mode) Get the current OPUS VBR mode. |
VIVOXSDK_DLLEXPORT int | vx_opus_set_bandwidth(int bandwidth) Set the bandwidth for all OPUS encoders. |
VIVOXSDK_DLLEXPORT int | vx_opus_get_bandwidth(int * p_bandwidth) Get the current OPUS bandwidth. |
VIVOXSDK_DLLEXPORT unsigned int | vx_get_available_codecs_mask(void ) Get a mask for all available codecs (to be used as configured_codecs). |
VIVOXSDK_DLLEXPORT unsigned int | vx_get_default_codecs_mask(void ) Get a recommended default mask for available codecs (to be used as configured_codecs). |
VIVOXSDK_DLLEXPORT int | vx_get_dump_memory_interval(void ) Get the current period of the Memory Usage information dumping to logcat. |
VIVOXSDK_DLLEXPORT int | vx_cpumonitor_start(int interval, int report_interval) Start the CPU load information dumping to logcat. |
VIVOXSDK_DLLEXPORT int | vx_cpumonitor_stop(void ) Stop the CPU load information dumping to logcat. |
VIVOXSDK_DLLEXPORT int | vx_cpumonitor_start_eater(int nthreads, int priority) Start the requested number of tight loop threads with the requested priority. |
VIVOXSDK_DLLEXPORT int | vx_cpumonitor_stop_eater(void ) Stop all the CPU eater threads started with vx_cpumonitor_start_eater() call. |
VIVOXSDK_DLLEXPORT int | vx_crash_test(vx_crash_test_type_t crash_type) Crash the program. |
VIVOXSDK_DLLEXPORT int | vx_set_message_rate_params(unsigned bucketSize, float messageSpeed, int fillBucket) Change the API message rate parameters. |
VIVOXSDK_DLLEXPORT int | vx_set_default_message_rate_params(void ) Return the API message rate parameters to their default state. |
VIVOXSDK_DLLEXPORT int | vx_android_set_mic_mute(int mute) Mute or unmute the mic on Android. |
VIVOXSDK_DLLEXPORT int | vx_internal_enable_debug_mode_disable_strict_checks(void ) Internal: enable debug mode and disable the strict parameter check of some requests. |
VIVOXSDK_DLLEXPORT int | vx_internal_disable_debug_mode_enable_strict_checks(void ) Internal: disable the debug mode enabled by vx_internal_enable_debug_mode_disable_strict_checks. |
VIVOXSDK_DLLEXPORT int | vx_is_access_token_well_formed(const char * access_token, char ** error) Verify whether the passed access token is well-formed. |
VIVOXSDK_DLLEXPORT int | vx_vxd_send(VX_HANDLE session_handle, const char * data, size_t size) Send VXD into the channel. |
VIVOXSDK_DLLEXPORT int | vx_vxd_recv(VX_HANDLE session_handle, vx_vxd_t ** vxd_ptr) Receive VXD from the channel. |
VIVOXSDK_DLLEXPORT int | vx_vxd_destroy(vx_vxd_t * vxd) Dispose of the VXD object returned by vx_vxd_recv(). |
VIVOXSDK_DLLEXPORT char * | vx_get_path(unsigned int path_id) Get a specific path of various files and folders used by the SDK. |
VIVOXSDK_DLLEXPORT int | vx_get_dynamic_voice_processing_switching_enabled(int * enabled) Get the current value of the dynamic voice processing switching enabled setting. |
VIVOXSDK_DLLEXPORT int | vx_set_dynamic_voice_processing_switching_enabled(int enabled) Enable and disable dynamic voice processing switching. |
VIVOXSDK_DLLEXPORT int | vx_get_ios_voice_processing_io_mode(int * mode) Get the mode for the ios_voice_processing_io_mode configuration field. |
VIVOXSDK_DLLEXPORT int | vx_set_ios_voice_processing_io_mode(int mode) Set the mode for the ios_voice_processing_io_mode configuration field. |
VIVOXSDK_DLLEXPORT int | vx_get_platform_aec_enabled(int * enabled) Return an indication of whether platform-provided AEC is being used. |
VIVOXSDK_DLLEXPORT int | vx_set_platform_aec_enabled(int enabled) Enable and disable platform-provided AEC. |
VIVOXSDK_DLLEXPORT int | vx_get_vivox_aec_enabled(int * enabled) Get the internal AEC enabled/disabled state. |
VIVOXSDK_DLLEXPORT int | vx_set_vivox_aec_enabled(int enabled) Enable or disable the SDK's internal AEC. |
VIVOXSDK_DLLEXPORT int | vx_get_noise_suppression_enabled(int * enabled) Get the capture audio noise suppressor enabled/disabled state. |
VIVOXSDK_DLLEXPORT int | vx_get_noise_suppression_level(vx_noise_suppression_level * level) Get the capture audio noise suppressor suppression level. |
VIVOXSDK_DLLEXPORT int | vx_set_noise_suppression_enabled(int enabled) Enable or disable the SDK's capture audio noise suppressor. |
VIVOXSDK_DLLEXPORT int | vx_set_noise_suppression_level(vx_noise_suppression_level level) Set the capture audio noise suppressor's suppression level. |
VIVOXSDK_DLLEXPORT int | vx_set_agc_enabled(int enabled) Enable or disable the SDK's internal AGC. |
VIVOXSDK_DLLEXPORT int | vx_get_agc_enabled(int * enabled) Get the internal AGC enabled/disabled state. |
VIVOXSDK_DLLEXPORT int | vx_set_volume_based_duplication_suppression_enabled(int enabled) Enable or disable volume based audio duplication suppression. |
VIVOXSDK_DLLEXPORT int | vx_get_volume_based_duplication_suppression_enabled(int * enabled) Get the internal state of the volume based audio duplication suppression. |
VIVOXSDK_DLLEXPORT int | vx_set_3d_channel_volume_protection_enabled(int enabled) Enable or disable the SDK's internal volume protection for 3D channels. |
VIVOXSDK_DLLEXPORT int | vx_get_3d_channel_volume_protection_enabled(int * enabled) Get the internal 3D channel volume protection state. |
VIVOXSDK_DLLEXPORT int | vx_set_audio_clipping_protector_enabled(int enabled) Enable or disable the SDK's internal audio clipping protector (soft clipper). |
VIVOXSDK_DLLEXPORT int | vx_get_audio_clipping_protector_enabled(int * enabled) Get the internal audio clipping protector enabled state. |
VIVOXSDK_DLLEXPORT int | vx_set_audio_clipping_protector_parameters(float minimum_threshold_db, float threshold_boost_slope) Change the behavior of the SDK's internal audio clipping protector (soft clipper). |
VIVOXSDK_DLLEXPORT int | vx_get_audio_clipping_protector_parameters(float * minimum_threshold_db, float * threshold_boost_slope) Get the internal audio clipping protector's parameters. |
VIVOXSDK_DLLEXPORT vx_tts_status | vx_tts_initialize(vx_tts_engine_type engine_type, vx_tts_manager_id * tts_manager_id) Initialize a new text-to-speech manager. |
VIVOXSDK_DLLEXPORT vx_tts_status | vx_tts_get_voices(vx_tts_manager_id tts_manager_id, int * num_voices, vx_tts_voice_t ** voices) Get the available voices for a text-to-speech manager. |
VIVOXSDK_DLLEXPORT vx_tts_status | vx_tts_shutdown(vx_tts_manager_id * tts_manager_id) Uninitialize and shut down a text-to-speech manager. |
VIVOXSDK_DLLEXPORT const char * | vx_get_tts_status_string(vx_tts_status status_code) Return a textual representation of a text-to-speech status code. |
VIVOXSDK_DLLEXPORT vx_tts_status | vx_tts_speak(vx_tts_manager_id tts_manager_id, vx_tts_voice_id voice_id, const char * input_text, vx_tts_destination tts_dest, vx_tts_utterance_id * utterance_id) Convert the input text into speech and process the generated utterance on the selected destination. |
VIVOXSDK_DLLEXPORT vx_tts_status | vx_tts_speak_to_buffer(vx_tts_manager_id tts_manager_id, vx_tts_voice_id voice_id, const char * input_text, vx_tts_utterance_t ** utterance) Convert the input text into speech and return the generated utterance. |
VIVOXSDK_DLLEXPORT vx_tts_status | vx_tts_destroy_utterance(vx_tts_manager_id tts_manager_id, vx_tts_utterance_t * utterance) Destroy an utterance. |
VIVOXSDK_DLLEXPORT vx_tts_status | vx_tts_cancel_utterance(vx_tts_manager_id tts_manager_id, vx_tts_utterance_id utterance_id) Cancel playback of an ongoing or an enqueued text-to-speech message by its unique identifier. |
VIVOXSDK_DLLEXPORT vx_tts_status | vx_tts_cancel_all_in_dest(vx_tts_manager_id tts_manager_id, vx_tts_destination tts_dest) Cancel playback of ongoing and all enqueued text-to-speech messages in a destination. |
VIVOXSDK_DLLEXPORT vx_tts_status | vx_tts_cancel_all(vx_tts_manager_id tts_manager_id) Cancel playback for all ongoing and enqueued text-to-speech messages on all destinations. |
Defines
Types Documentation
enum vx_attempt_stun
Enumerator | Value | Description |
---|---|---|
attempt_stun_unspecified | 0 | Use the default as configured on the account management server. |
attempt_stun_on | 1 | Use STUN. |
attempt_stun_off | 2 | Do not use STUN. |
A type of STUN probe.
enum vx_connector_mode
Enumerator | Value | Description |
---|---|---|
connector_mode_normal | 0 | The default and only valid value. |
connector_mode_legacy | 1 |
A type of API mode.
The required setting is connector_mode_normal.
enum vx_session_handle_type
Enumerator | Value | Description |
---|---|---|
session_handle_type_unique | 0 | Each handle is unique for the lifetime of the connector. |
session_handle_type_legacy | 1 | Handles are sequential integers. |
session_handle_type_heirarchical_numeric | 2 | Handles are hierarchical numeric. |
session_handle_type_heirarchical_unique | 3 | Handles are hierarchical unique. |
A type of API mode.
The recommended setting is connector_mode_normal.
enum vx_log_type
Enumerator | Value | Description |
---|---|---|
log_to_none | 0 | Unused. |
log_to_file | 1 | |
log_to_callback | 2 | Send log information to the client application through the registered callback method. |
log_to_file_and_callback | 3 |
A type of logging for the application.
The Vivox SDK is capable of logging to a native log file and/or sending log information to the client application through a callback method registered with the SDK.
enum vx_message_type
Enumerator | Value | Description |
---|---|---|
msg_none | 0 | Unused. |
msg_request | 1 | Indicates that the message is a request. |
msg_response | 2 | Indicates that the message is a response. |
msg_event | 3 | Indicates that the message is an event. |
Used as a run time type indicator for all messages passed between the application and SDK.
enum vx_sessiongroup_recording_control_type
Enumerator | Value | Description |
---|---|---|
VX_SESSIONGROUP_RECORDING_CONTROL_STOP | 0 | Stop a recording. |
VX_SESSIONGROUP_RECORDING_CONTROL_START | 1 | Start a recording. |
VX_SESSIONGROUP_RECORDING_CONTROL_FLUSH_TO_FILE | 2 | Flush a continuous recording. |
enum vx_sessiongroup_audio_injection_control_type
Enumerator | Value | Description |
---|---|---|
VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_STOP | 0 | Stop audio injection. |
vx_sessiongroup_audio_injection_control_stop | VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_STOP | |
VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_START | 1 | Start audio injection (only if currently stopped). |
vx_sessiongroup_audio_injection_control_start | VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_START | |
VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_RESTART | 2 | Restart audio injection (start if currently stopped, or stop if currently injecting and then restart). |
vx_sessiongroup_audio_injection_control_restart | VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_RESTART | |
VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_MIN | VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_STOP | |
vx_sessiongroup_audio_injection_control_min | vx_sessiongroup_audio_injection_control_stop | |
VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_MAX | VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_RESTART | |
vx_sessiongroup_audio_injection_control_max | vx_sessiongroup_audio_injection_control_restart |
enum vx_sessiongroup_playback_control_type
Enumerator | Value | Description |
---|---|---|
VX_SESSIONGROUP_PLAYBACK_CONTROL_STOP | 0 | Stop playback. When playback is stopped, it closes the playback file and generates a media frame played event, with 0 for the first frame, and 0 for the total frames. |
VX_SESSIONGROUP_PLAYBACK_CONTROL_START | 1 | Start playback. |
VX_SESSIONGROUP_PLAYBACK_CONTROL_PAUSE | 3 | Pause playback. |
VX_SESSIONGROUP_PLAYBACK_CONTROL_UNPAUSE | 4 | Unpause playback. |
enum vx_sessiongroup_playback_mode
Enumerator | Value | Description |
---|---|---|
VX_SESSIONGROUP_PLAYBACK_MODE_NORMAL | 0 | Normal mode playback. |
VX_SESSIONGROUP_PLAYBACK_MODE_VOX | 1 | Vox mode playback: Catch-up mode. Skip all silence periods. Playback at desired speed. |
enum vx_control_communications_operation
Enumerator | Value | Description |
---|---|---|
vx_control_communications_operation_block | 0 | The issuing user does not hear the blocked user, and the blocked user does not hear the issuing user. |
vx_control_communications_operation_unblock | 1 | The issuing user does hear the blocked user, and the blocked user does hear the issuing user, unless the blocked user has also blocked the issuing user. |
vx_control_communications_operation_list | 2 | |
vx_control_communications_operation_block_list | 2 | |
vx_control_communications_operation_clear | 3 | |
vx_control_communications_operation_clear_block_list | 3 | |
vx_control_communications_operation_mute | 4 | |
vx_control_communications_operation_unmute | 5 | |
vx_control_communications_operation_mute_list | 6 | |
vx_control_communications_operation_clear_mute_list | 7 |
The methods in which communication can be controlled.
enum vx_media_type
Enumerator | Value | Description |
---|---|---|
media_type_none | 0 | |
media_type_text | 1 | |
media_type_audio | 2 | |
media_type_video | 3 | |
media_type_audiovideo | 4 |
enum vx_termination_status
Enumerator | Value | Description |
---|---|---|
termination_status_none | 0 | |
termination_status_busy | 1 | |
termination_status_decline | 2 |
enum vx_diagnostic_dump_level
Enumerator | Value | Description |
---|---|---|
diagnostic_dump_level_all | 0 | |
diagnostic_dump_level_sessions | 1 |
enum vx_media_ringback
Enumerator | Value | Description |
---|---|---|
media_ringback_none | 0 | |
media_ringback_ringing | 1 | |
media_ringback_busy | 3 |
enum vx_channel_type
Enumerator | Value | Description |
---|---|---|
channel_type_normal | 0 | |
channel_type_positional | 2 |
enum vx_channel_mode
Enumerator | Value | Description |
---|---|---|
channel_mode_none | 0 | |
channel_mode_normal | 1 | |
channel_mode_presentation | 2 | |
channel_mode_lecture | 3 | |
channel_mode_open | 4 | |
channel_mode_auditorium | 5 |
enum vx_channel_search_type
Enumerator | Value | Description |
---|---|---|
channel_search_type_all | 0 | |
channel_search_type_non_positional | 1 | |
channel_search_type_positional | 2 |
enum vx_channel_moderation_type
Enumerator | Value | Description |
---|---|---|
channel_moderation_type_all | 0 | |
channel_moderation_type_current_user | 1 |
enum vx_sessiongroup_type
Enumerator | Value | Description |
---|---|---|
sessiongroup_type_normal | 0 | Normal type for general use. |
sessiongroup_type_playback | 1 | Playback type. Only use this for playing back a Vivox recording. |
The type of the session group specified at session group creation time.
enum vx_participant_removed_reason
Enumerator | Value | Description |
---|---|---|
participant_left | 0 | |
participant_timeout | 1 | |
participant_kicked | 2 | |
participant_banned | 3 |
Indicates the reason why a participant was removed from a session.
enum vx_connection_state
Enumerator | Value | Description |
---|---|---|
connection_state_disconnected | 0 | |
connection_state_connected | 1 | |
connection_state_recovering | 3 | |
connection_state_failed_to_recover | 4 | |
connection_state_recovered | 5 |
Indicates current network connection state.
enum vx_request_type
Enumerator | Value | Description |
---|---|---|
req_none | 0 | |
req_connector_create | 1 | |
req_connector_initiate_shutdown | 2 | |
req_account_login | 3 | |
req_account_logout | 4 | |
req_account_set_login_properties | 5 | |
req_sessiongroup_create | 6 | |
req_sessiongroup_terminate | 7 | |
req_sessiongroup_add_session | 8 | |
req_sessiongroup_remove_session | 9 | |
req_sessiongroup_set_focus | 10 | |
req_sessiongroup_unset_focus | 11 | |
req_sessiongroup_reset_focus | 12 | |
req_sessiongroup_set_tx_session | 13 | |
req_sessiongroup_set_tx_all_sessions | 14 | |
req_sessiongroup_set_tx_no_session | 15 | |
req_session_create | 16 | Do not use. Instead, use req_sessiongroup_add_session |
req_session_media_connect | 18 | |
req_session_media_disconnect | 19 | |
req_session_terminate | 21 | |
req_session_mute_local_speaker | 22 | |
req_session_set_local_speaker_volume | 23 | |
req_session_set_local_render_volume | 24 | |
req_session_channel_invite_user | 25 | |
req_session_set_participant_volume_for_me | 26 | |
req_session_set_participant_mute_for_me | 27 | |
req_session_set_3d_position | 28 | |
req_session_set_voice_font | 29 | |
req_account_channel_add_acl | 53 | |
req_account_channel_remove_acl | 54 | |
req_account_channel_get_acl | 55 | |
req_channel_mute_user | 56 | |
req_channel_ban_user | 57 | |
req_channel_get_banned_users | 58 | |
req_channel_kick_user | 59 | |
req_channel_mute_all_users | 60 | |
req_connector_mute_local_mic | 61 | |
req_connector_mute_local_speaker | 62 | |
req_connector_set_local_mic_volume | 63 | |
req_connector_set_local_speaker_volume | 64 | |
req_connector_get_local_audio_info | 65 | |
req_account_buddy_set | 67 | |
req_account_buddy_delete | 68 | |
req_account_list_buddies_and_groups | 71 | |
req_session_send_message | 72 | |
req_account_set_presence | 73 | |
req_account_send_subscription_reply | 74 | |
req_session_send_notification | 75 | |
req_account_create_block_rule | 76 | |
req_account_delete_block_rule | 77 | |
req_account_list_block_rules | 78 | |
req_account_create_auto_accept_rule | 79 | |
req_account_delete_auto_accept_rule | 80 | |
req_account_list_auto_accept_rules | 81 | |
req_account_update_account | 82 | Deprecated. |
req_account_get_account | 83 | Deprecated. |
req_account_send_sms | 84 | |
req_aux_connectivity_info | 86 | |
req_aux_get_render_devices | 87 | |
req_aux_get_capture_devices | 88 | |
req_aux_set_render_device | 89 | |
req_aux_set_capture_device | 90 | |
req_aux_get_mic_level | 91 | |
req_aux_get_speaker_level | 92 | |
req_aux_set_mic_level | 93 | |
req_aux_set_speaker_level | 94 | |
req_aux_render_audio_start | 95 | |
req_aux_render_audio_stop | 96 | |
req_aux_capture_audio_start | 97 | |
req_aux_capture_audio_stop | 98 | |
req_aux_global_monitor_keyboard_mouse | 99 | |
req_aux_set_idle_timeout | 100 | |
req_aux_create_account | 101 | |
req_aux_reactivate_account | 102 | |
req_aux_deactivate_account | 103 | |
req_account_post_crash_dump | 104 | |
req_aux_reset_password | 105 | |
req_sessiongroup_set_session_3d_position | 106 | |
req_account_get_session_fonts | 107 | |
req_account_get_template_fonts | 108 | |
req_aux_start_buffer_capture | 109 | |
req_aux_play_audio_buffer | 110 | |
req_sessiongroup_control_recording | 111 | |
req_sessiongroup_control_playback | 112 | |
req_sessiongroup_set_playback_options | 113 | |
req_session_text_connect | 114 | |
req_session_text_disconnect | 115 | |
req_channel_set_lock_mode | 116 | |
req_aux_render_audio_modify | 117 | |
req_session_send_dtmf | 118 | |
req_aux_set_vad_properties | 120 | |
req_aux_get_vad_properties | 121 | |
req_sessiongroup_control_audio_injection | 124 | |
req_account_channel_change_owner | 125 | Not yet implemented (3030) |
req_account_send_user_app_data | 128 | Not yet implemented (3030) |
req_aux_diagnostic_state_dump | 129 | |
req_account_web_call | 130 | |
req_account_anonymous_login | 131 | |
req_account_authtoken_login | 132 | |
req_sessiongroup_get_stats | 133 | |
req_account_send_message | 134 | |
req_aux_notify_application_state_change | 135 | |
req_account_control_communications | 136 | |
req_session_archive_query | 137 | |
req_account_archive_query | 138 | |
req_session_transcription_control | 139 | |
req_aux_get_derumbler_properties | 140 | |
req_aux_set_derumbler_properties | 141 | |
req_session_chat_history_query | 142 | |
req_account_chat_history_query | 143 | |
req_account_chat_history_get_last_read | 144 | |
req_session_edit_message | 145 | |
req_account_edit_message | 146 | |
req_session_delete_message | 147 | |
req_account_delete_message | 148 | |
req_account_get_conversations | 149 | |
req_account_chat_history_set_marker | 150 | |
req_account_safe_voice_update_consent | 151 | |
req_account_safe_voice_get_consent | 152 | |
req_max | req_account_safe_voice_get_consent + 1 |
The set of requests that can be issued.
enum vx_response_type
Enumerator | Value | Description |
---|---|---|
resp_none | 0 | |
resp_connector_create | 1 | |
resp_connector_initiate_shutdown | 2 | |
resp_account_login | 3 | |
resp_account_logout | 4 | |
resp_account_set_login_properties | 5 | |
resp_sessiongroup_create | 6 | |
resp_sessiongroup_terminate | 7 | |
resp_sessiongroup_add_session | 8 | |
resp_sessiongroup_remove_session | 9 | |
resp_sessiongroup_set_focus | 10 | |
resp_sessiongroup_unset_focus | 11 | |
resp_sessiongroup_reset_focus | 12 | |
resp_sessiongroup_set_tx_session | 13 | |
resp_sessiongroup_set_tx_all_sessions | 14 | |
resp_sessiongroup_set_tx_no_session | 15 | |
resp_session_create | 16 | Do not use. |
resp_session_media_connect | 18 | |
resp_session_media_disconnect | 19 | |
resp_session_terminate | 21 | |
resp_session_mute_local_speaker | 22 | |
resp_session_set_local_speaker_volume | 23 | |
resp_session_set_local_render_volume | 24 | |
resp_session_channel_invite_user | 25 | |
resp_session_set_participant_volume_for_me | 26 | |
resp_session_set_participant_mute_for_me | 27 | |
resp_session_set_3d_position | 28 | |
resp_session_set_voice_font | 29 | |
resp_account_channel_get_list | 33 | |
resp_account_channel_add_acl | 53 | |
resp_account_channel_remove_acl | 54 | |
resp_account_channel_get_acl | 55 | |
resp_channel_mute_user | 56 | |
resp_channel_ban_user | 57 | |
resp_channel_get_banned_users | 58 | |
resp_channel_kick_user | 59 | |
resp_channel_mute_all_users | 60 | |
resp_connector_mute_local_mic | 61 | |
resp_connector_mute_local_speaker | 62 | |
resp_connector_set_local_mic_volume | 63 | |
resp_connector_set_local_speaker_volume | 64 | |
resp_connector_get_local_audio_info | 65 | |
resp_account_buddy_set | 67 | |
resp_account_buddy_delete | 68 | |
resp_account_list_buddies_and_groups | 71 | |
resp_session_send_message | 72 | |
resp_account_set_presence | 73 | |
resp_account_send_subscription_reply | 74 | |
resp_session_send_notification | 75 | |
resp_account_create_block_rule | 76 | |
resp_account_delete_block_rule | 77 | |
resp_account_list_block_rules | 78 | |
resp_account_create_auto_accept_rule | 79 | |
resp_account_delete_auto_accept_rule | 80 | |
resp_account_list_auto_accept_rules | 81 | |
resp_account_update_account | 82 | Deprecated. |
resp_account_get_account | 83 | Deprecated. |
resp_account_send_sms | 84 | |
resp_aux_connectivity_info | 86 | |
resp_aux_get_render_devices | 87 | |
resp_aux_get_capture_devices | 88 | |
resp_aux_set_render_device | 89 | |
resp_aux_set_capture_device | 90 | |
resp_aux_get_mic_level | 91 | |
resp_aux_get_speaker_level | 92 | |
resp_aux_set_mic_level | 93 | |
resp_aux_set_speaker_level | 94 | |
resp_aux_render_audio_start | 95 | |
resp_aux_render_audio_stop | 96 | |
resp_aux_capture_audio_start | 97 | |
resp_aux_capture_audio_stop | 98 | |
resp_aux_global_monitor_keyboard_mouse | 99 | |
resp_aux_set_idle_timeout | 100 | |
resp_aux_create_account | 101 | |
resp_aux_reactivate_account | 102 | |
resp_aux_deactivate_account | 103 | |
resp_account_post_crash_dump | 104 | |
resp_aux_reset_password | 105 | |
resp_sessiongroup_set_session_3d_position | 106 | |
resp_account_get_session_fonts | 107 | |
resp_account_get_template_fonts | 108 | |
resp_aux_start_buffer_capture | 109 | |
resp_aux_play_audio_buffer | 110 | |
resp_sessiongroup_control_recording | 111 | |
resp_sessiongroup_control_playback | 112 | |
resp_sessiongroup_set_playback_options | 113 | |
resp_session_text_connect | 114 | |
resp_session_text_disconnect | 115 | |
resp_channel_set_lock_mode | 116 | |
resp_aux_render_audio_modify | 117 | |
resp_session_send_dtmf | 118 | |
resp_aux_set_vad_properties | 120 | |
resp_aux_get_vad_properties | 121 | |
resp_sessiongroup_control_audio_injection | 124 | |
resp_account_channel_change_owner | 125 | Not yet implemented (3030) |
resp_account_send_user_app_data | 128 | Not yet implemented (3030) |
resp_aux_diagnostic_state_dump | 129 | |
resp_account_web_call | 130 | |
resp_account_anonymous_login | 131 | |
resp_account_authtoken_login | 132 | |
resp_sessiongroup_get_stats | 133 | |
resp_account_send_message | 134 | |
resp_aux_notify_application_state_change | 135 | |
resp_account_control_communications | 136 | |
resp_session_archive_query | 137 | |
resp_account_archive_query | 138 | |
resp_session_transcription_control | 139 | |
resp_aux_get_derumbler_properties | 140 | |
resp_aux_set_derumbler_properties | 141 | |
resp_session_chat_history_query | 142 | |
resp_account_chat_history_query | 143 | |
resp_account_chat_history_get_last_read | 144 | |
resp_session_edit_message | 145 | |
resp_account_edit_message | 146 | |
resp_session_delete_message | 147 | |
resp_account_delete_message | 148 | |
resp_account_get_conversations | 149 | |
resp_account_chat_history_set_marker | 150 | |
resp_account_safe_voice_update_consent | 151 | |
resp_account_safe_voice_get_consent | 152 | |
resp_max | resp_account_safe_voice_get_consent + 1 |
Response types that are reported back to the calling app.
enum vx_event_type
Enumerator | Value | Description |
---|---|---|
evt_none | 0 | |
evt_account_login_state_change | 2 | |
evt_buddy_presence | 7 | |
evt_subscription | 8 | |
evt_session_notification | 9 | |
evt_message | 10 | |
evt_aux_audio_properties | 11 | |
evt_buddy_changed | 15 | |
evt_buddy_group_changed | 16 | |
evt_buddy_and_group_list_changed | 17 | |
evt_keyboard_mouse | 18 | |
evt_idle_state_changed | 19 | |
evt_media_stream_updated | 20 | |
evt_text_stream_updated | 21 | |
evt_sessiongroup_added | 22 | |
evt_sessiongroup_removed | 23 | |
evt_session_added | 24 | |
evt_session_removed | 25 | |
evt_participant_added | 26 | |
evt_participant_removed | 27 | |
evt_participant_updated | 28 | |
evt_sessiongroup_playback_frame_played | 30 | |
evt_session_updated | 31 | |
evt_sessiongroup_updated | 32 | |
evt_media_completion | 33 | |
evt_server_app_data | 35 | |
evt_user_app_data | 36 | |
evt_network_message | 38 | |
evt_voice_service_connection_state_changed | 39 | |
evt_publication_state_changed | 40 | |
evt_audio_device_hot_swap | 41 | |
evt_user_to_user_message | 42 | |
evt_session_archive_message | 43 | |
evt_session_archive_query_end | 44 | |
evt_account_archive_message | 45 | |
evt_account_archive_query_end | 46 | |
evt_account_send_message_failed | 47 | |
evt_transcribed_message | 48 | |
evt_tts_injection_started | 49 | |
evt_tts_injection_ended | 50 | |
evt_tts_injection_failed | 51 | |
evt_stt_failed | 52 | |
evt_connection_state_changed | 53 | |
evt_presence_updated | 54 | |
evt_session_edit_message | 55 | |
evt_account_edit_message | 56 | |
evt_session_delete_message | 57 | |
evt_account_delete_message | 58 | |
evt_max | evt_account_delete_message + 1 |
Event types that are reported back to the calling app.
enum ND_ERROR
Enumerator | Value | Description |
---|---|---|
ND_E_NO_ERROR | 0 | |
ND_E_TEST_NOT_RUN | 1 | |
ND_E_NO_INTERFACE | 2 | |
ND_E_NO_INTERFACE_WITH_GATEWAY | 3 | |
ND_E_NO_INTERFACE_WITH_ROUTE | 4 | |
ND_E_TIMEOUT | 5 | |
ND_E_CANT_ICMP | 6 | |
ND_E_CANT_RESOLVE_VIVOX_UDP_SERVER | 7 | |
ND_E_CANT_RESOLVE_ROOT_DNS_SERVER | 8 | |
ND_E_CANT_CONVERT_LOCAL_IP_ADDRESS | 9 | |
ND_E_CANT_CONTACT_STUN_SERVER_ON_UDP_PORT_3478 | 10 | |
ND_E_CANT_CREATE_TCP_SOCKET | 11 | |
ND_E_CANT_LOAD_ICMP_LIBRARY | 12 | |
ND_E_CANT_FIND_SENDECHO2_PROCADDR | 13 | |
ND_E_CANT_CONNECT_TO_ECHO_SERVER | 14 | |
ND_E_ECHO_SERVER_LOGIN_SEND_FAILED | 15 | |
ND_E_ECHO_SERVER_LOGIN_RECV_FAILED | 16 | |
ND_E_ECHO_SERVER_LOGIN_RESPONSE_MISSING_STATUS | 17 | |
ND_E_ECHO_SERVER_LOGIN_RESPONSE_FAILED_STATUS | 18 | |
ND_E_ECHO_SERVER_LOGIN_RESPONSE_MISSING_SESSIONID | 19 | |
ND_E_ECHO_SERVER_LOGIN_RESPONSE_MISSING_SIPPORT | 20 | |
ND_E_ECHO_SERVER_LOGIN_RESPONSE_MISSING_AUDIORTP | 21 | |
ND_E_ECHO_SERVER_LOGIN_RESPONSE_MISSING_AUDIORTCP | 22 | |
ND_E_ECHO_SERVER_LOGIN_RESPONSE_MISSING_VIDEORTP | 23 | |
ND_E_ECHO_SERVER_LOGIN_RESPONSE_MISSING_VIDEORTCP | 24 | |
ND_E_ECHO_SERVER_CANT_ALLOCATE_SIP_SOCKET | 25 | |
ND_E_ECHO_SERVER_CANT_ALLOCATE_MEDIA_SOCKET | 26 | |
ND_E_ECHO_SERVER_SIP_UDP_SEND_FAILED | 27 | |
ND_E_ECHO_SERVER_SIP_UDP_RECV_FAILED | 28 | |
ND_E_ECHO_SERVER_SIP_TCP_SEND_FAILED | 29 | |
ND_E_ECHO_SERVER_SIP_TCP_RECV_FAILED | 30 | |
ND_E_ECHO_SERVER_SIP_NO_UDP_OR_TCP | 31 | |
ND_E_ECHO_SERVER_SIP_NO_UDP | 32 | |
ND_E_ECHO_SERVER_SIP_NO_TCP | 33 | |
ND_E_ECHO_SERVER_SIP_MALFORMED_TCP_PACKET | 34 | |
ND_E_ECHO_SERVER_SIP_UDP_DIFFERENT_LENGTH | 35 | |
ND_E_ECHO_SERVER_SIP_UDP_DATA_DIFFERENT | 36 | |
ND_E_ECHO_SERVER_SIP_TCP_PACKETS_DIFFERENT | 37 | |
ND_E_ECHO_SERVER_SIP_TCP_PACKETS_DIFFERENT_SIZE | 38 | |
ND_E_ECHO_SERVER_LOGIN_RECV_FAILED_TIMEOUT | 39 | |
ND_E_ECHO_SERVER_TCP_SET_ASYNC_FAILED | 40 | |
ND_E_ECHO_SERVER_UDP_SET_ASYNC_FAILED | 41 | |
ND_E_ECHO_SERVER_CANT_RESOLVE_NAME | 42 |
enum ND_TEST_TYPE
Enumerator | Value | Description |
---|---|---|
ND_TEST_LOCATE_INTERFACE | 0 | |
ND_TEST_PING_GATEWAY | 1 | |
ND_TEST_DNS | 2 | |
ND_TEST_STUN | 3 | |
ND_TEST_ECHO | 4 | |
ND_TEST_ECHO_SIP_FIRST_PORT | 5 | |
ND_TEST_ECHO_SIP_FIRST_PORT_INVITE_REQUEST | 6 | |
ND_TEST_ECHO_SIP_FIRST_PORT_INVITE_RESPONSE | 7 | |
ND_TEST_ECHO_SIP_FIRST_PORT_REGISTER_REQUEST | 8 | |
ND_TEST_ECHO_SIP_FIRST_PORT_REGISTER_RESPONSE | 9 | |
ND_TEST_ECHO_SIP_SECOND_PORT | 10 | |
ND_TEST_ECHO_SIP_SECOND_PORT_INVITE_REQUEST | 11 | |
ND_TEST_ECHO_SIP_SECOND_PORT_INVITE_RESPONSE | 12 | |
ND_TEST_ECHO_SIP_SECOND_PORT_REGISTER_REQUEST | 13 | |
ND_TEST_ECHO_SIP_SECOND_PORT_REGISTER_RESPONSE | 14 | |
ND_TEST_ECHO_MEDIA | 15 | |
ND_TEST_ECHO_MEDIA_LARGE_PACKET | 16 |
enum vx_session_answer_mode
Enumerator | Value | Description |
---|---|---|
mode_none | 0 | Not valid for use. |
mode_auto_answer | 1 | |
mode_verify_answer | 2 | Requires the client to explicitly answer the incoming call. |
mode_busy_answer | 3 | The incoming call is automatically answered with a 486 busy. |
Determine how incoming calls are handled.
Set at login.
enum vx_buddy_management_mode
Enumerator | Value | Description |
---|---|---|
mode_auto_accept | 0 | |
mode_auto_add | 1 | |
mode_block | 2 | |
mode_hide | 3 | |
mode_application | 4 |
enum vx_rule_type
Enumerator | Value | Description |
---|---|---|
rule_none | 0 | |
rule_allow | 1 | |
rule_block | 2 | |
rule_hide | 3 |
enum vx_font_type
Enumerator | Value | Description |
---|---|---|
type_none | 0 | |
type_root | 1 | |
type_user | 2 |
enum vx_font_status
Enumerator | Value | Description |
---|---|---|
status_none | 0 | |
status_free | 1 | |
status_not_free | 2 |
enum vx_subscription_type
Enumerator | Value | Description |
---|---|---|
subscription_presence | 0 |
enum vx_notification_type
Enumerator | Value | Description |
---|---|---|
notification_not_typing | 0 | |
notification_typing | 1 | |
notification_hand_lowered | 2 | |
notification_hand_raised | 3 | |
notification_min | notification_not_typing | |
notification_max | notification_hand_raised |
enum vx_dtmf_type
Enumerator | Value | Description |
---|---|---|
dtmf_0 | 0 | |
dtmf_1 | 1 | |
dtmf_2 | 2 | |
dtmf_3 | 3 | |
dtmf_4 | 4 | |
dtmf_5 | 5 | |
dtmf_6 | 6 | |
dtmf_7 | 7 | |
dtmf_8 | 8 | |
dtmf_9 | 9 | |
dtmf_pound | 10 | |
dtmf_star | 11 | |
dtmf_A | 12 | |
dtmf_B | 13 | |
dtmf_C | 14 | |
dtmf_D | 15 | |
dtmf_max | dtmf_D |
enum vx_text_mode
Enumerator | Value | Description |
---|---|---|
text_mode_disabled | 0 | |
text_mode_enabled | 1 |
enum vx_channel_lock_mode
Enumerator | Value | Description |
---|---|---|
channel_unlock | 0 | |
channel_lock | 1 |
enum vx_mute_scope
Enumerator | Value | Description |
---|---|---|
mute_scope_all | 0 | |
mute_scope_audio | 1 | |
mute_scope_text | 2 |
enum vx_recording_frame_type_t
Enumerator | Value | Description |
---|---|---|
VX_RECORDING_FRAME_TYPE_DELTA | 0 | |
VX_RECORDING_FRAME_TYPE_CONTROL | 1 |
Hold a recorded audio frame.
enum vx_audiosource_operation
Enumerator | Value | Description |
---|---|---|
op_none | 0 | |
op_safeupdate | 1 | |
op_delete | 2 |
enum vx_aux_audio_properties_state
Enumerator | Value | Description |
---|---|---|
aux_audio_properties_none | 0 |
enum vx_login_state_change_state
Enumerator | Value | Description |
---|---|---|
login_state_logged_out | 0 | |
login_state_logged_in | 1 | |
login_state_logging_in | 2 | |
login_state_logging_out | 3 | |
login_state_resetting | 4 | |
login_state_error | 100 |
enum vx_publication_state_change_state
Enumerator | Value | Description |
---|---|---|
publication_state_success | 0 | |
publication_state_transient_error | 1 | |
publication_state_permanent_error | 2 |
enum vx_buddy_presence_state
Enumerator | Value | Description |
---|---|---|
buddy_presence_unknown | 0 | OBSOLETE. |
buddy_presence_pending | 1 | OBSOLETE. |
buddy_presence_online | 2 | |
buddy_presence_busy | 3 | |
buddy_presence_brb | 4 | |
buddy_presence_away | 5 | |
buddy_presence_onthephone | 6 | |
buddy_presence_outtolunch | 7 | |
buddy_presence_custom | 8 | OBSOLETE. |
buddy_presence_online_slc | 9 | OBSOLETE. |
buddy_presence_closed | 0 | OBSOLETE. |
buddy_presence_offline | 0 | |
buddy_presence_chat | 10 | |
buddy_presence_extended_away | 11 | |
buddy_presence_min | buddy_presence_unknown | |
buddy_presence_max | buddy_presence_extended_away |
enum vx_presence_state
Enumerator | Value | Description |
---|---|---|
presence_online | 0 | |
presence_busy | 1 | |
presence_brb | 2 | |
presence_away | 3 | |
presence_onthephone | 4 | |
presence_offline | 5 | |
presence_chat | 6 | |
presence_extended_away | 7 | |
presence_min | presence_online | |
presence_max | presence_extended_away |
enum vx_session_notification_state
Enumerator | Value | Description |
---|---|---|
session_notification_none | 0 |
enum vx_message_state
Enumerator | Value | Description |
---|---|---|
message_none | 0 |
enum vx_session_text_state
Enumerator | Value | Description |
---|---|---|
session_text_disconnected | 0 | |
session_text_connected | 1 | |
session_text_connecting | 2 | |
session_text_disconnecting | 3 |
enum vx_session_media_state
Enumerator | Value | Description |
---|---|---|
session_media_disconnected | 1 | |
session_media_connected | 2 | |
session_media_ringing | 3 | |
session_media_connecting | 6 | |
session_media_disconnecting | 7 |
enum vx_participant_type
Enumerator | Value | Description |
---|---|---|
participant_user | 0 | |
part_user | participant_user | |
participant_moderator | 1 | |
part_moderator | participant_moderator | |
participant_owner | 2 | |
part_focus | participant_owner |
enum orientation_type
Enumerator | Value | Description |
---|---|---|
orientation_default | 0 | |
orientation_legacy | 1 | |
orientation_vivox | 2 |
enum vx_media_completion_type
Enumerator | Value | Description |
---|---|---|
media_completion_type_none | 0 | |
aux_buffer_audio_capture | 1 | |
aux_buffer_audio_render | 2 | |
sessiongroup_audio_injection | 3 |
enum vx_device_type
Enumerator | Value | Description |
---|---|---|
vx_device_type_specific_device | 0 | This type is a specific device. |
vx_device_type_default_system | 1 | This type means to use whatever the system has configured as a default at the time of the call. |
vx_device_type_null | 2 | This is the null device, which means that either the input or output from or to that device does not occur. |
vx_device_type_default_communication | 3 | This type means to use whatever the system has configured as a default communication device at the time of the call. |
The type of device.
enum vx_conversation_type
Enumerator | Value | Description |
---|---|---|
vx_conversation_channel | 0 | |
vx_conversation_direct | 1 |
enum vx_codec
Enumerator | Value | Description |
---|---|---|
vx_codec_siren7 | 0x2 | |
vx_codec_siren14 | 0x4 | |
vx_codec_opus8 | 0x10 | |
vx_codec_opus40 | 0x20 | |
vx_codec_opus57 | 0x40 | |
vx_codec_opus72 | 0x80 | |
VX_DEPRECATED_ENUM_GCC | =(vx_codec_pcmu, 5.19) 0x10 |
The configured_codecs field in vx_req_connector_create is a mask of these constants.
enum vx_application_state_notification_type
Enumerator | Value | Description |
---|---|---|
vx_application_state_notification_type_before_background | 0 | |
vx_application_state_notification_type_after_foreground | 1 | |
vx_application_state_notification_type_periodic_background_idle | 2 |
Indicates the state of the application.
Note: Valid only on mobile platforms.
enum VXA_ERROR_CODES
Enumerator | Value | Description |
---|---|---|
VXA_SUCCESS | 0 | Method executed successfully. |
VXA_INVALID_PARAMETER | 1 | The caller provided an invalid parameter. |
VXA_DEVICE_DOES_NOT_EXIST | 2 | The caller attempted to open a device that does not exist. |
VXA_INTERNAL_ERROR | 3 | There was an unexpected operating system-specific failure. |
VXA_OUT_OF_MEMORY | 4 | The method could not allocate enough memory to complete the request. |
VXA_INVALID_STATE | 5 | The method attempted to perform an invalid operation on the object in its current state. Typically, this is an attempt to open an already open device, or to read or write a closed device. Can also be called if VXA is not initialized. |
VXA_NO_MORE_DATA | 6 | Returned by "read()" functions when there is no more data available. |
VXA_FEATURE_NOT_SUPPORTED | 7 | Returned by the method if the feature is not supported. |
VXA_MAX_DEVICES_EXCEEDED | 8 | Returned by the method if there is an attempt to create more than MAX_VXA_DEVICE_COUNT devices. |
VXA_NO_BUFFERS_AVAILABLE | 9 | Returned by the method if there are no more render buffers available. |
VXA_ACCESS_DENIED | 10 | Returned by the method if the app does not have microphone access permission. |
Error codes that are returned by the VXA subsystem.
enum VXA_CAPTURE_FLAGS
Enumerator | Value | Description |
---|---|---|
VXA_CAPTURE_OPEN_FLAG_USE_AEC | 0x00000001 | Use acoustic echo cancellation. |
VXA_CAPTURE_OPEN_FLAG_USE_AGC | 0x00000002 | Use automatic gain control. |
Values passed when opening capture devices.
enum vx_channel_rolloff_curve_type
Enumerator | Value | Description |
---|---|---|
channel_rolloff_curve_type_none | 0 | No distance-based attenuation is applied. All speakers are rendered as if they were in the same position as the listener. |
channel_rolloff_curve_type_inverse_distance_clamped | 1 | The attenuation increases in inverse proportion to the distance. The rolloff factor is the inverse of the slope of the attenuation curve. |
channel_rolloff_curve_type_linear_distance_clamped | 2 | The attenuation increases in linear proportion to the distance. The rolloff factor is the negative slope of the attenuation curve. |
channel_rolloff_curve_type_exponential_distance_clamped | 3 | The attenuation increases in inverse proportion to the distance raised to the power of the rolloff factor. |
Rolloff curve types to serve as the distance model for a positional channel.
This tells the server which algorithm to use when computing attenuation.
enum vx_opus_vbr_mode
Enumerator | Value | Description |
---|---|---|
opus_mode_cbr | 0 | A constant bitrate mode. |
opus_mode_lvbr | 1 | A limited variable bitrate mode. |
opus_mode_vbr | 2 | A variable bitrate mode. |
Values for OPUS VBR mode.
enum vx_opus_bandwidth
Enumerator | Value | Description |
---|---|---|
opus_bandwidth_auto | 0 | Automatic bandwidth (default). |
opus_bandwidth_nb | 1 | Narrowband, 4kHz. |
opus_bandwidth_mb | 2 | Medium-band, 6kHz. |
opus_bandwidth_wb | 3 | Wideband, 8kHz. |
opus_bandwidth_swb | 4 | Super-wideband, 12 kHz. |
opus_bandwidth_fb | 5 | Fullband, 20 kHz. |
Values for OPUS bandwidth.
enum vx_crash_test_type
Enumerator | Value | Description |
---|---|---|
vx_crash_access_zero_pointer | 0 | Crash on access to the zero pointer. |
vx_crash_access_violation | 1 | Crash on access to a restricted page. |
vx_crash_stack_overflow | 2 | Overflow the program stack. |
vx_crash_heap_corruption | 3 | Corrupt the heap and try to allocate more memory. |
Values for vx_crash_test( crash type ).
enum vx_path_id
Enumerator | Value | Description |
---|---|---|
path_cache_folder | 0 | The path to the folder where internal SDK data is stored. Ends with a platform-specific separator. |
The type of path used by the SDK.
enum vx_noise_suppression_level
Enumerator | Value | Description |
---|---|---|
noise_suppression_low | 0 | |
noise_suppression_moderate | 1 | |
noise_suppression_high | 2 | |
noise_suppression_very_high | 3 |
enum vx_tts_destination
Enumerator | Value | Description |
---|---|---|
tts_dest_remote_transmission | 0 | Immediately send to participants in connected sessions. Mixes new messages with any other ongoing messages. |
tts_dest_local_playback | 1 | Immediately play back locally on a render device (for example, speakers). Mixes new messages with any other ongoing messages. |
tts_dest_remote_transmission_with_local_playback | 2 | Immediately play back locally on a render device and send to participants in connected sessions. Mixes new messages with any other ongoing messages. |
tts_dest_queued_remote_transmission | 3 | Send to participants in connected sessions, or enqueue if there is already an ongoing message playing in this destination. |
tts_dest_queued_local_playback | 4 | Play back locally on a render device (for example, speakers), or enqueue if there is already an ongoing message playing in this destination. |
tts_dest_queued_remote_transmission_with_local_playback | 5 | Play back locally on a render device and send to participants in connected sessions. Enqueue if there is already an ongoing message playing in this destination. |
tts_dest_screen_reader | 6 | Immediately play back locally on a render device (for example, speakers). Replaces the currently playing message in this destination. |
Text-to-speech (TTS) definitions.
Destination definitions used by the text-to-speech subsystem.
enum vx_tts_status
Enumerator | Value | Description |
---|---|---|
tts_status_success | 0 | Successful TTS operation. |
tts_error_invalid_engine_type | -1001 | Invalid TTS engine type. |
tts_error_engine_allocation_failed | -1002 | TTS engine allocation failed. |
tts_error_not_supported | -1003 | TTS operation is not supported or is not yet implemented. |
tts_error_max_characters_exceeded | -1004 | Message exceeded the maximum number of input text characters. The maximum number of characters is 200. |
tts_error_utterance_below_min_duration | -1005 | The text-to-speech utterance was below 20ms after synthesis and was ignored. |
tts_status_input_text_was_enqueued | -1006 | TTS message was enqueued because there is another TTS message already playing. |
tts_error_sdk_not_initialized | -1007 | SDK is not initialized. Initialize the SDK and retry. |
tts_error_destination_queue_is_full | -1008 | Destination queue is full. Destination queue limit is 10 items. |
tts_status_enqueue_not_necessary | -1009 | Queue is empty and no active TTS message is playing. Ready for injection. |
tts_error_utterance_not_found | -1010 | Utterance was not found. |
tts_error_manager_not_found | -1011 | Text-to-speech manager was not found. |
tts_error_invalid_argument | -1012 | One or more arguments are invalid. |
tts_error_internal | -1013 | Internal error. |
Status codes that are returned by the text-to-speech subsystem.
enum vx_tts_engine_type
Enumerator | Value | Description |
---|---|---|
tts_engine_vivox_default | 0 | Vivox Default TTS Engine. |
Text-to-speech engine types.
typedef VX_COOKIE
typedef char* VX_COOKIE;
A request cookie type.
Used when passing in requests to the SDK.
typedef VX_HANDLE
typedef VX_COOKIE VX_HANDLE;
A generic handle type for state objects (for example: accounts, connectors, sessions, or session groups).
typedef VX_SDK_HANDLE
typedef unsigned int VX_SDK_HANDLE;
typedef vx_time_t
typedef time_t vx_time_t;
typedef vx_message_base_t
typedef struct vx_message_base vx_message_base_t;
typedef vx_req_base_t
typedef struct vx_req_base vx_req_base_t;
typedef vx_resp_base_t
typedef struct vx_resp_base vx_resp_base_t;
typedef vx_evt_base_t
typedef struct vx_evt_base vx_evt_base_t;
typedef vx_state_buddy_contact_t
typedef struct vx_state_buddy_contact vx_state_buddy_contact_t;
typedef vx_state_buddy_contact_ref_t
typedef vx_state_buddy_contact_t* vx_state_buddy_contact_ref_t;
typedef vx_state_buddy_contact_list_t
typedef vx_state_buddy_contact_ref_t* vx_state_buddy_contact_list_t;
typedef vx_state_buddy_t
typedef struct vx_state_buddy vx_state_buddy_t;
typedef vx_state_buddy_ref_t
typedef vx_state_buddy_t* vx_state_buddy_ref_t;
typedef vx_state_buddy_list_t
typedef vx_state_buddy_ref_t* vx_state_buddy_list_t;
typedef vx_state_buddy_group_t
typedef struct vx_state_buddy_group vx_state_buddy_group_t;
typedef vx_state_buddy_group_ref_t
typedef vx_state_buddy_group_t* vx_state_buddy_group_ref_t;
typedef vx_state_buddy_group_list_t
typedef vx_state_buddy_group_ref_t* vx_state_buddy_group_list_t;
typedef vx_participant_t
typedef struct vx_participant vx_participant_t;
Channel participant.
typedef vx_participant_ref_t
typedef vx_participant_t* vx_participant_ref_t;
Creates a participant list with the given size.
typedef vx_participant_list_t
typedef vx_participant_ref_t* vx_participant_list_t;
typedef vx_state_participant_t
typedef struct vx_state_participant vx_state_participant_t;
State participant.
Only used for state dump.
typedef vx_state_participant_ref_t
typedef vx_state_participant_t* vx_state_participant_ref_t;
Creates a state_participant list with the given size.
typedef vx_state_participant_list_t
typedef vx_state_participant_ref_t* vx_state_participant_list_t;
typedef vx_state_session_t
typedef struct vx_state_session vx_state_session_t;
State session.
Only used for state dump.
typedef vx_state_session_ref_t
typedef vx_state_session_t* vx_state_session_ref_t;
Creates a state_session list with the given size.
typedef vx_state_session_list_t
typedef vx_state_session_ref_t* vx_state_session_list_t;
typedef vx_state_sessiongroup_t
typedef struct vx_state_sessiongroup vx_state_sessiongroup_t;
State session group.
Only used for state dump.
typedef vx_state_sessiongroup_ref_t
typedef vx_state_sessiongroup_t* vx_state_sessiongroup_ref_t;
Creates a state_sessiongroup list with the given size.
typedef vx_state_sessiongroup_list_t
typedef vx_state_sessiongroup_ref_t* vx_state_sessiongroup_list_t;
typedef vx_state_account_t
typedef struct vx_state_account vx_state_account_t;
State account.
Only used for state dump.
typedef vx_state_account_ref_t
typedef vx_state_account_t* vx_state_account_ref_t;
Creates a state_account list with the given size.
typedef vx_state_account_list_t
typedef vx_state_account_ref_t* vx_state_account_list_t;
typedef vx_state_connector_t
typedef struct vx_state_connector vx_state_connector_t;
State connector.
Only used for state dump.
typedef vx_state_connector_ref_t
typedef vx_state_connector_t* vx_state_connector_ref_t;
Creates a state_connector list with the given size.
typedef vx_state_connector_list_t
typedef vx_state_connector_ref_t* vx_state_connector_list_t;
typedef vx_channel_t
typedef struct vx_channel vx_channel_t;
Channel struct.
typedef vx_channel_ref_t
typedef vx_channel_t* vx_channel_ref_t;
typedef vx_channel_list_t
typedef vx_channel_ref_t* vx_channel_list_t;
typedef vx_voice_font_t
typedef struct vx_voice_font vx_voice_font_t;
Voice font struct.
typedef vx_voice_font_ref_t
typedef vx_voice_font_t* vx_voice_font_ref_t;
typedef vx_voice_font_list_t
typedef vx_voice_font_ref_t* vx_voice_font_list_t;
typedef vx_block_rule_t
typedef struct vx_block_rule vx_block_rule_t;
typedef vx_block_rule_ref_t
typedef vx_block_rule_t* vx_block_rule_ref_t;
typedef vx_block_rules_t
typedef vx_block_rule_ref_t* vx_block_rules_t;
typedef vx_auto_accept_rule_t
typedef struct vx_auto_accept_rule vx_auto_accept_rule_t;
typedef vx_auto_accept_rule_ref_t
typedef vx_auto_accept_rule_t* vx_auto_accept_rule_ref_t;
typedef vx_auto_accept_rules_t
typedef vx_auto_accept_rule_ref_t* vx_auto_accept_rules_t;
typedef vx_user_channel_t
typedef struct vx_user_channel vx_user_channel_t;
typedef vx_user_channel_ref_t
typedef vx_user_channel_t* vx_user_channel_ref_t;
typedef vx_user_channels_t
typedef vx_user_channel_ref_t* vx_user_channels_t;
typedef vx_connectivity_test_result_t
typedef struct vx_connectivity_test_result vx_connectivity_test_result_t;
test_type - Enumeration that defines the test performed (for values, see appendix ?15.8).
error_code - Enumeration that defines the error or success of the test (for values, see appendix ?15.9). test_additional_info - Any additional information for this test. For example, this could be the IP addresses used, port numbers, or error information.
typedef vx_connectivity_test_result_ref_t
typedef vx_connectivity_test_result_t* vx_connectivity_test_result_ref_t;
typedef vx_connectivity_test_results_t
typedef vx_connectivity_test_result_ref_t* vx_connectivity_test_results_t;
typedef vx_account_t
typedef struct vx_account vx_account_t;
typedef vx_device_type_t
typedef enum vx_device_type vx_device_type_t;
The type of device.
typedef vx_device_t
typedef struct vx_device vx_device_t;
typedef vx_device_ref_t
typedef vx_device_t* vx_device_ref_t;
typedef vx_devices_t
typedef vx_device_ref_t* vx_devices_t;
typedef vx_buddy_t
typedef struct vx_buddy vx_buddy_t;
typedef vx_buddy_ref_t
typedef vx_buddy_t* vx_buddy_ref_t;
typedef vx_buddy_list_t
typedef vx_buddy_ref_t* vx_buddy_list_t;
typedef vx_group_t
typedef struct vx_group vx_group_t;
typedef vx_group_ref_t
typedef vx_group_t* vx_group_ref_t;
typedef vx_group_list_t
typedef vx_group_ref_t* vx_group_list_t;
typedef vx_name_value_pair_t
typedef struct vx_name_value_pair vx_name_value_pair_t;
typedef vx_name_value_pair_ref_t
typedef vx_name_value_pair_t* vx_name_value_pair_ref_t;
typedef vx_name_value_pairs_t
typedef vx_name_value_pair_ref_t* vx_name_value_pairs_t;
typedef vx_conversation_t
typedef struct vx_conversation vx_conversation_t;
typedef vx_conversation_ref_t
typedef vx_conversation_t* vx_conversation_ref_t;
typedef vx_conversation_list_t
typedef vx_conversation_ref_t* vx_conversation_list_t;
typedef vx_stat_sample_t
typedef struct vx_stat_sample vx_stat_sample_t;
typedef vx_stat_thread_t
typedef struct vx_stat_thread vx_stat_thread_t;
typedef vx_system_stats_t
typedef struct vx_system_stats vx_system_stats_t;
typedef vx_application_state_notification_type_t
typedef enum vx_application_state_notification_type vx_application_state_notification_type_t;
Indicates the state of the application.
Note: Valid only on mobile platforms.
typedef vxa_status_t
typedef int vxa_status_t;
The common return code for vxa* methods.
typedef vxa_capture_device_stats_t
typedef struct vxa_capture_device_stats_t vxa_capture_device_stats_t;
Get statistics that are useful for debugging audio capture issues.
typedef vxa_render_device_stats_t
typedef struct vxa_render_device_stats_t vxa_render_device_stats_t;
Get statistics that are useful for debugging audio render issues.
typedef vx_crash_test_type_t
typedef enum vx_crash_test_type vx_crash_test_type_t;
Values for vx_crash_test( crash type ).
typedef vx_vxd_t
typedef struct vx_vxd vx_vxd_t;
The Vivox eXtended Data (VXD) that is received.
typedef vx_tts_manager_id
typedef unsigned int vx_tts_manager_id;
typedef vx_tts_utterance_id
typedef unsigned int vx_tts_utterance_id;
typedef vx_tts_voice_id
typedef unsigned int vx_tts_voice_id;
typedef vx_tts_utterance_impl_t
typedef struct vx_tts_utterance_impl vx_tts_utterance_impl_t;
typedef vx_tts_utterance_t
typedef struct vx_tts_utterance vx_tts_utterance_t;
Text-to-speech utterance.
typedef vx_tts_voice_t
typedef struct vx_tts_voice vx_tts_voice_t;
Text-to-speech voice.
Functions Documentation
function vx_cookie_create
VIVOXSDK_DLLEXPORT int vx_cookie_create(
const char * value,
VX_COOKIE * cookie
)
Allocate and initialize a cookie.
function vx_cookie_free
VIVOXSDK_DLLEXPORT int vx_cookie_free(
VX_COOKIE * cookie
)
Free a cookie.
function vx_state_buddy_contact_create
VIVOXSDK_DLLEXPORT int vx_state_buddy_contact_create(
vx_state_buddy_contact_t ** contact
)
function vx_state_buddy_contact_free
VIVOXSDK_DLLEXPORT int vx_state_buddy_contact_free(
vx_state_buddy_contact_t * contact
)
function vx_state_buddy_contact_list_create
VIVOXSDK_DLLEXPORT int vx_state_buddy_contact_list_create(
int size,
vx_state_buddy_contact_list_t * list_out
)
function vx_state_buddy_contact_list_free
VIVOXSDK_DLLEXPORT int vx_state_buddy_contact_list_free(
vx_state_buddy_contact_t ** list,
int size
)
function vx_state_buddy_create
VIVOXSDK_DLLEXPORT int vx_state_buddy_create(
vx_state_buddy_t ** buddy
)
function vx_state_buddy_free
VIVOXSDK_DLLEXPORT int vx_state_buddy_free(
vx_state_buddy_t * buddy
)
function vx_state_buddy_list_create
VIVOXSDK_DLLEXPORT int vx_state_buddy_list_create(
int size,
vx_state_buddy_list_t * list_out
)
function vx_state_buddy_list_free
VIVOXSDK_DLLEXPORT int vx_state_buddy_list_free(
vx_state_buddy_t ** list,
int size
)
function vx_state_buddy_group_create
VIVOXSDK_DLLEXPORT int vx_state_buddy_group_create(
vx_state_buddy_group_t ** group
)
function vx_state_buddy_group_free
VIVOXSDK_DLLEXPORT int vx_state_buddy_group_free(
vx_state_buddy_group_t * group
)
function vx_state_buddy_group_list_create
VIVOXSDK_DLLEXPORT int vx_state_buddy_group_list_create(
int size,
vx_state_buddy_group_list_t * list_out
)
function vx_state_buddy_group_list_free
VIVOXSDK_DLLEXPORT int vx_state_buddy_group_list_free(
vx_state_buddy_group_t ** list,
int size
)
function vx_participant_create
VIVOXSDK_DLLEXPORT int vx_participant_create(
vx_participant_t ** participant
)
function vx_participant_free
VIVOXSDK_DLLEXPORT int vx_participant_free(
vx_participant_t * participant
)
function vx_participant_list_create
VIVOXSDK_DLLEXPORT int vx_participant_list_create(
int size,
vx_participant_list_t * list_out
)
function vx_participant_list_free
VIVOXSDK_DLLEXPORT int vx_participant_list_free(
vx_participant_t ** list,
int size
)
function vx_state_participant_create
VIVOXSDK_DLLEXPORT int vx_state_participant_create(
vx_state_participant_t ** state_participant
)
function vx_state_participant_free
VIVOXSDK_DLLEXPORT int vx_state_participant_free(
vx_state_participant_t * state_participant
)
function vx_state_participant_list_create
VIVOXSDK_DLLEXPORT int vx_state_participant_list_create(
int size,
vx_state_participant_list_t * list_out
)
function vx_state_participant_list_free
VIVOXSDK_DLLEXPORT int vx_state_participant_list_free(
vx_state_participant_t ** list,
int size
)
function vx_state_session_create
VIVOXSDK_DLLEXPORT int vx_state_session_create(
vx_state_session_t ** state_session
)
function vx_state_session_free
VIVOXSDK_DLLEXPORT int vx_state_session_free(
vx_state_session_t * state_session
)
function vx_state_session_list_create
VIVOXSDK_DLLEXPORT int vx_state_session_list_create(
int size,
vx_state_session_list_t * list_out
)
function vx_state_session_list_free
VIVOXSDK_DLLEXPORT int vx_state_session_list_free(
vx_state_session_t ** list,
int size
)
function vx_state_sessiongroup_create
VIVOXSDK_DLLEXPORT int vx_state_sessiongroup_create(
vx_state_sessiongroup_t ** state_sessiongroup
)
function vx_state_sessiongroup_free
VIVOXSDK_DLLEXPORT int vx_state_sessiongroup_free(
vx_state_sessiongroup_t * state_sessiongroup
)
function vx_state_sessiongroup_list_create
VIVOXSDK_DLLEXPORT int vx_state_sessiongroup_list_create(
int size,
vx_state_sessiongroup_list_t * list_out
)
function vx_state_sessiongroup_list_free
VIVOXSDK_DLLEXPORT int vx_state_sessiongroup_list_free(
vx_state_sessiongroup_t ** list,
int size
)
function vx_state_account_create
VIVOXSDK_DLLEXPORT int vx_state_account_create(
vx_state_account_t ** state_account
)
function vx_state_account_free
VIVOXSDK_DLLEXPORT int vx_state_account_free(
vx_state_account_t * state_account
)
function vx_state_account_list_create
VIVOXSDK_DLLEXPORT int vx_state_account_list_create(
int size,
vx_state_account_list_t * list_out
)
function vx_state_account_list_free
VIVOXSDK_DLLEXPORT int vx_state_account_list_free(
vx_state_account_t ** list,
int size
)
function vx_state_connector_create
VIVOXSDK_DLLEXPORT int vx_state_connector_create(
vx_state_connector_t ** state_connector
)
function vx_state_connector_free
VIVOXSDK_DLLEXPORT int vx_state_connector_free(
vx_state_connector_t * state_connector
)
function vx_state_connector_list_create
VIVOXSDK_DLLEXPORT int vx_state_connector_list_create(
int size,
vx_state_connector_list_t * list_out
)
function vx_state_connector_list_free
VIVOXSDK_DLLEXPORT int vx_state_connector_list_free(
vx_state_connector_t ** list,
int size
)
function vx_channel_create
VIVOXSDK_DLLEXPORT int vx_channel_create(
vx_channel_t ** channel
)
function vx_channel_free
VIVOXSDK_DLLEXPORT int vx_channel_free(
vx_channel_t * channel
)
function vx_channel_list_create
VIVOXSDK_DLLEXPORT int vx_channel_list_create(
int size,
vx_channel_list_t * list_out
)
function vx_channel_list_free
VIVOXSDK_DLLEXPORT int vx_channel_list_free(
vx_channel_t ** list,
int size
)
function vx_voice_font_create
VIVOXSDK_DLLEXPORT int vx_voice_font_create(
vx_voice_font_t ** channel
)
function vx_voice_font_free
VIVOXSDK_DLLEXPORT int vx_voice_font_free(
vx_voice_font_t * channel
)
function vx_voice_font_list_create
VIVOXSDK_DLLEXPORT int vx_voice_font_list_create(
int size,
vx_voice_font_list_t * list_out
)
function vx_voice_font_list_free
VIVOXSDK_DLLEXPORT int vx_voice_font_list_free(
vx_voice_font_t ** list,
int size
)
function vx_string_list_create
VIVOXSDK_DLLEXPORT int vx_string_list_create(
int size,
char *** list_out
)
function vx_string_list_free
VIVOXSDK_DLLEXPORT int vx_string_list_free(
char ** list
)
function vx_block_rule_create
VIVOXSDK_DLLEXPORT int vx_block_rule_create(
vx_block_rule_t ** block_rule
)
function vx_block_rule_free
VIVOXSDK_DLLEXPORT int vx_block_rule_free(
vx_block_rule_t * block_rule
)
function vx_block_rules_create
VIVOXSDK_DLLEXPORT int vx_block_rules_create(
int size,
vx_block_rules_t * list_out
)
function vx_block_rules_free
VIVOXSDK_DLLEXPORT int vx_block_rules_free(
vx_block_rule_t ** list,
int size
)
function vx_auto_accept_rule_create
VIVOXSDK_DLLEXPORT int vx_auto_accept_rule_create(
vx_auto_accept_rule_t ** auto_accept_rule
)
function vx_auto_accept_rule_free
VIVOXSDK_DLLEXPORT int vx_auto_accept_rule_free(
vx_auto_accept_rule_t * auto_accept_rule
)
function vx_auto_accept_rules_create
VIVOXSDK_DLLEXPORT int vx_auto_accept_rules_create(
int size,
vx_auto_accept_rules_t * list_out
)
function vx_auto_accept_rules_free
VIVOXSDK_DLLEXPORT int vx_auto_accept_rules_free(
vx_auto_accept_rule_t ** list,
int size
)
function vx_user_channel_create
VIVOXSDK_DLLEXPORT int vx_user_channel_create(
vx_user_channel_t ** user_channel
)
function vx_user_channel_free
VIVOXSDK_DLLEXPORT int vx_user_channel_free(
vx_user_channel_t * user_channel
)
function vx_user_channels_create
VIVOXSDK_DLLEXPORT int vx_user_channels_create(
int size,
vx_user_channels_t * list_out
)
function vx_user_channels_free
VIVOXSDK_DLLEXPORT int vx_user_channels_free(
vx_user_channel_t ** list,
int size
)
function vx_connectivity_test_result_create
VIVOXSDK_DLLEXPORT int vx_connectivity_test_result_create(
vx_connectivity_test_result_t ** connectivity_test_result,
ND_TEST_TYPE tt
)
function vx_connectivity_test_result_free
VIVOXSDK_DLLEXPORT int vx_connectivity_test_result_free(
vx_connectivity_test_result_t * connectivity_test_result
)
function vx_connectivity_test_results_create
VIVOXSDK_DLLEXPORT int vx_connectivity_test_results_create(
int size,
vx_connectivity_test_results_t * list_out
)
function vx_connectivity_test_results_free
VIVOXSDK_DLLEXPORT int vx_connectivity_test_results_free(
vx_connectivity_test_result_t ** list,
int size
)
function vx_account_create
VIVOXSDK_DLLEXPORT int vx_account_create(
vx_account_t ** account
)
function vx_account_free
VIVOXSDK_DLLEXPORT int vx_account_free(
vx_account_t * account
)
function vx_device_create
VIVOXSDK_DLLEXPORT int vx_device_create(
vx_device_t ** device
)
function vx_device_free
VIVOXSDK_DLLEXPORT int vx_device_free(
vx_device_t * device
)
function vx_devices_create
VIVOXSDK_DLLEXPORT int vx_devices_create(
int size,
vx_devices_t * list_out
)
function vx_devices_free
VIVOXSDK_DLLEXPORT int vx_devices_free(
vx_device_t ** list,
int size
)
function vx_buddy_create
VIVOXSDK_DLLEXPORT int vx_buddy_create(
vx_buddy_t ** buddy
)
function vx_buddy_free
VIVOXSDK_DLLEXPORT int vx_buddy_free(
vx_buddy_t * buddy
)
function vx_buddy_list_create
VIVOXSDK_DLLEXPORT int vx_buddy_list_create(
int size,
vx_buddy_list_t * list_out
)
function vx_buddy_list_free
VIVOXSDK_DLLEXPORT int vx_buddy_list_free(
vx_buddy_t ** list,
int size
)
function vx_group_create
VIVOXSDK_DLLEXPORT int vx_group_create(
vx_group_t ** group
)
function vx_group_free
VIVOXSDK_DLLEXPORT int vx_group_free(
vx_group_t * group
)
function vx_group_list_create
VIVOXSDK_DLLEXPORT int vx_group_list_create(
int size,
vx_group_list_t * list_out
)
function vx_group_list_free
VIVOXSDK_DLLEXPORT int vx_group_list_free(
vx_group_t ** list,
int size
)
function vx_name_value_pair_create
VIVOXSDK_DLLEXPORT int vx_name_value_pair_create(
vx_name_value_pair_t ** nvpair
)
function vx_name_value_pair_free
VIVOXSDK_DLLEXPORT int vx_name_value_pair_free(
vx_name_value_pair_t * nvpair
)
function vx_name_value_pairs_create
VIVOXSDK_DLLEXPORT int vx_name_value_pairs_create(
int size,
vx_name_value_pairs_t * list_out
)
function vx_name_value_pairs_free
VIVOXSDK_DLLEXPORT int vx_name_value_pairs_free(
vx_name_value_pair_t ** list,
int size
)
function vx_conversation_create
VIVOXSDK_DLLEXPORT int vx_conversation_create(
vx_conversation_t ** conversation
)
function vx_conversation_free
VIVOXSDK_DLLEXPORT int vx_conversation_free(
vx_conversation_t * conversation
)
function vx_conversation_list_create
VIVOXSDK_DLLEXPORT int vx_conversation_list_create(
int size,
vx_conversation_list_t * list_out
)
function vx_conversation_list_free
VIVOXSDK_DLLEXPORT int vx_conversation_list_free(
int size,
vx_conversation_t ** list
)
function vx_strdup
VIVOXSDK_DLLEXPORT char * vx_strdup(
const char *
)
Allocate string data to send to the SDK.
Note: This function will not work until vx_initialize3() is called and after vx_uninitialize() is called.
function vx_free
VIVOXSDK_DLLEXPORT int vx_free(
char *
)
Free string data returned to the application.
Note: This function will not work until vx_initialize3() is called and after vx_uninitialize() is called.
This function is rarely used in practice.
function vx_unallocate
VIVOXSDK_DLLEXPORT int vx_unallocate(
void * p
)
function vx_allocate
VIVOXSDK_DLLEXPORT void * vx_allocate(
size_t nBytes
)
function vx_reallocate
VIVOXSDK_DLLEXPORT void * vx_reallocate(
void * p,
size_t nBytes
)
function vx_calloc
VIVOXSDK_DLLEXPORT void * vx_calloc(
size_t num,
size_t bytesPerElement
)
function vx_allocate_aligned
VIVOXSDK_DLLEXPORT void * vx_allocate_aligned(
size_t alignment,
size_t size
)
function vx_unallocate_aligned
VIVOXSDK_DLLEXPORT int vx_unallocate_aligned(
void * p
)
function vx_get_message
VIVOXSDK_DLLEXPORT int vx_get_message(
vx_message_base_t ** message
)
The VxSDK polling function.
Parameters:
- message [out] The object containing the message data.
Return: The status of the poll: VX_GET_MESSAGE_AVAILABLE = Success, VX_GET_MESSAGE_FAILURE = Failure, VX_GET_MESSAGE_NO_MESSAGE = No Message Available
This should be called periodically to check for any incoming events.
function vx_issue_request
VIVOXSDK_DLLEXPORT int vx_issue_request(
vx_req_base_t * request
)
Parameters:
- request The request object to execute. This is of one of the vx_req_* structs.
Return: The success status of the request.
function vx_issue_request2
VIVOXSDK_DLLEXPORT int vx_issue_request2(
vx_req_base_t * request
)
Execute the given request.
Parameters:
- request The request object to execute. This is of one of the vx_req_* structs.
Return: The success status of the request.
This function returns an error if the SDK is not initialized (see vx_initialize3()).
function vx_issue_request3
VIVOXSDK_DLLEXPORT int vx_issue_request3(
vx_req_base_t * request,
int * request_count
)
Execute the given request.
Parameters:
- request The request object to execute. This is of one of the vx_req_* structs.
- request_count If non-null, vx_issue_request3 outputs the number of requests that are still outstanding. Requests at a rate of 12 requests per second - an application can use this value to determine if the application is issuing requests at an unacceptable rate.
Return: The success status of the request.
This function returns an error if the SDK is not initialized (see vx_initialize3()).
function vx_request_to_xml
VIVOXSDK_DLLEXPORT int vx_request_to_xml(
void * request,
char ** xml
)
Get the XML for the given request.
Parameters:
- request The request object.
- xml [out] The XML string.
function vx_xml_to_request
VIVOXSDK_DLLEXPORT vx_request_type vx_xml_to_request(
const char * xml,
void ** request,
char ** error
)
Get a request for the given XML string.
Parameters:
- xml The XML string.
- request [out] The request struct.
- error [out] The XML parse error string (if any error occurs). NULL otherwise.
Return: The request struct type. If no struct could be created from the XML, req_none is returned.
function vx_response_to_xml
VIVOXSDK_DLLEXPORT int vx_response_to_xml(
void * response,
char ** xml
)
Get the XML for the given response.
Parameters:
- response The response object.
- xml [out] The XML string.
function vx_xml_to_response
VIVOXSDK_DLLEXPORT vx_response_type vx_xml_to_response(
const char * xml,
void ** response,
char ** error
)
Get a response for the given XML string.
Parameters:
- xml The XML string.
- response [out] The response struct.
- error [out] The XML parse error string (if any error occurs). NULL otherwise.
Return: The response struct type. If no struct could be created from the XML, resp_none is returned.
function vx_event_to_xml
VIVOXSDK_DLLEXPORT int vx_event_to_xml(
void * event,
char ** xml
)
Get the XML for the given event.
Parameters:
- event The event object.
- xml [out] The XML string.
function vx_xml_to_event
VIVOXSDK_DLLEXPORT vx_event_type vx_xml_to_event(
const char * xml,
void ** event,
char ** error
)
Get a event for the given XML string.
Parameters:
- xml The XML string.
- event [out] The event struct.
- error [out] The XML parse error string (if any error occurs). NULL otherwise.
Return: The event struct type. If no struct could be created from the XML, req_none is returned.
function vx_get_message_type
VIVOXSDK_DLLEXPORT vx_message_type vx_get_message_type(
const char * xml
)
Determine whether the XML refers to a request, response, or event.
function vx_get_time_ms
VIVOXSDK_DLLEXPORT unsigned long long vx_get_time_ms(
void
)
Get Millisecond Counter.
function vx_get_time_milli_seconds
VIVOXSDK_DLLEXPORT unsigned long long vx_get_time_milli_seconds(
void
)
Get Millisecond Counter.
function vx_get_time_micro_seconds
VIVOXSDK_DLLEXPORT unsigned long long vx_get_time_micro_seconds(
void
)
Get Microsecond Counter.
function vx_sleep_milli_seconds
VIVOXSDK_DLLEXPORT long long vx_sleep_milli_seconds(
unsigned long long milli_seconds
)
Sleep for the specified number of milliseconds.
Parameters:
- milli_seconds [in] Duration to sleep in milliseconds.
Return: The difference between the actual and the specified sleep time in milliseconds.
function vx_register_message_notification_handler
VIVOXSDK_DLLEXPORT int vx_register_message_notification_handler(
void(*)(void *) pf_handler,
void * cookie
)
Register a callback that is called when a message is placed in the queue.
The application should use this to signal the main application thread that will then wakeup and call vx_get_message;
function vx_unregister_message_notification_handler
VIVOXSDK_DLLEXPORT int vx_unregister_message_notification_handler(
void(*)(void *) pf_handler,
void * cookie
)
Unregister a notification handler.
function vx_wait_for_message
VIVOXSDK_DLLEXPORT vx_message_base_t * vx_wait_for_message(
int msTimeout
)
Block the caller until a message is available.
Returns NULL if no message was available within the allotted time.
function vx_register_logging_initialization
VIVOXSDK_DLLEXPORT int vx_register_logging_initialization(
vx_log_type log_type,
const char * log_folder,
const char * log_filename_prefix,
const char * log_filename_suffix,
int log_level,
void(*)(const char *source, const char *level, const char *message) pf_handler
)
Register a callback that is called to initialize logging.
The application should use this to signal the main application thread that will then wakeup and call vx_get_message;
function vx_get_log_file_path
VIVOXSDK_DLLEXPORT char * vx_get_log_file_path(
void
)
Deprecated:
File logging is not supported. Get the SDK log file path.
function vx_unregister_logging_handler
VIVOXSDK_DLLEXPORT int vx_unregister_logging_handler(
void(*)(void *) pf_handler,
void * cookie
)
Unregister the logging callback notification handler.
Parameters:
- pf_handler - OBSOLETE AND UNUSED
- cookie - OBSOLETE AND UNUSED
Because the parameters are reserved for future use, pass NULL for each of the parameters (for example: vx_unregister_logging_handler(0, 0);). If a logging handler is registered, then it must be unregistered before shutting down the SDK.
function vx_create_account
VIVOXSDK_DLLEXPORT int vx_create_account(
const char * acct_mgmt_server,
const char * admin_name,
const char * admin_pw,
const char * uname,
const char * pw
)
function vx_get_crash_dump_count
VIVOXSDK_DLLEXPORT int vx_get_crash_dump_count(
void
)
The number of crash dumps stored on disk.
Note: Not supported on mobile or console platforms.
function vx_set_crash_dump_generation_enabled
VIVOXSDK_DLLEXPORT int vx_set_crash_dump_generation_enabled(
int value
)
Enable crash dump generation.
Note: Not supported on mobile or console platforms.
function vx_get_crash_dump_generation
VIVOXSDK_DLLEXPORT int vx_get_crash_dump_generation(
void
)
Determine if crash dump generation is enabled.
Note: Not supported on mobile or console platforms.
function vx_read_crash_dump
VIVOXSDK_DLLEXPORT char * vx_read_crash_dump(
int index
)
Get the Base64-encoded crash dump information.
Note: Not supported on mobile or console platforms.
function vx_get_crash_dump_timestamp
VIVOXSDK_DLLEXPORT time_t vx_get_crash_dump_timestamp(
int index
)
Get the timestamp of a crash.
Note: Not supported on mobile or console platforms.
function vx_delete_crash_dump
VIVOXSDK_DLLEXPORT int vx_delete_crash_dump(
int index
)
Delete the crash dump.
Note: Not supported on mobile or console platforms.
function vx_on_application_exit
VIVOXSDK_DLLEXPORT int vx_on_application_exit(
void
)
Some applications may need to call this routine before exiting.
Note: Applications must call vx_uninitialize() before calling this routine.
Attention: PC, console, and mobile applications are not required to call this routine because it has no effect for applications on these platforms.
function vx_get_sdk_version_info
VIVOXSDK_DLLEXPORT const char * vx_get_sdk_version_info(
void
)
Get the SDK version info.
function vx_get_sdk_version_info_ex
VIVOXSDK_DLLEXPORT const char * vx_get_sdk_version_info_ex(
void
)
Get the SDK extended version info.
function vx_apply_font_to_file
VIVOXSDK_DLLEXPORT int vx_apply_font_to_file(
const char * fontDefinition,
const char * inputFile,
const char * outputFile
)
Apply a Vivox voice font to a .wav file.
Parameters:
- fontDefinition - A string that contains the font "definition" in XML format.
- inputFile - A string that contains the path to the input .wav file, which contains the "unmodified" voice.
- outputFile - A string that contains the path to the output .wav file with the font applied.
Return: - 0 if successful, non-zero if failed.
function vx_apply_font_to_file_return_energy_ratio
VIVOXSDK_DLLEXPORT int vx_apply_font_to_file_return_energy_ratio(
const char * fontDefinition,
const char * inputFile,
const char * outputFile,
double * energyRatio
)
Apply a Vivox voice font to a .wav file and return the energy ratio (Output Energy/Input Energy).
Parameters:
- fontDefinition - A string that contains the font "definition" in XML format.
- inputFile - A string that contains the path to the input .wav file, which contains the "unmodified" voice.
- outputFile - A string that contains the path to the output .wav file with the font applied.
- energyRatio - The Raw Energy ratio between the input and output audio.
Return: - 0 if successful, non-zero if failed.
function vx_apply_font_to_vxz_file_return_energy_ratio
VIVOXSDK_DLLEXPORT int vx_apply_font_to_vxz_file_return_energy_ratio(
const char * fontDefinition,
const char * inputFile,
const char * outputFile,
double * energyRatio
)
Apply a Vivox voice font to a .vxz file and return the energy ratio (Output Energy/Input Energy)
Parameters:
- fontDefinition - A string that contains the font "definition" in XML format.
- inputFile - A string that contains the path to the input .vxz file, which contans the "unmodified" voice.
- outputFile - A string that contains the path to the output .wav file with the font applied.
- energyRatio - The Raw Energy ratio between the input and output audio.
Return: - 0 if successful, non-zero if failed.
function vx_copy_audioBuffer
VIVOXSDK_DLLEXPORT void * vx_copy_audioBuffer(
void * audioBufferPtr
)
Create a copy of the internal local audio buffer associated with the vx_req_aux_start_buffer_capture_t request/response.
Parameters:
- audioBufferPtr - A void pointer that should be passed in uninitialized.
See: vx_req_aux_start_buffer_capture
Return: - No return value is provided. On success, the audioBufferPtr will point to a copy of the internal audio buffer. Otherwise, audioBufferPtr is set to NULL.
function vx_get_audioBuffer_duration
VIVOXSDK_DLLEXPORT double vx_get_audioBuffer_duration(
void * audioBufferPtr
)
Get the duration of the audio buffer in seconds.
Parameters:
- audioBufferPtr - A void pointer that should be passed in uninitialized.
See: vx_req_aux_start_buffer_capture
Return: - The duration of the audio buffer in seconds.
function vx_get_audioBuffer_sample_rate
VIVOXSDK_DLLEXPORT int vx_get_audioBuffer_sample_rate(
void * audioBufferPtr
)
Get the sample rate of the audio buffer.
Parameters:
- audioBufferPtr - A pointer to audio data in a Vivox proprietary format.
See: vx_req_aux_start_buffer_capture
Return: - The sample rate of the buffer's data. 0 if the buffer does not exist.
function vx_free_audioBuffer
VIVOXSDK_DLLEXPORT int vx_free_audioBuffer(
void ** audioBufferPtr
)
Free up all memory associated with an allocated Vivox audioBufferPtr.
Parameters:
- audioBufferPtr - A pointer to audio data in a Vivox proprietary format.
Generated by the vx_copy_audioBuffer() call.
function vx_export_audioBuffer_to_pcm
VIVOXSDK_DLLEXPORT int vx_export_audioBuffer_to_pcm(
void * audioBufferPtr,
short * pcmBuffer,
int maxSamples
)
Export audio data in an audioBufferPtr to a memory buffer as PCM.
Parameters:
- audioBufferPtr - A pointer to audio data in a Vivox proprietary format.
- pcmBuffer - A pointer to the pre-allocated memory buffer.
- maxSamples - The length of the buffer in samples.
Return: - The number of samples copied to the buffer. -1 if failed.
function vx_export_audioBuffer_to_wav_file
VIVOXSDK_DLLEXPORT int vx_export_audioBuffer_to_wav_file(
void * audioBufferPtr,
const char * outputFile
)
Export audio data in an audioBufferPtr to a .wav file.
Parameters:
- audioBufferPtr - A pointer to audio data in a Vivox proprietary format.
- outputFile - A string that contains the path to the output .wav file.
Return: - 0 if successful, non-zero if failed.
function vx_export_audioBuffer_to_memory
VIVOXSDK_DLLEXPORT int vx_export_audioBuffer_to_memory(
void * audioBufferPtr,
short ** audioBufferOut,
int * nSamplesOut,
int * sampleRateOut,
int * nChannelsOut
)
Export audio data in an audioBufferPtr to memory.
Parameters:
- audioBufferPtr - A pointer to audio data in a Vivox proprietary format.
- audioBufferOut - An interleaved (if stereo) audio buffer of PCM-encoded audio. Note that this must be freed with vx_free().
- nSamplesOut - The number of samples.
- sampleRateOut - The sample rate of the audio buffer.
- nChannelsOut - The number of channels in the buffer.
Return: - 0 if successful, non-zero if failed.
function vx_set_out_of_process_server_address
VIVOXSDK_DLLEXPORT int vx_set_out_of_process_server_address(
const char * address,
unsigned short port
)
Set the default out of process server address.
Parameters:
- address - The address of the out of process server. Use "127.0.0.1" for most applications.
- port - port - Use 44125 for most applications.
Return: - 0 if successful, non-zero if failed.
When an address is set, requests issued by using vx_issue_request are sent to the server at the supplied address instead of being handled in the current process context.
function vx_initialize
VIVOXSDK_DLLEXPORT int vx_initialize(
void
)
Return: - 0 if successful, non-zero if failed.
function vx_initialize3
VIVOXSDK_DLLEXPORT int vx_initialize3(
vx_sdk_config_t * config,
size_t config_size
)
An application must call this API before calling any other Vivox API, except vx_get_default_config3();.
Return: - 0 if successful, non-zero if failed.
function vx_is_initialized
VIVOXSDK_DLLEXPORT int vx_is_initialized(
void
)
Check if the Vivox SDK was initialized with an vx_initialize3() call, and not yet uninitialized with an vx_uninitialize() call.
Return: - 0 if not initialized, non-zero if initialized.
function vx_get_default_config3
VIVOXSDK_DLLEXPORT int vx_get_default_config3(
vx_sdk_config_t * config,
size_t config_size
)
An application must call this API before calling any other Vivox API.
Return: - 0 if successful, non-zero if failed.
function vx_uninitialize
VIVOXSDK_DLLEXPORT int vx_uninitialize(
void
)
An application must call this before exit.
Return: - 0 if successful, non-zero if failed.
function vx_debug_call
VIVOXSDK_DLLEXPORT int vx_debug_call(
void *
)
function vx_get_system_stats
VIVOXSDK_DLLEXPORT int vx_get_system_stats(
vx_system_stats_t * system_stats
)
Get statistics about various system internals.
Return: - 0 if successful, non-zero if failed.
function vx_get_int_var
VIVOXSDK_DLLEXPORT int vx_get_int_var(
const char * var_name,
int * p_value
)
Get named variables.
Parameters:
- var_name - The name of the variable.
- p_value - Where to store the value of the variable.
Return: - 0 if successful, non-zero if failed.
function vx_set_int_var
VIVOXSDK_DLLEXPORT int vx_set_int_var(
const char * var_name,
int value
)
Set named variables.
Parameters:
- var_name - The name of the variable.
- - The integer value to set.
Return: - 0 if successful, non-zero if failed.
function vx_destroy_message
VIVOXSDK_DLLEXPORT int vx_destroy_message(
vx_message_base_t * message
)
Deallocate any message of any type.
function vx_debug_generate_token
VIVOXSDK_DLLEXPORT char * vx_debug_generate_token(
const char * issuer,
vx_time_t expiration,
const char * vxa,
unsigned long long serial,
const char * subject,
const char * from_uri,
const char * to_uri,
const unsigned char * key,
size_t key_len
)
Generate a Vivox Access Token.
Parameters:
- issuer - A standard issuer claim.
- expiration - A standard expiration time claim. If set to (vx_time_t)-1, uses the default time of now(0)+300.
- vxa - A Vivox action, for example, "login", "join", "kick", or "mute".
- serial number - Use this to guarantee uniqueness within an epoch second.
- subject - Optional: The URI of the target of the actions "kick" and "mute". NULL otherwise.
- from_uri - A SIP From URI.
- to_uri - A SIP To URI.
- key - A token-signing key
- key_len - The length of the token-signing key.
Return: null-terminated - A buffer to be freed with vx_free(). If NULL is returned, an error occurred.
!!! This function should only be called when prototyping or debugging token generation server implementations. !!! It should not be in production code, because that would require the issuer/key pair to be resident client memory, which would create a security exposure.
function vx_get_http
VIVOXSDK_DLLEXPORT unsigned int vx_get_http(
const char * url,
unsigned int * response_code,
char ** content,
size_t * content_len,
char ** content_type,
size_t * content_type_len
)
Synchronously download the contents of the specified URL with the GET method.
Parameters:
- url - [in] The URL of the resource to download.
- response_code - [out] A pointer to the returned response code (0 on error, >= 200 after the request finished).
- content - [out] A pointer to the downloaded content is stored here, and is guaranteed to be NULL-terminated. The memory is allocated automatically. Use vx_free_http() to free up the allocated buffers.
- content_len - [out] A pointer to the returned content length.
- content_type - [out] A pointer to the downloaded content type is stored here, and is guaranteed to be NULL-terminated. The memory is allocated automatically. Use vx_free_http() to free up the allocated buffers.
- content_type_len - [out] A pointer to the returned content type length.
Return: - 0 if successful, non-zero if failed.
function vx_free_http
VIVOXSDK_DLLEXPORT int vx_free_http(
char ** content,
char ** content_type
)
Free the memory allocated during the vx_get_http() call.
Parameters:
- content - [in] The same value as what is passed to vx_get_http().
- content_type - [in] The same value as what is passed to vx_get_http().
Note: Call this function only if vx_get_http() returned zero.
function vx_get_random_user_id
VIVOXSDK_DLLEXPORT char * vx_get_random_user_id(
const char * prefix
)
Get a random guest user ID with the given prefix.
Parameters:
- - [in] prefix The prefix for the user.
Note: This must be deallocated with vx_free();
The returned ID always starts and ends with the '.' character.
function vx_get_random_user_id_ex
VIVOXSDK_DLLEXPORT char * vx_get_random_user_id_ex(
const char * prefix,
const char * issuer
)
Get a random guest user ID for the given issuer with the given prefix.
Parameters:
- prefix - [in] The prefix for the user.
- issuer - [in, optional] The issuer. If NULL or an empty string is passed, the generated user ID is the same as what is generated by vx_get_random_user_id().
Note: This must be deallocated with vx_free();
The returned ID always starts and ends with the '.' character.
function vx_get_random_channel_uri
VIVOXSDK_DLLEXPORT char * vx_get_random_channel_uri(
const char * prefix,
const char * realm
)
Get a random ephemeral channel ID with the given prefix for the specific realm.
Parameters:
- prefix - [in] The prefix for the channel.
- realm - [in] The realm for that channel (for example, mt1s.vivox.com).
Note: This must be deallocated with vx_free();
The prefix should start with one of the following options: confctl-g- for general non-positional channels confctl-e- for echo channels confctl-d- for positional channels
function vx_get_random_channel_uri_ex
VIVOXSDK_DLLEXPORT char * vx_get_random_channel_uri_ex(
const char * prefix,
const char * realm,
const char * issuer
)
Get a random ephemeral channel ID for the given issuer with the given prefix for the specific realm.
Parameters:
- prefix - [in] The prefix for the channel.
- realm - [in] The realm for that channel (for example, mt1s.vivox.com).
- issuer - [in, optional] The issuer. If NULL or an empty string is passed, the generated channel ID is the same as what is generated by vx_get_random_channel_uri().
Note: This must be deallocated with vx_free();
The prefix should start with one of the following options: confctl-g- for general non-positional channels confctl-e- for echo channels confctl-d- for positional channels
function vx_get_user_uri
VIVOXSDK_DLLEXPORT char * vx_get_user_uri(
const char * name,
const char * realm,
const char * issuer
)
Generate the fully specified URI of a user with the given name for the given realm and issuer.
Parameters:
- name - [in] The unique account name that you assigned to the user.
- realm - [in] The realm for that user (for example, mt1s.vivox.com).
- issuer - [in, optional] The issuer. If NULL or an empty string is passed, the generated user URI is the same as what is generated with no argument.
Note: This must be deallocated with vx_free();
function vx_get_echo_channel_uri
VIVOXSDK_DLLEXPORT char * vx_get_echo_channel_uri(
const char * name,
const char * realm,
const char * issuer
)
Generate the fully specified URI of an echo channel with the given name for the given realm and issuer.
Parameters:
- name - [in] The name you assigned to the channel.
- realm - [in] The realm for that channel (for example, mt1s.vivox.com).
- issuer - [in, optional] The issuer. If NULL or an empty string is passed, the generated user URI is the same as what is generated with no argument.
Note: This must be deallocated with vx_free();
function vx_get_general_channel_uri
VIVOXSDK_DLLEXPORT char * vx_get_general_channel_uri(
const char * name,
const char * realm,
const char * issuer
)
Generate the fully specified URI of a general non-positional channel with the given name for the given realm and issuer.
Parameters:
- name - [in] The name you assigned to the channel.
- realm - [in] The realm for that channel (for example, mt1s.vivox.com).
- issuer - [in, optional] The issuer. If NULL or an empty string is passed, the generated user URI is the same as what is generated with no argument.
Note: This must be deallocated with vx_free();
function vx_get_positional_channel_uri
VIVOXSDK_DLLEXPORT char * vx_get_positional_channel_uri(
const char * name,
const char * realm,
int max_range,
int clamping_distance,
double rolloff,
vx_channel_rolloff_curve_type distance_model,
const char * issuer
)
Generate the fully specified URI of a positional channel with the given name and 3D properties for the given realm and issuer.
Parameters:
- name - [in] The name you assigned to the channel.
- realm - [in] The realm for that channel (for example, mt1s.vivox.com).
- max_range - [in] The maximum distance from the listener at which a speaker can be heard. This must be an integer > 0.
- clamping_distance - [in] The distance from the listener at which a speaker’s voice is heard at its original volume. This must be an integer in the range 0 <= clamping_distance <= max_range.
- rolloff - [in] The strength of the volume attenuation as the speaker moves away from the listener. This must be a floating point value >= 0 that is rounded to three decimal places.
- distance_model - [in] The curve that determines volume attenuation at distances between the clamping_distance and max_range, scaled by the rolloff.
- issuer - [in, optional] The issuer. If NULL or an empty string is passed, the generated user URI is the same as what is generated with no argument.
Note: This must be deallocated with vx_free(); URIs with different 3D properties are considered different channels.
function vx_uri_to_string
VIVOXSDK_DLLEXPORT char * vx_uri_to_string(
int is_multitenant,
const char * uri
)
Return a textual representation of the compositional elements of a Vivox URI, suitable for logging.
Parameters:
- is_multitenant - [in] 1 if the URI includes a token issuer, or 0 otherwise.
- uri - [in] A fully specified URI representing a Vivox user or channel.
Note: This must be deallocated with vx_free(); The string contains line breaks.
For instance, whether it is a user or channel URI, the name, realm, and other properties are listed.
function vx_opus_set_bit_rate
VIVOXSDK_DLLEXPORT int vx_opus_set_bit_rate(
int bits_per_second
)
Set the bitrate for all OPUS encoders.
Parameters:
- bits_per_second - [in] The requested bitrate, 6000-128000 bit/s.
Return: - 0 if successful, non-zero if failed.
function vx_opus_get_bit_rate
VIVOXSDK_DLLEXPORT int vx_opus_get_bit_rate(
int * p_bits_per_second
)
Get the current OPUS bitrate.
Parameters:
- p_bits_per_second - [out] A pointer to the returned value.
Return: - 0 if successful, non-zero if failed.
function vx_opus_set_complexity
VIVOXSDK_DLLEXPORT int vx_opus_set_complexity(
int complexity
)
Set the complexity for all OPUS encoders.
Parameters:
- complexity - [in] The requested complexity, 0-10.
Return: - 0 if successful, non-zero if failed.
function vx_opus_get_complexity
VIVOXSDK_DLLEXPORT int vx_opus_get_complexity(
int * p_complexity
)
Get the current OPUS complexity.
Parameters:
- p_complexity - [out] A pointer to the returned value.
Return: - 0 if successful, non-zero if failed.
function vx_opus_set_vbr_mode
VIVOXSDK_DLLEXPORT int vx_opus_set_vbr_mode(
int vbr_mode
)
Set the VBR mode for all OPUS encoders.
Parameters:
- vbr_mode - [in] The requested mode (vx_opus_vbr_mode).
Return: - 0 if successful, non-zero if failed.
function vx_opus_get_vbr_mode
VIVOXSDK_DLLEXPORT int vx_opus_get_vbr_mode(
int * p_vbr_mode
)
Get the current OPUS VBR mode.
Parameters:
- p_vbr_mode - [out] A pointer to the returned value (vx_opus_vbr_mode).
Return: - 0 if successful, non-zero if failed.
function vx_opus_set_bandwidth
VIVOXSDK_DLLEXPORT int vx_opus_set_bandwidth(
int bandwidth
)
Set the bandwidth for all OPUS encoders.
Parameters:
- bandwidth - [in] The requested bandwidth (vx_opus_bandwidth).
Return: - 0 if successful, non-zero if failed.
function vx_opus_get_bandwidth
VIVOXSDK_DLLEXPORT int vx_opus_get_bandwidth(
int * p_bandwidth
)
Get the current OPUS bandwidth.
Parameters:
- p_bandwidth - [out] A pointer to the returned value (vx_opus_bandwidth).
Return: - 0 if successful, non-zero if failed.
function vx_get_available_codecs_mask
VIVOXSDK_DLLEXPORT unsigned int vx_get_available_codecs_mask(
void
)
Get a mask for all available codecs (to be used as configured_codecs).
function vx_get_default_codecs_mask
VIVOXSDK_DLLEXPORT unsigned int vx_get_default_codecs_mask(
void
)
Get a recommended default mask for available codecs (to be used as configured_codecs).
function vx_get_dump_memory_interval
VIVOXSDK_DLLEXPORT int vx_get_dump_memory_interval(
void
)
Get the current period of the Memory Usage information dumping to logcat.
Return: - The sampling interval in seconds. 0 if memory dump is turned off.
Note: Android platform only. Does nothing on other platforms.
function vx_cpumonitor_start
VIVOXSDK_DLLEXPORT int vx_cpumonitor_start(
int interval,
int report_interval
)
Start the CPU load information dumping to logcat.
Parameters:
- interval - [in] The sampling interval in milliseconds. The recommended value is 1000 milliseconds. It is not recommended to have this value under 100 milliseconds.
- report_interval - [in] The reporting interval in milliseconds. The SDK will dump the collected data to logcat once per reporting interval. The recommended value is 5000 milliseconds. It is not recommended to have this value under 1000 milliseconds.
Note: Android platform only. Does nothing on other platforms.
Larger report_interval reduces the average amount of information output by the SDK to logcat. Smaller sampling intervals allow for better detection of short peak loads.
function vx_cpumonitor_stop
VIVOXSDK_DLLEXPORT int vx_cpumonitor_stop(
void
)
Stop the CPU load information dumping to logcat.
Note: Android platform only. Does nothing on other platforms.
function vx_cpumonitor_start_eater
VIVOXSDK_DLLEXPORT int vx_cpumonitor_start_eater(
int nthreads,
int priority
)
Start the requested number of tight loop threads with the requested priority.
Parameters:
- nthreads - [in] The number of threads with tight loops to start. Passing 0 starts the number of threads matching the number of available device processor cores.
- priority - [in] The scheduling priority to be used for each created thread. 0 leaves the default priority. Valid non-zero values are from -20 (the maximum priority - this is dangerous and should not be used) to 20 (the minimum possible priority). It is recommended that you use value 0 for priority.
Note: Android platform only. Does nothing on other platforms.
Attention: After working for some time at the maximum possible speed, the CPU will heat up, and the system will throttle it to prevent overheating.
Android devices can scale the CPU frequency down or stop some cores when the load is low. This decreases the device performance and affects the CPU load measurements provided by vx_cpumonitor_start() - the reported load will be higher. To prevent this, the vx_cpumonitor_start_eater() is provided. If low priority threads with tight loops will be started for each available CPU core, then the system sets each core frequency to its maximum value, and the measurement results reflect the CPU load relative to the device's maximum possible performance.
function vx_cpumonitor_stop_eater
VIVOXSDK_DLLEXPORT int vx_cpumonitor_stop_eater(
void
)
Stop all the CPU eater threads started with vx_cpumonitor_start_eater() call.
Note: Android platform only. Does nothing on other platforms.
function vx_crash_test
VIVOXSDK_DLLEXPORT int vx_crash_test(
vx_crash_test_type_t crash_type
)
Crash the program.
Parameters:
- crash_type - The type of crash (see vx_crash_test_type).
function vx_set_message_rate_params
VIVOXSDK_DLLEXPORT int vx_set_message_rate_params(
unsigned bucketSize,
float messageSpeed,
int fillBucket
)
Change the API message rate parameters.
Parameters:
- messageSpeed - Messages per second.
- fillBucket - is bool
function vx_set_default_message_rate_params
VIVOXSDK_DLLEXPORT int vx_set_default_message_rate_params(
void
)
Return the API message rate parameters to their default state.
function vx_android_set_mic_mute
VIVOXSDK_DLLEXPORT int vx_android_set_mic_mute(
int mute
)
Mute or unmute the mic on Android.
Parameters:
- mute - Non-zero mutes the microphone; 0 unmutes.
Return: - Non-zero if previous state was muted, 0 if previous state was unmuted.
Note: Android platform only. Does nothing on other platforms.
function vx_internal_enable_debug_mode_disable_strict_checks
VIVOXSDK_DLLEXPORT int vx_internal_enable_debug_mode_disable_strict_checks(
void
)
Internal: enable debug mode and disable the strict parameter check of some requests.
Attention: Do not call this function if you are not completely sure of what are you doing!
function vx_internal_disable_debug_mode_enable_strict_checks
VIVOXSDK_DLLEXPORT int vx_internal_disable_debug_mode_enable_strict_checks(
void
)
Internal: disable the debug mode enabled by vx_internal_enable_debug_mode_disable_strict_checks.
Attention: Do not call this function if you are not completely sure of what are you doing!
function vx_is_access_token_well_formed
VIVOXSDK_DLLEXPORT int vx_is_access_token_well_formed(
const char * access_token,
char ** error
)
Verify whether the passed access token is well-formed.
Parameters:
- access_token - [in] An access token to check.
- error - [out] An optional pointer to the returned verbose error description. Can be NULL. The returned string must be disposed of with vx_free() call.
Return: - Non-zero if access token looks well-formed, 0 otherwise.
function vx_vxd_send
VIVOXSDK_DLLEXPORT int vx_vxd_send(
VX_HANDLE session_handle,
const char * data,
size_t size
)
Send VXD into the channel.
Parameters:
- session_handle - [in] The session handle to send VXD to.
- data - [in] The data to be sent.
- size - [in] The data size in bytes.
Return: - 0 if successful, non-zero if failed (SDK not initialized, invalid argument (session, ptr), size too big).
function vx_vxd_recv
VIVOXSDK_DLLEXPORT int vx_vxd_recv(
VX_HANDLE session_handle,
vx_vxd_t ** vxd_ptr
)
Receive VXD from the channel.
Parameters:
- session_handle - [in] The session handle to receive VXD from.
- vxd_ptr - [out] On success, will contain a pointer to the received VXD. Untouched on failure. The caller is responsible for disposing of it with vx_vxd_destroy().
Return: - 0 if successful, non-zero if failed (SDK not initialized, invalid argument (session, ptr), no more data).
function vx_vxd_destroy
VIVOXSDK_DLLEXPORT int vx_vxd_destroy(
vx_vxd_t * vxd
)
Dispose of the VXD object returned by vx_vxd_recv().
Parameters:
- vxd - [in] VXD to dispose
Return: - 0 if successful, non-zero if failed (SDK not initialized).
function vx_get_path
VIVOXSDK_DLLEXPORT char * vx_get_path(
unsigned int path_id
)
Get a specific path of various files and folders used by the SDK.
Parameters:
- - The path ID.
Return: - A null-terminated buffer to be freed with vx_free(). If NULL is returned, an error occurred.
function vx_get_dynamic_voice_processing_switching_enabled
VIVOXSDK_DLLEXPORT int vx_get_dynamic_voice_processing_switching_enabled(
int * enabled
)
Get the current value of the dynamic voice processing switching enabled setting.
Parameters:
- enabled - [out] A pointer to the returned value (0 if disabled, 1 if enabled).
Return: - 0 if successful, non-zero if failed.
function vx_set_dynamic_voice_processing_switching_enabled
VIVOXSDK_DLLEXPORT int vx_set_dynamic_voice_processing_switching_enabled(
int enabled
)
Enable and disable dynamic voice processing switching.
Parameters:
- enabled - 1 to enable dynamic voice processing switching, and 0 to disable.
Return: - 0 if successful, non-zero if failed (SDK not initialized).
function vx_get_ios_voice_processing_io_mode
VIVOXSDK_DLLEXPORT int vx_get_ios_voice_processing_io_mode(
int * mode
)
Get the mode for the ios_voice_processing_io_mode configuration field.
Parameters:
- enabled - [out] A pointer to the returned value (2 to always use VPIO, 1 to use VPIO only for speakerphone, 0 to never use the VPIO).
Return: - 0 if successful, non-zero if failed.
function vx_set_ios_voice_processing_io_mode
VIVOXSDK_DLLEXPORT int vx_set_ios_voice_processing_io_mode(
int mode
)
Set the mode for the ios_voice_processing_io_mode configuration field.
Parameters:
- enabled - 2 to always use VPIO, 1 to use VPIO only for speakerphone, 0 to never use the VPIO
Return: - 0 if successful, non-zero if failed.
function vx_get_platform_aec_enabled
VIVOXSDK_DLLEXPORT int vx_get_platform_aec_enabled(
int * enabled
)
Return an indication of whether platform-provided AEC is being used.
Parameters:
- enabled - [out] A pointer to the returned value (0 if disabled, 1 if enabled).
Return: - 0 if successful, non-zero if failed.
function vx_set_platform_aec_enabled
VIVOXSDK_DLLEXPORT int vx_set_platform_aec_enabled(
int enabled
)
Enable and disable platform-provided AEC.
Parameters:
- enabled - 1 to enable platform-provided AEC, or 0 to disable.
Return: - 0 if successful, non-zero if failed (SDK not initialized).
Note: iOS only: This is an alias of vx_set_ios_voice_processing_io_mode(0|1). 0
when disabling, 1
when enabling.
function vx_get_vivox_aec_enabled
VIVOXSDK_DLLEXPORT int vx_get_vivox_aec_enabled(
int * enabled
)
Get the internal AEC enabled/disabled state.
Return: - 0 if successful, non-zero if failed (SDK not initialized, internal AEC is not supported).
Enabling does not force AEC usage, but allows the SDK to use AEC when it is required.
function vx_set_vivox_aec_enabled
VIVOXSDK_DLLEXPORT int vx_set_vivox_aec_enabled(
int enabled
)
Enable or disable the SDK's internal AEC.
Return: - 0 if successful, non-zero if failed (SDK not initialized, internal AEC is not supported).
Enabling does not force AEC usage, but allows the SDK to use AEC when it is required.
function vx_get_noise_suppression_enabled
VIVOXSDK_DLLEXPORT int vx_get_noise_suppression_enabled(
int * enabled
)
Get the capture audio noise suppressor enabled/disabled state.
Return: - 0 if successful, non-zero if failed (SDK not initialized, invalid arguments).
function vx_get_noise_suppression_level
VIVOXSDK_DLLEXPORT int vx_get_noise_suppression_level(
vx_noise_suppression_level * level
)
Get the capture audio noise suppressor suppression level.
Return: - 0 if successful, non-zero if failed (SDK not initialized, invalid arguments).
If noise suppression is disabled, 'level' reports the noise suppression level that will be used if noise suppression becomes enabled.
function vx_set_noise_suppression_enabled
VIVOXSDK_DLLEXPORT int vx_set_noise_suppression_enabled(
int enabled
)
Enable or disable the SDK's capture audio noise suppressor.
Return: - 0 if successful, non-zero if failed (SDK not initialized).
function vx_set_noise_suppression_level
VIVOXSDK_DLLEXPORT int vx_set_noise_suppression_level(
vx_noise_suppression_level level
)
Set the capture audio noise suppressor's suppression level.
Return: - 0 if successful, non-zero if failed (SDK not initialized).
A low suppression level slightly reduces steady-state noise while barely affecting voice. A high suppression level greatly reduces steady-state noise but may distort voice.
function vx_set_agc_enabled
VIVOXSDK_DLLEXPORT int vx_set_agc_enabled(
int enabled
)
Enable or disable the SDK's internal AGC.
Return: - 0 if successful, non-zero if failed (SDK not initialized, internal AGC is not supported).
Enabling does not force AGC usage, but allows the SDK to use AGC when it is required.
function vx_get_agc_enabled
VIVOXSDK_DLLEXPORT int vx_get_agc_enabled(
int * enabled
)
Get the internal AGC enabled/disabled state.
Return: - 0 if successful, non-zero if failed (SDK not initialized, internal AGC is not supported).
Enabling does not force AGC usage, but allows the SDK to use AGC when it is required.
function vx_set_volume_based_duplication_suppression_enabled
VIVOXSDK_DLLEXPORT int vx_set_volume_based_duplication_suppression_enabled(
int enabled
)
Enable or disable volume based audio duplication suppression.
Return: - 0 if successful, non-zero if failed.
By default, when a remote participant is transmitting to multiple channels, the SDK will only render the audio once where the participant is loudest. Note that this does not apply to 3D channels, where the SDK always renders the audio of all participants. Disabling this allows the SDK to duplicate audio for local rendering of 2D channels when a remote participant is transmitting to multiple channels.
function vx_get_volume_based_duplication_suppression_enabled
VIVOXSDK_DLLEXPORT int vx_get_volume_based_duplication_suppression_enabled(
int * enabled
)
Get the internal state of the volume based audio duplication suppression.
Return: - 0 if successful, non-zero if failed.
By default, when a remote participant is transmitting to multiple channels, the SDK will only render the audio once where the participant is loudest. Note that this does not apply to 3D channels, where the SDK always renders the audio of all participants. Disabling this allows the SDK to duplicate audio for local rendering of 2D channels when a remote participant is transmitting to multiple channels.
function vx_set_3d_channel_volume_protection_enabled
VIVOXSDK_DLLEXPORT int vx_set_3d_channel_volume_protection_enabled(
int enabled
)
Enable or disable the SDK's internal volume protection for 3D channels.
Return: - 0 if successful, non-zero if failed
Enabling volume protection lowers 3D channel max loudness so that distortion cannot occur at the default volume while sound is off-center. Disabling volume protection will increase 3D channel max loudness, but slight distortion may occur at the default volume while sound is off-center.
function vx_get_3d_channel_volume_protection_enabled
VIVOXSDK_DLLEXPORT int vx_get_3d_channel_volume_protection_enabled(
int * enabled
)
Get the internal 3D channel volume protection state.
Return: - 0 if successful, non-zero if failed
function vx_set_audio_clipping_protector_enabled
VIVOXSDK_DLLEXPORT int vx_set_audio_clipping_protector_enabled(
int enabled
)
Enable or disable the SDK's internal audio clipping protector (soft clipper).
Parameters:
- enabled - 1 to enable the audio clipping protector, 0 to disable.
Return: - 0 if successful, non-zero if failed.
The audio clipping protector can only affect boosted audio (capture or render with volume settings greater than 50) Enabling this allows Vivox to reduce the dynamic range of samples that are near clipping. Disabling allows ordinary clipping to occur.
function vx_get_audio_clipping_protector_enabled
VIVOXSDK_DLLEXPORT int vx_get_audio_clipping_protector_enabled(
int * enabled
)
Get the internal audio clipping protector enabled state.
Parameters:
- enabled - [out] A pointer to the returned value (0 if disabled, 1 if enabled).
Return: - 0 if successful, non-zero if failed.
Enabling allows Vivox to reduce the dynamic range of samples that are near clipping. Disabling allows ordinary clipping to occur.
function vx_set_audio_clipping_protector_parameters
VIVOXSDK_DLLEXPORT int vx_set_audio_clipping_protector_parameters(
float minimum_threshold_db,
float threshold_boost_slope
)
Change the behavior of the SDK's internal audio clipping protector (soft clipper).
Parameters:
- minimum_threshold_db - The lowest point in dBFS where clipping protection can be applied. -50.0 <= value < 0.0.
- threshold_boost_slope - The ratio between boost gain and the calculated threshold_db. -1.0 <= value <= -0.1.
Return: - 0 if successful, non-zero if failed.
The audio clipping protector can only affect boosted audio (capture or render with volume settings greater than 50)
Clipping protection is applied only above a threshold in dBFS. threshold_db = max(boost * threshold_boost_slope, minimum_threshold_db) ex. +10 dB boost (volume 60), threshold_boost_slope = -0.1, minimum_threshold_db = -6.0: threshold_db = max(10 * -0.1, -6.0) = -1.0. ex. (cont) Clipping protection would only be applied to amplitudes exceeding -1.0 dBFS.
function vx_get_audio_clipping_protector_parameters
VIVOXSDK_DLLEXPORT int vx_get_audio_clipping_protector_parameters(
float * minimum_threshold_db,
float * threshold_boost_slope
)
Get the internal audio clipping protector's parameters.
Parameters:
- minimum_threshold_db - [out] The lowest point in dBFS where clipping protection can be applied. -50.0 <= value < 0.0.
- threshold_boost_slope - [out] The ratio between boost gain and the calculated threshold_db. -1.0 <= value <= -0.1.
Return: - 0 if successful, non-zero if failed.
function vx_tts_initialize
VIVOXSDK_DLLEXPORT vx_tts_status vx_tts_initialize(
vx_tts_engine_type engine_type,
vx_tts_manager_id * tts_manager_id
)
Initialize a new text-to-speech manager.
Parameters:
- engine_type - The type of the text-to-speech engine. If unsure what to use, it is recommended that you use the default.
- tts_manager_id - [out] A unique identifier of the newly created text-to-speech manager.
Return: - The status code description.
function vx_tts_get_voices
VIVOXSDK_DLLEXPORT vx_tts_status vx_tts_get_voices(
vx_tts_manager_id tts_manager_id,
int * num_voices,
vx_tts_voice_t ** voices
)
Get the available voices for a text-to-speech manager.
Parameters:
- tts_manager_id - A unique identifier of the TTS manager
- num_voices - [out] The number of voices supported by the text-to-speech manager.
- voices - [out] A pointer to the first voice. This does not need to be deleted when you are finished using it.
Return: - The status code description.
function vx_tts_shutdown
VIVOXSDK_DLLEXPORT vx_tts_status vx_tts_shutdown(
vx_tts_manager_id * tts_manager_id
)
Uninitialize and shut down a text-to-speech manager.
Parameters:
- tts_manager_id - A unique identifier of the TTS manager to shutdown. Passing NULL shuts down all managers.
See: vx_tts_initialize()
Return: - The status code description.
function vx_get_tts_status_string
VIVOXSDK_DLLEXPORT const char * vx_get_tts_status_string(
vx_tts_status status_code
)
Return a textual representation of a text-to-speech status code.
Parameters:
- status_code - The text-to-speech status code.
Return: - The status code description.
function vx_tts_speak
VIVOXSDK_DLLEXPORT vx_tts_status vx_tts_speak(
vx_tts_manager_id tts_manager_id,
vx_tts_voice_id voice_id,
const char * input_text,
vx_tts_destination tts_dest,
vx_tts_utterance_id * utterance_id
)
Convert the input text into speech and process the generated utterance on the selected destination.
Parameters:
- tts_manager_id - A unique identifier of the TTS manager.
- voice_id - A unique identifier of the voice.
- input_text - The text message to be converted into speech.
- tts_dest - The destination on which to play the message.
- utterance_id - [out] A unique identifier of the utterance.
Return: - The status code description.
function vx_tts_speak_to_buffer
VIVOXSDK_DLLEXPORT vx_tts_status vx_tts_speak_to_buffer(
vx_tts_manager_id tts_manager_id,
vx_tts_voice_id voice_id,
const char * input_text,
vx_tts_utterance_t ** utterance
)
Convert the input text into speech and return the generated utterance.
Parameters:
- tts_manager_id - A unique identifier of the TTS manager.
- voice_id - A unique identifier of the voice.
- input_text - The text message to be converted into speech.
- utterance - [out] The utterance generated from the input text.
Return: - The status code description.
function vx_tts_destroy_utterance
VIVOXSDK_DLLEXPORT vx_tts_status vx_tts_destroy_utterance(
vx_tts_manager_id tts_manager_id,
vx_tts_utterance_t * utterance
)
Destroy an utterance.
Parameters:
- tts_manager_id - A unique identifier of the TTS engine.
- utterance - The utterance to be destroyed.
Return: - The status code description.
Call this function to free up all of the memory that is taken by an utterance.
function vx_tts_cancel_utterance
VIVOXSDK_DLLEXPORT vx_tts_status vx_tts_cancel_utterance(
vx_tts_manager_id tts_manager_id,
vx_tts_utterance_id utterance_id
)
Cancel playback of an ongoing or an enqueued text-to-speech message by its unique identifier.
Parameters:
- tts_manager_id - A unique identifier of the TTS manager.
- utterance_id - A unique identifier of the utterance.
See: vx_tts_speak()
Return: - The status code description.
function vx_tts_cancel_all_in_dest
VIVOXSDK_DLLEXPORT vx_tts_status vx_tts_cancel_all_in_dest(
vx_tts_manager_id tts_manager_id,
vx_tts_destination tts_dest
)
Cancel playback of ongoing and all enqueued text-to-speech messages in a destination.
Parameters:
- tts_manager_id - A unique identifier of the TTS manager.
- tts_dest - The destination to be cancelled.
Return: - The status code description.
function vx_tts_cancel_all
VIVOXSDK_DLLEXPORT vx_tts_status vx_tts_cancel_all(
vx_tts_manager_id tts_manager_id
)
Cancel playback for all ongoing and enqueued text-to-speech messages on all destinations.
Parameters:
- tts_manager_id - A unique identifier of the TTS manager.
Return: - The status code description.
Macros Documentation
define VIVOX_SDK_HAS_CRASH_REPORTING
#define VIVOX_SDK_HAS_CRASH_REPORTING 1
define VIVOX_SDK_HAS_VOICE_FONTS
#define VIVOX_SDK_HAS_VOICE_FONTS 1
define VIVOX_SDK_HAS_GROUP_IM
#define VIVOX_SDK_HAS_GROUP_IM 1
define VIVOX_SDK_HAS_MUTE_SCOPE
#define VIVOX_SDK_HAS_MUTE_SCOPE 1
define VIVOX_SDK_HAS_PARTICIPANT_TYPE
#define VIVOX_SDK_HAS_PARTICIPANT_TYPE 1
define VIVOX_SDK_HAS_NETWORK_MESSAGE
#define VIVOX_SDK_HAS_NETWORK_MESSAGE 1
define VIVOX_SDK_HAS_AUX_DIAGNOSTIC_STATE
#define VIVOX_SDK_HAS_AUX_DIAGNOSTIC_STATE 1
define VIVOX_SDK_SESSION_RENDER_AUDIO_OBSOLETE
#define VIVOX_SDK_SESSION_RENDER_AUDIO_OBSOLETE 1
define VIVOX_SDK_SESSION_GET_LOCAL_AUDIO_INFO_OBSOLETE
#define VIVOX_SDK_SESSION_GET_LOCAL_AUDIO_INFO_OBSOLETE 1
define VIVOX_SDK_SESSION_MEDIA_RINGBACK_OBSOLETE
#define VIVOX_SDK_SESSION_MEDIA_RINGBACK_OBSOLETE 1
define VIVOX_SDK_SESSION_CONNECT_OBSOLETE
#define VIVOX_SDK_SESSION_CONNECT_OBSOLETE 1
define VIVOX_SDK_EVT_SESSION_PARTICIPANT_LIST_OBSOLETE
#define VIVOX_SDK_EVT_SESSION_PARTICIPANT_LIST_OBSOLETE 1
define VIVOX_SDK_HAS_INTEGRATED_PROXY
#define VIVOX_SDK_HAS_INTEGRATED_PROXY 1
define VIVOX_SDK_HAS_NO_CHANNEL_FOLDERS
#define VIVOX_SDK_HAS_NO_CHANNEL_FOLDERS 1
define VIVOX_SDK_HAS_NO_SCORE
#define VIVOX_SDK_HAS_NO_SCORE 1
define VIVOX_SDK_HAS_GENERIC_APP_NOTIFICATIONS_ONLY
#define VIVOX_SDK_HAS_GENERIC_APP_NOTIFICATIONS_ONLY 1
define VIVOX_SDK_HAS_FRAME_TOTALS
#define VIVOX_SDK_HAS_FRAME_TOTALS 1
define VIVOX_SDK_NO_LEGACY_RECORDING
#define VIVOX_SDK_NO_LEGACY_RECORDING 1
define VIVOX_SDK_NO_IS_AD_PLAYING
#define VIVOX_SDK_NO_IS_AD_PLAYING 1
define VIVOX_SDK_HAS_ACCOUNT_SEND_MSG
#define VIVOX_SDK_HAS_ACCOUNT_SEND_MSG 1
define VIVOX_SDK_HAS_PLC_STATS
#define VIVOX_SDK_HAS_PLC_STATS 1
define VIVOX_SDK_HAS_DEVICE_ADDED_REMOVED
#define VIVOX_SDK_HAS_DEVICE_ADDED_REMOVED 1
define VIVOX_SDK_HAS_AUDIO_UNIT_CALLBACKS
#define VIVOX_SDK_HAS_AUDIO_UNIT_CALLBACKS 1
define VX_MEDIA_FLAGS_AUDIO
#define VX_MEDIA_FLAGS_AUDIO 0x1
Participant media flags.
define VX_MEDIA_FLAGS_TEXT
#define VX_MEDIA_FLAGS_TEXT 0x2
define VX_GET_MESSAGE_NO_MESSAGE
#define VX_GET_MESSAGE_NO_MESSAGE -1
define VX_GET_MESSAGE_AVAILABLE
#define VX_GET_MESSAGE_AVAILABLE 0
define VX_GET_MESSAGE_FAILURE
#define VX_GET_MESSAGE_FAILURE 1
define VIVOX_V_V2_AUDIO_DATA_MONO_SIREN14_32000_EXPANDED
#define VIVOX_V_V2_AUDIO_DATA_MONO_SIREN14_32000_EXPANDED 0x10001
define VIVOX_V_V2_AUDIO_DATA_MONO_SIREN14_32000
#define VIVOX_V_V2_AUDIO_DATA_MONO_SIREN14_32000 VIVOX_V_V2_AUDIO_DATA_MONO_SIREN14_32000_EXPANDED
Deprecated:
Use VIVOX_V_V2_AUDIO_DATA_MONO_SIREN14_32000_EXPANDED instead of VIVOX_V_V2_AUDIO_DATA_MONO_SIREN14_32000.
define VIVOX_V_V2_AUDIO_DATA_MONO_SIREN7_16000_EXPANDED
#define VIVOX_V_V2_AUDIO_DATA_MONO_SIREN7_16000_EXPANDED 0x10008
define VIVOX_V_V2_AUDIO_DATA_MONO_OPUS_48000_EXPANDED
#define VIVOX_V_V2_AUDIO_DATA_MONO_OPUS_48000_EXPANDED 0x10009
define VIVOX_VANI_SIREN7
#define VIVOX_VANI_SIREN7 0x2 /* Siren7, 16kHz, 32kbps */
The configured_codecs field in vx_req_connector_create is a mask of these constants.
define VIVOX_VANI_SIREN14
#define VIVOX_VANI_SIREN14 0x4 /* Siren14, 32kHz, 32kbps */
define VIVOX_VANI_LEGACY_MASK
#define VIVOX_VANI_LEGACY_MASK 0x6
define VIVOX_VANI_OPUS8
#define VIVOX_VANI_OPUS8 0x10 /* Opus, 48kHz, 8kbps */
define VIVOX_VANI_OPUS40
#define VIVOX_VANI_OPUS40 0x20 /* Opus, 48kHz, 40kbps */
define VIVOX_VANI_OPUS57
#define VIVOX_VANI_OPUS57 0x40 /* Opus, 48kHz, 57kbps */ /* proposed; pending research */
define VIVOX_VANI_OPUS72
#define VIVOX_VANI_OPUS72 0x80 /* Opus, 48kHz, 72kbps */ /* proposed; pending research */
define VIVOX_VANI_OPUS
#define VIVOX_VANI_OPUS VIVOX_VANI_OPUS40
define VIVOX_VANI_OPUS_MASK
#define VIVOX_VANI_OPUS_MASK 0xf0
define VIVOX_VANI_PCMU
#define VIVOX_VANI_PCMU VX_DEPRECATED_MACRO(VIVOX_VANI_PCMU, 5.19) VIVOX_VANI_OPUS8
Deprecated:
PCMU functionality has been removed. Please discontinue use.
define VX_VAR_DECODER_COUNT_LIMIT
#define VX_VAR_DECODER_COUNT_LIMIT "DecoderLimit"
define VX_VAR_DECODER_HANGOVER_LIMIT
#define VX_VAR_DECODER_HANGOVER_LIMIT "DecoderHangoverLimit"
define VX_VAR_RTP_ENCRYPTION
#define VX_VAR_RTP_ENCRYPTION "RTPEncryption"
define MAX_VXA_DEVICE_COUNT
#define MAX_VXA_DEVICE_COUNT 32
The maximum number of application-provided capture devices.
The maximum number of application-provided render devices.
define VX_TTS_CHARACTER_COUNT_LIMIT
#define VX_TTS_CHARACTER_COUNT_LIMIT 200
define VX_TTS_MAX_DESTINATION_QUEUE_SIZE
#define VX_TTS_MAX_DESTINATION_QUEUE_SIZE 10
define VX_TTS_DEFAULT_DESTINATION
#define VX_TTS_DEFAULT_DESTINATION tts_dest_remote_transmission
Source code
/* Copyright (c) 2019 Unity Technologies.
*
* This software is subject to, and made available under, the Unity Terms of Service (see Unity Terms of Service).
* Your use of this software constitutes your acceptance of such terms.
* Unless expressly provided otherwise, the software under this license is made available strictly on an "AS IS" BASIS WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED.
* Please review the Terms of Service for details on these and other terms and conditions.”
*/
#pragma once
#include <VxcExports.h>
#include <VxcTypes.h>
#define VIVOX_SDK_HAS_CRASH_REPORTING 1
#define VIVOX_SDK_HAS_VOICE_FONTS 1
#define VIVOX_SDK_HAS_GROUP_IM 1
#define VIVOX_SDK_HAS_MUTE_SCOPE 1
#define VIVOX_SDK_HAS_PARTICIPANT_TYPE 1
#define VIVOX_SDK_HAS_NETWORK_MESSAGE 1
#define VIVOX_SDK_HAS_AUX_DIAGNOSTIC_STATE 1
#define VIVOX_SDK_SESSION_RENDER_AUDIO_OBSOLETE 1
#define VIVOX_SDK_SESSION_GET_LOCAL_AUDIO_INFO_OBSOLETE 1
#define VIVOX_SDK_SESSION_MEDIA_RINGBACK_OBSOLETE 1
#define VIVOX_SDK_SESSION_CONNECT_OBSOLETE 1
#define VIVOX_SDK_EVT_SESSION_PARTICIPANT_LIST_OBSOLETE 1
#define VIVOX_SDK_HAS_INTEGRATED_PROXY 1
#define VIVOX_SDK_HAS_NO_CHANNEL_FOLDERS 1
#define VIVOX_SDK_HAS_NO_SCORE 1
#define VIVOX_SDK_HAS_GENERIC_APP_NOTIFICATIONS_ONLY 1
#define VIVOX_SDK_HAS_FRAME_TOTALS 1
#define VIVOX_SDK_NO_LEGACY_RECORDING 1
#define VIVOX_SDK_NO_IS_AD_PLAYING 1
#define VIVOX_SDK_HAS_ACCOUNT_SEND_MSG 1
#define VIVOX_SDK_HAS_PLC_STATS 1
#define VIVOX_SDK_HAS_DEVICE_ADDED_REMOVED 1
#define VIVOX_SDK_HAS_AUDIO_UNIT_CALLBACKS 1
#pragma pack(push)
#pragma pack(8)
#ifdef __cplusplus
extern "C" {
#endif
typedef char *VX_COOKIE;
typedef VX_COOKIE VX_HANDLE;
typedef unsigned int VX_SDK_HANDLE;
#if defined(WIN32)
typedef __time64_t vx_time_t;
#else
typedef time_t vx_time_t;
#endif
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_cookie_create(const char *value, VX_COOKIE *cookie);
VIVOXSDK_DLLEXPORT int vx_cookie_free(VX_COOKIE *cookie);
#endif
typedef enum {
attempt_stun_unspecified = 0,
attempt_stun_on = 1,
attempt_stun_off = 2
} vx_attempt_stun;
typedef enum {
connector_mode_normal = 0,
connector_mode_legacy = 1
} vx_connector_mode;
typedef enum {
session_handle_type_unique = 0,
session_handle_type_legacy = 1,
session_handle_type_heirarchical_numeric = 2,
session_handle_type_heirarchical_unique = 3
} vx_session_handle_type;
typedef enum {
log_to_none = 0,
log_to_file = 1,
log_to_callback = 2,
log_to_file_and_callback = 3
} vx_log_type;
typedef enum {
msg_none = 0,
msg_request = 1,
msg_response = 2,
msg_event = 3
} vx_message_type;
typedef enum {
VX_SESSIONGROUP_RECORDING_CONTROL_STOP = 0,
VX_SESSIONGROUP_RECORDING_CONTROL_START = 1,
VX_SESSIONGROUP_RECORDING_CONTROL_FLUSH_TO_FILE = 2
} vx_sessiongroup_recording_control_type;
typedef enum {
VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_STOP = 0,
vx_sessiongroup_audio_injection_control_stop = VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_STOP,
VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_START = 1,
vx_sessiongroup_audio_injection_control_start = VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_START,
VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_RESTART = 2,
vx_sessiongroup_audio_injection_control_restart = VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_RESTART,
VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_MIN = VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_STOP,
vx_sessiongroup_audio_injection_control_min = vx_sessiongroup_audio_injection_control_stop,
VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_MAX = VX_SESSIONGROUP_AUDIO_INJECTION_CONTROL_RESTART,
vx_sessiongroup_audio_injection_control_max = vx_sessiongroup_audio_injection_control_restart
} vx_sessiongroup_audio_injection_control_type;
typedef enum {
VX_SESSIONGROUP_PLAYBACK_CONTROL_STOP = 0,
VX_SESSIONGROUP_PLAYBACK_CONTROL_START = 1,
VX_SESSIONGROUP_PLAYBACK_CONTROL_PAUSE = 3,
VX_SESSIONGROUP_PLAYBACK_CONTROL_UNPAUSE = 4
} vx_sessiongroup_playback_control_type;
typedef enum {
VX_SESSIONGROUP_PLAYBACK_MODE_NORMAL = 0,
VX_SESSIONGROUP_PLAYBACK_MODE_VOX = 1
} vx_sessiongroup_playback_mode;
typedef enum {
vx_control_communications_operation_block = 0,
vx_control_communications_operation_unblock = 1,
vx_control_communications_operation_list = 2,
vx_control_communications_operation_block_list = 2, // Alias for vx_control_communications_operation_list
vx_control_communications_operation_clear = 3,
vx_control_communications_operation_clear_block_list = 3, // Alias for vx_control_communications_operation_clear
vx_control_communications_operation_mute = 4,
vx_control_communications_operation_unmute = 5,
vx_control_communications_operation_mute_list = 6,
vx_control_communications_operation_clear_mute_list = 7
} vx_control_communications_operation;
typedef enum {
media_type_none = 0,
media_type_text = 1,
media_type_audio = 2,
media_type_video = 3,
media_type_audiovideo = 4
} vx_media_type;
typedef enum {
termination_status_none = 0,
termination_status_busy = 1,
termination_status_decline = 2
} vx_termination_status;
typedef enum {
diagnostic_dump_level_all = 0,
diagnostic_dump_level_sessions = 1
} vx_diagnostic_dump_level;
typedef enum {
media_ringback_none = 0,
media_ringback_ringing = 1, // 180
// media_ringback_answer = 2, // 200
media_ringback_busy = 3, // 486
// media_ringback_terminated = 4 // 487
} vx_media_ringback;
typedef enum {
channel_type_normal = 0,
channel_type_positional = 2
} vx_channel_type;
typedef enum {
channel_mode_none = 0,
channel_mode_normal = 1,
channel_mode_presentation = 2,
channel_mode_lecture = 3,
channel_mode_open = 4,
channel_mode_auditorium = 5
} vx_channel_mode;
typedef enum {
channel_search_type_all = 0,
channel_search_type_non_positional = 1,
channel_search_type_positional = 2
} vx_channel_search_type;
typedef enum {
channel_moderation_type_all = 0,
channel_moderation_type_current_user = 1
} vx_channel_moderation_type;
typedef enum {
sessiongroup_type_normal = 0,
sessiongroup_type_playback = 1
} vx_sessiongroup_type;
typedef enum {
participant_left = 0,
participant_timeout = 1,
participant_kicked = 2,
participant_banned = 3
} vx_participant_removed_reason;
typedef enum {
connection_state_disconnected = 0,
connection_state_connected = 1,
connection_state_recovering = 3,
connection_state_failed_to_recover = 4,
connection_state_recovered = 5
} vx_connection_state;
typedef struct vx_message_base {
vx_message_type type;
VX_SDK_HANDLE sdk_handle;
unsigned long long create_time_ms;
unsigned long long last_step_ms;
} vx_message_base_t;
typedef enum {
req_none = 0,
req_connector_create = 1,
req_connector_initiate_shutdown = 2,
req_account_login = 3,
req_account_logout = 4,
req_account_set_login_properties = 5,
req_sessiongroup_create = 6,
req_sessiongroup_terminate = 7,
req_sessiongroup_add_session = 8,
req_sessiongroup_remove_session = 9,
req_sessiongroup_set_focus = 10,
req_sessiongroup_unset_focus = 11,
req_sessiongroup_reset_focus = 12,
req_sessiongroup_set_tx_session = 13,
req_sessiongroup_set_tx_all_sessions = 14,
req_sessiongroup_set_tx_no_session = 15,
req_session_create = 16,
req_session_media_connect = 18,
req_session_media_disconnect = 19,
req_session_terminate = 21,
req_session_mute_local_speaker = 22,
req_session_set_local_speaker_volume = 23,
req_session_set_local_render_volume = 24,
req_session_channel_invite_user = 25,
req_session_set_participant_volume_for_me = 26,
req_session_set_participant_mute_for_me = 27,
req_session_set_3d_position = 28,
req_session_set_voice_font = 29,
req_account_channel_add_acl = 53,
req_account_channel_remove_acl = 54,
req_account_channel_get_acl = 55,
req_channel_mute_user = 56,
req_channel_ban_user = 57,
req_channel_get_banned_users = 58,
req_channel_kick_user = 59,
req_channel_mute_all_users = 60,
req_connector_mute_local_mic = 61,
req_connector_mute_local_speaker = 62,
req_connector_set_local_mic_volume = 63,
req_connector_set_local_speaker_volume = 64,
req_connector_get_local_audio_info = 65,
req_account_buddy_set = 67,
req_account_buddy_delete = 68,
req_account_list_buddies_and_groups = 71,
req_session_send_message = 72,
req_account_set_presence = 73,
req_account_send_subscription_reply = 74,
req_session_send_notification = 75,
req_account_create_block_rule = 76,
req_account_delete_block_rule = 77,
req_account_list_block_rules = 78,
req_account_create_auto_accept_rule = 79,
req_account_delete_auto_accept_rule = 80,
req_account_list_auto_accept_rules = 81,
req_account_update_account = 82,
req_account_get_account = 83,
req_account_send_sms = 84,
req_aux_connectivity_info = 86,
req_aux_get_render_devices = 87,
req_aux_get_capture_devices = 88,
req_aux_set_render_device = 89,
req_aux_set_capture_device = 90,
req_aux_get_mic_level = 91,
req_aux_get_speaker_level = 92,
req_aux_set_mic_level = 93,
req_aux_set_speaker_level = 94,
req_aux_render_audio_start = 95,
req_aux_render_audio_stop = 96,
req_aux_capture_audio_start = 97,
req_aux_capture_audio_stop = 98,
req_aux_global_monitor_keyboard_mouse = 99,
req_aux_set_idle_timeout = 100,
req_aux_create_account = 101,
req_aux_reactivate_account = 102,
req_aux_deactivate_account = 103,
req_account_post_crash_dump = 104,
req_aux_reset_password = 105,
req_sessiongroup_set_session_3d_position = 106,
req_account_get_session_fonts = 107,
req_account_get_template_fonts = 108,
req_aux_start_buffer_capture = 109,
req_aux_play_audio_buffer = 110,
req_sessiongroup_control_recording = 111,
req_sessiongroup_control_playback = 112,
req_sessiongroup_set_playback_options = 113,
req_session_text_connect = 114,
req_session_text_disconnect = 115,
req_channel_set_lock_mode = 116,
req_aux_render_audio_modify = 117,
req_session_send_dtmf = 118,
req_aux_set_vad_properties = 120,
req_aux_get_vad_properties = 121,
req_sessiongroup_control_audio_injection = 124,
req_account_channel_change_owner = 125,
req_account_send_user_app_data = 128,
req_aux_diagnostic_state_dump = 129,
req_account_web_call = 130,
req_account_anonymous_login = 131,
req_account_authtoken_login = 132,
req_sessiongroup_get_stats = 133,
req_account_send_message = 134,
req_aux_notify_application_state_change = 135,
req_account_control_communications = 136,
req_session_archive_query = 137,
req_account_archive_query = 138,
req_session_transcription_control = 139,
req_aux_get_derumbler_properties = 140,
req_aux_set_derumbler_properties = 141,
req_session_chat_history_query = 142,
req_account_chat_history_query = 143,
req_account_chat_history_get_last_read = 144,
req_session_edit_message = 145,
req_account_edit_message = 146,
req_session_delete_message = 147,
req_account_delete_message = 148,
req_account_get_conversations = 149,
req_account_chat_history_set_marker = 150,
req_account_safe_voice_update_consent = 151,
req_account_safe_voice_get_consent = 152,
req_max = req_account_safe_voice_get_consent + 1
} vx_request_type;
typedef enum {
resp_none = 0,
resp_connector_create = 1,
resp_connector_initiate_shutdown = 2,
resp_account_login = 3,
resp_account_logout = 4,
resp_account_set_login_properties = 5,
resp_sessiongroup_create = 6,
resp_sessiongroup_terminate = 7,
resp_sessiongroup_add_session = 8,
resp_sessiongroup_remove_session = 9,
resp_sessiongroup_set_focus = 10,
resp_sessiongroup_unset_focus = 11,
resp_sessiongroup_reset_focus = 12,
resp_sessiongroup_set_tx_session = 13,
resp_sessiongroup_set_tx_all_sessions = 14,
resp_sessiongroup_set_tx_no_session = 15,
resp_session_create = 16,
resp_session_media_connect = 18,
resp_session_media_disconnect = 19,
resp_session_terminate = 21,
resp_session_mute_local_speaker = 22,
resp_session_set_local_speaker_volume = 23,
resp_session_set_local_render_volume = 24,
resp_session_channel_invite_user = 25,
resp_session_set_participant_volume_for_me = 26,
resp_session_set_participant_mute_for_me = 27,
resp_session_set_3d_position = 28,
resp_session_set_voice_font = 29,
resp_account_channel_get_list = 33,
resp_account_channel_add_acl = 53,
resp_account_channel_remove_acl = 54,
resp_account_channel_get_acl = 55,
resp_channel_mute_user = 56,
resp_channel_ban_user = 57,
resp_channel_get_banned_users = 58,
resp_channel_kick_user = 59,
resp_channel_mute_all_users = 60,
resp_connector_mute_local_mic = 61,
resp_connector_mute_local_speaker = 62,
resp_connector_set_local_mic_volume = 63,
resp_connector_set_local_speaker_volume = 64,
resp_connector_get_local_audio_info = 65,
resp_account_buddy_set = 67,
resp_account_buddy_delete = 68,
resp_account_list_buddies_and_groups = 71,
resp_session_send_message = 72,
resp_account_set_presence = 73,
resp_account_send_subscription_reply = 74,
resp_session_send_notification = 75,
resp_account_create_block_rule = 76,
resp_account_delete_block_rule = 77,
resp_account_list_block_rules = 78,
resp_account_create_auto_accept_rule = 79,
resp_account_delete_auto_accept_rule = 80,
resp_account_list_auto_accept_rules = 81,
resp_account_update_account = 82,
resp_account_get_account = 83,
resp_account_send_sms = 84,
resp_aux_connectivity_info = 86,
resp_aux_get_render_devices = 87,
resp_aux_get_capture_devices = 88,
resp_aux_set_render_device = 89,
resp_aux_set_capture_device = 90,
resp_aux_get_mic_level = 91,
resp_aux_get_speaker_level = 92,
resp_aux_set_mic_level = 93,
resp_aux_set_speaker_level = 94,
resp_aux_render_audio_start = 95,
resp_aux_render_audio_stop = 96,
resp_aux_capture_audio_start = 97,
resp_aux_capture_audio_stop = 98,
resp_aux_global_monitor_keyboard_mouse = 99,
resp_aux_set_idle_timeout = 100,
resp_aux_create_account = 101,
resp_aux_reactivate_account = 102,
resp_aux_deactivate_account = 103,
resp_account_post_crash_dump = 104,
resp_aux_reset_password = 105,
resp_sessiongroup_set_session_3d_position = 106,
resp_account_get_session_fonts = 107,
resp_account_get_template_fonts = 108,
resp_aux_start_buffer_capture = 109,
resp_aux_play_audio_buffer = 110,
resp_sessiongroup_control_recording = 111,
resp_sessiongroup_control_playback = 112,
resp_sessiongroup_set_playback_options = 113,
resp_session_text_connect = 114,
resp_session_text_disconnect = 115,
resp_channel_set_lock_mode = 116,
resp_aux_render_audio_modify = 117,
resp_session_send_dtmf = 118,
resp_aux_set_vad_properties = 120,
resp_aux_get_vad_properties = 121,
resp_sessiongroup_control_audio_injection = 124,
resp_account_channel_change_owner = 125,
resp_account_send_user_app_data = 128,
resp_aux_diagnostic_state_dump = 129,
resp_account_web_call = 130,
resp_account_anonymous_login = 131,
resp_account_authtoken_login = 132,
resp_sessiongroup_get_stats = 133,
resp_account_send_message = 134,
resp_aux_notify_application_state_change = 135,
resp_account_control_communications = 136,
resp_session_archive_query = 137,
resp_account_archive_query = 138,
resp_session_transcription_control = 139,
resp_aux_get_derumbler_properties = 140,
resp_aux_set_derumbler_properties = 141,
resp_session_chat_history_query = 142,
resp_account_chat_history_query = 143,
resp_account_chat_history_get_last_read = 144,
resp_session_edit_message = 145,
resp_account_edit_message = 146,
resp_session_delete_message = 147,
resp_account_delete_message = 148,
resp_account_get_conversations = 149,
resp_account_chat_history_set_marker = 150,
resp_account_safe_voice_update_consent = 151,
resp_account_safe_voice_get_consent = 152,
resp_max = resp_account_safe_voice_get_consent + 1
} vx_response_type;
typedef enum {
evt_none = 0,
evt_account_login_state_change = 2,
evt_buddy_presence = 7,
evt_subscription = 8,
evt_session_notification = 9,
evt_message = 10,
evt_aux_audio_properties = 11,
evt_buddy_changed = 15,
evt_buddy_group_changed = 16,
evt_buddy_and_group_list_changed = 17,
evt_keyboard_mouse = 18,
evt_idle_state_changed = 19,
evt_media_stream_updated = 20,
evt_text_stream_updated = 21,
evt_sessiongroup_added = 22,
evt_sessiongroup_removed = 23,
evt_session_added = 24,
evt_session_removed = 25,
evt_participant_added = 26,
evt_participant_removed = 27,
evt_participant_updated = 28,
evt_sessiongroup_playback_frame_played = 30,
evt_session_updated = 31,
evt_sessiongroup_updated = 32,
evt_media_completion = 33,
evt_server_app_data = 35,
evt_user_app_data = 36,
evt_network_message = 38,
evt_voice_service_connection_state_changed = 39,
evt_publication_state_changed = 40,
evt_audio_device_hot_swap = 41,
evt_user_to_user_message = 42,
evt_session_archive_message = 43,
evt_session_archive_query_end = 44,
evt_account_archive_message = 45,
evt_account_archive_query_end = 46,
evt_account_send_message_failed = 47,
evt_transcribed_message = 48,
evt_tts_injection_started = 49,
evt_tts_injection_ended = 50,
evt_tts_injection_failed = 51,
evt_stt_failed = 52,
evt_connection_state_changed = 53,
evt_presence_updated = 54,
evt_session_edit_message = 55,
evt_account_edit_message = 56,
evt_session_delete_message = 57,
evt_account_delete_message = 58,
evt_max = evt_account_delete_message + 1
} vx_event_type;
typedef struct vx_req_base {
vx_message_base_t message;
vx_request_type type;
VX_COOKIE cookie;
void *vcookie;
} vx_req_base_t;
typedef struct vx_resp_base {
vx_message_base_t message;
vx_response_type type;
int return_code;
int status_code;
char *status_string;
vx_req_base_t *request;
char *extended_status_info;
} vx_resp_base_t;
typedef struct vx_evt_base {
vx_message_base_t message;
vx_event_type type;
char *extended_status_info;
} vx_evt_base_t;
typedef enum {
ND_E_NO_ERROR = 0,
ND_E_TEST_NOT_RUN = 1,
ND_E_NO_INTERFACE = 2,
ND_E_NO_INTERFACE_WITH_GATEWAY = 3,
ND_E_NO_INTERFACE_WITH_ROUTE = 4,
ND_E_TIMEOUT = 5,
ND_E_CANT_ICMP = 6,
ND_E_CANT_RESOLVE_VIVOX_UDP_SERVER = 7,
ND_E_CANT_RESOLVE_ROOT_DNS_SERVER = 8,
ND_E_CANT_CONVERT_LOCAL_IP_ADDRESS = 9,
ND_E_CANT_CONTACT_STUN_SERVER_ON_UDP_PORT_3478 = 10,
ND_E_CANT_CREATE_TCP_SOCKET = 11,
ND_E_CANT_LOAD_ICMP_LIBRARY = 12,
ND_E_CANT_FIND_SENDECHO2_PROCADDR = 13,
ND_E_CANT_CONNECT_TO_ECHO_SERVER = 14,
ND_E_ECHO_SERVER_LOGIN_SEND_FAILED = 15,
ND_E_ECHO_SERVER_LOGIN_RECV_FAILED = 16,
ND_E_ECHO_SERVER_LOGIN_RESPONSE_MISSING_STATUS = 17,
ND_E_ECHO_SERVER_LOGIN_RESPONSE_FAILED_STATUS = 18,
ND_E_ECHO_SERVER_LOGIN_RESPONSE_MISSING_SESSIONID = 19,
ND_E_ECHO_SERVER_LOGIN_RESPONSE_MISSING_SIPPORT = 20,
ND_E_ECHO_SERVER_LOGIN_RESPONSE_MISSING_AUDIORTP = 21,
ND_E_ECHO_SERVER_LOGIN_RESPONSE_MISSING_AUDIORTCP = 22,
ND_E_ECHO_SERVER_LOGIN_RESPONSE_MISSING_VIDEORTP = 23,
ND_E_ECHO_SERVER_LOGIN_RESPONSE_MISSING_VIDEORTCP = 24,
ND_E_ECHO_SERVER_CANT_ALLOCATE_SIP_SOCKET = 25,
ND_E_ECHO_SERVER_CANT_ALLOCATE_MEDIA_SOCKET = 26,
ND_E_ECHO_SERVER_SIP_UDP_SEND_FAILED = 27,
ND_E_ECHO_SERVER_SIP_UDP_RECV_FAILED = 28,
ND_E_ECHO_SERVER_SIP_TCP_SEND_FAILED = 29,
ND_E_ECHO_SERVER_SIP_TCP_RECV_FAILED = 30,
ND_E_ECHO_SERVER_SIP_NO_UDP_OR_TCP = 31,
ND_E_ECHO_SERVER_SIP_NO_UDP = 32,
ND_E_ECHO_SERVER_SIP_NO_TCP = 33,
ND_E_ECHO_SERVER_SIP_MALFORMED_TCP_PACKET = 34,
ND_E_ECHO_SERVER_SIP_UDP_DIFFERENT_LENGTH = 35,
ND_E_ECHO_SERVER_SIP_UDP_DATA_DIFFERENT = 36,
ND_E_ECHO_SERVER_SIP_TCP_PACKETS_DIFFERENT = 37,
ND_E_ECHO_SERVER_SIP_TCP_PACKETS_DIFFERENT_SIZE = 38,
ND_E_ECHO_SERVER_LOGIN_RECV_FAILED_TIMEOUT = 39,
ND_E_ECHO_SERVER_TCP_SET_ASYNC_FAILED = 40,
ND_E_ECHO_SERVER_UDP_SET_ASYNC_FAILED = 41,
ND_E_ECHO_SERVER_CANT_RESOLVE_NAME = 42
} ND_ERROR;
typedef enum {
ND_TEST_LOCATE_INTERFACE = 0,
ND_TEST_PING_GATEWAY = 1,
ND_TEST_DNS = 2,
ND_TEST_STUN = 3,
ND_TEST_ECHO = 4,
ND_TEST_ECHO_SIP_FIRST_PORT = 5,
ND_TEST_ECHO_SIP_FIRST_PORT_INVITE_REQUEST = 6,
ND_TEST_ECHO_SIP_FIRST_PORT_INVITE_RESPONSE = 7,
ND_TEST_ECHO_SIP_FIRST_PORT_REGISTER_REQUEST = 8,
ND_TEST_ECHO_SIP_FIRST_PORT_REGISTER_RESPONSE = 9,
ND_TEST_ECHO_SIP_SECOND_PORT = 10,
ND_TEST_ECHO_SIP_SECOND_PORT_INVITE_REQUEST = 11,
ND_TEST_ECHO_SIP_SECOND_PORT_INVITE_RESPONSE = 12,
ND_TEST_ECHO_SIP_SECOND_PORT_REGISTER_REQUEST = 13,
ND_TEST_ECHO_SIP_SECOND_PORT_REGISTER_RESPONSE = 14,
ND_TEST_ECHO_MEDIA = 15,
ND_TEST_ECHO_MEDIA_LARGE_PACKET = 16
} ND_TEST_TYPE;
typedef enum {
mode_none = 0,
mode_auto_answer = 1,
mode_verify_answer = 2,
mode_busy_answer = 3
} vx_session_answer_mode;
typedef enum {
mode_auto_accept = 0,
mode_auto_add = 1,
mode_block = 2,
mode_hide = 3,
mode_application = 4
} vx_buddy_management_mode;
typedef enum {
rule_none = 0,
rule_allow = 1,
rule_block = 2,
rule_hide = 3
} vx_rule_type;
typedef enum {
type_none = 0,
type_root = 1,
type_user = 2
} vx_font_type;
typedef enum {
status_none = 0,
status_free = 1,
status_not_free = 2
} vx_font_status;
typedef enum {
subscription_presence = 0
} vx_subscription_type;
typedef enum {
notification_not_typing = 0,
notification_typing = 1,
notification_hand_lowered = 2,
notification_hand_raised = 3,
notification_min = notification_not_typing,
notification_max = notification_hand_raised
} vx_notification_type;
typedef enum {
dtmf_0 = 0,
dtmf_1 = 1,
dtmf_2 = 2,
dtmf_3 = 3,
dtmf_4 = 4,
dtmf_5 = 5,
dtmf_6 = 6,
dtmf_7 = 7,
dtmf_8 = 8,
dtmf_9 = 9,
dtmf_pound = 10,
dtmf_star = 11,
dtmf_A = 12,
dtmf_B = 13,
dtmf_C = 14,
dtmf_D = 15,
dtmf_max = dtmf_D
} vx_dtmf_type;
typedef enum {
text_mode_disabled = 0,
text_mode_enabled = 1
} vx_text_mode;
typedef enum {
channel_unlock = 0,
channel_lock = 1
} vx_channel_lock_mode;
typedef enum {
mute_scope_all = 0,
mute_scope_audio = 1,
mute_scope_text = 2
} vx_mute_scope;
typedef enum {
VX_RECORDING_FRAME_TYPE_DELTA = 0,
VX_RECORDING_FRAME_TYPE_CONTROL = 1
} vx_recording_frame_type_t;
typedef enum {
op_none = 0,
op_safeupdate = 1,
op_delete = 2
} vx_audiosource_operation;
typedef enum {
aux_audio_properties_none = 0
} vx_aux_audio_properties_state;
typedef enum {
login_state_logged_out = 0,
login_state_logged_in = 1,
login_state_logging_in = 2,
login_state_logging_out = 3,
login_state_resetting = 4,
login_state_error = 100
} vx_login_state_change_state;
typedef enum {
publication_state_success = 0,
publication_state_transient_error = 1,
publication_state_permanent_error = 2
} vx_publication_state_change_state;
typedef enum {
buddy_presence_unknown = 0,
buddy_presence_pending = 1,
buddy_presence_online = 2,
buddy_presence_busy = 3,
buddy_presence_brb = 4,
buddy_presence_away = 5,
buddy_presence_onthephone = 6,
buddy_presence_outtolunch = 7,
buddy_presence_custom = 8,
buddy_presence_online_slc = 9,
buddy_presence_closed = 0,
buddy_presence_offline = 0,
buddy_presence_chat = 10,
buddy_presence_extended_away = 11,
buddy_presence_min = buddy_presence_unknown,
buddy_presence_max = buddy_presence_extended_away
} vx_buddy_presence_state;
typedef enum {
presence_online = 0,
presence_busy = 1,
presence_brb = 2,
presence_away = 3,
presence_onthephone = 4,
presence_offline = 5,
presence_chat = 6,
presence_extended_away = 7,
presence_min = presence_online,
presence_max = presence_extended_away
} vx_presence_state;
typedef enum {
session_notification_none = 0
} vx_session_notification_state;
typedef enum {
message_none = 0
} vx_message_state;
typedef enum {
// NB: Keep in sync with enum TextState in sessionproperties.h
session_text_disconnected = 0,
session_text_connected = 1,
session_text_connecting = 2,
session_text_disconnecting = 3
} vx_session_text_state;
typedef enum {
// NB: Keep in sync with enum MediaState in sessionproperties.h
// NB: MediaState has the additional state MediaStateIncoming, which is mapped to session_media_ringing or session_media_disconnected in different places.
session_media_disconnected = 1,
session_media_connected = 2,
session_media_ringing = 3,
session_media_connecting = 6,
session_media_disconnecting = 7
} vx_session_media_state;
typedef enum {
participant_user = 0,
part_user = participant_user, // For backward compatibility.
participant_moderator = 1,
part_moderator = participant_moderator, // For backward compatibility.
participant_owner = 2,
part_focus = participant_owner // For backward compatibility.
} vx_participant_type;
typedef enum {
orientation_default = 0,
orientation_legacy = 1,
orientation_vivox = 2
} orientation_type;
typedef enum {
media_completion_type_none = 0,
aux_buffer_audio_capture = 1,
aux_buffer_audio_render = 2,
sessiongroup_audio_injection = 3
} vx_media_completion_type;
#define VX_MEDIA_FLAGS_AUDIO 0x1
#define VX_MEDIA_FLAGS_TEXT 0x2
// Buddy for state dump.
typedef struct vx_state_buddy_contact {
vx_buddy_presence_state presence;
char *display_name;
char *application;
char *custom_message;
char *contact;
char *priority;
char *id;
} vx_state_buddy_contact_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_state_buddy_contact_create(vx_state_buddy_contact_t **contact);
VIVOXSDK_DLLEXPORT int vx_state_buddy_contact_free(vx_state_buddy_contact_t *contact);
#endif
typedef vx_state_buddy_contact_t *vx_state_buddy_contact_ref_t;
typedef vx_state_buddy_contact_ref_t *vx_state_buddy_contact_list_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_state_buddy_contact_list_create(int size, vx_state_buddy_contact_list_t *list_out);
VIVOXSDK_DLLEXPORT int vx_state_buddy_contact_list_free(vx_state_buddy_contact_t **list, int size);
#endif
// Buddy for state dump.
typedef struct vx_state_buddy {
char *buddy_uri;
char *display_name;
int parent_group_id;
char *buddy_data;
// char* account_name;
int state_buddy_contact_count;
vx_state_buddy_contact_t **state_buddy_contacts;
} vx_state_buddy_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_state_buddy_create(vx_state_buddy_t **buddy);
VIVOXSDK_DLLEXPORT int vx_state_buddy_free(vx_state_buddy_t *buddy);
#endif
typedef vx_state_buddy_t *vx_state_buddy_ref_t;
typedef vx_state_buddy_ref_t *vx_state_buddy_list_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_state_buddy_list_create(int size, vx_state_buddy_list_t *list_out);
VIVOXSDK_DLLEXPORT int vx_state_buddy_list_free(vx_state_buddy_t **list, int size);
#endif
typedef struct vx_state_buddy_group {
int group_id;
char *group_name;
char *group_data;
} vx_state_buddy_group_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_state_buddy_group_create(vx_state_buddy_group_t **group);
VIVOXSDK_DLLEXPORT int vx_state_buddy_group_free(vx_state_buddy_group_t *group);
#endif
typedef vx_state_buddy_group_t *vx_state_buddy_group_ref_t;
typedef vx_state_buddy_group_ref_t *vx_state_buddy_group_list_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_state_buddy_group_list_create(int size, vx_state_buddy_group_list_t *list_out);
VIVOXSDK_DLLEXPORT int vx_state_buddy_group_list_free(vx_state_buddy_group_t **list, int size);
#endif
typedef struct vx_participant {
char *uri;
char *first_name;
char *last_name;
char *display_name;
char *username;
int is_moderator;
int is_moderator_muted;
int is_moderator_text_muted;
int is_muted_for_me; // NOT CURRENTLY IMPLEMENTED
int is_owner;
int account_id;
} vx_participant_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_participant_create(vx_participant_t **participant);
VIVOXSDK_DLLEXPORT int vx_participant_free(vx_participant_t *participant);
#endif
typedef vx_participant_t *vx_participant_ref_t;
typedef vx_participant_ref_t *vx_participant_list_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_participant_list_create(int size, vx_participant_list_t *list_out);
VIVOXSDK_DLLEXPORT int vx_participant_list_free(vx_participant_t **list, int size);
#endif
typedef struct vx_state_participant {
char *uri;
char *display_name;
int is_audio_enabled;
int is_text_enabled;
int is_audio_muted_for_me;
int is_text_muted_for_me; // Not currently supported.
int is_audio_moderator_muted;
int is_text_moderator_muted;
int is_hand_raised;
int is_typing;
int is_speaking;
int volume;
double energy;
vx_participant_type type;
int is_anonymous_login;
} vx_state_participant_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_state_participant_create(vx_state_participant_t **state_participant);
VIVOXSDK_DLLEXPORT int vx_state_participant_free(vx_state_participant_t *state_participant);
#endif
typedef vx_state_participant_t *vx_state_participant_ref_t;
typedef vx_state_participant_ref_t *vx_state_participant_list_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_state_participant_list_create(int size, vx_state_participant_list_t *list_out);
VIVOXSDK_DLLEXPORT int vx_state_participant_list_free(vx_state_participant_t **list, int size);
#endif
typedef struct vx_state_session {
char *session_handle;
char *uri;
char *name;
int is_audio_muted_for_me;
int is_text_muted_for_me; // Not currently supported.
int is_transmitting;
int is_focused;
int volume;
int session_font_id;
int has_audio;
int has_text;
int is_incoming;
int is_positional;
int is_connected;
int state_participant_count;
vx_state_participant_t **state_participants;
char *durable_media_id;
} vx_state_session_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_state_session_create(vx_state_session_t **state_session);
VIVOXSDK_DLLEXPORT int vx_state_session_free(vx_state_session_t *state_session);
#endif
typedef vx_state_session_t *vx_state_session_ref_t;
typedef vx_state_session_ref_t *vx_state_session_list_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_state_session_list_create(int size, vx_state_session_list_t *list_out);
VIVOXSDK_DLLEXPORT int vx_state_session_list_free(vx_state_session_t **list, int size);
#endif
typedef struct vx_state_sessiongroup {
char *sessiongroup_handle;
int state_sessions_count;
vx_state_session_t **state_sessions;
int in_delayed_playback;
double current_playback_speed;
vx_sessiongroup_playback_mode current_playback_mode;
int playback_paused;
int loop_buffer_capacity;
int first_loop_frame;
int total_loop_frames_captured;
int last_loop_frame_played;
char *current_recording_filename;
int total_recorded_frames;
} vx_state_sessiongroup_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_state_sessiongroup_create(vx_state_sessiongroup_t **state_sessiongroup);
VIVOXSDK_DLLEXPORT int vx_state_sessiongroup_free(vx_state_sessiongroup_t *state_sessiongroup);
#endif
typedef vx_state_sessiongroup_t *vx_state_sessiongroup_ref_t;
typedef vx_state_sessiongroup_ref_t *vx_state_sessiongroup_list_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_state_sessiongroup_list_create(int size, vx_state_sessiongroup_list_t *list_out);
VIVOXSDK_DLLEXPORT int vx_state_sessiongroup_list_free(vx_state_sessiongroup_t **list, int size);
#endif
typedef struct vx_state_account {
char *account_handle;
char *account_uri;
char *display_name;
int is_anonymous_login;
int state_sessiongroups_count;
vx_login_state_change_state state;
vx_state_sessiongroup_t **state_sessiongroups;
int state_buddy_count;
int state_buddy_group_count;
vx_state_buddy_t **state_buddies;
vx_state_buddy_group_t **state_buddy_groups;
} vx_state_account_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_state_account_create(vx_state_account_t **state_account);
VIVOXSDK_DLLEXPORT int vx_state_account_free(vx_state_account_t *state_account);
#endif
typedef vx_state_account_t *vx_state_account_ref_t;
typedef vx_state_account_ref_t *vx_state_account_list_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_state_account_list_create(int size, vx_state_account_list_t *list_out);
VIVOXSDK_DLLEXPORT int vx_state_account_list_free(vx_state_account_t **list, int size);
#endif
typedef struct vx_state_connector {
char *connector_handle;
int state_accounts_count;
vx_state_account_t **state_accounts;
int mic_vol;
int mic_mute;
int speaker_vol;
int speaker_mute;
} vx_state_connector_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_state_connector_create(vx_state_connector_t **state_connector);
VIVOXSDK_DLLEXPORT int vx_state_connector_free(vx_state_connector_t *state_connector);
#endif
typedef vx_state_connector_t *vx_state_connector_ref_t;
typedef vx_state_connector_ref_t *vx_state_connector_list_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_state_connector_list_create(int size, vx_state_connector_list_t *list_out);
VIVOXSDK_DLLEXPORT int vx_state_connector_list_free(vx_state_connector_t **list, int size);
#endif
typedef struct vx_channel {
char *channel_name;
char *channel_desc;
char *host;
int channel_id;
int limit;
int capacity;
char *modified;
char *owner;
char *owner_user_name;
int is_persistent; /* 1 true, <= 0 false */
int is_protected; /* 1 true, <= 0 false */
int size;
int type;
vx_channel_mode mode;
char *channel_uri;
int max_range;
int clamping_dist;
double roll_off;
double max_gain;
int dist_model;
int encrypt_audio;
char *owner_display_name;
int active_participants;
} vx_channel_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_channel_create(vx_channel_t **channel);
VIVOXSDK_DLLEXPORT int vx_channel_free(vx_channel_t *channel);
#endif
typedef vx_channel_t *vx_channel_ref_t;
typedef vx_channel_ref_t *vx_channel_list_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_channel_list_create(int size, vx_channel_list_t *list_out);
VIVOXSDK_DLLEXPORT int vx_channel_list_free(vx_channel_t **list, int size);
#endif
typedef struct vx_voice_font {
int id;
int parent_id;
vx_font_type type;
char *name;
char *description;
char *expiration_date;
int expired; // 0 is false, 1 is true
char *font_delta;
char *font_rules;
vx_font_status status;
} vx_voice_font_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_voice_font_create(vx_voice_font_t **channel);
VIVOXSDK_DLLEXPORT int vx_voice_font_free(vx_voice_font_t *channel);
#endif
typedef vx_voice_font_t *vx_voice_font_ref_t;
typedef vx_voice_font_ref_t *vx_voice_font_list_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_voice_font_list_create(int size, vx_voice_font_list_t *list_out);
VIVOXSDK_DLLEXPORT int vx_voice_font_list_free(vx_voice_font_t **list, int size);
VIVOXSDK_DLLEXPORT int vx_string_list_create(int size, char ***list_out);
VIVOXSDK_DLLEXPORT int vx_string_list_free(char **list);
#endif
typedef struct vx_block_rule {
char *block_mask;
int presence_only;
} vx_block_rule_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_block_rule_create(vx_block_rule_t **block_rule);
VIVOXSDK_DLLEXPORT int vx_block_rule_free(vx_block_rule_t *block_rule);
#endif
typedef vx_block_rule_t *vx_block_rule_ref_t;
typedef vx_block_rule_ref_t *vx_block_rules_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_block_rules_create(int size, vx_block_rules_t *list_out);
VIVOXSDK_DLLEXPORT int vx_block_rules_free(vx_block_rule_t **list, int size);
#endif
typedef struct vx_auto_accept_rule {
char *auto_accept_mask;
int auto_add_as_buddy;
char *auto_accept_nickname;
} vx_auto_accept_rule_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_auto_accept_rule_create(vx_auto_accept_rule_t **auto_accept_rule);
VIVOXSDK_DLLEXPORT int vx_auto_accept_rule_free(vx_auto_accept_rule_t *auto_accept_rule);
#endif
typedef vx_auto_accept_rule_t *vx_auto_accept_rule_ref_t;
typedef vx_auto_accept_rule_ref_t *vx_auto_accept_rules_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_auto_accept_rules_create(int size, vx_auto_accept_rules_t *list_out);
VIVOXSDK_DLLEXPORT int vx_auto_accept_rules_free(vx_auto_accept_rule_t **list, int size);
#endif
typedef struct vx_user_channel {
char *uri;
char *name;
} vx_user_channel_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_user_channel_create(vx_user_channel_t **user_channel);
VIVOXSDK_DLLEXPORT int vx_user_channel_free(vx_user_channel_t *user_channel);
#endif
typedef vx_user_channel_t *vx_user_channel_ref_t;
typedef vx_user_channel_ref_t *vx_user_channels_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_user_channels_create(int size, vx_user_channels_t *list_out);
VIVOXSDK_DLLEXPORT int vx_user_channels_free(vx_user_channel_t **list, int size);
#endif
typedef struct vx_connectivity_test_result {
ND_TEST_TYPE test_type;
ND_ERROR test_error_code;
char *test_additional_info;
} vx_connectivity_test_result_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_connectivity_test_result_create(vx_connectivity_test_result_t **connectivity_test_result, ND_TEST_TYPE tt);
VIVOXSDK_DLLEXPORT int vx_connectivity_test_result_free(vx_connectivity_test_result_t *connectivity_test_result);
#endif
typedef vx_connectivity_test_result_t *vx_connectivity_test_result_ref_t;
typedef vx_connectivity_test_result_ref_t *vx_connectivity_test_results_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_connectivity_test_results_create(int size, vx_connectivity_test_results_t *list_out);
VIVOXSDK_DLLEXPORT int vx_connectivity_test_results_free(vx_connectivity_test_result_t **list, int size);
#endif
typedef struct vx_account {
char *uri;
char *firstname;
char *lastname;
char *username;
char *displayname;
char *email;
char *phone;
char *carrier; // Not currently implemented.
char *created_date;
} vx_account_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_account_create(vx_account_t **account);
VIVOXSDK_DLLEXPORT int vx_account_free(vx_account_t *account);
#endif
typedef enum vx_device_type {
vx_device_type_specific_device = 0,
vx_device_type_default_system = 1,
vx_device_type_null = 2,
vx_device_type_default_communication = 3
} vx_device_type_t;
typedef struct vx_device {
char *device;
char *display_name;
vx_device_type_t device_type;
} vx_device_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_device_create(vx_device_t **device);
VIVOXSDK_DLLEXPORT int vx_device_free(vx_device_t *device);
#endif
typedef vx_device_t *vx_device_ref_t;
typedef vx_device_ref_t *vx_devices_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_devices_create(int size, vx_devices_t *list_out);
VIVOXSDK_DLLEXPORT int vx_devices_free(vx_device_t **list, int size);
#endif
typedef struct vx_buddy {
char *buddy_uri;
char *display_name;
int parent_group_id;
char *buddy_data;
int account_id;
char *account_name;
} vx_buddy_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_buddy_create(vx_buddy_t **buddy);
VIVOXSDK_DLLEXPORT int vx_buddy_free(vx_buddy_t *buddy);
#endif
typedef vx_buddy_t *vx_buddy_ref_t;
typedef vx_buddy_ref_t *vx_buddy_list_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_buddy_list_create(int size, vx_buddy_list_t *list_out);
VIVOXSDK_DLLEXPORT int vx_buddy_list_free(vx_buddy_t **list, int size);
#endif
typedef struct vx_group {
int group_id;
char *group_name;
char *group_data;
} vx_group_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_group_create(vx_group_t **group);
VIVOXSDK_DLLEXPORT int vx_group_free(vx_group_t *group);
#endif
typedef vx_group_t *vx_group_ref_t;
typedef vx_group_ref_t *vx_group_list_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_group_list_create(int size, vx_group_list_t *list_out);
VIVOXSDK_DLLEXPORT int vx_group_list_free(vx_group_t **list, int size);
#endif
typedef struct vx_name_value_pair {
char *name;
char *value;
} vx_name_value_pair_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_name_value_pair_create(vx_name_value_pair_t **nvpair);
VIVOXSDK_DLLEXPORT int vx_name_value_pair_free(vx_name_value_pair_t *nvpair);
#endif
typedef vx_name_value_pair_t *vx_name_value_pair_ref_t;
typedef vx_name_value_pair_ref_t *vx_name_value_pairs_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_name_value_pairs_create(int size, vx_name_value_pairs_t *list_out);
VIVOXSDK_DLLEXPORT int vx_name_value_pairs_free(vx_name_value_pair_t **list, int size);
#endif
typedef enum {
vx_conversation_channel = 0,
vx_conversation_direct = 1
} vx_conversation_type;
typedef struct vx_conversation {
char *name;
vx_conversation_type type;
char *display_name;
int unread_count;
} vx_conversation_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_conversation_create(vx_conversation_t **conversation);
VIVOXSDK_DLLEXPORT int vx_conversation_free(vx_conversation_t *conversation);
#endif
typedef vx_conversation_t *vx_conversation_ref_t;
typedef vx_conversation_ref_t *vx_conversation_list_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_conversation_list_create(int size, vx_conversation_list_t *list_out);
VIVOXSDK_DLLEXPORT int vx_conversation_list_free(int size, vx_conversation_t **list);
#endif
/* Vivox SDK functions */
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT char *vx_strdup(const char *);
VIVOXSDK_DLLEXPORT int vx_free(char *);
VIVOXSDK_DLLEXPORT int vx_unallocate(void *p);
VIVOXSDK_DLLEXPORT void *vx_allocate(size_t nBytes);
VIVOXSDK_DLLEXPORT void *vx_reallocate(void *p, size_t nBytes);
VIVOXSDK_DLLEXPORT void *vx_calloc(size_t num, size_t bytesPerElement);
VIVOXSDK_DLLEXPORT void *vx_allocate_aligned(size_t alignment, size_t size);
VIVOXSDK_DLLEXPORT int vx_unallocate_aligned(void *p);
#define VX_GET_MESSAGE_NO_MESSAGE -1
#define VX_GET_MESSAGE_AVAILABLE 0
#define VX_GET_MESSAGE_FAILURE 1
VIVOXSDK_DLLEXPORT int vx_get_message(vx_message_base_t **message);
VIVOXSDK_DLLEXPORT int vx_issue_request(vx_req_base_t *request);
VIVOXSDK_DLLEXPORT int vx_issue_request2(vx_req_base_t *request);
VIVOXSDK_DLLEXPORT int vx_issue_request3(vx_req_base_t *request, int *request_count);
VIVOXSDK_DLLEXPORT int vx_request_to_xml(void *request, char **xml);
VIVOXSDK_DLLEXPORT vx_request_type vx_xml_to_request(const char *xml, void **request, char **error);
VIVOXSDK_DLLEXPORT int vx_response_to_xml(void *response, char **xml);
VIVOXSDK_DLLEXPORT vx_response_type vx_xml_to_response(const char *xml, void **response, char **error);
VIVOXSDK_DLLEXPORT int vx_event_to_xml(void *event, char **xml);
VIVOXSDK_DLLEXPORT vx_event_type vx_xml_to_event(const char *xml, void **event, char **error);
VIVOXSDK_DLLEXPORT vx_message_type vx_get_message_type(const char *xml);
VIVOXSDK_DLLEXPORT unsigned long long vx_get_time_ms(void);
VIVOXSDK_DLLEXPORT unsigned long long vx_get_time_milli_seconds(void);
VIVOXSDK_DLLEXPORT unsigned long long vx_get_time_micro_seconds(void);
VIVOXSDK_DLLEXPORT long long vx_sleep_milli_seconds(unsigned long long milli_seconds);
VIVOXSDK_DLLEXPORT int vx_register_message_notification_handler(void (*pf_handler)(void *), void *cookie);
VIVOXSDK_DLLEXPORT int vx_unregister_message_notification_handler(void (*pf_handler)(void *), void *cookie);
VIVOXSDK_DLLEXPORT vx_message_base_t *vx_wait_for_message(int msTimeout);
VIVOXSDK_DLLEXPORT int vx_register_logging_initialization(
vx_log_type log_type,
const char *log_folder,
const char *log_filename_prefix,
const char *log_filename_suffix,
int log_level,
void (*pf_handler)(const char *source, const char *level, const char *message));
VIVOXSDK_DLLEXPORT char *vx_get_log_file_path(void);
VIVOXSDK_DLLEXPORT int vx_unregister_logging_handler(void (*pf_handler)(void *), void *cookie);
VIVOXSDK_DLLEXPORT int vx_create_account(const char *acct_mgmt_server, const char *admin_name, const char *admin_pw, const char *uname, const char *pw);
VIVOXSDK_DLLEXPORT int vx_get_crash_dump_count(void);
VIVOXSDK_DLLEXPORT int vx_set_crash_dump_generation_enabled(int value);
VIVOXSDK_DLLEXPORT int vx_get_crash_dump_generation(void);
VIVOXSDK_DLLEXPORT char *vx_read_crash_dump(int index);
VIVOXSDK_DLLEXPORT time_t vx_get_crash_dump_timestamp(int index);
VIVOXSDK_DLLEXPORT int vx_delete_crash_dump(int index);
VIVOXSDK_DLLEXPORT int vx_on_application_exit(void);
VIVOXSDK_DLLEXPORT const char *vx_get_sdk_version_info(void);
VIVOXSDK_DLLEXPORT const char *vx_get_sdk_version_info_ex(void);
VIVOXSDK_DLLEXPORT int vx_apply_font_to_file(const char *fontDefinition, const char *inputFile, const char *outputFile);
VIVOXSDK_DLLEXPORT int vx_apply_font_to_file_return_energy_ratio(const char *fontDefinition, const char *inputFile, const char *outputFile, double *energyRatio);
VIVOXSDK_DLLEXPORT int vx_apply_font_to_vxz_file_return_energy_ratio(const char *fontDefinition, const char *inputFile, const char *outputFile, double *energyRatio);
VIVOXSDK_DLLEXPORT void *vx_copy_audioBuffer(void *audioBufferPtr);
VIVOXSDK_DLLEXPORT double vx_get_audioBuffer_duration(void *audioBufferPtr);
VIVOXSDK_DLLEXPORT int vx_get_audioBuffer_sample_rate(void *audioBufferPtr);
VIVOXSDK_DLLEXPORT int vx_free_audioBuffer(void **audioBufferPtr);
VIVOXSDK_DLLEXPORT int vx_export_audioBuffer_to_pcm(void *audioBufferPtr, short *pcmBuffer, int maxSamples);
VIVOXSDK_DLLEXPORT int vx_export_audioBuffer_to_wav_file(void *audioBufferPtr, const char *outputFile);
VIVOXSDK_DLLEXPORT int vx_export_audioBuffer_to_memory(void *audioBufferPtr, short **audioBufferOut, int *nSamplesOut, int *sampleRateOut, int *nChannelsOut);
VIVOXSDK_DLLEXPORT int vx_set_out_of_process_server_address(const char *address, unsigned short port);
VIVOXSDK_DLLEXPORT int vx_initialize(void);
VIVOXSDK_DLLEXPORT int vx_initialize3(vx_sdk_config_t *config, size_t config_size);
VIVOXSDK_DLLEXPORT int vx_is_initialized(void);
VIVOXSDK_DLLEXPORT int vx_get_default_config3(vx_sdk_config_t *config, size_t config_size);
VIVOXSDK_DLLEXPORT int vx_uninitialize(void);
#endif
#define VIVOX_V_V2_AUDIO_DATA_MONO_SIREN14_32000_EXPANDED 0x10001
#define VIVOX_V_V2_AUDIO_DATA_MONO_SIREN14_32000 VIVOX_V_V2_AUDIO_DATA_MONO_SIREN14_32000_EXPANDED
#define VIVOX_V_V2_AUDIO_DATA_MONO_SIREN7_16000_EXPANDED 0x10008
#define VIVOX_V_V2_AUDIO_DATA_MONO_OPUS_48000_EXPANDED 0x10009
#define VIVOX_VANI_SIREN7 0x2 /* Siren7, 16kHz, 32kbps */
#define VIVOX_VANI_SIREN14 0x4 /* Siren14, 32kHz, 32kbps */
#define VIVOX_VANI_LEGACY_MASK 0x6
#define VIVOX_VANI_OPUS8 0x10 /* Opus, 48kHz, 8kbps */
#define VIVOX_VANI_OPUS40 0x20 /* Opus, 48kHz, 40kbps */
#define VIVOX_VANI_OPUS57 0x40 /* Opus, 48kHz, 57kbps */ /* proposed; pending research */
#define VIVOX_VANI_OPUS72 0x80 /* Opus, 48kHz, 72kbps */ /* proposed; pending research */
#define VIVOX_VANI_OPUS VIVOX_VANI_OPUS40
#define VIVOX_VANI_OPUS_MASK 0xf0
#define VIVOX_VANI_PCMU VX_DEPRECATED_MACRO(VIVOX_VANI_PCMU, 5.19) VIVOX_VANI_OPUS8
typedef enum {
vx_codec_siren7 = VIVOX_VANI_SIREN7, /* Siren7, 16kHz, 32kbps */
vx_codec_siren14 = VIVOX_VANI_SIREN14, /* Siren14, 32kHz, 32kbps */
vx_codec_opus8 = VIVOX_VANI_OPUS8, /* Opus, 48kHz, 8kbps */
vx_codec_opus40 = VIVOX_VANI_OPUS40, /* Opus, 48kHz, 40kbps -- recommended Opus default */
vx_codec_opus57 = VIVOX_VANI_OPUS57, /* Opus, 48kHz, 57kbps -- proposed; pending research */
vx_codec_opus72 = VIVOX_VANI_OPUS72, /* Opus, 48kHz, 72kbps -- proposed; pending research */
VX_DEPRECATED_ENUM_GCC(vx_codec_pcmu, 5.19) = VIVOX_VANI_OPUS8 /* PCMU functionality has been removed */
} vx_codec;
VX_DEPRECATED_ENUM_MSC(vx_codec_pcmu)
typedef struct vx_stat_sample {
double sample_count;
double sum;
double sum_of_squares;
double mean;
double stddev;
double min;
double max;
double last;
} vx_stat_sample_t;
typedef struct vx_stat_thread {
int interval;
int count_poll_lt_1ms;
int count_poll_lt_5ms;
int count_poll_lt_10ms;
int count_poll_lt_16ms;
int count_poll_lt_20ms;
int count_poll_lt_25ms;
int count_poll_gte_25ms;
} vx_stat_thread_t;
typedef struct vx_system_stats {
int ss_size;
int ar_source_count;
int ar_source_queue_limit;
int ar_source_queue_overflows;
int ar_source_poll_count;
unsigned msgovrld_count;
vx_stat_sample_t ar_source_free_buffers;
vx_stat_sample_t ar_source_queue_depth;
vx_stat_thread_t vp_thread;
vx_stat_thread_t ticker_thread;
int clnt_count;
int lc_count;
int mps_count;
int mpsg_count;
int strms_count;
int strr_count;
int strss_count;
int vp_count;
} vx_system_stats_t;
typedef enum vx_application_state_notification_type {
vx_application_state_notification_type_before_background = 0,
vx_application_state_notification_type_after_foreground = 1,
vx_application_state_notification_type_periodic_background_idle = 2
} vx_application_state_notification_type_t;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT int vx_debug_call(void *);
VIVOXSDK_DLLEXPORT int vx_get_system_stats(vx_system_stats_t *system_stats);
#define VX_VAR_DECODER_COUNT_LIMIT "DecoderLimit"
#define VX_VAR_DECODER_HANGOVER_LIMIT "DecoderHangoverLimit"
#define VX_VAR_RTP_ENCRYPTION "RTPEncryption"
VIVOXSDK_DLLEXPORT int vx_get_int_var(const char *var_name, int *p_value);
VIVOXSDK_DLLEXPORT int vx_set_int_var(const char *var_name, int value);
VIVOXSDK_DLLEXPORT int vx_destroy_message(vx_message_base_t *message);
#endif
typedef enum {
VXA_SUCCESS = 0,
VXA_INVALID_PARAMETER = 1,
VXA_DEVICE_DOES_NOT_EXIST = 2,
VXA_INTERNAL_ERROR = 3,
VXA_OUT_OF_MEMORY = 4,
VXA_INVALID_STATE = 5,
VXA_NO_MORE_DATA = 6,
VXA_FEATURE_NOT_SUPPORTED = 7,
VXA_MAX_DEVICES_EXCEEDED = 8,
VXA_NO_BUFFERS_AVAILABLE = 9,
VXA_ACCESS_DENIED = 10
} VXA_ERROR_CODES;
typedef enum {
VXA_CAPTURE_OPEN_FLAG_USE_AEC = 0x00000001,
VXA_CAPTURE_OPEN_FLAG_USE_AGC = 0x00000002
} VXA_CAPTURE_FLAGS;
typedef int vxa_status_t;
typedef struct vxa_capture_device_stats_t {
int buffer_underrun_count;
int buffer_overrun_count;
int other_error_count;
int audio_queue_read_count; // Correlate with buffer_underrun_count
int audio_queue_write_count; // Correlate with buffer_overrun_count
} vxa_capture_device_stats_t;
typedef struct vxa_render_device_stats_t {
int current_output_queue_depth_milliseconds;
int buffer_underrun_count;
int buffer_overrun_count;
int other_error_count;
int audio_queue_read_count; // Correlate with buffer_underrun_count
int audio_queue_write_count; // Correlate with buffer_overrun_count
int hardware_output_channels;
int hardware_preferred_samplerate;
int hardware_preferred_buffer_duration;
} vxa_render_device_stats_t;
#define MAX_VXA_DEVICE_COUNT 32
typedef enum {
channel_rolloff_curve_type_none = 0,
channel_rolloff_curve_type_inverse_distance_clamped = 1,
channel_rolloff_curve_type_linear_distance_clamped = 2,
channel_rolloff_curve_type_exponential_distance_clamped = 3
} vx_channel_rolloff_curve_type;
#ifndef VIVOX_TYPES_ONLY
VIVOXSDK_DLLEXPORT char *vx_debug_generate_token(const char *issuer, vx_time_t expiration, const char *vxa, unsigned long long serial, const char *subject, const char *from_uri, const char *to_uri, const unsigned char *key, size_t key_len);
VIVOXSDK_DLLEXPORT unsigned int vx_get_http(const char *url, unsigned int *response_code, char **content, size_t *content_len, char **content_type, size_t *content_type_len);
VIVOXSDK_DLLEXPORT int vx_free_http(char **content, char **content_type);
VIVOXSDK_DLLEXPORT char *vx_get_random_user_id(const char *prefix);
VIVOXSDK_DLLEXPORT char *vx_get_random_user_id_ex(const char *prefix, const char *issuer);
VIVOXSDK_DLLEXPORT char *vx_get_random_channel_uri(const char *prefix, const char *realm);
VIVOXSDK_DLLEXPORT char *vx_get_random_channel_uri_ex(const char *prefix, const char *realm, const char *issuer);
VIVOXSDK_DLLEXPORT char *vx_get_user_uri(const char *name, const char *realm, const char *issuer);
VIVOXSDK_DLLEXPORT char *vx_get_echo_channel_uri(const char *name, const char *realm, const char *issuer);
VIVOXSDK_DLLEXPORT char *vx_get_general_channel_uri(const char *name, const char *realm, const char *issuer);
VIVOXSDK_DLLEXPORT char *vx_get_positional_channel_uri(const char *name, const char *realm, int max_range, int clamping_distance, double rolloff, vx_channel_rolloff_curve_type distance_model, const char *issuer);
VIVOXSDK_DLLEXPORT char *vx_uri_to_string(int is_multitenant, const char *uri);
#endif
/* Audio Quality Controls functions */
typedef enum {
opus_mode_cbr = 0,
opus_mode_lvbr = 1,
opus_mode_vbr = 2
} vx_opus_vbr_mode;
typedef enum {
opus_bandwidth_auto = 0,
opus_bandwidth_nb = 1,
opus_bandwidth_mb = 2,
opus_bandwidth_wb = 3,
opus_bandwidth_swb = 4,
opus_bandwidth_fb = 5
} vx_opus_bandwidth;
VIVOXSDK_DLLEXPORT int vx_opus_set_bit_rate(int bits_per_second);
VIVOXSDK_DLLEXPORT int vx_opus_get_bit_rate(int *p_bits_per_second);
VIVOXSDK_DLLEXPORT int vx_opus_set_complexity(int complexity);
VIVOXSDK_DLLEXPORT int vx_opus_get_complexity(int *p_complexity);
VIVOXSDK_DLLEXPORT int vx_opus_set_vbr_mode(int vbr_mode);
VIVOXSDK_DLLEXPORT int vx_opus_get_vbr_mode(int *p_vbr_mode);
VIVOXSDK_DLLEXPORT int vx_opus_set_bandwidth(int bandwidth);
VIVOXSDK_DLLEXPORT int vx_opus_get_bandwidth(int *p_bandwidth);
VIVOXSDK_DLLEXPORT unsigned int vx_get_available_codecs_mask(void);
VIVOXSDK_DLLEXPORT unsigned int vx_get_default_codecs_mask(void);
VIVOXSDK_DLLEXPORT int vx_get_dump_memory_interval(void);
VIVOXSDK_DLLEXPORT int vx_cpumonitor_start(int interval, int report_interval);
VIVOXSDK_DLLEXPORT int vx_cpumonitor_stop(void);
VIVOXSDK_DLLEXPORT int vx_cpumonitor_start_eater(int nthreads, int priority);
VIVOXSDK_DLLEXPORT int vx_cpumonitor_stop_eater(void);
typedef enum vx_crash_test_type {
vx_crash_access_zero_pointer = 0,
vx_crash_access_violation = 1,
vx_crash_stack_overflow = 2,
vx_crash_heap_corruption = 3,
#ifdef __clang__
vx_crash_builtin_trap = 4
#endif
} vx_crash_test_type_t;
VIVOXSDK_DLLEXPORT int vx_crash_test(vx_crash_test_type_t crash_type);
VIVOXSDK_DLLEXPORT int vx_set_message_rate_params(unsigned bucketSize, float messageSpeed, int fillBucket);
VIVOXSDK_DLLEXPORT int vx_set_default_message_rate_params(void);
VIVOXSDK_DLLEXPORT int vx_android_set_mic_mute(int mute);
VIVOXSDK_DLLEXPORT int vx_internal_enable_debug_mode_disable_strict_checks(void);
VIVOXSDK_DLLEXPORT int vx_internal_disable_debug_mode_enable_strict_checks(void);
VIVOXSDK_DLLEXPORT int vx_is_access_token_well_formed(const char *access_token, char **error);
typedef struct vx_vxd {
size_t version;
char *participant_uri;
char *data;
size_t data_size;
} vx_vxd_t;
VIVOXSDK_DLLEXPORT int vx_vxd_send(VX_HANDLE session_handle, const char *data, size_t size);
VIVOXSDK_DLLEXPORT int vx_vxd_recv(VX_HANDLE session_handle, vx_vxd_t **vxd_ptr);
VIVOXSDK_DLLEXPORT int vx_vxd_destroy(vx_vxd_t *vxd);
typedef enum {
path_cache_folder = 0
} vx_path_id;
VIVOXSDK_DLLEXPORT char *vx_get_path(unsigned int path_id);
VIVOXSDK_DLLEXPORT int vx_get_dynamic_voice_processing_switching_enabled(int *enabled);
VIVOXSDK_DLLEXPORT int vx_set_dynamic_voice_processing_switching_enabled(int enabled);
VIVOXSDK_DLLEXPORT int vx_get_ios_voice_processing_io_mode(int *mode);
VIVOXSDK_DLLEXPORT int vx_set_ios_voice_processing_io_mode(int mode);
VIVOXSDK_DLLEXPORT int vx_get_platform_aec_enabled(int *enabled);
VIVOXSDK_DLLEXPORT int vx_set_platform_aec_enabled(int enabled);
VIVOXSDK_DLLEXPORT int vx_get_vivox_aec_enabled(int *enabled);
VIVOXSDK_DLLEXPORT int vx_set_vivox_aec_enabled(int enabled);
typedef enum {
noise_suppression_low = 0,
noise_suppression_moderate = 1,
noise_suppression_high = 2,
noise_suppression_very_high = 3
} vx_noise_suppression_level;
VIVOXSDK_DLLEXPORT int vx_get_noise_suppression_enabled(int *enabled);
VIVOXSDK_DLLEXPORT int vx_get_noise_suppression_level(vx_noise_suppression_level *level);
VIVOXSDK_DLLEXPORT int vx_set_noise_suppression_enabled(int enabled);
VIVOXSDK_DLLEXPORT int vx_set_noise_suppression_level(vx_noise_suppression_level level);
VIVOXSDK_DLLEXPORT int vx_set_agc_enabled(int enabled);
VIVOXSDK_DLLEXPORT int vx_get_agc_enabled(int *enabled);
VIVOXSDK_DLLEXPORT int vx_set_volume_based_duplication_suppression_enabled(int enabled);
VIVOXSDK_DLLEXPORT int vx_get_volume_based_duplication_suppression_enabled(int *enabled);
VIVOXSDK_DLLEXPORT int vx_set_3d_channel_volume_protection_enabled(int enabled);
VIVOXSDK_DLLEXPORT int vx_get_3d_channel_volume_protection_enabled(int *enabled);
VIVOXSDK_DLLEXPORT int vx_set_audio_clipping_protector_enabled(int enabled);
VIVOXSDK_DLLEXPORT int vx_get_audio_clipping_protector_enabled(int *enabled);
VIVOXSDK_DLLEXPORT int vx_set_audio_clipping_protector_parameters(float minimum_threshold_db, float threshold_boost_slope);
VIVOXSDK_DLLEXPORT int vx_get_audio_clipping_protector_parameters(float *minimum_threshold_db, float *threshold_boost_slope);
typedef enum {
tts_dest_remote_transmission = 0,
tts_dest_local_playback = 1,
tts_dest_remote_transmission_with_local_playback = 2,
tts_dest_queued_remote_transmission = 3,
tts_dest_queued_local_playback = 4,
tts_dest_queued_remote_transmission_with_local_playback = 5,
tts_dest_screen_reader = 6
} vx_tts_destination;
typedef enum {
tts_status_success = 0,
tts_error_invalid_engine_type = -1001,
tts_error_engine_allocation_failed = -1002,
tts_error_not_supported = -1003,
tts_error_max_characters_exceeded = -1004,
tts_error_utterance_below_min_duration = -1005,
tts_status_input_text_was_enqueued = -1006,
tts_error_sdk_not_initialized = -1007,
tts_error_destination_queue_is_full = -1008,
tts_status_enqueue_not_necessary = -1009,
tts_error_utterance_not_found = -1010,
tts_error_manager_not_found = -1011,
tts_error_invalid_argument = -1012,
tts_error_internal = -1013
} vx_tts_status;
typedef unsigned int vx_tts_manager_id;
typedef unsigned int vx_tts_utterance_id;
typedef unsigned int vx_tts_voice_id;
/* End definitions outside of #ifndef VX_DISABLE_TTS */
#ifndef VX_DISABLE_TTS
#define VX_TTS_CHARACTER_COUNT_LIMIT 200
#define VX_TTS_MAX_DESTINATION_QUEUE_SIZE 10
#define VX_TTS_DEFAULT_DESTINATION tts_dest_remote_transmission
typedef enum {
tts_engine_vivox_default = 0
} vx_tts_engine_type;
typedef struct vx_tts_utterance_impl vx_tts_utterance_impl_t;
typedef struct vx_tts_utterance {
const vx_tts_utterance_impl_t * const utterance_obj;
const short *speech_buffer;
int sample_rate;
int num_frames;
int num_channels;
} vx_tts_utterance_t;
typedef struct vx_tts_voice {
vx_tts_voice_id voice_id;
const char *name;
} vx_tts_voice_t;
VIVOXSDK_DLLEXPORT vx_tts_status vx_tts_initialize(vx_tts_engine_type engine_type, vx_tts_manager_id *tts_manager_id);
VIVOXSDK_DLLEXPORT vx_tts_status vx_tts_get_voices(vx_tts_manager_id tts_manager_id, int *num_voices, vx_tts_voice_t **voices);
VIVOXSDK_DLLEXPORT vx_tts_status vx_tts_shutdown(vx_tts_manager_id *tts_manager_id);
VIVOXSDK_DLLEXPORT const char *vx_get_tts_status_string(vx_tts_status status_code);
VIVOXSDK_DLLEXPORT vx_tts_status vx_tts_speak(vx_tts_manager_id tts_manager_id, vx_tts_voice_id voice_id, const char *input_text, vx_tts_destination tts_dest, vx_tts_utterance_id *utterance_id);
VIVOXSDK_DLLEXPORT vx_tts_status vx_tts_speak_to_buffer(vx_tts_manager_id tts_manager_id, vx_tts_voice_id voice_id, const char *input_text, vx_tts_utterance_t **utterance);
VIVOXSDK_DLLEXPORT vx_tts_status vx_tts_destroy_utterance(vx_tts_manager_id tts_manager_id, vx_tts_utterance_t *utterance);
VIVOXSDK_DLLEXPORT vx_tts_status vx_tts_cancel_utterance(vx_tts_manager_id tts_manager_id, vx_tts_utterance_id utterance_id);
VIVOXSDK_DLLEXPORT vx_tts_status vx_tts_cancel_all_in_dest(vx_tts_manager_id tts_manager_id, vx_tts_destination tts_dest);
VIVOXSDK_DLLEXPORT vx_tts_status vx_tts_cancel_all(vx_tts_manager_id tts_manager_id);
#endif
#ifdef __cplusplus
}
#endif
#pragma pack(pop)