Would it be posible to add a uuid_send_dtmf
API? I coded one copying from another API, it works, but I’m not sure if it’s
the correct way of doing it (freeing memory, calling functions, etc), anyway I
would like it if uuid_send_dtmf is added to the trunk.
Here’s the code:
#define
UUID_SEND_DTMF_SYNTAX "<uuid>
<dtmf_data>"
SWITCH_STANDARD_API(uuid_send_dtmf_function)
{
switch_core_session_t
*psession = NULL;
char *mycmd = NULL, *argv[2] = { 0 };
char *uuid = NULL, *dtmf_data = NULL;
int argc = 0;
if (session) {
return SWITCH_STATUS_FALSE;
}
if (switch_strlen_zero(cmd)) {
goto usage;
}
if (!(mycmd = strdup(cmd))) {
goto usage;
}
if ((argc = switch_separate_string(mycmd, ' ', argv, (sizeof(argv)
/ sizeof(argv[0])))) < 2) {
goto usage;
}
uuid = argv[0];
dtmf_data = argv[1];
if (switch_strlen_zero(uuid) ||
switch_strlen_zero(dtmf_data)) {
goto usage;
}
if (!(psession = switch_core_session_locate(uuid))) {
stream->write_function(stream,
"-ERR Cannot locate session!\n");
return SWITCH_STATUS_SUCCESS;
}
switch_core_session_send_dtmf_string(psession,
(const char *)
dtmf_data);
goto done;
usage:
stream->write_function(stream,
"-USAGE: %s\n",
UUID_SEND_DTMF_SYNTAX);
switch_safe_free(mycmd);
done:
if (psession) {
switch_core_session_rwunlock(psession);
}
switch_safe_free(mycmd);
return SWITCH_STATUS_SUCCESS;
}
And on SWITCH_MODULE_LOAD_FUNCTION(mod_commands_load)
I added:
SWITCH_ADD_API(commands_api_interface,
"uuid_send_dtmf", "send dtmf digits",
uuid_send_dtmf_function, UUID_SEND_DTMF_SYNTAX);
Thanks.
Cesar Cepeda.