FS-11910: [mod_dptools] add native eavesdrop mode. use app native_eavesdrop args <uuid> [read|write] ... default is read with no flag. Must be same codecs

This commit is contained in:
Anthony Minessale
2019-06-28 18:13:33 -05:00
committed by Andrey Volk
parent bc52339e68
commit eb31e17e6c
3 changed files with 101 additions and 19 deletions

View File

@@ -896,6 +896,35 @@ static int e_callback(void *pArg, int argc, char **argv, char **columnNames)
return 1;
}
#define native_eavesdrop_SYNTAX "<uuid> [read|write]"
SWITCH_STANDARD_APP(native_eavesdrop_function)
{
switch_eavesdrop_flag_t flags = ED_TAP_READ;
char *argv[2] = { 0 };
int argc = 0;
char *mydata;
if (zstr(data)) {
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, "INVALID ARGS usage (%s)\n", native_eavesdrop_SYNTAX);
return;
}
mydata = switch_core_session_strdup(session, data);
argc = switch_split(mydata, ' ', argv);
if (argc > 1) {
if (switch_stristr("read", argv[1])) {
flags |= ED_TAP_READ;
} else if (switch_stristr("write", argv[1])) {
flags |= ED_TAP_WRITE;
}
}
switch_ivr_eavesdrop_session(session, argv[0], NULL, flags);
}
#define eavesdrop_SYNTAX "[all | <uuid>]"
SWITCH_STANDARD_APP(eavesdrop_function)
{
@@ -6571,6 +6600,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_dptools_load)
SWITCH_ADD_APP(app_interface, "unblock_dtmf", "Stop blocking DTMF", "Stop blocking DTMF", dtmf_unblock_function, "", SAF_SUPPORT_NOMEDIA);
SWITCH_ADD_APP(app_interface, "intercept", "intercept", "intercept", intercept_function, INTERCEPT_SYNTAX, SAF_NONE);
SWITCH_ADD_APP(app_interface, "eavesdrop", "eavesdrop on a uuid", "eavesdrop on a uuid", eavesdrop_function, eavesdrop_SYNTAX, SAF_MEDIA_TAP);
SWITCH_ADD_APP(app_interface, "native_eavesdrop", "eavesdrop on a uuid", "eavesdrop on a uuid", native_eavesdrop_function, native_eavesdrop_SYNTAX, SAF_MEDIA_TAP);
SWITCH_ADD_APP(app_interface, "three_way", "three way call with a uuid", "three way call with a uuid", three_way_function, threeway_SYNTAX,
SAF_MEDIA_TAP);
SWITCH_ADD_APP(app_interface, "set_user", "Set a User", "Set a User", set_user_function, SET_USER_SYNTAX, SAF_SUPPORT_NOMEDIA | SAF_ROUTING_EXEC);