2005-11-19 20:07:43 +00:00
|
|
|
/*
|
|
|
|
* FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
|
2009-02-13 23:37:37 +00:00
|
|
|
* Copyright (C) 2005-2009, Anthony Minessale II <anthm@freeswitch.org>
|
2005-11-19 20:07:43 +00:00
|
|
|
*
|
|
|
|
* Version: MPL 1.1
|
|
|
|
*
|
|
|
|
* The contents of this file are subject to the Mozilla Public License Version
|
|
|
|
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
|
|
* the License. You may obtain a copy of the License at
|
|
|
|
* http://www.mozilla.org/MPL/
|
|
|
|
*
|
|
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
|
|
* for the specific language governing rights and limitations under the
|
|
|
|
* License.
|
|
|
|
*
|
|
|
|
* The Original Code is FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
|
|
|
|
*
|
|
|
|
* The Initial Developer of the Original Code is
|
2009-02-04 21:20:54 +00:00
|
|
|
* Anthony Minessale II <anthm@freeswitch.org>
|
2005-11-19 20:07:43 +00:00
|
|
|
* Portions created by the Initial Developer are Copyright (C)
|
|
|
|
* the Initial Developer. All Rights Reserved.
|
|
|
|
*
|
|
|
|
* Contributor(s):
|
|
|
|
*
|
2009-02-04 21:20:54 +00:00
|
|
|
* Anthony Minessale II <anthm@freeswitch.org>
|
2007-06-04 22:10:42 +00:00
|
|
|
* Bret McDanel <trixter AT 0xdecafbad dot com>
|
2005-11-19 20:07:43 +00:00
|
|
|
*
|
|
|
|
* switch_types.h -- Data Types
|
|
|
|
*
|
|
|
|
*/
|
2006-01-02 05:00:28 +00:00
|
|
|
/*! \file switch_types.h
|
|
|
|
\brief Data Types
|
2006-01-01 15:23:12 +00:00
|
|
|
*/
|
2005-11-19 20:07:43 +00:00
|
|
|
#ifndef SWITCH_TYPES_H
|
|
|
|
#define SWITCH_TYPES_H
|
|
|
|
|
|
|
|
#include <switch.h>
|
2006-09-07 14:23:31 +00:00
|
|
|
SWITCH_BEGIN_EXTERN_C
|
2009-11-18 20:25:49 +00:00
|
|
|
#define SWITCH_ENT_ORIGINATE_DELIM ":_:"
|
2007-09-29 01:06:08 +00:00
|
|
|
#define SWITCH_BLANK_STRING ""
|
2008-07-14 17:09:47 +00:00
|
|
|
#ifdef WIN32
|
|
|
|
#define SWITCH_SEQ_FWHITE FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY
|
|
|
|
#define SWITCH_SEQ_FRED FOREGROUND_RED | FOREGROUND_INTENSITY
|
|
|
|
#define SWITCH_SEQ_FMAGEN FOREGROUND_BLUE | FOREGROUND_RED
|
|
|
|
#define SWITCH_SEQ_FCYAN FOREGROUND_GREEN | FOREGROUND_BLUE
|
|
|
|
#define SWITCH_SEQ_FGREEN FOREGROUND_GREEN
|
|
|
|
#define SWITCH_SEQ_FYELLOW FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY
|
2008-07-22 16:43:00 +00:00
|
|
|
#define SWITCH_SEQ_DEFAULT_COLOR SWITCH_SEQ_FWHITE
|
2008-07-14 17:09:47 +00:00
|
|
|
#else
|
2007-02-28 18:28:07 +00:00
|
|
|
#define SWITCH_SEQ_ESC "\033["
|
|
|
|
/* Ansi Control character suffixes */
|
|
|
|
#define SWITCH_SEQ_HOME_CHAR 'H'
|
|
|
|
#define SWITCH_SEQ_HOME_CHAR_STR "H"
|
|
|
|
#define SWITCH_SEQ_CLEARLINE_CHAR '1'
|
|
|
|
#define SWITCH_SEQ_CLEARLINE_CHAR_STR "1"
|
|
|
|
#define SWITCH_SEQ_CLEARLINEEND_CHAR "K"
|
|
|
|
#define SWITCH_SEQ_CLEARSCR_CHAR0 '2'
|
|
|
|
#define SWITCH_SEQ_CLEARSCR_CHAR1 'J'
|
|
|
|
#define SWITCH_SEQ_CLEARSCR_CHAR "2J"
|
2007-03-29 22:31:56 +00:00
|
|
|
#define SWITCH_SEQ_DEFAULT_COLOR SWITCH_SEQ_ESC SWITCH_SEQ_END_COLOR /* Reset to Default fg/bg color */
|
|
|
|
#define SWITCH_SEQ_AND_COLOR ";" /* To add multiple color definitions */
|
|
|
|
#define SWITCH_SEQ_END_COLOR "m" /* To end color definitions */
|
2007-02-28 18:28:07 +00:00
|
|
|
/* Foreground colors values */
|
|
|
|
#define SWITCH_SEQ_F_BLACK "30"
|
|
|
|
#define SWITCH_SEQ_F_RED "31"
|
|
|
|
#define SWITCH_SEQ_F_GREEN "32"
|
|
|
|
#define SWITCH_SEQ_F_YELLOW "33"
|
|
|
|
#define SWITCH_SEQ_F_BLUE "34"
|
|
|
|
#define SWITCH_SEQ_F_MAGEN "35"
|
|
|
|
#define SWITCH_SEQ_F_CYAN "36"
|
|
|
|
#define SWITCH_SEQ_F_WHITE "37"
|
|
|
|
/* Background colors values */
|
|
|
|
#define SWITCH_SEQ_B_BLACK "40"
|
|
|
|
#define SWITCH_SEQ_B_RED "41"
|
|
|
|
#define SWITCH_SEQ_B_GREEN "42"
|
|
|
|
#define SWITCH_SEQ_B_YELLOW "43"
|
|
|
|
#define SWITCH_SEQ_B_BLUE "44"
|
|
|
|
#define SWITCH_SEQ_B_MAGEN "45"
|
|
|
|
#define SWITCH_SEQ_B_CYAN "46"
|
|
|
|
#define SWITCH_SEQ_B_WHITE "47"
|
|
|
|
/* Preset escape sequences - Change foreground colors only */
|
|
|
|
#define SWITCH_SEQ_FBLACK SWITCH_SEQ_ESC SWITCH_SEQ_F_BLACK SWITCH_SEQ_END_COLOR
|
|
|
|
#define SWITCH_SEQ_FRED SWITCH_SEQ_ESC SWITCH_SEQ_F_RED SWITCH_SEQ_END_COLOR
|
|
|
|
#define SWITCH_SEQ_FGREEN SWITCH_SEQ_ESC SWITCH_SEQ_F_GREEN SWITCH_SEQ_END_COLOR
|
|
|
|
#define SWITCH_SEQ_FYELLOW SWITCH_SEQ_ESC SWITCH_SEQ_F_YELLOW SWITCH_SEQ_END_COLOR
|
|
|
|
#define SWITCH_SEQ_FBLUE SWITCH_SEQ_ESC SWITCH_SEQ_F_BLUE SWITCH_SEQ_END_COLOR
|
|
|
|
#define SWITCH_SEQ_FMAGEN SWITCH_SEQ_ESC SWITCH_SEQ_F_MAGEN SWITCH_SEQ_END_COLOR
|
|
|
|
#define SWITCH_SEQ_FCYAN SWITCH_SEQ_ESC SWITCH_SEQ_F_CYAN SWITCH_SEQ_END_COLOR
|
|
|
|
#define SWITCH_SEQ_FWHITE SWITCH_SEQ_ESC SWITCH_SEQ_F_WHITE SWITCH_SEQ_END_COLOR
|
|
|
|
#define SWITCH_SEQ_BBLACK SWITCH_SEQ_ESC SWITCH_SEQ_B_BLACK SWITCH_SEQ_END_COLOR
|
|
|
|
#define SWITCH_SEQ_BRED SWITCH_SEQ_ESC SWITCH_SEQ_B_RED SWITCH_SEQ_END_COLOR
|
|
|
|
#define SWITCH_SEQ_BGREEN SWITCH_SEQ_ESC SWITCH_SEQ_B_GREEN SWITCH_SEQ_END_COLOR
|
|
|
|
#define SWITCH_SEQ_BYELLOW SWITCH_SEQ_ESC SWITCH_SEQ_B_YELLOW SWITCH_SEQ_END_COLOR
|
|
|
|
#define SWITCH_SEQ_BBLUE SWITCH_SEQ_ESC SWITCH_SEQ_B_BLUE SWITCH_SEQ_END_COLOR
|
|
|
|
#define SWITCH_SEQ_BMAGEN SWITCH_SEQ_ESC SWITCH_SEQ_B_MAGEN SWITCH_SEQ_END_COLOR
|
|
|
|
#define SWITCH_SEQ_BCYAN SWITCH_SEQ_ESC SWITCH_SEQ_B_CYAN SWITCH_SEQ_END_COLOR
|
|
|
|
#define SWITCH_SEQ_BWHITE SWITCH_SEQ_ESC SWITCH_SEQ_B_WHITE SWITCH_SEQ_END_COLOR
|
|
|
|
/* Preset escape sequences */
|
|
|
|
#define SWITCH_SEQ_HOME SWITCH_SEQ_ESC SWITCH_SEQ_HOME_CHAR_STR
|
|
|
|
#define SWITCH_SEQ_CLEARLINE SWITCH_SEQ_ESC SWITCH_SEQ_CLEARLINE_CHAR_STR
|
|
|
|
#define SWITCH_SEQ_CLEARLINEEND SWITCH_SEQ_ESC SWITCH_SEQ_CLEARLINEEND_CHAR
|
|
|
|
#define SWITCH_SEQ_CLEARSCR SWITCH_SEQ_ESC SWITCH_SEQ_CLEARSCR_CHAR SWITCH_SEQ_HOME
|
2008-07-14 17:09:47 +00:00
|
|
|
#endif
|
2008-01-11 04:23:09 +00:00
|
|
|
#define SWITCH_DEFAULT_DTMF_DURATION 2000
|
2009-09-16 21:24:22 +00:00
|
|
|
#define SWITCH_MIN_DTMF_DURATION 400
|
2008-02-21 21:38:49 +00:00
|
|
|
#define SWITCH_MAX_DTMF_DURATION 192000
|
2007-12-06 19:51:55 +00:00
|
|
|
#define SWITCH_DEFAULT_DIR_PERMS SWITCH_FPROT_UREAD | SWITCH_FPROT_UWRITE | SWITCH_FPROT_UEXECUTE | SWITCH_FPROT_GREAD | SWITCH_FPROT_GEXECUTE
|
2006-02-28 23:00:34 +00:00
|
|
|
#ifdef WIN32
|
2006-03-01 17:06:10 +00:00
|
|
|
#define SWITCH_PATH_SEPARATOR "\\"
|
2006-02-28 23:00:34 +00:00
|
|
|
#else
|
2006-03-01 17:06:10 +00:00
|
|
|
#define SWITCH_PATH_SEPARATOR "/"
|
2006-02-28 23:00:34 +00:00
|
|
|
#endif
|
2007-03-10 02:36:55 +00:00
|
|
|
#define SWITCH_URL_SEPARATOR "://"
|
2009-10-23 22:04:34 +00:00
|
|
|
#define SWITCH_IGNORE_DISPLAY_UPDATES_VARIABLE "ignore_display_updates"
|
2009-09-16 20:09:27 +00:00
|
|
|
#define SWITCH_AUDIO_SPOOL_PATH_VARIABLE "audio_spool_path"
|
2009-04-16 22:13:55 +00:00
|
|
|
#define SWITCH_BRIDGE_HANGUP_CAUSE_VARIABLE "bridge_hangup_cause"
|
2009-03-30 16:48:44 +00:00
|
|
|
#define SWITCH_READ_TERMINATOR_USED_VARIABLE "read_terminator_used"
|
2008-12-09 00:32:51 +00:00
|
|
|
#define SWITCH_SEND_SILENCE_WHEN_IDLE_VARIABLE "send_silence_when_idle"
|
2008-12-08 15:42:37 +00:00
|
|
|
#define SWITCH_CURRENT_APPLICATION_VARIABLE "current_application"
|
|
|
|
#define SWITCH_CURRENT_APPLICATION_DATA_VARIABLE "current_application_data"
|
|
|
|
#define SWITCH_CURRENT_APPLICATION_RESPONSE_VARIABLE "current_application_response"
|
2008-10-07 21:03:37 +00:00
|
|
|
#define SWITCH_ENABLE_HEARTBEAT_EVENTS_VARIABLE "enable_heartbeat_events"
|
2008-09-18 21:50:18 +00:00
|
|
|
#define SWITCH_BYPASS_MEDIA_AFTER_BRIDGE_VARIABLE "bypass_media_after_bridge"
|
2008-08-05 21:50:48 +00:00
|
|
|
#define SWITCH_READ_RESULT_VARIABLE "read_result"
|
2008-07-09 16:03:03 +00:00
|
|
|
#define SWITCH_COPY_XML_CDR_VARIABLE "copy_xml_cdr"
|
2008-07-01 23:41:09 +00:00
|
|
|
#define SWITCH_CURRENT_APPLICATION_VARIABLE "current_application"
|
2008-05-01 18:35:45 +00:00
|
|
|
#define SWITCH_PROTO_SPECIFIC_HANGUP_CAUSE_VARIABLE "proto_specific_hangup_cause"
|
2008-04-02 15:11:07 +00:00
|
|
|
#define SWITCH_CHANNEL_EXECUTE_ON_ANSWER_VARIABLE "execute_on_answer"
|
2009-10-29 05:47:17 +00:00
|
|
|
#define SWITCH_CHANNEL_EXECUTE_ON_PRE_ANSWER_VARIABLE "execute_on_pre_answer"
|
|
|
|
#define SWITCH_CHANNEL_EXECUTE_ON_MEDIA_VARIABLE "execute_on_media"
|
2009-10-23 15:01:34 +00:00
|
|
|
#define SWITCH_CHANNEL_API_ON_ANSWER_VARIABLE "api_on_answer"
|
2008-06-05 20:45:03 +00:00
|
|
|
#define SWITCH_CHANNEL_EXECUTE_ON_RING_VARIABLE "execute_on_ring"
|
2008-03-13 01:08:42 +00:00
|
|
|
#define SWITCH_CALL_TIMEOUT_VARIABLE "call_timeout"
|
|
|
|
#define SWITCH_HOLDING_UUID_VARIABLE "holding_uuid"
|
2009-10-07 04:30:19 +00:00
|
|
|
#define SWITCH_SOFT_HOLDING_UUID_VARIABLE "soft_holding_uuid"
|
2008-03-13 01:08:42 +00:00
|
|
|
#define SWITCH_API_BRIDGE_END_VARIABLE "api_after_bridge"
|
2008-03-12 07:48:38 +00:00
|
|
|
#define SWITCH_API_HANGUP_HOOK_VARIABLE "api_hangup_hook"
|
2008-11-19 22:24:17 +00:00
|
|
|
#define SWITCH_SESSION_IN_HANGUP_HOOK_VARIABLE "session_in_hangup_hook"
|
2008-01-14 15:26:46 +00:00
|
|
|
#define SWITCH_PROCESS_CDR_VARIABLE "process_cdr"
|
2007-12-06 15:46:54 +00:00
|
|
|
#define SWITCH_BRIDGE_CHANNEL_VARIABLE "bridge_channel"
|
2007-12-06 19:51:55 +00:00
|
|
|
#define SWITCH_CHANNEL_NAME_VARIABLE "channel_name"
|
2007-12-06 15:46:54 +00:00
|
|
|
#define SWITCH_BRIDGE_UUID_VARIABLE "bridge_uuid"
|
2008-09-15 16:48:45 +00:00
|
|
|
#define SWITCH_CONTINUE_ON_FAILURE_VARIABLE "continue_on_fail"
|
2007-10-16 14:36:39 +00:00
|
|
|
#define SWITCH_PLAYBACK_TERMINATORS_VARIABLE "playback_terminators"
|
2008-09-26 16:04:16 +00:00
|
|
|
#define SWITCH_PLAYBACK_TERMINATOR_USED "playback_terminator_used"
|
2007-10-15 16:25:08 +00:00
|
|
|
#define SWITCH_CACHE_SPEECH_HANDLES_VARIABLE "cache_speech_handles"
|
|
|
|
#define SWITCH_CACHE_SPEECH_HANDLES_OBJ_NAME "__cache_speech_handles_obj__"
|
2007-05-09 19:44:15 +00:00
|
|
|
#define SWITCH_BYPASS_MEDIA_VARIABLE "bypass_media"
|
2008-02-21 17:48:41 +00:00
|
|
|
#define SWITCH_PROXY_MEDIA_VARIABLE "proxy_media"
|
2007-02-28 15:48:17 +00:00
|
|
|
#define SWITCH_ENDPOINT_DISPOSITION_VARIABLE "endpoint_disposition"
|
2007-03-30 22:13:19 +00:00
|
|
|
#define SWITCH_HOLD_MUSIC_VARIABLE "hold_music"
|
2007-02-16 20:07:35 +00:00
|
|
|
#define SWITCH_EXPORT_VARS_VARIABLE "export_vars"
|
2007-02-05 19:35:31 +00:00
|
|
|
#define SWITCH_R_SDP_VARIABLE "switch_r_sdp"
|
|
|
|
#define SWITCH_L_SDP_VARIABLE "switch_l_sdp"
|
|
|
|
#define SWITCH_B_SDP_VARIABLE "switch_m_sdp"
|
|
|
|
#define SWITCH_BRIDGE_VARIABLE "bridge_to"
|
|
|
|
#define SWITCH_SIGNAL_BRIDGE_VARIABLE "signal_bridge_to"
|
2007-03-09 20:37:30 +00:00
|
|
|
#define SWITCH_SIGNAL_BOND_VARIABLE "signal_bond"
|
2007-02-05 19:35:31 +00:00
|
|
|
#define SWITCH_ORIGINATOR_VARIABLE "originator"
|
|
|
|
#define SWITCH_ORIGINATOR_CODEC_VARIABLE "originator_codec"
|
2009-02-10 19:09:06 +00:00
|
|
|
#define SWITCH_ORIGINATOR_VIDEO_CODEC_VARIABLE "originator_video_codec"
|
2007-02-05 19:35:31 +00:00
|
|
|
#define SWITCH_LOCAL_MEDIA_IP_VARIABLE "local_media_ip"
|
|
|
|
#define SWITCH_LOCAL_MEDIA_PORT_VARIABLE "local_media_port"
|
|
|
|
#define SWITCH_REMOTE_MEDIA_IP_VARIABLE "remote_media_ip"
|
|
|
|
#define SWITCH_REMOTE_MEDIA_PORT_VARIABLE "remote_media_port"
|
2007-04-19 21:40:50 +00:00
|
|
|
#define SWITCH_REMOTE_VIDEO_IP_VARIABLE "remote_video_ip"
|
|
|
|
#define SWITCH_REMOTE_VIDEO_PORT_VARIABLE "remote_video_port"
|
|
|
|
#define SWITCH_LOCAL_VIDEO_IP_VARIABLE "local_video_ip"
|
|
|
|
#define SWITCH_LOCAL_VIDEO_PORT_VARIABLE "local_video_port"
|
2006-11-30 21:28:32 +00:00
|
|
|
#define SWITCH_HANGUP_AFTER_BRIDGE_VARIABLE "hangup_after_bridge"
|
2008-11-07 14:10:02 +00:00
|
|
|
#define SWITCH_PARK_AFTER_BRIDGE_VARIABLE "park_after_bridge"
|
2009-03-20 20:40:30 +00:00
|
|
|
#define SWITCH_TRANSFER_AFTER_BRIDGE_VARIABLE "transfer_after_bridge"
|
2007-07-26 00:49:02 +00:00
|
|
|
#define SWITCH_EXEC_AFTER_BRIDGE_APP_VARIABLE "exec_after_bridge_app"
|
|
|
|
#define SWITCH_EXEC_AFTER_BRIDGE_ARG_VARIABLE "exec_after_bridge_arg"
|
2007-02-06 18:11:25 +00:00
|
|
|
#define SWITCH_MAX_FORWARDS_VARIABLE "max_forwards"
|
2008-05-22 01:08:30 +00:00
|
|
|
#define SWITCH_DISABLE_APP_LOG_VARIABLE "disable_app_log"
|
2007-02-05 19:35:31 +00:00
|
|
|
#define SWITCH_SPEECH_KEY "speech"
|
|
|
|
#define SWITCH_UUID_BRIDGE "uuid_bridge"
|
2006-09-02 23:04:25 +00:00
|
|
|
#define SWITCH_BITS_PER_BYTE 8
|
2009-01-09 20:34:01 +00:00
|
|
|
#define SWITCH_DEFAULT_FILE_BUFFER_LEN 65536
|
2009-02-23 16:31:59 +00:00
|
|
|
#define SWITCH_DTMF_LOG_LEN 1000
|
2009-01-09 20:34:01 +00:00
|
|
|
|
|
|
|
typedef uint8_t switch_byte_t;
|
2006-09-02 23:04:25 +00:00
|
|
|
|
2007-12-22 00:32:20 +00:00
|
|
|
typedef struct {
|
|
|
|
char digit;
|
|
|
|
uint32_t duration;
|
|
|
|
} switch_dtmf_t;
|
|
|
|
|
2009-02-23 16:31:59 +00:00
|
|
|
typedef enum {
|
|
|
|
SWITCH_CALL_DIRECTION_INBOUND,
|
|
|
|
SWITCH_CALL_DIRECTION_OUTBOUND
|
|
|
|
} switch_call_direction_t;
|
|
|
|
|
2008-05-19 21:02:26 +00:00
|
|
|
typedef enum {
|
|
|
|
SBF_DIAL_ALEG = (1 << 0),
|
|
|
|
SBF_EXEC_ALEG = (1 << 1),
|
|
|
|
SBF_DIAL_BLEG = (1 << 2),
|
|
|
|
SBF_EXEC_BLEG = (1 << 3),
|
|
|
|
SBF_EXEC_OPPOSITE = (1 << 4),
|
2008-12-31 01:08:51 +00:00
|
|
|
SBF_EXEC_SAME = (1 << 5),
|
2009-09-24 22:21:44 +00:00
|
|
|
SBF_ONCE = (1 << 6),
|
|
|
|
SBF_EXEC_INLINE = (1 << 7)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_bind_flag_enum_t;
|
|
|
|
typedef uint32_t switch_bind_flag_t;
|
2008-05-19 21:02:26 +00:00
|
|
|
|
|
|
|
typedef enum {
|
2008-05-19 22:23:11 +00:00
|
|
|
SWITCH_DTMF_RECV = 0,
|
|
|
|
SWITCH_DTMF_SEND = 1
|
2008-05-19 21:02:26 +00:00
|
|
|
} switch_dtmf_direction_t;
|
|
|
|
|
2007-12-20 21:42:00 +00:00
|
|
|
typedef enum {
|
|
|
|
SOF_NONE = 0,
|
|
|
|
SOF_NOBLOCK = (1 << 0),
|
2008-08-11 21:27:20 +00:00
|
|
|
SOF_FORKED_DIAL = (1 << 1),
|
|
|
|
SOF_NO_EFFECTIVE_CID_NUM = (1 << 2),
|
|
|
|
SOF_NO_EFFECTIVE_CID_NAME = (1 << 3)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_originate_flag_enum_t;
|
|
|
|
typedef uint32_t switch_originate_flag_t;
|
2007-12-20 21:42:00 +00:00
|
|
|
|
2007-12-11 19:15:02 +00:00
|
|
|
typedef enum {
|
|
|
|
SPF_NONE = 0,
|
|
|
|
SPF_ODD = (1 << 0),
|
|
|
|
SPF_EVEN = (1 << 1)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_port_flag_enum_t;
|
|
|
|
typedef uint32_t switch_port_flag_t;
|
2007-12-11 19:15:02 +00:00
|
|
|
|
2007-11-30 22:56:01 +00:00
|
|
|
typedef enum {
|
|
|
|
ED_MUX_READ = (1 << 0),
|
|
|
|
ED_MUX_WRITE = (1 << 1),
|
|
|
|
ED_DTMF = (1 << 2)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_eavesdrop_flag_enum_t;
|
|
|
|
typedef uint32_t switch_eavesdrop_flag_t;
|
2007-11-30 22:56:01 +00:00
|
|
|
|
2007-09-29 01:06:08 +00:00
|
|
|
typedef enum {
|
|
|
|
SCF_NONE = 0,
|
2008-05-27 04:30:03 +00:00
|
|
|
SCF_USE_SQL = (1 << 0),
|
2007-09-29 01:06:08 +00:00
|
|
|
SCF_NO_NEW_SESSIONS = (1 << 1),
|
|
|
|
SCF_SHUTTING_DOWN = (1 << 2),
|
2009-09-18 15:55:10 +00:00
|
|
|
SCF_VG = (1 << 3),
|
|
|
|
SCF_RESTART = (1 << 4),
|
|
|
|
SCF_SHUTDOWN_REQUESTED = (1 << 5),
|
2009-12-11 00:28:54 +00:00
|
|
|
SCF_USE_AUTO_NAT = (1 << 6),
|
|
|
|
SCF_EARLY_HANGUP = (1 << 7)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_core_flag_enum_t;
|
|
|
|
typedef uint32_t switch_core_flag_t;
|
2007-04-09 18:38:47 +00:00
|
|
|
|
2007-06-13 20:40:06 +00:00
|
|
|
typedef enum {
|
|
|
|
SWITCH_ENDPOINT_INTERFACE,
|
|
|
|
SWITCH_TIMER_INTERFACE,
|
|
|
|
SWITCH_DIALPLAN_INTERFACE,
|
|
|
|
SWITCH_CODEC_INTERFACE,
|
|
|
|
SWITCH_APPLICATION_INTERFACE,
|
|
|
|
SWITCH_API_INTERFACE,
|
|
|
|
SWITCH_FILE_INTERFACE,
|
|
|
|
SWITCH_SPEECH_INTERFACE,
|
|
|
|
SWITCH_DIRECTORY_INTERFACE,
|
|
|
|
SWITCH_CHAT_INTERFACE,
|
|
|
|
SWITCH_SAY_INTERFACE,
|
|
|
|
SWITCH_ASR_INTERFACE,
|
|
|
|
SWITCH_MANAGEMENT_INTERFACE
|
|
|
|
} switch_module_interface_name_t;
|
|
|
|
|
2007-04-09 18:38:47 +00:00
|
|
|
typedef enum {
|
|
|
|
SUF_NONE = 0,
|
|
|
|
SUF_THREAD_RUNNING = (1 << 0),
|
2007-04-13 16:24:02 +00:00
|
|
|
SUF_READY = (1 << 1),
|
|
|
|
SUF_NATIVE = (1 << 2)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_unicast_flag_enum_t;
|
|
|
|
typedef uint32_t switch_unicast_flag_t;
|
2007-04-09 18:38:47 +00:00
|
|
|
|
2007-03-17 19:51:08 +00:00
|
|
|
typedef enum {
|
|
|
|
SWITCH_FALSE = 0,
|
|
|
|
SWITCH_TRUE = 1
|
|
|
|
} switch_bool_t;
|
|
|
|
|
2006-12-20 21:25:14 +00:00
|
|
|
typedef enum {
|
|
|
|
SSM_NA,
|
|
|
|
SSM_PRONOUNCED,
|
2007-01-02 23:08:26 +00:00
|
|
|
SSM_ITERATED,
|
2007-03-29 22:31:56 +00:00
|
|
|
SSM_COUNTED
|
2006-12-20 21:25:14 +00:00
|
|
|
} switch_say_method_t;
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
SST_NUMBER,
|
|
|
|
SST_ITEMS,
|
|
|
|
SST_PERSONS,
|
|
|
|
SST_MESSAGES,
|
|
|
|
SST_CURRENCY,
|
|
|
|
SST_TIME_MEASUREMENT,
|
|
|
|
SST_CURRENT_DATE,
|
|
|
|
SST_CURRENT_TIME,
|
|
|
|
SST_CURRENT_DATE_TIME,
|
|
|
|
SST_TELEPHONE_NUMBER,
|
|
|
|
SST_TELEPHONE_EXTENSION,
|
|
|
|
SST_URL,
|
2007-01-02 23:08:26 +00:00
|
|
|
SST_IP_ADDRESS,
|
2006-12-20 21:25:14 +00:00
|
|
|
SST_EMAIL_ADDRESS,
|
|
|
|
SST_POSTAL_ADDRESS,
|
|
|
|
SST_ACCOUNT_NUMBER,
|
|
|
|
SST_NAME_SPELLED,
|
2009-02-16 22:24:25 +00:00
|
|
|
SST_NAME_PHONETIC,
|
|
|
|
SST_SHORT_DATE_TIME
|
2006-12-20 21:25:14 +00:00
|
|
|
} switch_say_type_t;
|
|
|
|
|
2007-03-07 18:34:22 +00:00
|
|
|
typedef enum {
|
|
|
|
SMA_NONE,
|
|
|
|
SMA_GET,
|
2007-03-24 04:52:46 +00:00
|
|
|
SMA_SET
|
2007-03-07 18:34:22 +00:00
|
|
|
} switch_management_action_t;
|
2006-12-20 21:25:14 +00:00
|
|
|
|
2007-03-28 23:37:12 +00:00
|
|
|
typedef enum {
|
|
|
|
SSHF_NONE = 0,
|
|
|
|
SSHF_OWN_THREAD = (1 << 0),
|
2007-03-30 14:57:06 +00:00
|
|
|
SSHF_FREE_ARG = (1 << 1),
|
|
|
|
SSHF_NO_DEL = (1 << 2)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_scheduler_flag_enum_t;
|
|
|
|
typedef uint32_t switch_scheduler_flag_t;
|
2007-03-28 23:37:12 +00:00
|
|
|
|
2006-10-31 21:38:06 +00:00
|
|
|
typedef enum {
|
|
|
|
SMF_NONE = 0,
|
|
|
|
SMF_REBRIDGE = (1 << 0),
|
2006-11-10 08:13:01 +00:00
|
|
|
SMF_ECHO_ALEG = (1 << 1),
|
|
|
|
SMF_ECHO_BLEG = (1 << 2),
|
|
|
|
SMF_FORCE = (1 << 3),
|
2008-03-12 00:11:33 +00:00
|
|
|
SMF_LOOP = (1 << 4),
|
2008-09-19 19:58:01 +00:00
|
|
|
SMF_HOLD_BLEG = (1 << 5),
|
2009-09-24 22:21:44 +00:00
|
|
|
SMF_IMMEDIATE = (1 << 6),
|
2009-12-10 01:29:02 +00:00
|
|
|
SMF_EXEC_INLINE = (1 << 7),
|
|
|
|
SMF_PRIORITY = (1 << 8)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_media_flag_enum_t;
|
|
|
|
typedef uint32_t switch_media_flag_t;
|
2006-10-31 21:38:06 +00:00
|
|
|
|
2006-09-02 23:04:25 +00:00
|
|
|
typedef enum {
|
|
|
|
SWITCH_BITPACK_MODE_RFC3551,
|
|
|
|
SWITCH_BITPACK_MODE_AAL2
|
|
|
|
} switch_bitpack_mode_t;
|
|
|
|
|
2006-09-09 03:39:28 +00:00
|
|
|
typedef enum {
|
|
|
|
SWITCH_ABC_TYPE_INIT,
|
|
|
|
SWITCH_ABC_TYPE_READ,
|
|
|
|
SWITCH_ABC_TYPE_WRITE,
|
2007-01-31 23:09:33 +00:00
|
|
|
SWITCH_ABC_TYPE_WRITE_REPLACE,
|
2007-06-13 03:09:53 +00:00
|
|
|
SWITCH_ABC_TYPE_READ_REPLACE,
|
2007-12-06 22:26:37 +00:00
|
|
|
SWITCH_ABC_TYPE_READ_PING,
|
2007-06-08 14:52:50 +00:00
|
|
|
SWITCH_ABC_TYPE_CLOSE
|
2006-09-09 03:39:28 +00:00
|
|
|
} switch_abc_type_t;
|
2006-09-02 23:04:25 +00:00
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
switch_byte_t *buf;
|
|
|
|
uint32_t buflen;
|
|
|
|
switch_byte_t *cur;
|
|
|
|
uint32_t bytes;
|
|
|
|
uint32_t bits_tot;
|
|
|
|
switch_byte_t bits_cur;
|
|
|
|
switch_byte_t bits_rem;
|
|
|
|
switch_byte_t frame_bits;
|
|
|
|
switch_byte_t shiftby;
|
2006-09-03 13:29:13 +00:00
|
|
|
switch_byte_t this_byte;
|
2006-09-02 23:04:25 +00:00
|
|
|
switch_byte_t under;
|
|
|
|
switch_byte_t over;
|
|
|
|
switch_bitpack_mode_t mode;
|
|
|
|
} switch_bitpack_t;
|
|
|
|
|
|
|
|
|
2006-02-28 21:21:48 +00:00
|
|
|
struct switch_directories {
|
|
|
|
char *base_dir;
|
|
|
|
char *mod_dir;
|
|
|
|
char *conf_dir;
|
|
|
|
char *log_dir;
|
2009-09-04 18:26:15 +00:00
|
|
|
char *run_dir;
|
2006-02-28 21:21:48 +00:00
|
|
|
char *db_dir;
|
|
|
|
char *script_dir;
|
2006-03-01 06:25:56 +00:00
|
|
|
char *temp_dir;
|
2006-05-10 03:23:05 +00:00
|
|
|
char *htdocs_dir;
|
2006-11-09 05:39:04 +00:00
|
|
|
char *grammar_dir;
|
2007-10-12 03:28:59 +00:00
|
|
|
char *storage_dir;
|
2010-01-11 03:47:19 +00:00
|
|
|
char *recordings_dir;
|
2010-01-11 16:32:35 +00:00
|
|
|
char *sounds_dir;
|
2006-02-28 21:21:48 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
typedef struct switch_directories switch_directories;
|
2006-03-01 06:25:56 +00:00
|
|
|
SWITCH_DECLARE_DATA extern switch_directories SWITCH_GLOBAL_dirs;
|
2006-02-28 21:21:48 +00:00
|
|
|
|
2008-10-13 15:42:11 +00:00
|
|
|
#define SWITCH_MAX_STACKS 16
|
2006-10-31 21:57:59 +00:00
|
|
|
#define SWITCH_THREAD_STACKSIZE 240 * 1024
|
2008-09-26 15:50:12 +00:00
|
|
|
#define SWITCH_SYSTEM_THREAD_STACKSIZE 8192 * 1024
|
2008-05-27 04:30:03 +00:00
|
|
|
#define SWITCH_MAX_INTERVAL 120 /* we only do up to 120ms */
|
|
|
|
#define SWITCH_INTERVAL_PAD 10 /* A little extra buffer space to be safe */
|
2008-12-17 01:53:46 +00:00
|
|
|
#define SWITCH_MAX_SAMPLE_LEN 48
|
2008-05-27 04:30:03 +00:00
|
|
|
#define SWITCH_BYTES_PER_SAMPLE 2 /* slin is 2 bytes per sample */
|
2008-12-17 01:53:46 +00:00
|
|
|
#define SWITCH_RECOMMENDED_BUFFER_SIZE 4096 /* worst case of 32khz @60ms we only do 48khz @10ms which is 960 */
|
2008-06-30 17:52:22 +00:00
|
|
|
#define SWITCH_MAX_CODECS 50
|
2006-02-07 20:47:15 +00:00
|
|
|
#define SWITCH_MAX_STATE_HANDLERS 30
|
2006-07-19 01:19:46 +00:00
|
|
|
#define SWITCH_CORE_QUEUE_LEN 100000
|
2007-03-07 18:34:22 +00:00
|
|
|
#define SWITCH_MAX_MANAGEMENT_BUFFER_LEN 1024 * 8
|
2006-05-12 19:28:21 +00:00
|
|
|
|
2008-02-15 20:11:44 +00:00
|
|
|
#define SWITCH_ACCEPTABLE_INTERVAL(_i) (_i && _i <= SWITCH_MAX_INTERVAL && (_i % 10) == 0)
|
2008-02-15 17:54:13 +00:00
|
|
|
|
2006-10-16 04:39:00 +00:00
|
|
|
typedef enum {
|
2009-03-10 13:16:14 +00:00
|
|
|
SWITCH_CPF_NONE = 0,
|
2006-10-16 04:39:00 +00:00
|
|
|
SWITCH_CPF_SCREEN = (1 << 0),
|
|
|
|
SWITCH_CPF_HIDE_NAME = (1 << 1),
|
|
|
|
SWITCH_CPF_HIDE_NUMBER = (1 << 2)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_caller_profile_flag_enum_t;
|
|
|
|
typedef uint32_t switch_caller_profile_flag_t;
|
2006-07-25 22:37:52 +00:00
|
|
|
|
|
|
|
typedef enum {
|
2007-03-29 22:31:56 +00:00
|
|
|
SWITCH_AUDIO_COL_STR_TITLE = 0x01,
|
|
|
|
SWITCH_AUDIO_COL_STR_COPYRIGHT = 0x02,
|
|
|
|
SWITCH_AUDIO_COL_STR_SOFTWARE = 0x03,
|
|
|
|
SWITCH_AUDIO_COL_STR_ARTIST = 0x04,
|
|
|
|
SWITCH_AUDIO_COL_STR_COMMENT = 0x05,
|
|
|
|
SWITCH_AUDIO_COL_STR_DATE = 0x06
|
2006-07-25 22:37:52 +00:00
|
|
|
} switch_audio_col_t;
|
|
|
|
|
2006-05-12 19:28:21 +00:00
|
|
|
typedef enum {
|
|
|
|
SWITCH_XML_SECTION_RESULT = 0,
|
|
|
|
SWITCH_XML_SECTION_CONFIG = (1 << 0),
|
|
|
|
SWITCH_XML_SECTION_DIRECTORY = (1 << 1),
|
2006-12-20 21:25:14 +00:00
|
|
|
SWITCH_XML_SECTION_DIALPLAN = (1 << 2),
|
2009-06-10 05:08:53 +00:00
|
|
|
SWITCH_XML_SECTION_PHRASES = (1 << 3),
|
|
|
|
|
|
|
|
/* Nothing after this line */
|
|
|
|
SWITCH_XML_SECTION_MAX = (1 << 4)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_xml_section_enum_t;
|
|
|
|
typedef uint32_t switch_xml_section_t;
|
2006-05-12 19:28:21 +00:00
|
|
|
|
2006-04-21 22:31:08 +00:00
|
|
|
/*!
|
2006-05-10 21:28:28 +00:00
|
|
|
\enum switch_vad_flag_t
|
2006-04-21 22:31:08 +00:00
|
|
|
\brief RTP Related Flags
|
|
|
|
<pre>
|
|
|
|
SWITCH_VAD_FLAG_TALKING - Currently Talking
|
|
|
|
SWITCH_VAD_FLAG_EVENTS_TALK - Fire events when talking is detected
|
|
|
|
SWITCH_VAD_FLAG_EVENTS_NOTALK - Fire events when not talking is detected
|
2006-04-22 16:06:55 +00:00
|
|
|
SWITCH_VAD_FLAG_CNG - Send CNG
|
2006-04-21 22:31:08 +00:00
|
|
|
</pre>
|
|
|
|
*/
|
|
|
|
typedef enum {
|
2007-03-29 22:31:56 +00:00
|
|
|
SWITCH_VAD_FLAG_TALKING = (1 << 0),
|
|
|
|
SWITCH_VAD_FLAG_EVENTS_TALK = (1 << 1),
|
|
|
|
SWITCH_VAD_FLAG_EVENTS_NOTALK = (1 << 2),
|
|
|
|
SWITCH_VAD_FLAG_CNG = (1 << 3)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_vad_flag_enum_t;
|
|
|
|
typedef uint32_t switch_vad_flag_t;
|
2006-04-21 22:31:08 +00:00
|
|
|
|
2009-04-03 21:48:52 +00:00
|
|
|
typedef struct {
|
|
|
|
switch_size_t raw_bytes;
|
|
|
|
switch_size_t media_bytes;
|
|
|
|
switch_size_t packet_count;
|
|
|
|
switch_size_t media_packet_count;
|
|
|
|
switch_size_t skip_packet_count;
|
|
|
|
switch_size_t jb_packet_count;
|
|
|
|
switch_size_t dtmf_packet_count;
|
|
|
|
switch_size_t cng_packet_count;
|
|
|
|
switch_size_t flush_packet_count;
|
|
|
|
} switch_rtp_numbers_t;
|
|
|
|
|
|
|
|
typedef struct {
|
2009-04-15 15:08:21 +00:00
|
|
|
switch_rtp_numbers_t inbound;
|
|
|
|
switch_rtp_numbers_t outbound;
|
2009-04-03 21:48:52 +00:00
|
|
|
} switch_rtp_stats_t;
|
|
|
|
|
2009-04-16 22:13:55 +00:00
|
|
|
typedef enum {
|
|
|
|
SWITCH_RTP_FLUSH_ONCE,
|
|
|
|
SWITCH_RTP_FLUSH_STICK,
|
|
|
|
SWITCH_RTP_FLUSH_UNSTICK
|
|
|
|
} switch_rtp_flush_t;
|
2009-04-03 21:48:52 +00:00
|
|
|
|
2007-03-07 18:34:22 +00:00
|
|
|
#define SWITCH_RTP_CNG_PAYLOAD 13
|
2006-04-21 22:31:08 +00:00
|
|
|
|
2006-04-03 21:00:13 +00:00
|
|
|
/*!
|
|
|
|
\enum switch_rtp_flag_t
|
|
|
|
\brief RTP Related Flags
|
|
|
|
<pre>
|
2006-04-21 22:31:08 +00:00
|
|
|
SWITCH_RTP_FLAG_NOBLOCK - Do not block
|
|
|
|
SWITCH_RTP_FLAG_IO - IO is ready
|
|
|
|
SWITCH_RTP_FLAG_USE_TIMER - Timeout Reads and replace with a CNG Frame
|
|
|
|
SWITCH_RTP_FLAG_TIMER_RECLOCK - Resync the timer to the current clock on slips
|
|
|
|
SWITCH_RTP_FLAG_SECURE - Secure RTP
|
|
|
|
SWITCH_RTP_FLAG_AUTOADJ - Auto-Adjust the dest based on the source
|
|
|
|
SWITCH_RTP_FLAG_RAW_WRITE - Try to forward packets unscathed
|
|
|
|
SWITCH_RTP_FLAG_GOOGLEHACK - Convert payload from 102 to 97
|
|
|
|
SWITCH_RTP_FLAG_VAD - Enable VAD
|
2006-05-04 01:15:38 +00:00
|
|
|
SWITCH_RTP_FLAG_BREAK - Stop what you are doing and return SWITCH_STATUS_BREAK
|
2006-05-04 20:19:23 +00:00
|
|
|
SWITCH_RTP_FLAG_MINI - Use mini RTP when possible
|
2006-09-20 20:25:26 +00:00
|
|
|
SWITCH_RTP_FLAG_DATAWAIT - Do not return from reads unless there is data even when non blocking
|
2006-10-12 20:37:08 +00:00
|
|
|
SWITCH_RTP_FLAG_BUGGY_2833 - Emulate the bug in cisco equipment to allow interop
|
2007-03-07 18:34:22 +00:00
|
|
|
SWITCH_RTP_FLAG_PASS_RFC2833 - Pass 2833 (ignore it)
|
2009-04-16 22:13:55 +00:00
|
|
|
SWITCH_RTP_FLAG_AUTO_CNG - Generate outbound CNG frames when idle
|
2006-04-03 21:00:13 +00:00
|
|
|
</pre>
|
|
|
|
*/
|
|
|
|
typedef enum {
|
2007-03-29 22:31:56 +00:00
|
|
|
SWITCH_RTP_FLAG_NOBLOCK = (1 << 0),
|
2006-04-07 17:32:14 +00:00
|
|
|
SWITCH_RTP_FLAG_IO = (1 << 1),
|
2006-04-10 17:14:53 +00:00
|
|
|
SWITCH_RTP_FLAG_USE_TIMER = (1 << 2),
|
2006-04-21 22:31:08 +00:00
|
|
|
SWITCH_RTP_FLAG_TIMER_RECLOCK = (1 << 3),
|
2008-01-17 04:16:04 +00:00
|
|
|
SWITCH_RTP_FLAG_SECURE_SEND = (1 << 4),
|
|
|
|
SWITCH_RTP_FLAG_SECURE_RECV = (1 << 5),
|
|
|
|
SWITCH_RTP_FLAG_AUTOADJ = (1 << 6),
|
|
|
|
SWITCH_RTP_FLAG_RAW_WRITE = (1 << 7),
|
|
|
|
SWITCH_RTP_FLAG_GOOGLEHACK = (1 << 8),
|
|
|
|
SWITCH_RTP_FLAG_VAD = (1 << 9),
|
|
|
|
SWITCH_RTP_FLAG_BREAK = (1 << 10),
|
|
|
|
SWITCH_RTP_FLAG_MINI = (1 << 11),
|
|
|
|
SWITCH_RTP_FLAG_DATAWAIT = (1 << 12),
|
|
|
|
SWITCH_RTP_FLAG_BUGGY_2833 = (1 << 13),
|
|
|
|
SWITCH_RTP_FLAG_PASS_RFC2833 = (1 << 14),
|
|
|
|
SWITCH_RTP_FLAG_AUTO_CNG = (1 << 15),
|
|
|
|
SWITCH_RTP_FLAG_SECURE_SEND_RESET = (1 << 16),
|
2008-02-21 17:48:41 +00:00
|
|
|
SWITCH_RTP_FLAG_SECURE_RECV_RESET = (1 << 17),
|
2008-04-02 20:53:13 +00:00
|
|
|
SWITCH_RTP_FLAG_PROXY_MEDIA = (1 << 18),
|
2008-12-02 21:33:01 +00:00
|
|
|
SWITCH_RTP_FLAG_SHUTDOWN = (1 << 19),
|
2009-03-31 19:10:43 +00:00
|
|
|
SWITCH_RTP_FLAG_FLUSH = (1 << 20),
|
2009-04-16 22:13:55 +00:00
|
|
|
SWITCH_RTP_FLAG_AUTOFLUSH = (1 << 21),
|
2009-05-20 23:04:05 +00:00
|
|
|
SWITCH_RTP_FLAG_STICKY_FLUSH = (1 << 22),
|
|
|
|
SWITCH_ZRTP_FLAG_SECURE_SEND = (1 << 23),
|
2009-05-23 01:50:56 +00:00
|
|
|
SWITCH_ZRTP_FLAG_SECURE_RECV = (1 << 24),
|
2009-05-27 01:40:11 +00:00
|
|
|
SWITCH_ZRTP_FLAG_SECURE_MITM_SEND = (1 << 25),
|
2009-10-29 17:29:05 +00:00
|
|
|
SWITCH_ZRTP_FLAG_SECURE_MITM_RECV = (1 << 26),
|
2009-10-29 17:52:52 +00:00
|
|
|
SWITCH_RTP_FLAG_DEBUG_RTP_READ = (1 << 27),
|
2009-11-18 19:22:45 +00:00
|
|
|
SWITCH_RTP_FLAG_DEBUG_RTP_WRITE = (1 << 28),
|
|
|
|
SWITCH_RTP_FLAG_VIDEO = (1 << 29)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_rtp_flag_enum_t;
|
|
|
|
typedef uint32_t switch_rtp_flag_t;
|
2006-02-26 00:12:17 +00:00
|
|
|
|
2008-12-29 21:23:17 +00:00
|
|
|
typedef enum {
|
|
|
|
RTP_BUG_NONE = 0, /* won't be using this one much ;) */
|
|
|
|
|
|
|
|
RTP_BUG_CISCO_SKIP_MARK_BIT_2833 = (1 << 0),
|
|
|
|
/* Some Cisco devices get mad when you send the mark bit on new 2833 because it makes
|
|
|
|
them flush their jitterbuffer and the dtmf along with it.
|
|
|
|
|
|
|
|
This flag will disable the sending of the mark bit on the first DTMF packet.
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
RTP_BUG_SONUS_SEND_INVALID_TIMESTAMP_2833 = (1 << 1)
|
|
|
|
/*
|
|
|
|
Sonus wrongly expects that, when sending a multi-packet 2833 DTMF event, The sender
|
|
|
|
should increment the RTP timestamp in each packet when, in reality, the sender should
|
|
|
|
send the same exact timestamp and increment the duration field in the 2833 payload.
|
|
|
|
This allows a reconstruction of the duration if any of the packets are lost.
|
|
|
|
|
|
|
|
final_duration - initial_timestamp = total_samples
|
|
|
|
|
|
|
|
However, if the duration value exceeds the space allocated (16 bits), The sender should increment
|
|
|
|
the timestamp one unit and reset the duration to 0.
|
|
|
|
|
|
|
|
Always sending a duration of 0 with a new timestamp should be tolerated but is rarely intentional
|
|
|
|
and is mistakenly done by many devices.
|
2008-12-31 21:02:22 +00:00
|
|
|
The issue is that the Sonus expects everyone to do it this way instead of tolerating either way.
|
2008-12-29 21:23:17 +00:00
|
|
|
Sonus will actually ignore every packet with the same timestamp before concluding if it's DTMF.
|
|
|
|
|
|
|
|
This flag will cause each packet to have a new timestamp.
|
|
|
|
*/
|
|
|
|
|
|
|
|
} switch_rtp_bug_flag_t;
|
2008-02-09 00:38:23 +00:00
|
|
|
|
|
|
|
#ifdef _MSC_VER
|
|
|
|
#pragma pack(push, r1, 1)
|
|
|
|
#endif
|
|
|
|
|
2008-07-15 16:15:49 +00:00
|
|
|
#if SWITCH_BYTE_ORDER == __BIG_ENDIAN
|
2008-02-09 00:38:23 +00:00
|
|
|
typedef struct {
|
2008-05-27 04:30:03 +00:00
|
|
|
unsigned version:2; /* protocol version */
|
|
|
|
unsigned p:1; /* padding flag */
|
|
|
|
unsigned x:1; /* header extension flag */
|
|
|
|
unsigned cc:4; /* CSRC count */
|
|
|
|
unsigned m:1; /* marker bit */
|
|
|
|
unsigned pt:7; /* payload type */
|
|
|
|
unsigned seq:16; /* sequence number */
|
|
|
|
unsigned ts:32; /* timestamp */
|
|
|
|
unsigned ssrc:32; /* synchronization source */
|
2008-02-09 00:38:23 +00:00
|
|
|
} switch_rtp_hdr_t;
|
|
|
|
|
|
|
|
#else /* BIG_ENDIAN */
|
|
|
|
|
|
|
|
typedef struct {
|
2008-05-27 04:30:03 +00:00
|
|
|
unsigned cc:4; /* CSRC count */
|
|
|
|
unsigned x:1; /* header extension flag */
|
|
|
|
unsigned p:1; /* padding flag */
|
|
|
|
unsigned version:2; /* protocol version */
|
|
|
|
unsigned pt:7; /* payload type */
|
|
|
|
unsigned m:1; /* marker bit */
|
|
|
|
unsigned seq:16; /* sequence number */
|
|
|
|
unsigned ts:32; /* timestamp */
|
|
|
|
unsigned ssrc:32; /* synchronization source */
|
2008-02-09 00:38:23 +00:00
|
|
|
} switch_rtp_hdr_t;
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
2008-02-18 22:37:29 +00:00
|
|
|
#ifdef _MSC_VER
|
|
|
|
#pragma pack(pop, r1)
|
|
|
|
#endif
|
|
|
|
|
2006-02-26 00:12:17 +00:00
|
|
|
/*!
|
|
|
|
\enum switch_priority_t
|
|
|
|
\brief Priority Indication
|
|
|
|
<pre>
|
|
|
|
SWITCH_PRIORITY_NORMAL - Normal Priority
|
|
|
|
SWITCH_PRIORITY_LOW - Low Priority
|
|
|
|
SWITCH_PRIORITY_HIGH - High Priority
|
|
|
|
</pre>
|
|
|
|
*/
|
|
|
|
typedef enum {
|
|
|
|
SWITCH_PRIORITY_NORMAL,
|
|
|
|
SWITCH_PRIORITY_LOW,
|
2007-06-08 14:52:50 +00:00
|
|
|
SWITCH_PRIORITY_HIGH
|
2006-02-26 00:12:17 +00:00
|
|
|
} switch_priority_t;
|
|
|
|
|
2006-01-26 17:57:25 +00:00
|
|
|
/*!
|
|
|
|
\enum switch_ivr_option_t
|
|
|
|
\brief Possible options related to ivr functions
|
|
|
|
<pre>
|
2006-01-27 16:43:57 +00:00
|
|
|
SWITCH_IVR_OPTION_NONE - nothing whatsoever
|
|
|
|
SWITCH_IVR_OPTION_ASYNC - Asynchronous (do things in the background when applicable)
|
|
|
|
SWITCH_IVR_OPTION_FILE - string argument implies a filename
|
2006-01-26 17:57:25 +00:00
|
|
|
</pre>
|
|
|
|
*/
|
|
|
|
typedef enum {
|
2006-01-27 16:43:57 +00:00
|
|
|
SWITCH_IVR_OPTION_NONE = 0,
|
|
|
|
SWITCH_IVR_OPTION_ASYNC = (1 << 0),
|
|
|
|
SWITCH_IVR_OPTION_FILE = (1 << 1)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_ivr_option_enum_t;
|
|
|
|
typedef uint32_t switch_ivr_option_t;
|
2006-05-10 03:23:05 +00:00
|
|
|
|
2006-01-09 19:48:20 +00:00
|
|
|
/*!
|
2006-04-29 06:05:03 +00:00
|
|
|
\enum switch_core_session_message_types_t
|
2006-01-09 19:48:20 +00:00
|
|
|
\brief Possible types of messages for inter-session communication
|
|
|
|
<pre>
|
2006-02-22 02:50:33 +00:00
|
|
|
SWITCH_MESSAGE_REDIRECT_AUDIO - Indication to redirect audio to another location if possible
|
|
|
|
SWITCH_MESSAGE_TRANSMIT_TEXT - A text message
|
2007-04-16 16:53:30 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_ANSWER - indicate answer
|
2006-02-22 02:50:33 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_PROGRESS - indicate progress
|
2006-04-17 18:25:43 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_BRIDGE - indicate a bridge starting
|
2006-10-06 22:39:49 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_UNBRIDGE - indicate a bridge ending
|
|
|
|
SWITCH_MESSAGE_INDICATE_TRANSFER - indicate a transfer is taking place
|
2006-10-31 21:38:06 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_MEDIA - indicate media is required
|
|
|
|
SWITCH_MESSAGE_INDICATE_NOMEDIA - indicate no-media is required
|
|
|
|
SWITCH_MESSAGE_INDICATE_HOLD - indicate hold
|
|
|
|
SWITCH_MESSAGE_INDICATE_UNHOLD - indicate unhold
|
2007-01-10 21:26:10 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_REDIRECT - indicate redirect
|
2008-01-03 00:50:53 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_RESPOND - indicate reject
|
2007-05-01 21:21:35 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_BROADCAST - indicate media broadcast
|
2007-09-19 18:24:47 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_MEDIA_REDIRECT - indicate media broadcast
|
2008-01-03 23:42:15 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_DEFLECT - indicate deflect
|
2008-02-07 00:04:14 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_VIDEO_REFRESH_REQ - indicate video refresh request
|
2006-01-09 19:48:20 +00:00
|
|
|
</pre>
|
|
|
|
*/
|
|
|
|
typedef enum {
|
|
|
|
SWITCH_MESSAGE_REDIRECT_AUDIO,
|
2006-02-22 02:50:33 +00:00
|
|
|
SWITCH_MESSAGE_TRANSMIT_TEXT,
|
2007-04-16 16:53:30 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_ANSWER,
|
2006-04-17 18:25:43 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_PROGRESS,
|
|
|
|
SWITCH_MESSAGE_INDICATE_BRIDGE,
|
2006-10-06 22:39:49 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_UNBRIDGE,
|
2006-10-12 00:59:09 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_TRANSFER,
|
2006-10-31 21:38:06 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_RINGING,
|
|
|
|
SWITCH_MESSAGE_INDICATE_MEDIA,
|
|
|
|
SWITCH_MESSAGE_INDICATE_NOMEDIA,
|
|
|
|
SWITCH_MESSAGE_INDICATE_HOLD,
|
|
|
|
SWITCH_MESSAGE_INDICATE_UNHOLD,
|
2007-04-21 15:04:01 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_REDIRECT,
|
2008-01-03 00:50:53 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_RESPOND,
|
2007-09-19 18:24:47 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_BROADCAST,
|
2008-01-03 23:42:15 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_MEDIA_REDIRECT,
|
2008-02-07 00:04:14 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_DEFLECT,
|
2008-03-11 03:45:16 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_VIDEO_REFRESH_REQ,
|
2008-05-13 20:36:23 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_DISPLAY,
|
2008-11-05 00:20:30 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_TRANSCODING_NECESSARY,
|
2008-11-25 17:53:35 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_AUDIO_SYNC,
|
2008-12-30 19:50:33 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_REQUEST_IMAGE_MEDIA,
|
2009-10-22 14:54:29 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_UUID_CHANGE,
|
2009-10-23 23:02:14 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_WARNING,
|
2009-10-29 17:29:05 +00:00
|
|
|
SWITCH_MESSAGE_INDICATE_DEBUG_AUDIO,
|
2008-11-05 00:20:30 +00:00
|
|
|
SWITCH_MESSAGE_INVALID
|
2006-04-29 06:05:03 +00:00
|
|
|
} switch_core_session_message_types_t;
|
2006-01-09 19:48:20 +00:00
|
|
|
|
2008-12-30 19:50:33 +00:00
|
|
|
typedef struct {
|
|
|
|
uint32_t T38MaxBitRate;
|
|
|
|
switch_bool_t T38FaxFillBitRemoval;
|
|
|
|
switch_bool_t T38FaxTranscodingMMR;
|
|
|
|
switch_bool_t T38FaxTranscodingJBIG;
|
|
|
|
const char *T38FaxRateManagement;
|
|
|
|
uint32_t T38FaxMaxBuffer;
|
|
|
|
uint32_t T38FaxMaxDatagram;
|
|
|
|
const char *T38FaxUdpEC;
|
|
|
|
const char *T38VendorInfo;
|
|
|
|
const char *ip;
|
|
|
|
uint32_t port;
|
|
|
|
} switch_t38_options_t;
|
2006-01-09 19:48:20 +00:00
|
|
|
|
2006-01-05 21:03:22 +00:00
|
|
|
/*!
|
|
|
|
\enum switch_stack_t
|
|
|
|
\brief Expression of how to stack a list
|
|
|
|
<pre>
|
|
|
|
SWITCH_STACK_BOTTOM - Stack on the bottom
|
|
|
|
SWITCH_STACK_TOP - Stack on the top
|
|
|
|
</pre>
|
|
|
|
*/
|
2005-12-23 21:09:36 +00:00
|
|
|
typedef enum {
|
|
|
|
SWITCH_STACK_BOTTOM,
|
|
|
|
SWITCH_STACK_TOP
|
|
|
|
} switch_stack_t;
|
|
|
|
|
2006-01-05 21:03:22 +00:00
|
|
|
/*!
|
2006-04-29 23:43:28 +00:00
|
|
|
\enum switch_status_t
|
2006-01-05 21:03:22 +00:00
|
|
|
\brief Common return values
|
|
|
|
<pre>
|
|
|
|
SWITCH_STATUS_SUCCESS - General Success (common return value for most functions)
|
|
|
|
SWITCH_STATUS_FALSE - General Falsehood
|
|
|
|
SWITCH_STATUS_TIMEOUT - A Timeout has occured
|
|
|
|
SWITCH_STATUS_RESTART - An indication to restart the previous operation
|
|
|
|
SWITCH_STATUS_TERM - An indication to terminate
|
|
|
|
SWITCH_STATUS_NOTIMPL - An indication that requested resource is not impelemented
|
|
|
|
SWITCH_STATUS_MEMERR - General memory error
|
|
|
|
SWITCH_STATUS_NOOP - NOTHING
|
|
|
|
SWITCH_STATUS_RESAMPLE - An indication that a resample has occured
|
|
|
|
SWITCH_STATUS_GENERR - A general Error
|
|
|
|
SWITCH_STATUS_INUSE - An indication that requested resource is in use
|
2006-01-27 21:33:45 +00:00
|
|
|
SWITCH_STATUS_BREAK - A non-fatal break of an operation
|
2006-05-30 17:19:01 +00:00
|
|
|
SWITCH_STATUS_SOCKERR - A socket error
|
|
|
|
SWITCH_STATUS_MORE_DATA - Need More Data
|
2006-06-06 23:07:37 +00:00
|
|
|
SWITCH_STATUS_NOTFOUND - Not Found
|
2006-11-09 05:39:04 +00:00
|
|
|
SWITCH_STATUS_UNLOAD - Unload
|
2007-05-03 16:28:23 +00:00
|
|
|
SWITCH_STATUS_NOUNLOAD - Never Unload
|
2006-01-05 21:03:22 +00:00
|
|
|
</pre>
|
|
|
|
*/
|
2005-11-19 20:07:43 +00:00
|
|
|
typedef enum {
|
|
|
|
SWITCH_STATUS_SUCCESS,
|
|
|
|
SWITCH_STATUS_FALSE,
|
|
|
|
SWITCH_STATUS_TIMEOUT,
|
|
|
|
SWITCH_STATUS_RESTART,
|
|
|
|
SWITCH_STATUS_TERM,
|
|
|
|
SWITCH_STATUS_NOTIMPL,
|
|
|
|
SWITCH_STATUS_MEMERR,
|
|
|
|
SWITCH_STATUS_NOOP,
|
2005-12-30 00:00:21 +00:00
|
|
|
SWITCH_STATUS_RESAMPLE,
|
2005-12-14 22:46:09 +00:00
|
|
|
SWITCH_STATUS_GENERR,
|
2006-01-27 21:33:45 +00:00
|
|
|
SWITCH_STATUS_INUSE,
|
|
|
|
SWITCH_STATUS_BREAK,
|
2006-05-30 17:19:01 +00:00
|
|
|
SWITCH_STATUS_SOCKERR,
|
2006-06-06 23:07:37 +00:00
|
|
|
SWITCH_STATUS_MORE_DATA,
|
2006-11-09 05:39:04 +00:00
|
|
|
SWITCH_STATUS_NOTFOUND,
|
2007-05-03 16:28:23 +00:00
|
|
|
SWITCH_STATUS_UNLOAD,
|
2008-03-13 01:08:42 +00:00
|
|
|
SWITCH_STATUS_NOUNLOAD,
|
2008-10-29 00:04:20 +00:00
|
|
|
SWITCH_STATUS_IGNORE,
|
2008-11-13 20:23:59 +00:00
|
|
|
SWITCH_STATUS_TOO_SMALL,
|
2008-10-29 00:04:20 +00:00
|
|
|
SWITCH_STATUS_NOT_INITALIZED
|
2006-04-29 23:43:28 +00:00
|
|
|
} switch_status_t;
|
2005-11-19 20:07:43 +00:00
|
|
|
|
2006-04-11 21:13:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
/*!
|
2006-04-29 23:43:28 +00:00
|
|
|
\enum switch_log_level_t
|
2006-04-11 21:13:44 +00:00
|
|
|
\brief Log Level Enumeration
|
|
|
|
<pre>
|
|
|
|
SWITCH_LOG_DEBUG - Debug
|
|
|
|
SWITCH_LOG_INFO - Info
|
|
|
|
SWITCH_LOG_NOTICE - Notice
|
|
|
|
SWITCH_LOG_WARNING - Warning
|
2006-04-16 06:05:53 +00:00
|
|
|
SWITCH_LOG_ERROR - Error
|
2006-04-11 21:13:44 +00:00
|
|
|
SWITCH_LOG_CRIT - Critical
|
|
|
|
SWITCH_LOG_ALERT - Alert
|
2007-10-04 17:25:06 +00:00
|
|
|
SWITCH_LOG_CONSOLE - Console
|
2006-04-11 21:13:44 +00:00
|
|
|
</pre>
|
|
|
|
*/
|
|
|
|
typedef enum {
|
2009-11-20 23:12:07 +00:00
|
|
|
SWITCH_LOG_DEBUG10 = 110,
|
|
|
|
SWITCH_LOG_DEBUG9 = 109,
|
|
|
|
SWITCH_LOG_DEBUG8 = 108,
|
|
|
|
SWITCH_LOG_DEBUG7 = 107,
|
|
|
|
SWITCH_LOG_DEBUG6 = 106,
|
|
|
|
SWITCH_LOG_DEBUG5 = 105,
|
|
|
|
SWITCH_LOG_DEBUG4 = 104,
|
|
|
|
SWITCH_LOG_DEBUG3 = 103,
|
|
|
|
SWITCH_LOG_DEBUG2 = 102,
|
|
|
|
SWITCH_LOG_DEBUG1 = 101,
|
2006-04-11 21:13:44 +00:00
|
|
|
SWITCH_LOG_DEBUG = 7,
|
2007-03-29 22:31:56 +00:00
|
|
|
SWITCH_LOG_INFO = 6,
|
2006-04-11 21:13:44 +00:00
|
|
|
SWITCH_LOG_NOTICE = 5,
|
|
|
|
SWITCH_LOG_WARNING = 4,
|
2006-04-16 06:05:53 +00:00
|
|
|
SWITCH_LOG_ERROR = 3,
|
2006-04-11 21:13:44 +00:00
|
|
|
SWITCH_LOG_CRIT = 2,
|
|
|
|
SWITCH_LOG_ALERT = 1,
|
2007-12-10 19:16:50 +00:00
|
|
|
SWITCH_LOG_CONSOLE = 0,
|
|
|
|
SWITCH_LOG_INVALID = 64
|
2006-04-29 23:43:28 +00:00
|
|
|
} switch_log_level_t;
|
2006-04-11 21:13:44 +00:00
|
|
|
|
|
|
|
|
2006-01-05 21:03:22 +00:00
|
|
|
/*!
|
2006-04-29 23:43:28 +00:00
|
|
|
\enum switch_text_channel_t
|
2006-01-05 21:03:22 +00:00
|
|
|
\brief A target to write log/debug info to
|
|
|
|
<pre>
|
2006-04-11 21:13:44 +00:00
|
|
|
SWITCH_CHANNEL_ID_LOG - Write to the currently defined log
|
|
|
|
SWITCH_CHANNEL_ID_LOG_CLEAN - Write to the currently defined log with no extra file/line/date information
|
|
|
|
SWITCH_CHANNEL_ID_EVENT - Write to the event engine as a LOG event
|
2006-01-05 21:03:22 +00:00
|
|
|
</pre>
|
|
|
|
*/
|
2005-11-19 20:07:43 +00:00
|
|
|
typedef enum {
|
2006-04-11 21:13:44 +00:00
|
|
|
SWITCH_CHANNEL_ID_LOG,
|
|
|
|
SWITCH_CHANNEL_ID_LOG_CLEAN,
|
2007-03-24 04:52:46 +00:00
|
|
|
SWITCH_CHANNEL_ID_EVENT
|
2006-04-29 23:43:28 +00:00
|
|
|
} switch_text_channel_t;
|
2005-11-19 20:07:43 +00:00
|
|
|
|
2006-10-12 00:59:09 +00:00
|
|
|
typedef enum {
|
2008-11-20 02:07:59 +00:00
|
|
|
SCSMF_DYNAMIC = (1 << 0),
|
|
|
|
SCSMF_FREE_STRING_REPLY = (1 << 1),
|
2009-11-24 06:00:48 +00:00
|
|
|
SCSMF_FREE_POINTER_REPLY = (1 << 2)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_core_session_message_flag_enum_t;
|
|
|
|
typedef uint32_t switch_core_session_message_flag_t;
|
2006-10-12 00:59:09 +00:00
|
|
|
|
2007-06-20 09:19:45 +00:00
|
|
|
#define SWITCH_CHANNEL_LOG SWITCH_CHANNEL_ID_LOG, __FILE__, __SWITCH_FUNC__, __LINE__, NULL
|
|
|
|
#define SWITCH_CHANNEL_LOG_CLEAN SWITCH_CHANNEL_ID_LOG_CLEAN, __FILE__, __SWITCH_FUNC__, __LINE__, NULL
|
2009-08-13 20:35:02 +00:00
|
|
|
#define SWITCH_CHANNEL_SESSION_LOG_CLEAN(x) SWITCH_CHANNEL_ID_LOG_CLEAN, __FILE__, __SWITCH_FUNC__, __LINE__, ((x) ? switch_core_session_get_uuid(x) : NULL)
|
2007-06-20 09:19:45 +00:00
|
|
|
#define SWITCH_CHANNEL_EVENT SWITCH_CHANNEL_ID_EVENT, __FILE__, __SWITCH_FUNC__, __LINE__, NULL
|
2009-08-13 20:35:02 +00:00
|
|
|
#define SWITCH_CHANNEL_SESSION_LOG(x) SWITCH_CHANNEL_ID_LOG, __FILE__, __SWITCH_FUNC__, __LINE__, ((x) ? switch_core_session_get_uuid(x) : NULL)
|
|
|
|
#define SWITCH_CHANNEL_CHANNEL_LOG(x) SWITCH_CHANNEL_ID_LOG, __FILE__, __SWITCH_FUNC__, __LINE__, ((x) ? switch_channel_get_uuid(x) : NULL)
|
|
|
|
#define SWITCH_CHANNEL_UUID_LOG(x) SWITCH_CHANNEL_ID_LOG, __FILE__, __SWITCH_FUNC__, __LINE__, x
|
2005-11-19 20:07:43 +00:00
|
|
|
|
2006-01-05 21:03:22 +00:00
|
|
|
/*!
|
2006-04-29 23:43:28 +00:00
|
|
|
\enum switch_channel_state_t
|
2008-05-05 15:30:55 +00:00
|
|
|
\brief Channel States (these are the defaults, CS_SOFT_EXECUTE, CS_EXCHANGE_MEDIA, and CS_CONSUME_MEDIA are often overridden by specific apps)
|
2006-01-05 21:03:22 +00:00
|
|
|
<pre>
|
2009-03-04 04:19:33 +00:00
|
|
|
CS_NEW - Channel is newly created.
|
|
|
|
CS_INIT - Channel has been initilized.
|
|
|
|
CS_ROUTING - Channel is looking for an extension to execute.
|
|
|
|
CS_SOFT_EXECUTE - Channel is ready to execute from 3rd party control.
|
|
|
|
CS_EXECUTE - Channel is executing it's dialplan.
|
2008-05-05 15:30:55 +00:00
|
|
|
CS_EXCHANGE_MEDIA - Channel is exchanging media with another channel.
|
|
|
|
CS_PARK - Channel is accepting media awaiting commands.
|
|
|
|
CS_CONSUME_MEDIA - Channel is consuming all media and dropping it.
|
2009-03-04 04:19:33 +00:00
|
|
|
CS_HIBERNATE - Channel is in a sleep state.
|
|
|
|
CS_RESET - Channel is in a reset state.
|
|
|
|
CS_HANGUP - Channel is flagged for hangup and ready to end.
|
2009-03-04 04:35:30 +00:00
|
|
|
CS_REPORTING - Channel is ready to collect call detail.
|
2009-04-10 17:43:18 +00:00
|
|
|
CS_DESTROY - Channel is ready to be destroyed and out of the state machine
|
2006-01-05 21:03:22 +00:00
|
|
|
</pre>
|
2006-01-02 05:00:28 +00:00
|
|
|
*/
|
2005-11-19 20:07:43 +00:00
|
|
|
typedef enum {
|
|
|
|
CS_NEW,
|
|
|
|
CS_INIT,
|
2008-05-05 15:30:55 +00:00
|
|
|
CS_ROUTING,
|
|
|
|
CS_SOFT_EXECUTE,
|
2005-11-19 20:07:43 +00:00
|
|
|
CS_EXECUTE,
|
2008-05-05 15:30:55 +00:00
|
|
|
CS_EXCHANGE_MEDIA,
|
2007-12-13 22:17:20 +00:00
|
|
|
CS_PARK,
|
2008-05-05 15:30:55 +00:00
|
|
|
CS_CONSUME_MEDIA,
|
2006-10-31 21:38:06 +00:00
|
|
|
CS_HIBERNATE,
|
2007-07-03 02:10:35 +00:00
|
|
|
CS_RESET,
|
2005-11-19 20:07:43 +00:00
|
|
|
CS_HANGUP,
|
2009-03-04 04:19:33 +00:00
|
|
|
CS_REPORTING,
|
2009-04-10 17:43:18 +00:00
|
|
|
CS_DESTROY,
|
2007-12-19 23:24:55 +00:00
|
|
|
CS_NONE
|
2006-04-29 23:43:28 +00:00
|
|
|
} switch_channel_state_t;
|
2005-11-19 20:07:43 +00:00
|
|
|
|
2006-01-05 21:03:22 +00:00
|
|
|
|
|
|
|
/*!
|
2006-04-29 23:43:28 +00:00
|
|
|
\enum switch_channel_flag_t
|
2006-01-05 21:03:22 +00:00
|
|
|
\brief Channel Flags
|
|
|
|
|
|
|
|
<pre>
|
2008-12-11 15:20:24 +00:00
|
|
|
CF_ANSWERED - Channel is answered
|
|
|
|
CF_OUTBOUND - Channel is an outbound channel
|
|
|
|
CF_EARLY_MEDIA - Channel is ready for audio before answer
|
|
|
|
CF_ORIGINATOR - Channel is an originator
|
|
|
|
CF_TRANSFER - Channel is being transfered
|
|
|
|
CF_ACCEPT_CNG - Channel will accept CNG frames
|
|
|
|
CF_REDIRECT - Channel is being redirected
|
|
|
|
CF_BRIDGED - Channel in a bridge
|
|
|
|
CF_HOLD - Channel is on hold
|
|
|
|
CF_SERVICE - Channel has a service thread
|
|
|
|
CF_TAGGED - Channel is tagged
|
|
|
|
CF_WINNER - Channel is the winner
|
|
|
|
CF_CONTROLLED - Channel is under control
|
|
|
|
CF_PROXY_MODE - Channel has no media
|
|
|
|
CF_SUSPEND - Suspend i/o
|
|
|
|
CF_EVENT_PARSE - Suspend control events
|
|
|
|
CF_GEN_RINGBACK - Channel is generating it's own ringback
|
|
|
|
CF_RING_READY - Channel is ready to send ringback
|
|
|
|
CF_BREAK - Channel should stop what it's doing
|
|
|
|
CF_BROADCAST - Channel is broadcasting
|
|
|
|
CF_UNICAST - Channel has a unicast connection
|
|
|
|
CF_VIDEO - Channel has video
|
|
|
|
CF_EVENT_LOCK - Don't parse events
|
|
|
|
CF_RESET - Tell extension parser to reset
|
|
|
|
CF_ORIGINATING - Channel is originating
|
|
|
|
CF_STOP_BROADCAST - Signal to stop broadcast
|
2006-01-05 21:03:22 +00:00
|
|
|
</pre>
|
|
|
|
*/
|
|
|
|
|
2009-10-14 19:26:10 +00:00
|
|
|
typedef enum {
|
|
|
|
CC_MEDIA_ACK = 1,
|
2009-10-20 17:03:03 +00:00
|
|
|
CC_BYPASS_MEDIA,
|
|
|
|
CC_PROXY_MEDIA,
|
2009-10-14 19:26:10 +00:00
|
|
|
/* WARNING: DO NOT ADD ANY FLAGS BELOW THIS LINE */
|
|
|
|
CC_FLAG_MAX
|
|
|
|
} switch_channel_cap_t;
|
|
|
|
|
2005-11-19 20:07:43 +00:00
|
|
|
typedef enum {
|
2008-12-11 15:20:24 +00:00
|
|
|
CF_ANSWERED = 1,
|
|
|
|
CF_OUTBOUND,
|
|
|
|
CF_EARLY_MEDIA,
|
2009-10-07 04:30:19 +00:00
|
|
|
CF_BRIDGE_ORIGINATOR,
|
2008-12-11 15:20:24 +00:00
|
|
|
CF_TRANSFER,
|
|
|
|
CF_ACCEPT_CNG,
|
|
|
|
CF_REDIRECT,
|
|
|
|
CF_BRIDGED,
|
|
|
|
CF_HOLD,
|
|
|
|
CF_SERVICE,
|
|
|
|
CF_TAGGED,
|
|
|
|
CF_WINNER,
|
|
|
|
CF_CONTROLLED,
|
|
|
|
CF_PROXY_MODE,
|
|
|
|
CF_SUSPEND,
|
|
|
|
CF_EVENT_PARSE,
|
|
|
|
CF_GEN_RINGBACK,
|
|
|
|
CF_RING_READY,
|
|
|
|
CF_BREAK,
|
|
|
|
CF_BROADCAST,
|
|
|
|
CF_UNICAST,
|
|
|
|
CF_VIDEO,
|
|
|
|
CF_EVENT_LOCK,
|
2009-12-10 01:29:02 +00:00
|
|
|
CF_EVENT_LOCK_PRI,
|
2008-12-11 15:20:24 +00:00
|
|
|
CF_RESET,
|
|
|
|
CF_ORIGINATING,
|
|
|
|
CF_STOP_BROADCAST,
|
|
|
|
CF_PROXY_MEDIA,
|
|
|
|
CF_INNER_BRIDGE,
|
|
|
|
CF_REQ_MEDIA,
|
|
|
|
CF_VERBOSE_EVENTS,
|
2009-01-23 18:44:25 +00:00
|
|
|
CF_PAUSE_BUGS,
|
2009-02-21 23:19:58 +00:00
|
|
|
CF_DIVERT_EVENTS,
|
2009-03-04 04:19:33 +00:00
|
|
|
CF_BLOCK_STATE,
|
2009-04-23 13:15:03 +00:00
|
|
|
CF_FS_RTP,
|
2009-04-28 14:13:05 +00:00
|
|
|
CF_REPORTING,
|
2009-04-30 22:45:46 +00:00
|
|
|
CF_PARK,
|
2009-05-11 16:52:01 +00:00
|
|
|
CF_TIMESTAMP_SET,
|
2009-10-07 04:30:19 +00:00
|
|
|
CF_ORIGINATOR,
|
|
|
|
CF_XFER_ZOMBIE,
|
2009-10-14 19:26:10 +00:00
|
|
|
CF_MEDIA_ACK,
|
2009-10-20 17:03:03 +00:00
|
|
|
CF_THREAD_SLEEPING,
|
2009-10-22 22:11:28 +00:00
|
|
|
CF_DISABLE_RINGBACK,
|
|
|
|
CF_NOT_READY,
|
2009-11-03 16:50:16 +00:00
|
|
|
CF_SIGNAL_BRIDGE_TTL,
|
|
|
|
CF_MEDIA_BRIDGE_TTL,
|
2009-11-09 23:49:35 +00:00
|
|
|
CF_BYPASS_MEDIA_AFTER_BRIDGE,
|
2009-11-24 18:18:09 +00:00
|
|
|
CF_LEG_HOLDING,
|
2009-12-02 18:13:11 +00:00
|
|
|
CF_BROADCAST_DROP_MEDIA,
|
2009-12-11 00:28:54 +00:00
|
|
|
CF_EARLY_HANGUP,
|
2008-12-11 15:20:24 +00:00
|
|
|
/* WARNING: DO NOT ADD ANY FLAGS BELOW THIS LINE */
|
|
|
|
CF_FLAG_MAX
|
|
|
|
} switch_channel_flag_t;
|
2008-11-21 00:09:11 +00:00
|
|
|
|
2009-01-22 14:01:15 +00:00
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
CF_APP_TAGGED = (1 << 0)
|
|
|
|
} switch_channel_app_flag_t;
|
|
|
|
|
|
|
|
|
2006-04-06 19:50:53 +00:00
|
|
|
/*!
|
2006-04-29 23:43:28 +00:00
|
|
|
\enum switch_frame_flag_t
|
2006-04-06 19:50:53 +00:00
|
|
|
\brief Frame Flags
|
|
|
|
|
|
|
|
<pre>
|
2007-05-04 23:29:35 +00:00
|
|
|
SFF_CNG = (1 << 0) - Frame represents comfort noise
|
|
|
|
SFF_RAW_RTP = (1 << 1) - Frame has raw rtp accessible
|
|
|
|
SFF_RTP_HEADER = (1 << 2) - Get the rtp header from the frame header
|
|
|
|
SFF_PLC = (1 << 3) - Frame has generated PLC data
|
2007-10-23 21:32:17 +00:00
|
|
|
SFF_RFC2833 = (1 << 4) - Frame has rfc2833 dtmf data
|
2009-04-13 18:35:26 +00:00
|
|
|
SFF_DYNAMIC = (1 << 5) - Frame is dynamic and should be freed
|
2006-04-06 19:50:53 +00:00
|
|
|
</pre>
|
|
|
|
*/
|
|
|
|
typedef enum {
|
2006-05-15 18:16:43 +00:00
|
|
|
SFF_NONE = 0,
|
2006-04-18 00:24:52 +00:00
|
|
|
SFF_CNG = (1 << 0),
|
2007-04-19 21:40:50 +00:00
|
|
|
SFF_RAW_RTP = (1 << 1),
|
2007-05-04 23:29:35 +00:00
|
|
|
SFF_RTP_HEADER = (1 << 2),
|
2007-10-23 21:32:17 +00:00
|
|
|
SFF_PLC = (1 << 3),
|
2008-02-21 17:48:41 +00:00
|
|
|
SFF_RFC2833 = (1 << 4),
|
2009-04-13 18:35:26 +00:00
|
|
|
SFF_PROXY_PACKET = (1 << 5),
|
2009-05-22 18:19:55 +00:00
|
|
|
SFF_DYNAMIC = (1 << 6),
|
|
|
|
SFF_ZRTP = (1 << 7)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_frame_flag_enum_t;
|
|
|
|
typedef uint32_t switch_frame_flag_t;
|
2006-04-06 19:50:53 +00:00
|
|
|
|
|
|
|
|
2007-02-26 21:38:10 +00:00
|
|
|
typedef enum {
|
|
|
|
SAF_NONE = 0,
|
2009-09-17 19:05:58 +00:00
|
|
|
SAF_SUPPORT_NOMEDIA = (1 << 0),
|
2009-12-02 18:13:11 +00:00
|
|
|
SAF_ROUTING_EXEC = (1 << 1),
|
|
|
|
SAF_MEDIA_TAP = (1 << 2)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_application_flag_enum_t;
|
|
|
|
typedef uint32_t switch_application_flag_t;
|
2007-02-26 21:38:10 +00:00
|
|
|
|
2006-01-05 21:03:22 +00:00
|
|
|
/*!
|
2006-04-29 23:43:28 +00:00
|
|
|
\enum switch_signal_t
|
2006-01-05 21:03:22 +00:00
|
|
|
\brief Signals to send to channels
|
|
|
|
<pre>
|
|
|
|
SWITCH_SIG_KILL - Kill the channel
|
2006-04-25 18:02:12 +00:00
|
|
|
SWITCH_SIG_XFER - Stop the current io but leave it viable
|
2006-01-05 21:03:22 +00:00
|
|
|
</pre>
|
|
|
|
*/
|
|
|
|
|
2005-11-19 20:07:43 +00:00
|
|
|
typedef enum {
|
2006-04-25 18:02:12 +00:00
|
|
|
SWITCH_SIG_NONE,
|
|
|
|
SWITCH_SIG_KILL,
|
2006-12-18 21:40:04 +00:00
|
|
|
SWITCH_SIG_XFER,
|
2007-03-29 22:31:56 +00:00
|
|
|
SWITCH_SIG_BREAK
|
2006-04-29 23:43:28 +00:00
|
|
|
} switch_signal_t;
|
2005-11-19 20:07:43 +00:00
|
|
|
|
2006-01-05 21:03:22 +00:00
|
|
|
/*!
|
2006-04-29 23:43:28 +00:00
|
|
|
\enum switch_codec_flag_t
|
2006-01-05 21:03:22 +00:00
|
|
|
\brief Codec related flags
|
|
|
|
<pre>
|
|
|
|
SWITCH_CODEC_FLAG_ENCODE = (1 << 0) - Codec can encode
|
|
|
|
SWITCH_CODEC_FLAG_DECODE = (1 << 1) - Codec can decode
|
|
|
|
SWITCH_CODEC_FLAG_SILENCE_START = (1 << 2) - Start period of silence
|
|
|
|
SWITCH_CODEC_FLAG_SILENCE_STOP = (1 << 3) - End period of silence
|
|
|
|
SWITCH_CODEC_FLAG_SILENCE = (1 << 4) - Silence
|
|
|
|
SWITCH_CODEC_FLAG_FREE_POOL = (1 << 5) - Free codec's pool on destruction
|
2006-09-02 23:04:25 +00:00
|
|
|
SWITCH_CODEC_FLAG_AAL2 = (1 << 6) - USE AAL2 Bitpacking
|
2006-09-08 15:43:45 +00:00
|
|
|
SWITCH_CODEC_FLAG_PASSTHROUGH = (1 << 7) - Passthrough only
|
2006-01-05 21:03:22 +00:00
|
|
|
</pre>
|
|
|
|
*/
|
2005-11-19 20:07:43 +00:00
|
|
|
typedef enum {
|
2007-03-29 22:31:56 +00:00
|
|
|
SWITCH_CODEC_FLAG_ENCODE = (1 << 0),
|
|
|
|
SWITCH_CODEC_FLAG_DECODE = (1 << 1),
|
|
|
|
SWITCH_CODEC_FLAG_SILENCE_START = (1 << 2),
|
|
|
|
SWITCH_CODEC_FLAG_SILENCE_STOP = (1 << 3),
|
|
|
|
SWITCH_CODEC_FLAG_SILENCE = (1 << 4),
|
|
|
|
SWITCH_CODEC_FLAG_FREE_POOL = (1 << 5),
|
|
|
|
SWITCH_CODEC_FLAG_AAL2 = (1 << 6),
|
2009-04-09 17:17:12 +00:00
|
|
|
SWITCH_CODEC_FLAG_PASSTHROUGH = (1 << 7),
|
|
|
|
SWITCH_CODEC_FLAG_READY = (1 << 8)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_codec_flag_enum_t;
|
|
|
|
typedef uint32_t switch_codec_flag_t;
|
2005-11-19 20:07:43 +00:00
|
|
|
|
2006-01-27 16:43:57 +00:00
|
|
|
|
|
|
|
/*!
|
2006-04-29 23:43:28 +00:00
|
|
|
\enum switch_speech_flag_t
|
2006-01-27 16:43:57 +00:00
|
|
|
\brief Speech related flags
|
|
|
|
<pre>
|
2006-11-09 05:39:04 +00:00
|
|
|
SWITCH_SPEECH_FLAG_HASTEXT = (1 << 0) - Interface is has text to read.
|
|
|
|
SWITCH_SPEECH_FLAG_PEEK = (1 << 1) - Read data but do not erase it.
|
|
|
|
SWITCH_SPEECH_FLAG_FREE_POOL = (1 << 2) - Free interface's pool on destruction.
|
|
|
|
SWITCH_SPEECH_FLAG_BLOCKING = (1 << 3) - Indicate that a blocking call is desired
|
|
|
|
SWITCH_SPEECH_FLAG_PAUSE = (1 << 4) - Pause toggle for playback
|
2006-01-27 16:43:57 +00:00
|
|
|
</pre>
|
|
|
|
*/
|
|
|
|
typedef enum {
|
2007-03-29 22:31:56 +00:00
|
|
|
SWITCH_SPEECH_FLAG_NONE = 0,
|
|
|
|
SWITCH_SPEECH_FLAG_HASTEXT = (1 << 0),
|
|
|
|
SWITCH_SPEECH_FLAG_PEEK = (1 << 1),
|
|
|
|
SWITCH_SPEECH_FLAG_FREE_POOL = (1 << 2),
|
|
|
|
SWITCH_SPEECH_FLAG_BLOCKING = (1 << 3),
|
2009-02-18 18:53:28 +00:00
|
|
|
SWITCH_SPEECH_FLAG_PAUSE = (1 << 4),
|
|
|
|
SWITCH_SPEECH_FLAG_OPEN = (1 << 5),
|
|
|
|
SWITCH_SPEECH_FLAG_DONE = (1 << 6)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_speech_flag_enum_t;
|
|
|
|
typedef uint32_t switch_speech_flag_t;
|
2006-01-27 16:43:57 +00:00
|
|
|
|
2006-11-09 05:39:04 +00:00
|
|
|
/*!
|
|
|
|
\enum switch_asr_flag_t
|
|
|
|
\brief Asr related flags
|
|
|
|
<pre>
|
|
|
|
SWITCH_ASR_FLAG_DATA = (1 << 0) - Interface has data
|
|
|
|
SWITCH_ASR_FLAG_FREE_POOL = (1 << 1) - Pool needs to be freed
|
|
|
|
SWITCH_ASR_FLAG_CLOSED = (1 << 2) - Interface has been closed
|
|
|
|
SWITCH_ASR_FLAG_FIRE_EVENTS = (1 << 3) - Fire all speech events
|
|
|
|
SWITCH_ASR_FLAG_AUTO_RESUME = (1 << 4) - Auto Resume
|
|
|
|
</pre>
|
|
|
|
*/
|
|
|
|
typedef enum {
|
2007-03-29 22:31:56 +00:00
|
|
|
SWITCH_ASR_FLAG_NONE = 0,
|
|
|
|
SWITCH_ASR_FLAG_DATA = (1 << 0),
|
|
|
|
SWITCH_ASR_FLAG_FREE_POOL = (1 << 1),
|
|
|
|
SWITCH_ASR_FLAG_CLOSED = (1 << 2),
|
|
|
|
SWITCH_ASR_FLAG_FIRE_EVENTS = (1 << 3),
|
|
|
|
SWITCH_ASR_FLAG_AUTO_RESUME = (1 << 4)
|
2008-06-05 13:34:39 +00:00
|
|
|
|
|
|
|
} switch_asr_flag_enum_t;
|
|
|
|
typedef uint32_t switch_asr_flag_t;
|
2006-02-09 16:28:49 +00:00
|
|
|
|
|
|
|
/*!
|
2006-04-29 23:43:28 +00:00
|
|
|
\enum switch_directory_flag_t
|
2006-02-09 16:28:49 +00:00
|
|
|
\brief Directory Handle related flags
|
|
|
|
<pre>
|
|
|
|
SWITCH_DIRECTORY_FLAG_FREE_POOL = (1 << 0) - Free interface's pool on destruction.
|
|
|
|
</pre>
|
|
|
|
*/
|
|
|
|
typedef enum {
|
2007-06-08 14:52:50 +00:00
|
|
|
SWITCH_DIRECTORY_FLAG_FREE_POOL = (1 << 0)
|
2006-02-09 16:28:49 +00:00
|
|
|
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_directory_flag_enum_t;
|
|
|
|
typedef uint32_t switch_directory_flag_t;
|
2006-02-09 16:28:49 +00:00
|
|
|
|
2006-01-05 21:03:22 +00:00
|
|
|
/*!
|
2006-04-29 23:43:28 +00:00
|
|
|
\enum switch_codec_type_t
|
2006-01-05 21:03:22 +00:00
|
|
|
\brief Codec types
|
|
|
|
<pre>
|
|
|
|
SWITCH_CODEC_TYPE_AUDIO - Audio Codec
|
|
|
|
SWITCH_CODEC_TYPE_VIDEO - Video Codec
|
|
|
|
SWITCH_CODEC_TYPE_T38 - T38 Codec
|
|
|
|
SWITCH_CODEC_TYPE_APP - Application Codec
|
|
|
|
</pre>
|
|
|
|
*/
|
|
|
|
typedef enum {
|
|
|
|
SWITCH_CODEC_TYPE_AUDIO,
|
|
|
|
SWITCH_CODEC_TYPE_VIDEO,
|
|
|
|
SWITCH_CODEC_TYPE_T38,
|
2007-03-24 04:52:46 +00:00
|
|
|
SWITCH_CODEC_TYPE_APP
|
2006-04-29 23:43:28 +00:00
|
|
|
} switch_codec_type_t;
|
2006-01-05 21:03:22 +00:00
|
|
|
|
|
|
|
|
|
|
|
/*!
|
2006-04-29 23:43:28 +00:00
|
|
|
\enum switch_timer_flag_t
|
2006-01-05 21:03:22 +00:00
|
|
|
\brief Timer related flags
|
|
|
|
<pre>
|
|
|
|
SWITCH_TIMER_FLAG_FREE_POOL = (1 << 0) - Free timer's pool on destruction
|
|
|
|
</pre>
|
|
|
|
*/
|
2005-12-26 21:01:22 +00:00
|
|
|
typedef enum {
|
2007-06-08 14:52:50 +00:00
|
|
|
SWITCH_TIMER_FLAG_FREE_POOL = (1 << 0)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_timer_flag_enum_t;
|
|
|
|
typedef uint32_t switch_timer_flag_t;
|
2005-12-26 21:01:22 +00:00
|
|
|
|
2006-11-09 05:39:04 +00:00
|
|
|
|
|
|
|
/*!
|
|
|
|
\enum switch_timer_flag_t
|
|
|
|
\brief Timer related flags
|
|
|
|
<pre>
|
|
|
|
SMBF_READ_STREAM - Include the Read Stream
|
|
|
|
SMBF_WRITE_STREAM - Include the Write Stream
|
2007-06-13 03:09:53 +00:00
|
|
|
SMBF_WRITE_REPLACE - Replace the Write Stream
|
|
|
|
SMBF_READ_REPLACE - Replace the Read Stream
|
2007-11-23 18:35:38 +00:00
|
|
|
SMBF_STEREO - Record in stereo
|
|
|
|
SMBF_ANSWER_RECORD_REQ - Don't record until the channel is answered
|
2008-01-21 17:14:43 +00:00
|
|
|
SMBF_THREAD_LOCK - Only let the same thread who created the bug remove it.
|
2006-11-09 05:39:04 +00:00
|
|
|
</pre>
|
|
|
|
*/
|
|
|
|
typedef enum {
|
|
|
|
SMBF_BOTH = 0,
|
|
|
|
SMBF_READ_STREAM = (1 << 0),
|
2007-01-31 23:09:33 +00:00
|
|
|
SMBF_WRITE_STREAM = (1 << 1),
|
2007-06-13 03:09:53 +00:00
|
|
|
SMBF_WRITE_REPLACE = (1 << 2),
|
2007-10-01 16:34:28 +00:00
|
|
|
SMBF_READ_REPLACE = (1 << 3),
|
2007-12-06 22:26:37 +00:00
|
|
|
SMBF_READ_PING = (1 << 4),
|
|
|
|
SMBF_STEREO = (1 << 5),
|
2009-10-26 21:59:25 +00:00
|
|
|
SMBF_ANSWER_REQ = (1 << 6),
|
2009-11-21 01:00:58 +00:00
|
|
|
SMBF_THREAD_LOCK = (1 << 7),
|
|
|
|
SMBF_PRUNE = (1 << 8)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_media_bug_flag_enum_t;
|
|
|
|
typedef uint32_t switch_media_bug_flag_t;
|
2006-11-09 05:39:04 +00:00
|
|
|
|
2006-01-05 21:03:22 +00:00
|
|
|
/*!
|
2006-04-29 23:43:28 +00:00
|
|
|
\enum switch_file_flag_t
|
2006-01-05 21:03:22 +00:00
|
|
|
\brief File flags
|
|
|
|
<pre>
|
|
|
|
SWITCH_FILE_FLAG_READ = (1 << 0) - Open for read
|
|
|
|
SWITCH_FILE_FLAG_WRITE = (1 << 1) - Open for write
|
|
|
|
SWITCH_FILE_FLAG_FREE_POOL = (1 << 2) - Free file handle's pool on destruction
|
|
|
|
SWITCH_FILE_DATA_SHORT = (1 << 3) - Read data in shorts
|
|
|
|
SWITCH_FILE_DATA_INT = (1 << 4) - Read data in ints
|
|
|
|
SWITCH_FILE_DATA_FLOAT = (1 << 5) - Read data in floats
|
|
|
|
SWITCH_FILE_DATA_DOUBLE = (1 << 6) - Read data in doubles
|
2006-01-09 18:40:56 +00:00
|
|
|
SWITCH_FILE_DATA_RAW = (1 << 7) - Read data as is
|
2006-02-28 02:08:42 +00:00
|
|
|
SWITCH_FILE_PAUSE = (1 << 8) - Pause
|
2007-03-12 20:17:34 +00:00
|
|
|
SWITCH_FILE_NATIVE = (1 << 9) - File is in native format (no transcoding)
|
|
|
|
SWITCH_FILE_SEEK = (1 << 10) - File has done a seek
|
2007-03-15 22:49:58 +00:00
|
|
|
SWITCH_FILE_OPEN = (1 << 11) - File is open
|
2006-01-05 21:03:22 +00:00
|
|
|
</pre>
|
|
|
|
*/
|
2005-12-27 18:46:12 +00:00
|
|
|
typedef enum {
|
2007-03-29 22:31:56 +00:00
|
|
|
SWITCH_FILE_FLAG_READ = (1 << 0),
|
|
|
|
SWITCH_FILE_FLAG_WRITE = (1 << 1),
|
|
|
|
SWITCH_FILE_FLAG_FREE_POOL = (1 << 2),
|
|
|
|
SWITCH_FILE_DATA_SHORT = (1 << 3),
|
|
|
|
SWITCH_FILE_DATA_INT = (1 << 4),
|
|
|
|
SWITCH_FILE_DATA_FLOAT = (1 << 5),
|
|
|
|
SWITCH_FILE_DATA_DOUBLE = (1 << 6),
|
|
|
|
SWITCH_FILE_DATA_RAW = (1 << 7),
|
|
|
|
SWITCH_FILE_PAUSE = (1 << 8),
|
|
|
|
SWITCH_FILE_NATIVE = (1 << 9),
|
|
|
|
SWITCH_FILE_SEEK = (1 << 10),
|
2008-04-04 21:18:16 +00:00
|
|
|
SWITCH_FILE_OPEN = (1 << 11),
|
2009-01-09 20:34:01 +00:00
|
|
|
SWITCH_FILE_CALLBACK = (1 << 12),
|
|
|
|
SWITCH_FILE_DONE = (1 << 13),
|
2009-11-17 21:40:09 +00:00
|
|
|
SWITCH_FILE_BUFFER_DONE = (1 << 14),
|
|
|
|
SWITCH_FILE_WRITE_APPEND = (1 << 15)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_file_flag_enum_t;
|
|
|
|
typedef uint32_t switch_file_flag_t;
|
2005-12-27 18:46:12 +00:00
|
|
|
|
2005-11-19 20:07:43 +00:00
|
|
|
typedef enum {
|
2008-05-08 19:19:47 +00:00
|
|
|
SWITCH_IO_FLAG_NONE = 0,
|
|
|
|
SWITCH_IO_FLAG_NOBLOCK = (1 << 0)
|
2008-06-05 13:34:39 +00:00
|
|
|
} switch_io_flag_enum_t;
|
|
|
|
typedef uint32_t switch_io_flag_t;
|
2005-11-19 20:07:43 +00:00
|
|
|
|
2005-12-13 19:53:29 +00:00
|
|
|
/* make sure this is synced with the EVENT_NAMES array in switch_event.c
|
|
|
|
also never put any new ones before EVENT_ALL
|
|
|
|
*/
|
2006-01-05 21:03:22 +00:00
|
|
|
/*!
|
2006-05-10 21:28:28 +00:00
|
|
|
\enum switch_event_types_t
|
2006-01-05 21:03:22 +00:00
|
|
|
\brief Built-in Events
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
SWITCH_EVENT_CUSTOM - A custom event
|
2006-04-25 23:11:56 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_CREATE - A channel has been created
|
|
|
|
SWITCH_EVENT_CHANNEL_DESTROY - A channel has been destroyed
|
2006-01-05 21:03:22 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_STATE - A channel has changed state
|
|
|
|
SWITCH_EVENT_CHANNEL_ANSWER - A channel has been answered
|
|
|
|
SWITCH_EVENT_CHANNEL_HANGUP - A channel has been hungup
|
2006-04-11 14:55:14 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_EXECUTE - A channel has executed a module's application
|
2007-06-23 05:41:07 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_EXECUTE_COMPLETE - A channel has finshed executing a module's application
|
2006-04-11 14:55:14 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_BRIDGE - A channel has bridged to another channel
|
|
|
|
SWITCH_EVENT_CHANNEL_UNBRIDGE - A channel has unbridged from another channel
|
2008-10-02 15:38:45 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_PROGRESS - A channel has started ringing
|
|
|
|
SWITCH_EVENT_CHANNEL_PROGRESS_MEDIA - A channel has started early media
|
2006-09-07 03:58:01 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_OUTGOING - A channel has been unparked
|
|
|
|
SWITCH_EVENT_CHANNEL_PARK - A channel has been parked
|
|
|
|
SWITCH_EVENT_CHANNEL_UNPARK - A channel has been unparked
|
2007-06-23 05:41:07 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_APPLICATION- A channel has called and event from an application
|
2007-10-16 13:56:44 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_ORIGINATE - A channel has been originated
|
2008-11-04 16:46:33 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_UUID - A channel has changed uuid
|
2006-01-05 21:03:22 +00:00
|
|
|
SWITCH_EVENT_API - An API call has been executed
|
|
|
|
SWITCH_EVENT_LOG - A LOG event has been triggered
|
|
|
|
SWITCH_EVENT_INBOUND_CHAN - A new inbound channel has been created
|
|
|
|
SWITCH_EVENT_OUTBOUND_CHAN - A new outbound channel has been created
|
|
|
|
SWITCH_EVENT_STARTUP - The system has been started
|
|
|
|
SWITCH_EVENT_SHUTDOWN - The system has been shutdown
|
2006-02-13 23:59:14 +00:00
|
|
|
SWITCH_EVENT_PUBLISH - Publish
|
|
|
|
SWITCH_EVENT_UNPUBLISH - UnPublish
|
2006-04-21 22:31:08 +00:00
|
|
|
SWITCH_EVENT_TALK - Talking Detected
|
|
|
|
SWITCH_EVENT_NOTALK - Not Talking Detected
|
2006-04-27 21:09:58 +00:00
|
|
|
SWITCH_EVENT_SESSION_CRASH - Session Crashed
|
2006-05-04 17:51:53 +00:00
|
|
|
SWITCH_EVENT_MODULE_LOAD - Module was loaded
|
2007-05-03 16:28:23 +00:00
|
|
|
SWITCH_EVENT_MODULE_UNLOAD - Module was unloaded
|
2006-05-04 17:51:53 +00:00
|
|
|
SWITCH_EVENT_DTMF - DTMF was sent
|
2006-07-25 14:14:07 +00:00
|
|
|
SWITCH_EVENT_MESSAGE - A Basic Message
|
2006-12-16 03:00:56 +00:00
|
|
|
SWITCH_EVENT_PRESENCE_IN - Presence in
|
2008-11-24 15:52:55 +00:00
|
|
|
SWITCH_EVENT_NOTIFY_IN - Received incoming NOTIFY from gateway subscription
|
2006-12-16 03:00:56 +00:00
|
|
|
SWITCH_EVENT_PRESENCE_OUT - Presence out
|
|
|
|
SWITCH_EVENT_PRESENCE_PROBE - Presence probe
|
2007-04-02 20:20:46 +00:00
|
|
|
SWITCH_EVENT_MESSAGE_WAITING - A message is waiting
|
|
|
|
SWITCH_EVENT_MESSAGE_QUERY - A query for MESSAGE_WAITING events
|
2006-08-25 01:33:28 +00:00
|
|
|
SWITCH_EVENT_CODEC - Codec Change
|
2006-09-07 03:58:01 +00:00
|
|
|
SWITCH_EVENT_BACKGROUND_JOB - Background Job
|
2006-11-09 05:39:04 +00:00
|
|
|
SWITCH_EVENT_DETECTED_SPEECH - Detected Speech
|
2007-06-16 02:25:40 +00:00
|
|
|
SWITCH_EVENT_DETECTED_TONE - Detected Tone
|
2007-02-19 21:06:27 +00:00
|
|
|
SWITCH_EVENT_PRIVATE_COMMAND - A private command event
|
2007-02-22 17:38:34 +00:00
|
|
|
SWITCH_EVENT_HEARTBEAT - Machine is alive
|
2007-03-05 20:55:41 +00:00
|
|
|
SWITCH_EVENT_TRAP - Error Trap
|
2007-03-30 00:10:33 +00:00
|
|
|
SWITCH_EVENT_ADD_SCHEDULE - Something has been scheduled
|
|
|
|
SWITCH_EVENT_DEL_SCHEDULE - Something has been unscheduled
|
|
|
|
SWITCH_EVENT_EXE_SCHEDULE - Something scheduled has been executed
|
|
|
|
SWITCH_EVENT_RE_SCHEDULE - Something scheduled has been rescheduled
|
2008-03-03 19:32:42 +00:00
|
|
|
SWITCH_EVENT_RELOADXML - XML registry has been reloaded
|
2008-07-22 22:23:50 +00:00
|
|
|
SWITCH_EVENT_NOTIFY - Notification
|
|
|
|
SWITCH_EVENT_SEND_MESSAGE - Message
|
2008-07-23 18:19:56 +00:00
|
|
|
SWITCH_EVENT_RECV_MESSAGE - Message
|
2009-12-09 14:42:30 +00:00
|
|
|
SWITCH_EVENT_NAT - NAT Management (new/del/status)
|
|
|
|
SWITCH_EVENT_FAILURE - A failure occurred which might impact the normal functioning of the switch
|
2006-01-05 21:03:22 +00:00
|
|
|
SWITCH_EVENT_ALL - All events at once
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
*/
|
2005-12-13 19:53:29 +00:00
|
|
|
typedef enum {
|
|
|
|
SWITCH_EVENT_CUSTOM,
|
2009-02-26 18:54:00 +00:00
|
|
|
SWITCH_EVENT_CLONE,
|
2006-04-04 21:26:21 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_CREATE,
|
2006-04-25 23:11:56 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_DESTROY,
|
2005-12-21 22:25:22 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_STATE,
|
|
|
|
SWITCH_EVENT_CHANNEL_ANSWER,
|
2006-01-05 21:03:22 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_HANGUP,
|
2009-05-29 17:18:03 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_HANGUP_COMPLETE,
|
2006-04-11 14:55:14 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_EXECUTE,
|
2007-06-23 05:41:07 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_EXECUTE_COMPLETE,
|
2006-04-11 14:55:14 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_BRIDGE,
|
|
|
|
SWITCH_EVENT_CHANNEL_UNBRIDGE,
|
2006-08-29 15:17:06 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_PROGRESS,
|
2008-10-02 15:38:45 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_PROGRESS_MEDIA,
|
2006-08-29 15:17:06 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_OUTGOING,
|
2006-09-07 03:58:01 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_PARK,
|
|
|
|
SWITCH_EVENT_CHANNEL_UNPARK,
|
2007-06-23 05:41:07 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_APPLICATION,
|
2007-10-16 13:56:44 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_ORIGINATE,
|
2008-11-04 16:46:33 +00:00
|
|
|
SWITCH_EVENT_CHANNEL_UUID,
|
2005-12-23 02:24:56 +00:00
|
|
|
SWITCH_EVENT_API,
|
2005-12-21 22:25:22 +00:00
|
|
|
SWITCH_EVENT_LOG,
|
2005-12-13 19:53:29 +00:00
|
|
|
SWITCH_EVENT_INBOUND_CHAN,
|
|
|
|
SWITCH_EVENT_OUTBOUND_CHAN,
|
|
|
|
SWITCH_EVENT_STARTUP,
|
2005-12-14 21:29:46 +00:00
|
|
|
SWITCH_EVENT_SHUTDOWN,
|
2006-02-13 23:59:14 +00:00
|
|
|
SWITCH_EVENT_PUBLISH,
|
|
|
|
SWITCH_EVENT_UNPUBLISH,
|
2006-04-21 22:31:08 +00:00
|
|
|
SWITCH_EVENT_TALK,
|
|
|
|
SWITCH_EVENT_NOTALK,
|
2006-04-27 21:09:58 +00:00
|
|
|
SWITCH_EVENT_SESSION_CRASH,
|
2006-05-01 19:44:21 +00:00
|
|
|
SWITCH_EVENT_MODULE_LOAD,
|
2007-05-03 16:28:23 +00:00
|
|
|
SWITCH_EVENT_MODULE_UNLOAD,
|
2006-05-04 17:51:53 +00:00
|
|
|
SWITCH_EVENT_DTMF,
|
2006-07-25 14:14:07 +00:00
|
|
|
SWITCH_EVENT_MESSAGE,
|
2006-10-12 00:59:09 +00:00
|
|
|
SWITCH_EVENT_PRESENCE_IN,
|
2008-11-24 15:52:55 +00:00
|
|
|
SWITCH_EVENT_NOTIFY_IN,
|
2006-10-12 00:59:09 +00:00
|
|
|
SWITCH_EVENT_PRESENCE_OUT,
|
2006-12-16 03:00:56 +00:00
|
|
|
SWITCH_EVENT_PRESENCE_PROBE,
|
2007-04-02 20:20:46 +00:00
|
|
|
SWITCH_EVENT_MESSAGE_WAITING,
|
|
|
|
SWITCH_EVENT_MESSAGE_QUERY,
|
2006-10-18 22:57:35 +00:00
|
|
|
SWITCH_EVENT_ROSTER,
|
2006-08-25 01:33:28 +00:00
|
|
|
SWITCH_EVENT_CODEC,
|
2006-09-07 03:58:01 +00:00
|
|
|
SWITCH_EVENT_BACKGROUND_JOB,
|
2006-11-09 05:39:04 +00:00
|
|
|
SWITCH_EVENT_DETECTED_SPEECH,
|
2007-06-16 02:25:40 +00:00
|
|
|
SWITCH_EVENT_DETECTED_TONE,
|
2007-02-19 21:06:27 +00:00
|
|
|
SWITCH_EVENT_PRIVATE_COMMAND,
|
2007-02-22 17:38:34 +00:00
|
|
|
SWITCH_EVENT_HEARTBEAT,
|
2007-03-05 20:55:41 +00:00
|
|
|
SWITCH_EVENT_TRAP,
|
2007-03-30 00:10:33 +00:00
|
|
|
SWITCH_EVENT_ADD_SCHEDULE,
|
|
|
|
SWITCH_EVENT_DEL_SCHEDULE,
|
|
|
|
SWITCH_EVENT_EXE_SCHEDULE,
|
|
|
|
SWITCH_EVENT_RE_SCHEDULE,
|
2008-03-03 19:32:42 +00:00
|
|
|
SWITCH_EVENT_RELOADXML,
|
2008-07-22 22:23:50 +00:00
|
|
|
SWITCH_EVENT_NOTIFY,
|
|
|
|
SWITCH_EVENT_SEND_MESSAGE,
|
2008-07-23 18:19:56 +00:00
|
|
|
SWITCH_EVENT_RECV_MESSAGE,
|
2008-10-02 17:10:05 +00:00
|
|
|
SWITCH_EVENT_REQUEST_PARAMS,
|
|
|
|
SWITCH_EVENT_CHANNEL_DATA,
|
|
|
|
SWITCH_EVENT_GENERAL,
|
|
|
|
SWITCH_EVENT_COMMAND,
|
2008-10-07 21:03:37 +00:00
|
|
|
SWITCH_EVENT_SESSION_HEARTBEAT,
|
2009-02-21 23:19:58 +00:00
|
|
|
SWITCH_EVENT_CLIENT_DISCONNECTED,
|
|
|
|
SWITCH_EVENT_SERVER_DISCONNECTED,
|
2009-04-20 17:07:54 +00:00
|
|
|
SWITCH_EVENT_SEND_INFO,
|
|
|
|
SWITCH_EVENT_RECV_INFO,
|
2009-05-28 17:50:06 +00:00
|
|
|
SWITCH_EVENT_CALL_SECURE,
|
2009-06-30 18:59:05 +00:00
|
|
|
SWITCH_EVENT_NAT,
|
2009-08-21 22:29:44 +00:00
|
|
|
SWITCH_EVENT_RECORD_START,
|
|
|
|
SWITCH_EVENT_RECORD_STOP,
|
2009-10-08 16:52:55 +00:00
|
|
|
SWITCH_EVENT_CALL_UPDATE,
|
2009-12-09 14:42:30 +00:00
|
|
|
SWITCH_EVENT_FAILURE,
|
2010-01-04 17:46:55 +00:00
|
|
|
SWITCH_EVENT_SOCKET_DATA,
|
2005-12-13 19:53:29 +00:00
|
|
|
SWITCH_EVENT_ALL
|
2006-04-29 01:00:52 +00:00
|
|
|
} switch_event_types_t;
|
2005-12-13 19:53:29 +00:00
|
|
|
|
2006-07-12 18:39:19 +00:00
|
|
|
typedef enum {
|
|
|
|
SWITCH_INPUT_TYPE_DTMF,
|
2007-03-24 04:52:46 +00:00
|
|
|
SWITCH_INPUT_TYPE_EVENT
|
2006-07-12 18:39:19 +00:00
|
|
|
} switch_input_type_t;
|
2006-04-21 23:16:26 +00:00
|
|
|
|
|
|
|
typedef enum {
|
2008-07-03 22:51:09 +00:00
|
|
|
SWITCH_CAUSE_NONE = 0,
|
2008-07-23 14:19:53 +00:00
|
|
|
SWITCH_CAUSE_UNALLOCATED_NUMBER = 1,
|
2006-04-21 23:16:26 +00:00
|
|
|
SWITCH_CAUSE_NO_ROUTE_TRANSIT_NET = 2,
|
|
|
|
SWITCH_CAUSE_NO_ROUTE_DESTINATION = 3,
|
|
|
|
SWITCH_CAUSE_CHANNEL_UNACCEPTABLE = 6,
|
|
|
|
SWITCH_CAUSE_CALL_AWARDED_DELIVERED = 7,
|
|
|
|
SWITCH_CAUSE_NORMAL_CLEARING = 16,
|
|
|
|
SWITCH_CAUSE_USER_BUSY = 17,
|
|
|
|
SWITCH_CAUSE_NO_USER_RESPONSE = 18,
|
|
|
|
SWITCH_CAUSE_NO_ANSWER = 19,
|
2006-10-25 03:45:20 +00:00
|
|
|
SWITCH_CAUSE_SUBSCRIBER_ABSENT = 20,
|
2006-04-21 23:16:26 +00:00
|
|
|
SWITCH_CAUSE_CALL_REJECTED = 21,
|
|
|
|
SWITCH_CAUSE_NUMBER_CHANGED = 22,
|
2006-10-25 03:45:20 +00:00
|
|
|
SWITCH_CAUSE_REDIRECTION_TO_NEW_DESTINATION = 23,
|
|
|
|
SWITCH_CAUSE_EXCHANGE_ROUTING_ERROR = 25,
|
2006-04-21 23:16:26 +00:00
|
|
|
SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER = 27,
|
|
|
|
SWITCH_CAUSE_INVALID_NUMBER_FORMAT = 28,
|
|
|
|
SWITCH_CAUSE_FACILITY_REJECTED = 29,
|
|
|
|
SWITCH_CAUSE_RESPONSE_TO_STATUS_ENQUIRY = 30,
|
|
|
|
SWITCH_CAUSE_NORMAL_UNSPECIFIED = 31,
|
|
|
|
SWITCH_CAUSE_NORMAL_CIRCUIT_CONGESTION = 34,
|
|
|
|
SWITCH_CAUSE_NETWORK_OUT_OF_ORDER = 38,
|
|
|
|
SWITCH_CAUSE_NORMAL_TEMPORARY_FAILURE = 41,
|
|
|
|
SWITCH_CAUSE_SWITCH_CONGESTION = 42,
|
|
|
|
SWITCH_CAUSE_ACCESS_INFO_DISCARDED = 43,
|
|
|
|
SWITCH_CAUSE_REQUESTED_CHAN_UNAVAIL = 44,
|
|
|
|
SWITCH_CAUSE_PRE_EMPTED = 45,
|
|
|
|
SWITCH_CAUSE_FACILITY_NOT_SUBSCRIBED = 50,
|
|
|
|
SWITCH_CAUSE_OUTGOING_CALL_BARRED = 52,
|
|
|
|
SWITCH_CAUSE_INCOMING_CALL_BARRED = 54,
|
|
|
|
SWITCH_CAUSE_BEARERCAPABILITY_NOTAUTH = 57,
|
|
|
|
SWITCH_CAUSE_BEARERCAPABILITY_NOTAVAIL = 58,
|
2006-10-25 03:45:20 +00:00
|
|
|
SWITCH_CAUSE_SERVICE_UNAVAILABLE = 63,
|
2006-04-21 23:16:26 +00:00
|
|
|
SWITCH_CAUSE_BEARERCAPABILITY_NOTIMPL = 65,
|
|
|
|
SWITCH_CAUSE_CHAN_NOT_IMPLEMENTED = 66,
|
|
|
|
SWITCH_CAUSE_FACILITY_NOT_IMPLEMENTED = 69,
|
2006-10-25 03:45:20 +00:00
|
|
|
SWITCH_CAUSE_SERVICE_NOT_IMPLEMENTED = 79,
|
2006-04-21 23:16:26 +00:00
|
|
|
SWITCH_CAUSE_INVALID_CALL_REFERENCE = 81,
|
|
|
|
SWITCH_CAUSE_INCOMPATIBLE_DESTINATION = 88,
|
|
|
|
SWITCH_CAUSE_INVALID_MSG_UNSPECIFIED = 95,
|
|
|
|
SWITCH_CAUSE_MANDATORY_IE_MISSING = 96,
|
|
|
|
SWITCH_CAUSE_MESSAGE_TYPE_NONEXIST = 97,
|
|
|
|
SWITCH_CAUSE_WRONG_MESSAGE = 98,
|
|
|
|
SWITCH_CAUSE_IE_NONEXIST = 99,
|
|
|
|
SWITCH_CAUSE_INVALID_IE_CONTENTS = 100,
|
|
|
|
SWITCH_CAUSE_WRONG_CALL_STATE = 101,
|
|
|
|
SWITCH_CAUSE_RECOVERY_ON_TIMER_EXPIRE = 102,
|
|
|
|
SWITCH_CAUSE_MANDATORY_IE_LENGTH_ERROR = 103,
|
|
|
|
SWITCH_CAUSE_PROTOCOL_ERROR = 111,
|
2006-04-27 15:02:35 +00:00
|
|
|
SWITCH_CAUSE_INTERWORKING = 127,
|
2008-07-03 22:51:09 +00:00
|
|
|
SWITCH_CAUSE_SUCCESS = 142,
|
2006-10-25 04:28:49 +00:00
|
|
|
SWITCH_CAUSE_ORIGINATOR_CANCEL = 487,
|
2006-07-07 18:59:14 +00:00
|
|
|
SWITCH_CAUSE_CRASH = 500,
|
2006-08-17 00:53:09 +00:00
|
|
|
SWITCH_CAUSE_SYSTEM_SHUTDOWN = 501,
|
2006-09-20 20:25:26 +00:00
|
|
|
SWITCH_CAUSE_LOSE_RACE = 502,
|
2006-10-04 23:11:11 +00:00
|
|
|
SWITCH_CAUSE_MANAGER_REQUEST = 503,
|
|
|
|
SWITCH_CAUSE_BLIND_TRANSFER = 600,
|
2007-03-28 23:37:12 +00:00
|
|
|
SWITCH_CAUSE_ATTENDED_TRANSFER = 601,
|
2007-06-08 22:28:32 +00:00
|
|
|
SWITCH_CAUSE_ALLOTTED_TIMEOUT = 602,
|
2007-10-31 13:08:45 +00:00
|
|
|
SWITCH_CAUSE_USER_CHALLENGE = 603,
|
2007-12-08 00:14:21 +00:00
|
|
|
SWITCH_CAUSE_MEDIA_TIMEOUT = 604,
|
2008-08-11 16:12:55 +00:00
|
|
|
SWITCH_CAUSE_PICKED_OFF = 605,
|
2008-10-09 00:38:59 +00:00
|
|
|
SWITCH_CAUSE_USER_NOT_REGISTERED = 606,
|
|
|
|
SWITCH_CAUSE_PROGRESS_TIMEOUT = 607
|
2006-04-21 23:16:26 +00:00
|
|
|
} switch_call_cause_t;
|
|
|
|
|
2006-09-20 20:25:26 +00:00
|
|
|
typedef enum {
|
|
|
|
SCSC_PAUSE_INBOUND,
|
|
|
|
SCSC_HUPALL,
|
|
|
|
SCSC_SHUTDOWN,
|
2007-10-03 23:43:01 +00:00
|
|
|
SCSC_CHECK_RUNNING,
|
2007-10-04 14:19:51 +00:00
|
|
|
SCSC_LOGLEVEL,
|
2007-10-04 17:25:06 +00:00
|
|
|
SCSC_SPS,
|
2007-10-04 21:35:50 +00:00
|
|
|
SCSC_LAST_SPS,
|
2007-10-05 13:42:11 +00:00
|
|
|
SCSC_RECLAIM,
|
2008-01-11 00:43:49 +00:00
|
|
|
SCSC_MAX_SESSIONS,
|
2008-04-18 17:03:34 +00:00
|
|
|
SCSC_SYNC_CLOCK,
|
|
|
|
SCSC_MAX_DTMF_DURATION,
|
2009-09-16 21:24:22 +00:00
|
|
|
SCSC_MIN_DTMF_DURATION,
|
2008-10-02 16:46:20 +00:00
|
|
|
SCSC_DEFAULT_DTMF_DURATION,
|
2008-10-03 14:58:36 +00:00
|
|
|
SCSC_SHUTDOWN_ELEGANT,
|
2008-10-21 19:05:25 +00:00
|
|
|
SCSC_SHUTDOWN_ASAP,
|
|
|
|
SCSC_CANCEL_SHUTDOWN,
|
2009-11-20 23:12:07 +00:00
|
|
|
SCSC_SEND_SIGHUP,
|
2009-12-17 00:03:17 +00:00
|
|
|
SCSC_DEBUG_LEVEL,
|
2010-01-08 22:10:03 +00:00
|
|
|
SCSC_FLUSH_DB_HANDLES,
|
2010-01-14 16:02:46 +00:00
|
|
|
SCSC_SHUTDOWN_NOW,
|
2010-01-14 21:00:32 +00:00
|
|
|
SCSC_CALIBRATE_CLOCK,
|
|
|
|
SCSC_SAVE_HISTORY,
|
|
|
|
SCSC_CRASH
|
2006-09-20 20:25:26 +00:00
|
|
|
} switch_session_ctl_t;
|
2006-04-21 23:16:26 +00:00
|
|
|
|
2009-11-04 21:07:18 +00:00
|
|
|
typedef enum {
|
|
|
|
SSH_FLAG_STICKY = (1 << 0)
|
|
|
|
} switch_state_handler_flag_t;
|
|
|
|
|
2007-06-13 20:40:06 +00:00
|
|
|
typedef struct apr_pool_t switch_memory_pool_t;
|
2007-03-09 20:44:13 +00:00
|
|
|
typedef uint16_t switch_port_t;
|
2006-04-18 16:50:34 +00:00
|
|
|
typedef uint8_t switch_payload_t;
|
2007-04-21 01:03:58 +00:00
|
|
|
typedef struct switch_app_log switch_app_log_t;
|
2006-04-29 01:00:52 +00:00
|
|
|
typedef struct switch_rtp switch_rtp_t;
|
2006-04-29 06:05:03 +00:00
|
|
|
typedef struct switch_core_session_message switch_core_session_message_t;
|
2006-04-29 01:00:52 +00:00
|
|
|
typedef struct switch_event_header switch_event_header_t;
|
|
|
|
typedef struct switch_event switch_event_t;
|
2006-04-29 06:05:03 +00:00
|
|
|
typedef struct switch_event_subclass switch_event_subclass_t;
|
|
|
|
typedef struct switch_event_node switch_event_node_t;
|
|
|
|
typedef struct switch_loadable_module switch_loadable_module_t;
|
|
|
|
typedef struct switch_frame switch_frame_t;
|
|
|
|
typedef struct switch_channel switch_channel_t;
|
|
|
|
typedef struct switch_file_handle switch_file_handle_t;
|
|
|
|
typedef struct switch_core_session switch_core_session_t;
|
|
|
|
typedef struct switch_caller_profile switch_caller_profile_t;
|
|
|
|
typedef struct switch_caller_extension switch_caller_extension_t;
|
|
|
|
typedef struct switch_caller_application switch_caller_application_t;
|
|
|
|
typedef struct switch_state_handler_table switch_state_handler_table_t;
|
|
|
|
typedef struct switch_timer switch_timer_t;
|
|
|
|
typedef struct switch_codec switch_codec_t;
|
|
|
|
typedef struct switch_core_thread_session switch_core_thread_session_t;
|
|
|
|
typedef struct switch_codec_implementation switch_codec_implementation_t;
|
|
|
|
typedef struct switch_buffer switch_buffer_t;
|
|
|
|
typedef struct switch_codec_settings switch_codec_settings_t;
|
2007-11-20 02:27:48 +00:00
|
|
|
typedef struct switch_odbc_handle switch_odbc_handle_t;
|
2007-03-29 22:31:56 +00:00
|
|
|
|
2006-04-29 23:43:28 +00:00
|
|
|
typedef struct switch_io_routines switch_io_routines_t;
|
|
|
|
typedef struct switch_speech_handle switch_speech_handle_t;
|
2006-11-09 05:39:04 +00:00
|
|
|
typedef struct switch_asr_handle switch_asr_handle_t;
|
2006-04-29 23:43:28 +00:00
|
|
|
typedef struct switch_directory_handle switch_directory_handle_t;
|
|
|
|
typedef struct switch_loadable_module_interface switch_loadable_module_interface_t;
|
|
|
|
typedef struct switch_endpoint_interface switch_endpoint_interface_t;
|
|
|
|
typedef struct switch_timer_interface switch_timer_interface_t;
|
|
|
|
typedef struct switch_dialplan_interface switch_dialplan_interface_t;
|
|
|
|
typedef struct switch_codec_interface switch_codec_interface_t;
|
|
|
|
typedef struct switch_application_interface switch_application_interface_t;
|
|
|
|
typedef struct switch_api_interface switch_api_interface_t;
|
|
|
|
typedef struct switch_file_interface switch_file_interface_t;
|
|
|
|
typedef struct switch_speech_interface switch_speech_interface_t;
|
2006-11-09 05:39:04 +00:00
|
|
|
typedef struct switch_asr_interface switch_asr_interface_t;
|
2006-04-29 23:43:28 +00:00
|
|
|
typedef struct switch_directory_interface switch_directory_interface_t;
|
2006-10-19 07:13:34 +00:00
|
|
|
typedef struct switch_chat_interface switch_chat_interface_t;
|
2007-03-07 18:34:22 +00:00
|
|
|
typedef struct switch_management_interface switch_management_interface_t;
|
2006-09-07 03:58:01 +00:00
|
|
|
typedef struct switch_core_port_allocator switch_core_port_allocator_t;
|
2006-09-09 03:39:28 +00:00
|
|
|
typedef struct switch_media_bug switch_media_bug_t;
|
2009-12-14 20:10:06 +00:00
|
|
|
|
|
|
|
struct switch_console_callback_match_node {
|
|
|
|
char *val;
|
|
|
|
struct switch_console_callback_match_node *next;
|
|
|
|
};
|
|
|
|
typedef struct switch_console_callback_match_node switch_console_callback_match_node_t;
|
|
|
|
|
|
|
|
struct switch_console_callback_match {
|
|
|
|
struct switch_console_callback_match_node *head;
|
|
|
|
struct switch_console_callback_match_node *end;
|
2009-12-15 23:05:49 +00:00
|
|
|
int count;
|
2009-12-15 19:26:58 +00:00
|
|
|
int dynamic;
|
2009-12-14 20:10:06 +00:00
|
|
|
};
|
|
|
|
typedef struct switch_console_callback_match switch_console_callback_match_t;
|
|
|
|
|
|
|
|
typedef switch_status_t (*switch_console_complete_callback_t) (const char *, const char *, switch_console_callback_match_t **matches);
|
2007-03-29 22:31:56 +00:00
|
|
|
typedef switch_bool_t (*switch_media_bug_callback_t) (switch_media_bug_t *, void *, switch_abc_type_t);
|
2009-01-19 16:10:54 +00:00
|
|
|
typedef switch_bool_t (*switch_tone_detect_callback_t) (switch_core_session_t *, const char *, const char *);
|
2008-07-07 17:10:17 +00:00
|
|
|
typedef struct switch_xml_binding switch_xml_binding_t;
|
2008-02-01 06:22:13 +00:00
|
|
|
|
|
|
|
typedef switch_status_t (*switch_core_codec_encode_func_t) (switch_codec_t *codec,
|
2008-05-27 04:30:03 +00:00
|
|
|
switch_codec_t *other_codec,
|
|
|
|
void *decoded_data,
|
|
|
|
uint32_t decoded_data_len,
|
|
|
|
uint32_t decoded_rate,
|
|
|
|
void *encoded_data, uint32_t *encoded_data_len, uint32_t *encoded_rate, unsigned int *flag);
|
2008-02-01 06:22:13 +00:00
|
|
|
|
|
|
|
|
|
|
|
typedef switch_status_t (*switch_core_codec_decode_func_t) (switch_codec_t *codec,
|
2008-05-27 04:30:03 +00:00
|
|
|
switch_codec_t *other_codec,
|
|
|
|
void *encoded_data,
|
|
|
|
uint32_t encoded_data_len,
|
|
|
|
uint32_t encoded_rate,
|
|
|
|
void *decoded_data, uint32_t *decoded_data_len, uint32_t *decoded_rate, unsigned int *flag);
|
2008-02-01 06:22:13 +00:00
|
|
|
|
|
|
|
typedef switch_status_t (*switch_core_codec_init_func_t) (switch_codec_t *, switch_codec_flag_t, const switch_codec_settings_t *codec_settings);
|
|
|
|
typedef switch_status_t (*switch_core_codec_destroy_func_t) (switch_codec_t *);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-11-01 11:28:26 +00:00
|
|
|
typedef void (*switch_application_function_t) (switch_core_session_t *, const char *);
|
|
|
|
#define SWITCH_STANDARD_APP(name) static void name (switch_core_session_t *session, const char *data)
|
2007-06-20 05:39:50 +00:00
|
|
|
|
2007-03-29 22:31:56 +00:00
|
|
|
typedef void (*switch_event_callback_t) (switch_event_t *);
|
2007-04-20 23:45:14 +00:00
|
|
|
typedef switch_caller_extension_t *(*switch_dialplan_hunt_function_t) (switch_core_session_t *, void *, switch_caller_profile_t *);
|
2007-06-20 06:14:57 +00:00
|
|
|
#define SWITCH_STANDARD_DIALPLAN(name) static switch_caller_extension_t * name (switch_core_session_t *session, void *arg, switch_caller_profile_t *caller_profile)
|
|
|
|
|
2007-05-12 21:43:41 +00:00
|
|
|
|
2007-03-29 22:31:56 +00:00
|
|
|
typedef struct switch_scheduler_task switch_scheduler_task_t;
|
2007-05-12 21:43:41 +00:00
|
|
|
|
2007-03-29 22:31:56 +00:00
|
|
|
typedef void (*switch_scheduler_func_t) (switch_scheduler_task_t *task);
|
2007-05-12 21:43:41 +00:00
|
|
|
|
|
|
|
#define SWITCH_STANDARD_SCHED_FUNC(name) static void name (switch_scheduler_task_t *task)
|
|
|
|
|
2007-03-29 22:31:56 +00:00
|
|
|
typedef switch_status_t (*switch_state_handler_t) (switch_core_session_t *);
|
2006-05-10 15:47:54 +00:00
|
|
|
typedef struct switch_stream_handle switch_stream_handle_t;
|
2007-03-29 22:31:56 +00:00
|
|
|
typedef switch_status_t (*switch_stream_handle_write_function_t) (switch_stream_handle_t *handle, const char *fmt, ...);
|
2007-11-28 19:56:25 +00:00
|
|
|
typedef switch_status_t (*switch_stream_handle_raw_write_function_t) (switch_stream_handle_t *handle, uint8_t *data, switch_size_t datalen);
|
2007-05-12 21:36:15 +00:00
|
|
|
|
2008-05-27 04:30:03 +00:00
|
|
|
typedef switch_status_t (*switch_api_function_t) (_In_opt_z_ const char *cmd, _In_opt_ switch_core_session_t *session,
|
|
|
|
_In_ switch_stream_handle_t *stream);
|
2007-05-12 21:36:15 +00:00
|
|
|
|
2008-02-09 05:16:58 +00:00
|
|
|
#define SWITCH_STANDARD_API(name) static switch_status_t name (_In_opt_z_ const char *cmd, _In_opt_ switch_core_session_t *session, _In_ switch_stream_handle_t *stream)
|
2007-05-12 21:36:15 +00:00
|
|
|
|
2007-03-29 22:31:56 +00:00
|
|
|
typedef switch_status_t (*switch_input_callback_function_t) (switch_core_session_t *session, void *input,
|
2007-03-30 00:13:31 +00:00
|
|
|
switch_input_type_t input_type, void *buf, unsigned int buflen);
|
2007-10-02 00:09:49 +00:00
|
|
|
typedef switch_status_t (*switch_read_frame_callback_function_t) (switch_core_session_t *session, switch_frame_t *frame, void *user_data);
|
2006-12-22 02:13:56 +00:00
|
|
|
typedef struct switch_say_interface switch_say_interface_t;
|
2006-12-23 16:40:37 +00:00
|
|
|
typedef struct {
|
2007-03-29 22:31:56 +00:00
|
|
|
switch_input_callback_function_t input_callback;
|
|
|
|
void *buf;
|
|
|
|
uint32_t buflen;
|
2007-10-02 00:09:49 +00:00
|
|
|
switch_read_frame_callback_function_t read_frame_callback;
|
|
|
|
void *user_data;
|
2006-12-23 16:40:37 +00:00
|
|
|
} switch_input_args_t;
|
2007-03-29 22:31:56 +00:00
|
|
|
typedef switch_status_t (*switch_say_callback_t) (switch_core_session_t *session,
|
2007-03-30 00:13:31 +00:00
|
|
|
char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args);
|
2006-05-10 03:23:05 +00:00
|
|
|
typedef struct switch_xml *switch_xml_t;
|
|
|
|
typedef struct switch_core_time_duration switch_core_time_duration_t;
|
2008-05-27 04:30:03 +00:00
|
|
|
typedef switch_xml_t (*switch_xml_search_function_t) (const char *section,
|
|
|
|
const char *tag_name, const char *key_name, const char *key_value, switch_event_t *params,
|
|
|
|
void *user_data);
|
2005-11-19 20:07:43 +00:00
|
|
|
|
2007-09-29 01:06:08 +00:00
|
|
|
typedef struct switch_hash switch_hash_t;
|
|
|
|
struct HashElem;
|
|
|
|
typedef struct HashElem switch_hash_index_t;
|
|
|
|
|
2008-03-26 22:14:09 +00:00
|
|
|
struct switch_network_list;
|
|
|
|
typedef struct switch_network_list switch_network_list_t;
|
|
|
|
|
2007-06-13 14:35:55 +00:00
|
|
|
|
2009-06-24 16:02:43 +00:00
|
|
|
#define SWITCH_API_VERSION 4
|
2007-06-13 20:40:06 +00:00
|
|
|
#define SWITCH_MODULE_LOAD_ARGS (switch_loadable_module_interface_t **module_interface, switch_memory_pool_t *pool)
|
2007-06-13 14:35:55 +00:00
|
|
|
#define SWITCH_MODULE_RUNTIME_ARGS (void)
|
|
|
|
#define SWITCH_MODULE_SHUTDOWN_ARGS (void)
|
2008-05-27 04:30:03 +00:00
|
|
|
typedef switch_status_t (*switch_module_load_t) SWITCH_MODULE_LOAD_ARGS;
|
|
|
|
typedef switch_status_t (*switch_module_runtime_t) SWITCH_MODULE_RUNTIME_ARGS;
|
|
|
|
typedef switch_status_t (*switch_module_shutdown_t) SWITCH_MODULE_SHUTDOWN_ARGS;
|
2007-06-13 14:35:55 +00:00
|
|
|
#define SWITCH_MODULE_LOAD_FUNCTION(name) switch_status_t name SWITCH_MODULE_LOAD_ARGS
|
|
|
|
#define SWITCH_MODULE_RUNTIME_FUNCTION(name) switch_status_t name SWITCH_MODULE_RUNTIME_ARGS
|
|
|
|
#define SWITCH_MODULE_SHUTDOWN_FUNCTION(name) switch_status_t name SWITCH_MODULE_SHUTDOWN_ARGS
|
|
|
|
|
2008-11-08 11:21:54 +00:00
|
|
|
typedef enum {
|
|
|
|
SMODF_NONE = 0,
|
|
|
|
SMODF_GLOBAL_SYMBOLS = (1 << 0)
|
|
|
|
} switch_module_flag_enum_t;
|
|
|
|
typedef uint32_t switch_module_flag_t;
|
|
|
|
|
2007-06-13 14:35:55 +00:00
|
|
|
typedef struct switch_loadable_module_function_table {
|
|
|
|
int switch_api_version;
|
|
|
|
switch_module_load_t load;
|
|
|
|
switch_module_shutdown_t shutdown;
|
|
|
|
switch_module_runtime_t runtime;
|
2008-11-08 11:21:54 +00:00
|
|
|
switch_module_flag_t flags;
|
2007-06-13 14:35:55 +00:00
|
|
|
} switch_loadable_module_function_table_t;
|
|
|
|
|
2008-11-08 11:21:54 +00:00
|
|
|
#define SWITCH_MODULE_DEFINITION_EX(name, load, shutdown, runtime, flags) \
|
2007-06-13 14:35:55 +00:00
|
|
|
static const char modname[] = #name ; \
|
|
|
|
SWITCH_MOD_DECLARE_DATA switch_loadable_module_function_table_t name##_module_interface = { \
|
|
|
|
SWITCH_API_VERSION, \
|
|
|
|
load, \
|
|
|
|
shutdown, \
|
2008-11-08 11:21:54 +00:00
|
|
|
runtime, \
|
|
|
|
flags \
|
2007-06-13 14:35:55 +00:00
|
|
|
}
|
|
|
|
|
2008-11-08 11:21:54 +00:00
|
|
|
#define SWITCH_MODULE_DEFINITION(name, load, shutdown, runtime) \
|
|
|
|
SWITCH_MODULE_DEFINITION_EX(name, load, shutdown, runtime, SMODF_NONE)
|
2007-06-13 14:35:55 +00:00
|
|
|
|
2006-05-10 15:47:54 +00:00
|
|
|
/* things we don't deserve to know about */
|
2006-01-05 21:03:22 +00:00
|
|
|
/*! \brief A channel */
|
2005-11-19 20:07:43 +00:00
|
|
|
struct switch_channel;
|
2006-01-05 21:03:22 +00:00
|
|
|
/*! \brief A core session representing a call and all of it's resources */
|
2005-11-19 20:07:43 +00:00
|
|
|
struct switch_core_session;
|
2006-09-08 19:17:23 +00:00
|
|
|
/*! \brief An audio bug */
|
2006-09-09 03:39:28 +00:00
|
|
|
struct switch_media_bug;
|
2006-11-13 16:29:16 +00:00
|
|
|
/*! \brief A digit stream parser object */
|
|
|
|
struct switch_ivr_digit_stream_parser;
|
2005-11-19 20:07:43 +00:00
|
|
|
|
2006-09-07 15:15:39 +00:00
|
|
|
SWITCH_END_EXTERN_C
|
2005-11-19 20:07:43 +00:00
|
|
|
#endif
|
2006-11-27 22:30:48 +00:00
|
|
|
/* For Emacs:
|
|
|
|
* Local Variables:
|
|
|
|
* mode:c
|
2008-02-03 22:14:57 +00:00
|
|
|
* indent-tabs-mode:t
|
2006-11-27 22:30:48 +00:00
|
|
|
* tab-width:4
|
|
|
|
* c-basic-offset:4
|
|
|
|
* End:
|
|
|
|
* For VIM:
|
2008-07-03 19:12:26 +00:00
|
|
|
* vim:set softtabstop=4 shiftwidth=4 tabstop=4:
|
2006-11-27 22:30:48 +00:00
|
|
|
*/
|