mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-07-23 12:42:02 +00:00
Merge branch 'master' into smgmaster
Conflicts: build/modules.conf.in libs/esl/fs_cli.c
This commit is contained in:
@@ -253,8 +253,6 @@ struct switch_runtime {
|
||||
int multiple_registrations;
|
||||
uint32_t max_db_handles;
|
||||
uint32_t db_handle_timeout;
|
||||
int curl_count;
|
||||
int ssl_count;
|
||||
int cpu_count;
|
||||
};
|
||||
|
||||
|
||||
@@ -109,6 +109,7 @@
|
||||
#include "switch_platform.h"
|
||||
#include "switch_types.h"
|
||||
#include "switch_apr.h"
|
||||
#include "switch_curl.h"
|
||||
#include "switch_mprintf.h"
|
||||
#include "switch_core_db.h"
|
||||
#include "switch_dso.h"
|
||||
|
||||
@@ -120,6 +120,9 @@ typedef struct profile_node_s {
|
||||
struct switch_caller_profile *next;
|
||||
switch_call_direction_t direction;
|
||||
profile_node_t *soft;
|
||||
char *uuid_str;
|
||||
char *clone_of;
|
||||
char *transfer_source;
|
||||
};
|
||||
|
||||
/*! \brief An Abstract Representation of a dialplan Application */
|
||||
|
||||
@@ -88,8 +88,8 @@ SWITCH_DECLARE(int) switch_channel_test_ready(switch_channel_t *channel, switch_
|
||||
#define switch_channel_up(_channel) (switch_channel_check_signal(_channel, SWITCH_TRUE) || switch_channel_get_state(_channel) < CS_HANGUP)
|
||||
#define switch_channel_down(_channel) (switch_channel_check_signal(_channel, SWITCH_TRUE) || switch_channel_get_state(_channel) >= CS_HANGUP)
|
||||
|
||||
#define switch_channel_up_nosig(_channel) switch_channel_get_state(_channel) < CS_HANGUP
|
||||
#define switch_channel_down_nosig(_channel) switch_channel_get_state(_channel) >= CS_HANGUP
|
||||
#define switch_channel_up_nosig(_channel) (switch_channel_get_state(_channel) < CS_HANGUP)
|
||||
#define switch_channel_down_nosig(_channel) (switch_channel_get_state(_channel) >= CS_HANGUP)
|
||||
|
||||
#define switch_channel_media_ack(_channel) (!switch_channel_test_cap(_channel, CC_MEDIA_ACK) || switch_channel_test_flag(_channel, CF_MEDIA_ACK))
|
||||
|
||||
@@ -271,6 +271,8 @@ SWITCH_DECLARE(const char *) switch_channel_get_variable_partner(switch_channel_
|
||||
SWITCH_DECLARE(const char *) switch_channel_get_hold_music(switch_channel_t *channel);
|
||||
SWITCH_DECLARE(const char *) switch_channel_get_hold_music_partner(switch_channel_t *channel);
|
||||
|
||||
SWITCH_DECLARE(uint32_t) switch_channel_del_variable_prefix(switch_channel_t *channel, const char *prefix);
|
||||
|
||||
#define switch_channel_set_variable(_channel, _var, _val) switch_channel_set_variable_var_check(_channel, _var, _val, SWITCH_TRUE)
|
||||
#define switch_channel_set_variable_partner(_channel, _var, _val) switch_channel_set_variable_partner_var_check(_channel, _var, _val, SWITCH_TRUE)
|
||||
|
||||
@@ -387,6 +389,7 @@ SWITCH_DECLARE(uint32_t) switch_channel_test_flag_partner(switch_channel_t *chan
|
||||
\param flag flag to set
|
||||
*/
|
||||
SWITCH_DECLARE(void) switch_channel_set_state_flag(switch_channel_t *channel, switch_channel_flag_t flag);
|
||||
SWITCH_DECLARE(void) switch_channel_clear_state_flag(switch_channel_t *channel, switch_channel_flag_t flag);
|
||||
|
||||
/*!
|
||||
\brief Clear given flag(s) from a channel
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
*
|
||||
* Anthony Minessale II <anthm@freeswitch.org>
|
||||
* Luke Dashjr <luke@openmethods.com> (OpenMethods, LLC)
|
||||
*
|
||||
* Joseph Sullivan <jossulli@amazon.com>
|
||||
*
|
||||
* switch_core.h -- Core Library
|
||||
*
|
||||
@@ -436,9 +436,6 @@ SWITCH_DECLARE(void) switch_core_session_rwunlock(_In_ switch_core_session_t *se
|
||||
*/
|
||||
SWITCH_DECLARE(int) switch_core_add_state_handler(_In_ const switch_state_handler_table_t *state_handler);
|
||||
|
||||
SWITCH_DECLARE(int) switch_core_curl_count(int *val);
|
||||
SWITCH_DECLARE(int) switch_core_ssl_count(int *val);
|
||||
|
||||
/*!
|
||||
\brief Remove a global state handler
|
||||
\param state_handler the state handler to remove
|
||||
@@ -467,6 +464,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_perform_new_memory_pool(_Out_ switch
|
||||
*/
|
||||
#define switch_core_new_memory_pool(p) switch_core_perform_new_memory_pool(p, __FILE__, __SWITCH_FUNC__, __LINE__)
|
||||
|
||||
SWITCH_DECLARE(int) switch_core_session_sync_clock(void);
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_perform_destroy_memory_pool(_Inout_ switch_memory_pool_t **pool,
|
||||
_In_z_ const char *file, _In_z_ const char *func, _In_ int line);
|
||||
/*!
|
||||
@@ -1307,11 +1305,11 @@ SWITCH_DECLARE(void *) switch_core_hash_find_rdlock(_In_ switch_hash_t *hash, _I
|
||||
|
||||
/*!
|
||||
\brief Gets the first element of a hashtable
|
||||
\param depricate_me [deprecated] NULL
|
||||
\param deprecate_me [deprecated] NULL
|
||||
\param hash the hashtable to use
|
||||
\return The element, or NULL if it wasn't found
|
||||
*/
|
||||
SWITCH_DECLARE(switch_hash_index_t *) switch_hash_first(char *depricate_me, _In_ switch_hash_t *hash);
|
||||
SWITCH_DECLARE(switch_hash_index_t *) switch_hash_first(char *deprecate_me, _In_ switch_hash_t *hash);
|
||||
|
||||
/*!
|
||||
\brief Gets the next element of a hashtable
|
||||
@@ -1957,6 +1955,18 @@ SWITCH_DECLARE(FILE *) switch_core_data_channel(switch_text_channel_t channel);
|
||||
*/
|
||||
SWITCH_DECLARE(switch_bool_t) switch_core_ready(void);
|
||||
|
||||
/*!
|
||||
\brief Determines if the core is ready to take inbound calls
|
||||
\return SWITCH_TRUE or SWITCH_FALSE
|
||||
*/
|
||||
SWITCH_DECLARE(switch_bool_t) switch_core_ready_inbound(void);
|
||||
|
||||
/*!
|
||||
\brief Determines if the core is ready to place outbound calls
|
||||
\return SWITCH_TRUE or SWITCH_FALSE
|
||||
*/
|
||||
SWITCH_DECLARE(switch_bool_t) switch_core_ready_outbound(void);
|
||||
|
||||
/*!
|
||||
\brief return core flags
|
||||
\return core flags
|
||||
|
||||
@@ -65,6 +65,10 @@ Note that the first parameter to the new operator is implicitly handled by c++..
|
||||
|
||||
*/
|
||||
|
||||
|
||||
SWITCH_DECLARE(void) setGlobalVariable(char *var_name, char *var_val);
|
||||
SWITCH_DECLARE(char *) getGlobalVariable(char *var_name);
|
||||
|
||||
SWITCH_DECLARE(void) consoleLog(char *level_str, char *msg);
|
||||
SWITCH_DECLARE(void) consoleCleanLog(char *msg);
|
||||
|
||||
@@ -185,7 +189,7 @@ SWITCH_DECLARE(bool) email(char *to, char *from, char *headers = NULL, char *bod
|
||||
SWITCH_DECLARE_CONSTRUCTOR EventConsumer(const char *event_name = NULL, const char *subclass_name = "");
|
||||
SWITCH_DECLARE_CONSTRUCTOR ~ EventConsumer();
|
||||
SWITCH_DECLARE(int) bind(const char *event_name, const char *subclass_name = "");
|
||||
SWITCH_DECLARE(Event *) pop(int block = 0);
|
||||
SWITCH_DECLARE(Event *) pop(int block = 0, int timeout = 0);
|
||||
};
|
||||
|
||||
#ifdef SWIG
|
||||
|
||||
+17
-24
@@ -30,34 +30,27 @@
|
||||
|
||||
#ifndef __SWITCH_CURL_H
|
||||
#define __SWITCH_CURL_H
|
||||
#include "curl/curl.h"
|
||||
|
||||
#include <curl/curl.h>
|
||||
#include <switch_ssl.h>
|
||||
|
||||
static inline void switch_curl_init(void)
|
||||
{
|
||||
int curl_count = switch_core_curl_count(NULL);
|
||||
typedef void switch_CURL;
|
||||
typedef struct curl_slist switch_curl_slist_t;
|
||||
typedef int switch_CURLINFO;
|
||||
typedef int switch_CURLcode;
|
||||
typedef int switch_CURLoption;
|
||||
|
||||
if (curl_count == 0) {
|
||||
curl_global_init(CURL_GLOBAL_ALL);
|
||||
}
|
||||
|
||||
curl_count++;
|
||||
switch_core_curl_count(&curl_count);
|
||||
}
|
||||
|
||||
static inline void switch_curl_destroy()
|
||||
{
|
||||
int curl_count = switch_core_curl_count(NULL);
|
||||
|
||||
curl_count--;
|
||||
|
||||
if (curl_count == 0) {
|
||||
curl_global_cleanup();
|
||||
}
|
||||
switch_core_curl_count(&curl_count);
|
||||
}
|
||||
SWITCH_DECLARE(switch_CURL *) switch_curl_easy_init(void);
|
||||
SWITCH_DECLARE(switch_CURLcode) switch_curl_easy_perform(switch_CURL *handle);
|
||||
SWITCH_DECLARE(switch_CURLcode) switch_curl_easy_getinfo(switch_CURL *curl, switch_CURLINFO info, ... );
|
||||
SWITCH_DECLARE(void) switch_curl_easy_cleanup(switch_CURL *handle);
|
||||
SWITCH_DECLARE(switch_curl_slist_t *) switch_curl_slist_append(switch_curl_slist_t * list, const char * string );
|
||||
SWITCH_DECLARE(void) switch_curl_slist_free_all(switch_curl_slist_t * list);
|
||||
SWITCH_DECLARE(switch_CURLcode) switch_curl_easy_setopt(CURL *handle, switch_CURLoption option, ...);
|
||||
SWITCH_DECLARE(const char *) switch_curl_easy_strerror(switch_CURLcode errornum );
|
||||
SWITCH_DECLARE(void) switch_curl_init(void);
|
||||
SWITCH_DECLARE(void) switch_curl_destroy(void);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -155,6 +155,21 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_collect_digits_count(switch_core_sess
|
||||
const char *terminators, char *terminator,
|
||||
uint32_t first_timeout, uint32_t digit_timeout, uint32_t abs_timeout);
|
||||
|
||||
/*!
|
||||
\brief play a file to the session while doing speech recognition.
|
||||
\param session the session to play and detect on
|
||||
\param file the path to the file
|
||||
\param mod_name the module name of the ASR library
|
||||
\param grammar the grammar text, URI, or local file name
|
||||
\param result of speech recognition, allocated from the session pool
|
||||
\return SWITCH_STATUS_SUCCESS if all is well
|
||||
*/
|
||||
SWITCH_DECLARE(switch_status_t) switch_ivr_play_and_detect_speech(switch_core_session_t *session,
|
||||
const char *file,
|
||||
const char *mod_name,
|
||||
const char *grammar,
|
||||
char **result);
|
||||
|
||||
/*!
|
||||
\brief Engage background Speech detection on a session
|
||||
\param session the session to attach
|
||||
@@ -896,6 +911,7 @@ SWITCH_DECLARE(switch_bool_t) switch_ivr_uuid_exists(const char *uuid);
|
||||
|
||||
|
||||
|
||||
SWITCH_DECLARE(const char *) switch_ivr_dmachine_get_name(switch_ivr_dmachine_t *dmachine);
|
||||
SWITCH_DECLARE(void) switch_ivr_dmachine_set_match_callback(switch_ivr_dmachine_t *dmachine, switch_ivr_dmachine_callback_t match_callback);
|
||||
SWITCH_DECLARE(void) switch_ivr_dmachine_set_nonmatch_callback(switch_ivr_dmachine_t *dmachine, switch_ivr_dmachine_callback_t nonmatch_callback);
|
||||
SWITCH_DECLARE(switch_status_t) switch_ivr_dmachine_create(switch_ivr_dmachine_t **dmachine_p,
|
||||
@@ -932,6 +948,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_process_fh(switch_core_session_t *ses
|
||||
SWITCH_DECLARE(switch_status_t) switch_ivr_insert_file(switch_core_session_t *session, const char *file, const char *insert_file, switch_size_t sample_point);
|
||||
|
||||
SWITCH_DECLARE(switch_status_t) switch_ivr_create_message_reply(switch_event_t **reply, switch_event_t *message, const char *new_proto);
|
||||
SWITCH_DECLARE(char *) switch_ivr_check_presence_mapping(const char *exten_name, const char *domain_name);
|
||||
SWITCH_DECLARE(switch_status_t) switch_ivr_kill_uuid(const char *uuid, switch_call_cause_t cause);
|
||||
|
||||
/** @} */
|
||||
|
||||
|
||||
@@ -38,7 +38,20 @@
|
||||
|
||||
#include <switch.h>
|
||||
|
||||
#define MAX_REPORT_BLOCKS 5
|
||||
|
||||
SWITCH_BEGIN_EXTERN_C
|
||||
|
||||
struct switch_rtcp_report_block_frame {
|
||||
uint32_t ssrc; /* The SSRC identifier of the source to which the information in this reception report block pertains. */
|
||||
uint8_t fraction; /* The fraction of RTP data packets from source SSRC_n lost since the previous SR or RR packet was sent */
|
||||
uint32_t lost; /* The total number of RTP data packets from source SSRC_n that have been lost since the beginning of reception */
|
||||
uint32_t highest_sequence_number_received;
|
||||
uint32_t jitter; /* An estimate of the statistical variance of the RTP data packet interarrival time, measured in timestamp units and expressed as an unsigned integer. */
|
||||
uint32_t lsr; /* The middle 32 bits out of 64 in the NTP timestamp */
|
||||
uint32_t dlsr; /* The delay, expressed in units of 1/65536 seconds, between receiving the last SR packet from source SSRC_n and sending this reception report block */
|
||||
};
|
||||
|
||||
/*! \brief An abstraction of a rtcp frame */
|
||||
struct switch_rtcp_frame {
|
||||
|
||||
@@ -58,6 +71,10 @@ SWITCH_BEGIN_EXTERN_C
|
||||
|
||||
uint32_t octect_count;
|
||||
|
||||
uint32_t nb_reports;
|
||||
|
||||
struct switch_rtcp_report_block_frame reports[MAX_REPORT_BLOCKS];
|
||||
|
||||
};
|
||||
|
||||
SWITCH_END_EXTERN_C
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
static switch_mutex_t **ssl_mutexes;
|
||||
static switch_memory_pool_t *ssl_pool = NULL;
|
||||
|
||||
static int ssl_count = 0;
|
||||
|
||||
static inline void switch_ssl_ssl_lock_callback(int mode, int type, char *file, int line)
|
||||
{
|
||||
@@ -56,7 +56,6 @@ static inline unsigned long switch_ssl_ssl_thread_id(void)
|
||||
static inline void switch_ssl_init_ssl_locks(void)
|
||||
{
|
||||
|
||||
int ssl_count = switch_core_ssl_count(NULL);
|
||||
int i, num;
|
||||
|
||||
if (ssl_count == 0) {
|
||||
@@ -77,17 +76,13 @@ static inline void switch_ssl_init_ssl_locks(void)
|
||||
}
|
||||
|
||||
ssl_count++;
|
||||
switch_core_ssl_count(&ssl_count);
|
||||
}
|
||||
|
||||
static inline void switch_ssl_destroy_ssl_locks()
|
||||
{
|
||||
int i;
|
||||
int ssl_count = switch_core_ssl_count(NULL);
|
||||
|
||||
ssl_count--;
|
||||
|
||||
if (ssl_count == 0) {
|
||||
if (ssl_count == 1) {
|
||||
CRYPTO_set_locking_callback(NULL);
|
||||
for (i = 0; i < CRYPTO_num_locks(); i++) {
|
||||
if (ssl_mutexes[i]) {
|
||||
@@ -96,10 +91,8 @@ static inline void switch_ssl_destroy_ssl_locks()
|
||||
}
|
||||
|
||||
OPENSSL_free(ssl_mutexes);
|
||||
ssl_count--;
|
||||
}
|
||||
|
||||
switch_core_ssl_count(&ssl_count);
|
||||
|
||||
}
|
||||
#else
|
||||
static inline void switch_ssl_init_ssl_locks(void) { return; }
|
||||
|
||||
+63
-22
@@ -25,6 +25,7 @@
|
||||
*
|
||||
* Anthony Minessale II <anthm@freeswitch.org>
|
||||
* Bret McDanel <trixter AT 0xdecafbad dot com>
|
||||
* Joseph Sullivan <jossulli@amazon.com>
|
||||
*
|
||||
* switch_types.h -- Data Types
|
||||
*
|
||||
@@ -131,6 +132,8 @@ SWITCH_BEGIN_EXTERN_C
|
||||
#define SWITCH_COPY_XML_CDR_VARIABLE "copy_xml_cdr"
|
||||
#define SWITCH_CURRENT_APPLICATION_VARIABLE "current_application"
|
||||
#define SWITCH_PROTO_SPECIFIC_HANGUP_CAUSE_VARIABLE "proto_specific_hangup_cause"
|
||||
#define SWITCH_TRANSFER_HISTORY_VARIABLE "transfer_history"
|
||||
#define SWITCH_TRANSFER_SOURCE_VARIABLE "transfer_source"
|
||||
|
||||
#define SWITCH_CHANNEL_EXECUTE_ON_ANSWER_VARIABLE "execute_on_answer"
|
||||
#define SWITCH_CHANNEL_EXECUTE_ON_PRE_ANSWER_VARIABLE "execute_on_pre_answer"
|
||||
@@ -291,23 +294,27 @@ typedef uint32_t switch_eavesdrop_flag_t;
|
||||
typedef enum {
|
||||
SCF_NONE = 0,
|
||||
SCF_USE_SQL = (1 << 0),
|
||||
SCF_NO_NEW_SESSIONS = (1 << 1),
|
||||
SCF_SHUTTING_DOWN = (1 << 2),
|
||||
SCF_VG = (1 << 3),
|
||||
SCF_RESTART = (1 << 4),
|
||||
SCF_SHUTDOWN_REQUESTED = (1 << 5),
|
||||
SCF_USE_AUTO_NAT = (1 << 6),
|
||||
SCF_EARLY_HANGUP = (1 << 7),
|
||||
SCF_CALIBRATE_CLOCK = (1 << 8),
|
||||
SCF_USE_HEAVY_TIMING = (1 << 9),
|
||||
SCF_USE_CLOCK_RT = (1 << 10),
|
||||
SCF_VERBOSE_EVENTS = (1 << 11),
|
||||
SCF_USE_WIN32_MONOTONIC = (1 << 12),
|
||||
SCF_AUTO_SCHEMAS = (1 << 13),
|
||||
SCF_MINIMAL = (1 << 14),
|
||||
SCF_USE_NAT_MAPPING = (1 << 15),
|
||||
SCF_CLEAR_SQL = (1 << 16),
|
||||
SCF_THREADED_SYSTEM_EXEC = (1 << 17)
|
||||
SCF_NO_NEW_OUTBOUND_SESSIONS = (1 << 1),
|
||||
SCF_NO_NEW_INBOUND_SESSIONS = (1 << 2),
|
||||
SCF_NO_NEW_SESSIONS = (SCF_NO_NEW_OUTBOUND_SESSIONS | SCF_NO_NEW_INBOUND_SESSIONS),
|
||||
SCF_SHUTTING_DOWN = (1 << 3),
|
||||
SCF_VG = (1 << 4),
|
||||
SCF_RESTART = (1 << 5),
|
||||
SCF_SHUTDOWN_REQUESTED = (1 << 6),
|
||||
SCF_USE_AUTO_NAT = (1 << 7),
|
||||
SCF_EARLY_HANGUP = (1 << 8),
|
||||
SCF_CALIBRATE_CLOCK = (1 << 9),
|
||||
SCF_USE_HEAVY_TIMING = (1 << 10),
|
||||
SCF_USE_CLOCK_RT = (1 << 11),
|
||||
SCF_VERBOSE_EVENTS = (1 << 12),
|
||||
SCF_USE_WIN32_MONOTONIC = (1 << 13),
|
||||
SCF_AUTO_SCHEMAS = (1 << 14),
|
||||
SCF_MINIMAL = (1 << 15),
|
||||
SCF_USE_NAT_MAPPING = (1 << 16),
|
||||
SCF_CLEAR_SQL = (1 << 17),
|
||||
SCF_THREADED_SYSTEM_EXEC = (1 << 18),
|
||||
SCF_SYNC_CLOCK_REQUESTED = (1 << 19),
|
||||
SCF_CORE_ODBC_REQ = (1 << 20)
|
||||
} switch_core_flag_enum_t;
|
||||
typedef uint32_t switch_core_flag_t;
|
||||
|
||||
@@ -347,7 +354,8 @@ typedef enum {
|
||||
SSM_NA,
|
||||
SSM_PRONOUNCED,
|
||||
SSM_ITERATED,
|
||||
SSM_COUNTED
|
||||
SSM_COUNTED,
|
||||
SSM_PRONOUNCED_YEAR
|
||||
} switch_say_method_t;
|
||||
|
||||
/* WARNING, Do not forget to update *SAY_TYPE_NAMES[] in src/switch_ivr_say.c */
|
||||
@@ -685,7 +693,7 @@ typedef enum {
|
||||
*/
|
||||
|
||||
|
||||
RTP_BUG_ACCEPT_ANY_PACKETS = (1 << 7)
|
||||
RTP_BUG_ACCEPT_ANY_PACKETS = (1 << 7),
|
||||
|
||||
/*
|
||||
Oracle's Contact Center Anywhere (CCA) likes to use a single RTP socket to send all its outbound audio.
|
||||
@@ -694,6 +702,21 @@ typedef enum {
|
||||
*/
|
||||
|
||||
|
||||
RTP_BUG_GEN_ONE_GEN_ALL = (1 << 8)
|
||||
|
||||
/*
|
||||
Some RTP endpoints (and by some we mean *cough* _SONUS_!) do not like it when the timestamps jump forward or backwards in time.
|
||||
So say you are generating a file that says "please wait for me to complete your call, or generating ringback"
|
||||
Now you place and outbound call and you are bridging. Well, while you were playing the file, you were generating your own RTP timestamps.
|
||||
But, now that you have a remote RTP stream, you'd rather send those timestamps as-is in case they will be fed to a remote jitter buffer......
|
||||
Ok, so this causes the audio to completely fade out despite the fact that we send the mark bit which should give them heads up its happening.
|
||||
|
||||
Sigh, This flag will tell FreeSWITCH that if it ever generates even one RTP packet itself, to continue to generate all of them and ignore the
|
||||
actual timestamps in the frames.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
} switch_rtp_bug_flag_t;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
@@ -852,6 +875,8 @@ typedef enum {
|
||||
SWITCH_MESSAGE_INDICATE_JITTER_BUFFER,
|
||||
SWITCH_MESSAGE_INDICATE_RECOVERY_REFRESH,
|
||||
SWITCH_MESSAGE_INDICATE_SIGNAL_DATA,
|
||||
SWITCH_MESSAGE_INDICATE_INFO,
|
||||
SWITCH_MESSAGE_INDICATE_AUDIO_DATA,
|
||||
SWITCH_MESSAGE_INVALID
|
||||
} switch_core_session_message_types_t;
|
||||
|
||||
@@ -1163,6 +1188,7 @@ typedef enum {
|
||||
CF_BRIDGE_NOWRITE,
|
||||
CF_RECOVERED,
|
||||
CF_JITTERBUFFER,
|
||||
CF_JITTERBUFFER_PLC,
|
||||
CF_DIALPLAN,
|
||||
CF_BLOCK_BROADCAST_UNTIL_MEDIA,
|
||||
CF_CNG_PLC,
|
||||
@@ -1171,6 +1197,8 @@ typedef enum {
|
||||
CF_SIGNAL_DATA,
|
||||
CF_SIMPLIFY,
|
||||
CF_ZOMBIE_EXEC,
|
||||
CF_INTERCEPT,
|
||||
CF_INTERCEPTED,
|
||||
/* WARNING: DO NOT ADD ANY FLAGS BELOW THIS LINE */
|
||||
/* IF YOU ADD NEW ONES CHECK IF THEY SHOULD PERSIST OR ZERO THEM IN switch_core_session.c switch_core_session_request_xml() */
|
||||
CF_FLAG_MAX
|
||||
@@ -1374,6 +1402,9 @@ SMBF_READ_REPLACE - Replace the Read Stream
|
||||
SMBF_STEREO - Record in stereo
|
||||
SMBF_ANSWER_RECORD_REQ - Don't record until the channel is answered
|
||||
SMBF_THREAD_LOCK - Only let the same thread who created the bug remove it.
|
||||
SMBF_PRUNE -
|
||||
SMBF_NO_PAUSE -
|
||||
SMBF_STEREO_SWAP - Record in stereo: Write Stream - left channel, Read Stream - right channel
|
||||
</pre>
|
||||
*/
|
||||
typedef enum {
|
||||
@@ -1387,7 +1418,8 @@ typedef enum {
|
||||
SMBF_ANSWER_REQ = (1 << 6),
|
||||
SMBF_THREAD_LOCK = (1 << 7),
|
||||
SMBF_PRUNE = (1 << 8),
|
||||
SMBF_NO_PAUSE = (1 << 9)
|
||||
SMBF_NO_PAUSE = (1 << 9),
|
||||
SMBF_STEREO_SWAP = (1 << 10)
|
||||
} switch_media_bug_flag_enum_t;
|
||||
typedef uint32_t switch_media_bug_flag_t;
|
||||
|
||||
@@ -1659,11 +1691,17 @@ typedef enum {
|
||||
SWITCH_CAUSE_MEDIA_TIMEOUT = 604,
|
||||
SWITCH_CAUSE_PICKED_OFF = 605,
|
||||
SWITCH_CAUSE_USER_NOT_REGISTERED = 606,
|
||||
SWITCH_CAUSE_PROGRESS_TIMEOUT = 607
|
||||
SWITCH_CAUSE_PROGRESS_TIMEOUT = 607,
|
||||
SWITCH_CAUSE_INVALID_GATEWAY = 608,
|
||||
SWITCH_CAUSE_GATEWAY_DOWN = 609,
|
||||
SWITCH_CAUSE_INVALID_URL = 610,
|
||||
SWITCH_CAUSE_INVALID_PROFILE = 611
|
||||
} switch_call_cause_t;
|
||||
|
||||
typedef enum {
|
||||
SCSC_PAUSE_INBOUND,
|
||||
SCSC_PAUSE_OUTBOUND,
|
||||
SCSC_PAUSE_ALL,
|
||||
SCSC_HUPALL,
|
||||
SCSC_SHUTDOWN,
|
||||
SCSC_CHECK_RUNNING,
|
||||
@@ -1689,9 +1727,12 @@ typedef enum {
|
||||
SCSC_MIN_IDLE_CPU,
|
||||
SCSC_VERBOSE_EVENTS,
|
||||
SCSC_SHUTDOWN_CHECK,
|
||||
SCSC_PAUSE_INBOUND_CHECK,
|
||||
SCSC_PAUSE_OUTBOUND_CHECK,
|
||||
SCSC_PAUSE_CHECK,
|
||||
SCSC_READY_CHECK,
|
||||
SCSC_THREADED_SYSTEM_EXEC
|
||||
SCSC_THREADED_SYSTEM_EXEC,
|
||||
SCSC_SYNC_CLOCK_WHEN_IDLE
|
||||
} switch_session_ctl_t;
|
||||
|
||||
typedef enum {
|
||||
|
||||
@@ -240,6 +240,7 @@ SWITCH_DECLARE(switch_status_t) switch_frame_alloc(switch_frame_t **frame, switc
|
||||
SWITCH_DECLARE(switch_status_t) switch_frame_dup(switch_frame_t *orig, switch_frame_t **clone);
|
||||
SWITCH_DECLARE(switch_status_t) switch_frame_free(switch_frame_t **frame);
|
||||
SWITCH_DECLARE(switch_bool_t) switch_is_number(const char *str);
|
||||
SWITCH_DECLARE(char *) switch_find_parameter(const char *str, const char *param, switch_memory_pool_t *pool);
|
||||
|
||||
/*!
|
||||
\brief Evaluate the truthfullness of a string expression
|
||||
@@ -830,6 +831,9 @@ SWITCH_DECLARE(int) switch_split_user_domain(char *in, char **user, char **domai
|
||||
SWITCH_DECLARE(const char *) switch_inet_ntop(int af, void const *src, char *dst, size_t size);
|
||||
#endif
|
||||
|
||||
SWITCH_DECLARE(char *) switch_uuid_str(char *buf, switch_size_t len);
|
||||
SWITCH_DECLARE(char *) switch_format_number(const char *num);
|
||||
|
||||
SWITCH_END_EXTERN_C
|
||||
#endif
|
||||
/* For Emacs:
|
||||
|
||||
@@ -421,7 +421,7 @@ SWITCH_DECLARE(switch_status_t) switch_xml_unbind_search_function_ptr(_In_ switc
|
||||
///\return the section mask
|
||||
SWITCH_DECLARE(switch_xml_section_t) switch_xml_parse_section_string(_In_opt_z_ const char *str);
|
||||
|
||||
SWITCH_DECLARE(int) switch_xml_std_datetime_check(switch_xml_t xcond);
|
||||
SWITCH_DECLARE(int) switch_xml_std_datetime_check(switch_xml_t xcond, int *offset);
|
||||
|
||||
SWITCH_DECLARE(switch_status_t) switch_xml_locate_language(switch_xml_t *root, switch_xml_t *node, switch_event_t *params, switch_xml_t *language, switch_xml_t *phrases, switch_xml_t *macros, const char *str_language);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user