[Freeswitch-users] uuid_send_dtmf
Cesar Cepeda
cesar at auronix.com
Wed Jul 16 09:49:53 PDT 2008
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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20080716/2c03035a/attachment-0002.html
More information about the FreeSWITCH-users
mailing list