[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