Main Page | Modules | Class Hierarchy | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

switch_ivr_async.c File Reference


Data Structures

struct  displace_helper_t
struct  eavesdrop_pvt
struct  switch_inband_dtmf_t
struct  switch_inband_dtmf_generate_t
struct  switch_tone_detect_t
struct  switch_tone_container_t
struct  dtmf_meta_app_t
struct  dtmf_meta_settings_t
struct  dtmf_meta_data_t
struct  speech_thread_handle
struct  hangup_helper
struct  transfer_helper
struct  broadcast_helper

Defines

#define MAX_TONES   16
#define SWITCH_META_VAR_KEY   "__dtmf_meta"

Functions

void switch_ivr_session_echo (switch_core_session_t *session)
 
  • NEEDDESC -

switch_status_t switch_ivr_stop_displace_session (switch_core_session_t *session, const char *file)
 Stop displacing a session.
switch_status_t switch_ivr_displace_session (switch_core_session_t *session, const char *file, uint32_t limit, const char *flags)
 displace the media for a session with the audio from a file
switch_status_t switch_ivr_stop_record_session (switch_core_session_t *session, const char *file)
 Stop Recording a session.
switch_status_t switch_ivr_eavesdrop_session (switch_core_session_t *session, const char *uuid, const char *require_group, switch_eavesdrop_flag_t flags)
 Eavesdrop on a another session.
switch_status_t switch_ivr_record_session (switch_core_session_t *session, char *file, uint32_t limit, switch_file_handle_t *fh)
 Record a session to disk.
switch_status_t switch_ivr_stop_inband_dtmf_session (switch_core_session_t *session)
 Stop looking for DTMF inband.
switch_status_t switch_ivr_inband_dtmf_session (switch_core_session_t *session)
 Start looking for DTMF inband.
switch_status_t switch_ivr_stop_inband_dtmf_generate_session (switch_core_session_t *session)
 Stop generating DTMF inband.
switch_status_t switch_ivr_inband_dtmf_generate_session (switch_core_session_t *session, switch_bool_t read_stream)
 Start generating DTMF inband.
switch_status_t switch_ivr_stop_tone_detect_session (switch_core_session_t *session)
 Stop looking for TONES.
switch_status_t switch_ivr_tone_detect_session (switch_core_session_t *session, const char *key, const char *tone_spec, const char *flags, time_t timeout, const char *app, const char *data)
 Start looking for TONES.
switch_status_t switch_ivr_unbind_dtmf_meta_session (switch_core_session_t *session)
switch_status_t switch_ivr_bind_dtmf_meta_session (switch_core_session_t *session, uint32_t key, switch_bind_flag_t bind_flags, const char *app)
switch_status_t switch_ivr_stop_detect_speech (switch_core_session_t *session)
 Stop background Speech detection on a session.
switch_status_t switch_ivr_pause_detect_speech (switch_core_session_t *session)
 Pause background Speech detection on a session.
switch_status_t switch_ivr_resume_detect_speech (switch_core_session_t *session)
 Resume background Speech detection on a session.
switch_status_t switch_ivr_detect_speech_load_grammar (switch_core_session_t *session, char *grammar, char *path)
 Load a grammar on a background speech detection handle.
switch_status_t switch_ivr_detect_speech_unload_grammar (switch_core_session_t *session, const char *grammar)
 Unload a grammar on a background speech detection handle.
switch_status_t switch_ivr_detect_speech (switch_core_session_t *session, const char *mod_name, const char *grammar, const char *path, const char *dest, switch_asr_handle_t *ah)
 Engage background Speech detection on a session.
 SWITCH_STANDARD_SCHED_FUNC (sch_hangup_callback)
uint32_t switch_ivr_schedule_hangup (time_t runtime, const char *uuid, switch_call_cause_t cause, switch_bool_t bleg)
 Hangup an existing session in the future.
 SWITCH_STANDARD_SCHED_FUNC (sch_transfer_callback)
uint32_t switch_ivr_schedule_transfer (time_t runtime, const char *uuid, char *extension, char *dialplan, char *context)
 Transfer an existing session to another location in the future.
 SWITCH_STANDARD_SCHED_FUNC (sch_broadcast_callback)
uint32_t switch_ivr_schedule_broadcast (time_t runtime, char *uuid, char *path, switch_media_flag_t flags)
 Signal the session to broadcast audio in the future.
switch_status_t switch_ivr_broadcast (const char *uuid, const char *path, switch_media_flag_t flags)
 Signal the session to broadcast audio.


Define Documentation

#define MAX_TONES   16
 

#define SWITCH_META_VAR_KEY   "__dtmf_meta"
 


Function Documentation

SWITCH_STANDARD_SCHED_FUNC sch_broadcast_callback   ) 
 

01852 {
01853         struct broadcast_helper *helper;
01854         switch_assert(task);
01855 
01856         helper = (struct broadcast_helper *) task->cmd_arg;
01857         switch_ivr_broadcast(helper->uuid_str, helper->path, helper->flags);
01858 }

Here is the call graph for this function:

SWITCH_STANDARD_SCHED_FUNC sch_transfer_callback   ) 
 

01785 {
01786         struct transfer_helper *helper;
01787         switch_core_session_t *session;
01788 
01789         switch_assert(task);
01790 
01791         helper = (struct transfer_helper *) task->cmd_arg;
01792 
01793         if ((session = switch_core_session_locate(helper->uuid_str))) {
01794                 switch_ivr_session_transfer(session, helper->extension, helper->dialplan, helper->context);
01795                 switch_core_session_rwunlock(session);
01796         }
01797 
01798 }

Here is the call graph for this function:

SWITCH_STANDARD_SCHED_FUNC sch_hangup_callback   ) 
 

01735 {
01736         struct hangup_helper *helper;
01737         switch_core_session_t *session, *other_session;
01738         const char *other_uuid;
01739 
01740         switch_assert(task);
01741 
01742         helper = (struct hangup_helper *) task->cmd_arg;
01743 
01744         if ((session = switch_core_session_locate(helper->uuid_str))) {
01745                 switch_channel_t *channel = switch_core_session_get_channel(session);
01746 
01747                 if (helper->bleg) {
01748                         if ((other_uuid = switch_channel_get_variable(channel, SWITCH_BRIDGE_VARIABLE)) && (other_session = switch_core_session_locate(other_uuid))) {
01749                                 switch_channel_t *other_channel = switch_core_session_get_channel(other_session);
01750                                 switch_channel_hangup(other_channel, helper->cause);
01751                                 switch_core_session_rwunlock(other_session);
01752                         } else {
01753                                 switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "No channel to hangup\n");
01754                         }
01755                 } else {
01756                         switch_channel_hangup(channel, helper->cause);
01757                 }
01758 
01759                 switch_core_session_rwunlock(session);
01760         }
01761 }

Here is the call graph for this function:


Generated on Mon May 26 22:06:52 2008 for FreeSWITCH by  doxygen 1.3.9.1