| Asterisk - The Open Source Telephony Project GIT-master-27fb039
    | 
MixMonitor() - Record a call and mix the audio during the recording. More...
#include "asterisk.h"#include "asterisk/paths.h"#include "asterisk/stringfields.h"#include "asterisk/file.h"#include "asterisk/audiohook.h"#include "asterisk/pbx.h"#include "asterisk/module.h"#include "asterisk/cli.h"#include "asterisk/app.h"#include "asterisk/channel.h"#include "asterisk/autochan.h"#include "asterisk/manager.h"#include "asterisk/stasis.h"#include "asterisk/stasis_channels.h"#include "asterisk/callerid.h"#include "asterisk/mod_format.h"#include "asterisk/linkedlists.h"#include "asterisk/test.h"#include "asterisk/mixmonitor.h"#include "asterisk/format_cache.h"#include "asterisk/beep.h"
Go to the source code of this file.
| Data Structures | |
| struct | mixmonitor | 
| struct | mixmonitor_ds | 
| struct | vm_recipient | 
| Macros | |
| #define | get_volfactor(x) x ? ((x > 0) ? (1 << x) : ((1 << abs(x)) * -1)) : 0 | 
| #define | SAMPLES_PER_FRAME 160 | 
| Enumerations | |
| enum | mixmonitor_args { OPT_ARG_READVOLUME = 0 , OPT_ARG_WRITEVOLUME , OPT_ARG_VOLUME , OPT_ARG_WRITENAME , OPT_ARG_READNAME , OPT_ARG_UID , OPT_ARG_VMRECIPIENTS , OPT_ARG_BEEP_INTERVAL , OPT_ARG_DEPRECATED_RWSYNC , OPT_ARG_NO_RWSYNC , OPT_ARG_ARRAY_SIZE } | 
| enum | mixmonitor_flags { MUXFLAG_APPEND = (1 << 1) , MUXFLAG_BRIDGED = (1 << 2) , MUXFLAG_VOLUME = (1 << 3) , MUXFLAG_READVOLUME = (1 << 4) , MUXFLAG_WRITEVOLUME = (1 << 5) , MUXFLAG_READ = (1 << 6) , MUXFLAG_WRITE = (1 << 7) , MUXFLAG_COMBINED = (1 << 8) , MUXFLAG_UID = (1 << 9) , MUXFLAG_VMRECIPIENTS = (1 << 10) , MUXFLAG_BEEP = (1 << 11) , MUXFLAG_BEEP_START = (1 << 12) , MUXFLAG_BEEP_STOP = (1 << 13) , MUXFLAG_DEPRECATED_RWSYNC = (1 << 14) , MUXFLAG_NO_RWSYNC = (1 << 15) , MUXFLAG_AUTO_DELETE = (1 << 16) , MUXFLAG_REAL_CALLERID = (1 << 17) , MUXFLAG_INTERLEAVED = (1 << 18) } | 
| Functions | |
| static void | __reg_module (void) | 
| static void | __unreg_module (void) | 
| static void | add_vm_recipients_from_string (struct mixmonitor *mixmonitor, const char *vm_recipients) | 
| struct ast_module * | AST_MODULE_SELF_SYM (void) | 
| static int | clear_mixmonitor_methods (void) | 
| static void | clear_mixmonitor_recipient_list (struct mixmonitor *mixmonitor) | 
| static void | copy_to_voicemail (struct mixmonitor *mixmonitor, const char *ext, const char *filename) | 
| static void | destroy_monitor_audiohook (struct mixmonitor *mixmonitor) | 
| static char * | filename_parse (char *filename, char *buffer, size_t len) | 
| static int | func_mixmonitor_read (struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len) | 
| static char * | handle_cli_mixmonitor (struct ast_cli_entry *e, int cmd, struct ast_cli_args *a) | 
| static int | launch_monitor_thread (struct ast_channel *chan, const char *filename, unsigned int flags, int readvol, int writevol, const char *post_process, const char *filename_write, char *filename_read, const char *uid_channel_var, const char *recipients, const char *beep_id) | 
| static int | load_module (void) | 
| static int | manager_mixmonitor (struct mansession *s, const struct message *m) | 
| static int | manager_mute_mixmonitor (struct mansession *s, const struct message *m) | 
| Mute / unmute a MixMonitor channel. | |
| static int | manager_stop_mixmonitor (struct mansession *s, const struct message *m) | 
| static int | mixmonitor_autochan_is_bridged (struct ast_autochan *autochan) | 
| static void | mixmonitor_ds_close_fs (struct mixmonitor_ds *mixmonitor_ds) | 
| static void | mixmonitor_ds_destroy (void *data) | 
| static void | mixmonitor_ds_remove_and_free (struct ast_channel *chan, const char *datastore_id) | 
| static int | mixmonitor_exec (struct ast_channel *chan, const char *data) | 
| static void | mixmonitor_free (struct mixmonitor *mixmonitor) | 
| static void | mixmonitor_save_prep (struct mixmonitor *mixmonitor, char *filename, struct ast_filestream **fs, unsigned int *oflags, int *errflag, char **ext) | 
| static void * | mixmonitor_thread (void *obj) | 
| static int | mute_mixmonitor_instance (struct ast_channel *chan, const char *data, enum ast_audiohook_flags flag, int clearmute) | 
| Mute / unmute an individual MixMonitor by id. | |
| static int | set_mixmonitor_methods (void) | 
| static int | setup_mixmonitor_ds (struct mixmonitor *mixmonitor, struct ast_channel *chan, char **datastore_id, const char *beep_id) | 
| static int | start_mixmonitor_callback (struct ast_channel *chan, const char *filename, const char *options) | 
| static int | startmon (struct ast_channel *chan, struct ast_audiohook *audiohook) | 
| static int | stop_mixmonitor_callback (struct ast_channel *chan, const char *mixmonitor_id) | 
| static int | stop_mixmonitor_exec (struct ast_channel *chan, const char *data) | 
| static int | stop_mixmonitor_full (struct ast_channel *chan, const char *data) | 
| static int | unload_module (void) | 
| Variables | |
| static struct ast_module_info | __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "Mixed Audio Monitoring Application" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .support_level = AST_MODULE_SUPPORT_CORE, .load = load_module, .unload = unload_module, .optional_modules = "func_periodic_hook", } | 
| static const char *const | app = "MixMonitor" | 
| static const struct ast_module_info * | ast_module_info = &__mod_info | 
| static struct ast_cli_entry | cli_mixmonitor [] | 
| static const struct ast_datastore_info | mixmonitor_ds_info | 
| static struct ast_custom_function | mixmonitor_function | 
| static const struct ast_app_option | mixmonitor_opts [128] = { [ 'a' ] = { .flag = MUXFLAG_APPEND }, [ 'b' ] = { .flag = MUXFLAG_BRIDGED }, [ 'B' ] = { .flag = MUXFLAG_BEEP , .arg_index = OPT_ARG_BEEP_INTERVAL + 1 }, [ 'c' ] = { .flag = MUXFLAG_REAL_CALLERID }, [ 'd' ] = { .flag = MUXFLAG_AUTO_DELETE }, [ 'p' ] = { .flag = MUXFLAG_BEEP_START }, [ 'P' ] = { .flag = MUXFLAG_BEEP_STOP }, [ 'v' ] = { .flag = MUXFLAG_READVOLUME , .arg_index = OPT_ARG_READVOLUME + 1 }, [ 'V' ] = { .flag = MUXFLAG_WRITEVOLUME , .arg_index = OPT_ARG_WRITEVOLUME + 1 }, [ 'W' ] = { .flag = MUXFLAG_VOLUME , .arg_index = OPT_ARG_VOLUME + 1 }, [ 'r' ] = { .flag = MUXFLAG_READ , .arg_index = OPT_ARG_READNAME + 1 }, [ 't' ] = { .flag = MUXFLAG_WRITE , .arg_index = OPT_ARG_WRITENAME + 1 }, [ 'D' ] = { .flag = MUXFLAG_INTERLEAVED }, [ 'i' ] = { .flag = MUXFLAG_UID , .arg_index = OPT_ARG_UID + 1 }, [ 'm' ] = { .flag = MUXFLAG_VMRECIPIENTS , .arg_index = OPT_ARG_VMRECIPIENTS + 1 }, [ 'S' ] = { .flag = MUXFLAG_DEPRECATED_RWSYNC , .arg_index = OPT_ARG_DEPRECATED_RWSYNC + 1 }, [ 'n' ] = { .flag = MUXFLAG_NO_RWSYNC , .arg_index = OPT_ARG_NO_RWSYNC + 1 }, } | 
| static const char *const | mixmonitor_spy_type = "MixMonitor" | 
| static const char *const | stop_app = "StopMixMonitor" | 
MixMonitor() - Record a call and mix the audio during the recording.
Definition in file app_mixmonitor.c.
| #define get_volfactor | ( | x | ) | x ? ((x > 0) ? (1 << x) : ((1 << abs(x)) * -1)) : 0 | 
Definition at line 394 of file app_mixmonitor.c.
| #define SAMPLES_PER_FRAME 160 | 
Definition at line 653 of file app_mixmonitor.c.
| enum mixmonitor_args | 
Definition at line 460 of file app_mixmonitor.c.
| enum mixmonitor_flags | 
Definition at line 439 of file app_mixmonitor.c.
| 
 | static | 
Definition at line 1881 of file app_mixmonitor.c.
| 
 | static | 
Definition at line 1881 of file app_mixmonitor.c.
| 
 | static | 
Definition at line 595 of file app_mixmonitor.c.
References ast_copy_string(), ast_debug, AST_LIST_INSERT_HEAD, ast_log, ast_malloc, ast_strdupa, ast_strlen_zero(), ast_verb, vm_recipient::context, vm_recipient::folder, vm_recipient::list, LOG_ERROR, vm_recipient::mailbox, vm_recipient::next, and mixmonitor::recipient_list.
Referenced by launch_monitor_thread().
| struct ast_module * AST_MODULE_SELF_SYM | ( | void | ) | 
Definition at line 1881 of file app_mixmonitor.c.
| 
 | static | 
Definition at line 1839 of file app_mixmonitor.c.
References ast_clear_mixmonitor_methods().
Referenced by unload_module().
| 
 | static | 
Definition at line 644 of file app_mixmonitor.c.
References ast_free, AST_LIST_REMOVE_HEAD, current, vm_recipient::list, and mixmonitor::recipient_list.
Referenced by mixmonitor_free().
| 
 | static | 
Definition at line 687 of file app_mixmonitor.c.
References ast_app_copy_recording_to_vm(), AST_LIST_TRAVERSE, ast_log, ast_string_field_free_memory, ast_string_field_init, ast_string_field_set, ast_verb, mixmonitor::call_callerchan, ast_vm_recording_data::call_callerchan, mixmonitor::call_callerid, ast_vm_recording_data::call_callerid, mixmonitor::call_context, ast_vm_recording_data::call_context, mixmonitor::call_extension, ast_vm_recording_data::call_extension, mixmonitor::call_priority, vm_recipient::context, ast_vm_recording_data::context, ext, vm_recipient::folder, ast_vm_recording_data::folder, LOG_ERROR, vm_recipient::mailbox, ast_vm_recording_data::mailbox, NULL, mixmonitor::recipient_list, ast_vm_recording_data::recording_ext, and ast_vm_recording_data::recording_file.
Referenced by mixmonitor_thread().
| 
 | static | 
Definition at line 566 of file app_mixmonitor.c.
References ast_audiohook_destroy(), ast_audiohook_detach(), ast_audiohook_lock, ast_audiohook_unlock, ast_mutex_lock, ast_mutex_unlock, mixmonitor::audiohook, mixmonitor_ds::audiohook, mixmonitor_ds::lock, mixmonitor::mixmonitor_ds, and NULL.
Referenced by mixmonitor_thread().
| 
 | static | 
Definition at line 1195 of file app_mixmonitor.c.
References ast_alloca, ast_assert, ast_config_AST_MONITOR_DIR, ast_copy_string(), ast_log, ast_mkdir(), ast_strlen_zero(), ext, len(), and LOG_WARNING.
Referenced by mixmonitor_exec().
| 
 | static | 
Definition at line 1782 of file app_mixmonitor.c.
References args, AST_APP_ARG, ast_channel_datastore_find(), ast_channel_lock, ast_channel_unlock, ast_copy_string(), AST_DECLARE_APP_ARGS, ast_log, AST_STANDARD_APP_ARGS, ast_strlen_zero(), buf, ast_datastore::data, mixmonitor_ds::filename, len(), LOG_WARNING, and mixmonitor_ds_info.
| 
 | static | 
Definition at line 1457 of file app_mixmonitor.c.
References a, ast_channel_datastores(), ast_channel_get_by_name_prefix(), ast_channel_lock, ast_channel_unlock, ast_channel_unref, ast_cli(), ast_complete_channels(), AST_LIST_TRAVERSE, CLI_GENERATE, CLI_INIT, CLI_SHOWUSAGE, CLI_SUCCESS, ast_cli_entry::command, ast_datastore::data, mixmonitor_ds::filename, ast_filestream::filename, mixmonitor_ds::fs, mixmonitor_ds::fs_read, mixmonitor_ds::fs_write, ast_datastore::info, mixmonitor_ds_info, mixmonitor_exec(), NULL, stop_mixmonitor_exec(), and ast_cli_entry::usage.
| 
 | static | 
Definition at line 1037 of file app_mixmonitor.c.
References add_vm_recipients_from_string(), ast_audiohook_destroy(), ast_audiohook_init(), AST_AUDIOHOOK_SUBSTITUTE_SILENCE, AST_AUDIOHOOK_TRIGGER_SYNC, AST_AUDIOHOOK_TYPE_SPY, ast_autochan_destroy(), ast_autochan_setup(), ast_callerid_merge(), ast_calloc, ast_channel_caller(), ast_channel_connected(), ast_channel_context(), ast_channel_exten(), ast_channel_lock, ast_channel_name(), ast_channel_priority(), ast_channel_unlock, ast_debug, ast_free, ast_log, ast_pthread_create_detached_background, ast_read_threadstorage_callid(), ast_set_flag, ast_strdup, ast_strdupa, ast_string_field_init, ast_string_field_set, ast_strlen_zero(), ast_test_flag, mixmonitor::audiohook, mixmonitor::autochan, mixmonitor::call_priority, mixmonitor::callid, connected, mixmonitor::filename, mixmonitor::filename_read, mixmonitor::filename_write, mixmonitor::flags, ast_party_caller::id, LOG_WARNING, mixmonitor_ds_remove_and_free(), mixmonitor_free(), mixmonitor_spy_type, mixmonitor_thread(), MUXFLAG_NO_RWSYNC, MUXFLAG_REAL_CALLERID, mixmonitor::name, ast_party_id::name, NULL, ast_party_id::number, ast_audiohook::options, pbx_builtin_setvar_helper(), pbx_substitute_variables_helper(), mixmonitor::post_process, ast_audiohook_options::read_volume, S_COR, setup_mixmonitor_ds(), startmon(), ast_party_name::str, ast_party_number::str, thread, ast_party_name::valid, ast_party_number::valid, and ast_audiohook_options::write_volume.
Referenced by mixmonitor_exec().
| 
 | static | 
Definition at line 1860 of file app_mixmonitor.c.
References app, ARRAY_LEN, ast_cli_register_multiple, ast_custom_function_register, ast_manager_register_xml, ast_register_application_xml, cli_mixmonitor, EVENT_FLAG_CALL, EVENT_FLAG_SYSTEM, manager_mixmonitor(), manager_mute_mixmonitor(), manager_stop_mixmonitor(), mixmonitor_exec(), mixmonitor_function, set_mixmonitor_methods(), ast_mixmonitor_methods::start, stop_app, and stop_mixmonitor_exec().
| 
 | static | 
Definition at line 1678 of file app_mixmonitor.c.
References AMI_SUCCESS, args, ast_app_parse_options(), ast_channel_get_by_name(), ast_channel_lock, ast_channel_unlock, ast_channel_unref, ast_strdupa, ast_strlen_zero(), ast_test_flag, astman_append(), astman_get_header(), astman_send_error(), c, ast_flags::flags, mixmonitor_exec(), mixmonitor_opts, MUXFLAG_UID, name, NULL, OPT_ARG_ARRAY_SIZE, OPT_ARG_UID, options, PATH_MAX, pbx_builtin_getvar_helper(), and S_OR.
Referenced by load_module().
| 
 | static | 
Mute / unmute a MixMonitor channel.
Definition at line 1570 of file app_mixmonitor.c.
References AMI_SUCCESS, ao2_cleanup, AST_AUDIOHOOK_MUTE_READ, AST_AUDIOHOOK_MUTE_WRITE, ast_audiohook_set_mute_all(), ast_channel_blob_create_from_cache(), ast_channel_get_by_name(), ast_channel_mixmonitor_mute_type(), ast_channel_topic(), ast_channel_uniqueid(), ast_channel_unref, ast_false(), ast_json_pack(), ast_json_unref(), ast_strlen_zero(), ast_true(), astman_append(), astman_get_header(), astman_send_error(), c, mixmonitor_spy_type, mute_mixmonitor_instance(), name, NULL, RAII_VAR, and stasis_publish().
Referenced by load_module().
| 
 | static | 
Definition at line 1743 of file app_mixmonitor.c.
References AMI_SUCCESS, ast_channel_get_by_name(), ast_channel_unref, ast_strlen_zero(), astman_append(), astman_get_header(), astman_send_error(), c, name, and stop_mixmonitor_full().
Referenced by load_module().
| 
 | static | 
Definition at line 750 of file app_mixmonitor.c.
References ast_autochan_channel_lock, ast_autochan_channel_unlock, ast_channel_is_bridged(), and ast_autochan::chan.
Referenced by mixmonitor_thread().
| 
 | static | 
Definition at line 518 of file app_mixmonitor.c.
References ast_closestream(), ast_verb, mixmonitor_ds::fs, mixmonitor_ds::fs_quit, mixmonitor_ds::fs_read, mixmonitor_ds::fs_write, and NULL.
Referenced by mixmonitor_thread(), and stop_mixmonitor_full().
| 
 | static | 
Definition at line 548 of file app_mixmonitor.c.
References ast_cond_signal, ast_free, ast_mutex_lock, ast_mutex_unlock, mixmonitor_ds::audiohook, mixmonitor_ds::beep_id, mixmonitor_ds::destruction_condition, mixmonitor_ds::destruction_ok, mixmonitor_ds::filename, mixmonitor_ds::lock, and NULL.
| 
 | static | 
Definition at line 1019 of file app_mixmonitor.c.
References ast_channel_datastore_find(), ast_channel_datastore_remove(), ast_channel_lock, ast_channel_unlock, ast_datastore_free(), and mixmonitor_ds_info.
Referenced by launch_monitor_thread().
| 
 | static | 
Definition at line 1235 of file app_mixmonitor.c.
References ao2_cleanup, args, AST_APP_ARG, ast_app_parse_options(), ast_beep_start(), ast_channel_blob_create_from_cache(), ast_channel_mixmonitor_start_type(), ast_channel_topic(), ast_channel_uniqueid(), AST_DECLARE_APP_ARGS, ast_log, ast_module_ref, ast_module_unref, AST_STANDARD_APP_ARGS, ast_strdupa, ast_strlen_zero(), ast_test_flag, filename_parse(), ast_flags::flags, ast_channel::flags, get_volfactor, launch_monitor_thread(), LOG_NOTICE, LOG_WARNING, mixmonitor_opts, MUXFLAG_BEEP, MUXFLAG_DEPRECATED_RWSYNC, MUXFLAG_READ, MUXFLAG_READVOLUME, MUXFLAG_UID, MUXFLAG_VMRECIPIENTS, MUXFLAG_VOLUME, MUXFLAG_WRITE, MUXFLAG_WRITEVOLUME, NULL, OPT_ARG_ARRAY_SIZE, OPT_ARG_BEEP_INTERVAL, OPT_ARG_READNAME, OPT_ARG_READVOLUME, OPT_ARG_UID, OPT_ARG_VMRECIPIENTS, OPT_ARG_VOLUME, OPT_ARG_WRITENAME, OPT_ARG_WRITEVOLUME, options, pbx_builtin_setvar_helper(), RAII_VAR, S_OR, ast_module_info::self, and stasis_publish().
Referenced by handle_cli_mixmonitor(), load_module(), manager_mixmonitor(), and start_mixmonitor_callback().
| 
 | static | 
Definition at line 655 of file app_mixmonitor.c.
References ast_cond_destroy, ast_free, ast_mutex_destroy, ast_string_field_free_memory, clear_mixmonitor_recipient_list(), mixmonitor_ds::destruction_condition, mixmonitor::filename, mixmonitor::filename_read, mixmonitor::filename_write, mixmonitor_ds::lock, mixmonitor::mixmonitor_ds, mixmonitor::name, and mixmonitor::post_process.
Referenced by launch_monitor_thread(), and mixmonitor_thread().
| 
 | static | 
Definition at line 721 of file app_mixmonitor.c.
References ast_format_get_sample_rate(), ast_log, ast_strlen_zero(), ast_test_flag, ast_writefile(), ext, ast_filestream::fmt, ast_format_def::format, mixmonitor_ds::fs_quit, LOG_ERROR, MAX, mixmonitor::mixmonitor_ds, MUXFLAG_APPEND, NULL, and mixmonitor_ds::samp_rate.
Referenced by mixmonitor_thread().
| 
 | static | 
Definition at line 760 of file app_mixmonitor.c.
References ast_audiohook_lock, ast_audiohook_read_frame_all(), AST_AUDIOHOOK_STATUS_RUNNING, ast_audiohook_trigger_wait(), ast_audiohook_unlock, ast_autochan_channel_lock, ast_autochan_channel_unlock, ast_autochan_destroy(), ast_callid_threadassoc_add(), ast_cond_wait, ast_debug, ast_filedelete(), ast_format_cache_get_slin_by_rate(), ast_frame_free(), AST_FRAME_VOICE, ast_frdup, AST_LIST_EMPTY, AST_LIST_NEXT, ast_log, ast_module_unref, ast_mutex_lock, ast_mutex_unlock, ast_safe_system(), ast_stream_and_wait(), ast_strlen_zero(), ast_test_flag, ast_test_suite_event_notify, ast_verb, ast_writestream(), mixmonitor::audiohook, mixmonitor::autochan, mixmonitor::callid, ast_autochan::chan, copy_to_voicemail(), ast_frame::data, destroy_monitor_audiohook(), mixmonitor_ds::destruction_condition, mixmonitor_ds::destruction_ok, mixmonitor::filename, mixmonitor::filename_read, mixmonitor::filename_write, ast_frame_subclass::format, ast_frame::frametype, mixmonitor_ds::fs, mixmonitor_ds::fs_quit, mixmonitor_ds::fs_read, mixmonitor_ds::fs_write, mixmonitor_ds::lock, LOG_ERROR, mixmonitor_autochan_is_bridged(), mixmonitor::mixmonitor_ds, mixmonitor_ds_close_fs(), mixmonitor_free(), mixmonitor_save_prep(), MUXFLAG_AUTO_DELETE, MUXFLAG_BEEP_STOP, MUXFLAG_BRIDGED, MUXFLAG_INTERLEAVED, name, mixmonitor::name, NULL, mixmonitor::post_process, ast_frame::ptr, mixmonitor::recipient_list, mixmonitor_ds::samp_rate, ast_frame::samples, SAMPLES_PER_FRAME, ast_module_info::self, ast_audiohook::status, ast_frame::subclass, and write_buf().
Referenced by launch_monitor_thread().
| 
 | static | 
Mute / unmute an individual MixMonitor by id.
Definition at line 1526 of file app_mixmonitor.c.
References args, AST_APP_ARG, ast_channel_datastore_find(), ast_channel_lock, ast_channel_unlock, ast_clear_flag, AST_DECLARE_APP_ARGS, ast_mutex_lock, ast_mutex_unlock, ast_set_flag, AST_STANDARD_APP_ARGS, ast_strdupa, ast_strlen_zero(), mixmonitor_ds::audiohook, ast_datastore::data, mixmonitor_ds::lock, mixmonitor_ds_info, NULL, and S_OR.
Referenced by manager_mute_mixmonitor().
| 
 | static | 
Definition at line 1829 of file app_mixmonitor.c.
References ast_set_mixmonitor_methods(), mixmonitor_methods, ast_mixmonitor_methods::start, start_mixmonitor_callback(), and stop_mixmonitor_callback().
Referenced by load_module().
| 
 | static | 
Definition at line 972 of file app_mixmonitor.c.
References ast_asprintf, ast_autochan_channel_lock, ast_autochan_channel_unlock, ast_calloc, ast_channel_datastore_add(), ast_channel_lock, ast_channel_unlock, ast_cond_destroy, ast_cond_init, ast_datastore_alloc, ast_free, ast_log, ast_mutex_destroy, ast_mutex_init, ast_strdup, ast_stream_and_wait(), ast_strlen_zero(), ast_test_flag, mixmonitor::audiohook, mixmonitor_ds::audiohook, mixmonitor::autochan, mixmonitor_ds::beep_id, ast_autochan::chan, ast_datastore::data, mixmonitor_ds::destruction_condition, mixmonitor::filename, mixmonitor_ds::filename, mixmonitor_ds::lock, LOG_ERROR, mixmonitor::mixmonitor_ds, mixmonitor_ds_info, MUXFLAG_BEEP_START, NULL, and mixmonitor_ds::samp_rate.
Referenced by launch_monitor_thread().
| 
 | static | 
Definition at line 1660 of file app_mixmonitor.c.
References args, ast_strlen_zero(), mixmonitor_exec(), options, and PATH_MAX.
Referenced by set_mixmonitor_methods().
| 
 | static | 
Definition at line 580 of file app_mixmonitor.c.
References ast_audiohook_attach().
Referenced by launch_monitor_thread().
| 
 | static | 
Definition at line 1673 of file app_mixmonitor.c.
References stop_mixmonitor_full().
Referenced by set_mixmonitor_methods().
| 
 | static | 
Definition at line 1451 of file app_mixmonitor.c.
References stop_mixmonitor_full().
Referenced by handle_cli_mixmonitor(), and load_module().
| 
 | static | 
Definition at line 1377 of file app_mixmonitor.c.
References ao2_cleanup, args, AST_APP_ARG, ast_audiohook_lock, AST_AUDIOHOOK_STATUS_DONE, AST_AUDIOHOOK_STATUS_SHUTDOWN, ast_audiohook_unlock, ast_audiohook_update_status(), ast_beep_stop(), ast_channel_blob_create_from_cache(), ast_channel_datastore_find(), ast_channel_datastore_remove(), ast_channel_lock, ast_channel_mixmonitor_stop_type(), ast_channel_topic(), ast_channel_uniqueid(), ast_channel_unlock, ast_cond_signal, ast_datastore_free(), AST_DECLARE_APP_ARGS, ast_mutex_lock, ast_mutex_unlock, AST_STANDARD_APP_ARGS, ast_strdupa, ast_strlen_zero(), mixmonitor_ds::audiohook, mixmonitor_ds::beep_id, ast_datastore::data, mixmonitor_ds::lock, mixmonitor_ds_close_fs(), mixmonitor_ds_info, NULL, RAII_VAR, S_OR, stasis_publish(), ast_audiohook::status, and ast_audiohook::trigger.
Referenced by manager_stop_mixmonitor(), stop_mixmonitor_callback(), and stop_mixmonitor_exec().
| 
 | static | 
Definition at line 1844 of file app_mixmonitor.c.
References app, ARRAY_LEN, ast_cli_unregister_multiple(), ast_custom_function_unregister(), ast_manager_unregister(), ast_unregister_application(), clear_mixmonitor_methods(), cli_mixmonitor, mixmonitor_function, ast_mixmonitor_methods::start, and stop_app.
| 
 | static | 
Definition at line 1881 of file app_mixmonitor.c.
| 
 | static | 
Definition at line 396 of file app_mixmonitor.c.
Referenced by load_module(), and unload_module().
| 
 | static | 
Definition at line 1881 of file app_mixmonitor.c.
| 
 | static | 
Definition at line 1825 of file app_mixmonitor.c.
Referenced by load_module(), and unload_module().
| 
 | static | 
Definition at line 561 of file app_mixmonitor.c.
Referenced by func_mixmonitor_read(), handle_cli_mixmonitor(), mixmonitor_ds_remove_and_free(), mute_mixmonitor_instance(), setup_mixmonitor_ds(), and stop_mixmonitor_full().
| 
 | static | 
Definition at line 1820 of file app_mixmonitor.c.
Referenced by load_module(), and unload_module().
| 
 | static | 
Definition at line 492 of file app_mixmonitor.c.
Referenced by manager_mixmonitor(), and mixmonitor_exec().
| 
 | static | 
Definition at line 400 of file app_mixmonitor.c.
Referenced by feature_automixmonitor(), launch_monitor_thread(), and manager_mute_mixmonitor().
| 
 | static | 
Definition at line 398 of file app_mixmonitor.c.
Referenced by load_module(), and unload_module().