SWITCH_DECLARE(switch_api_interface *) loadable_module_get_api_interface(char *name);
SWITCH_DECLARE(int) loadable_module_get_codecs(switch_memory_pool *pool, switch_codec_interface **array, int arraylen);
SWITCH_DECLARE(int) loadable_module_get_codecs_sorted(switch_memory_pool *pool, switch_codec_interface **array, int arraylen, char **prefs, int preflen);
+SWITCH_DECLARE(switch_status) switch_api_execute(char *cmd, char *arg, char *retbuf, size_t len);
SWITCH_DECLARE(void) loadable_module_shutdown(void);
#ifdef __cplusplus
int on_msg (void *user_data, ikspak *pak)
{
- switch_api_interface *api;
+ switch_event *event;
char *cmd = iks_find_cdata (pak->x, "body");
char *arg = NULL;
- switch_event *event;
- char retbuf[512] = "";
+ char retbuf[1024] = "";
char *p;
if ((p = strchr(cmd, '\r'))) {
if ((arg = strchr(cmd, ' '))) {
*arg++ = '\0';
}
- if (arg && (p = strchr(arg, '\r'))) {
- *p++ = '\0';
- } else if ((p = strchr(cmd, '\n'))) {
- *p++ = '\0';
- }
- if ((api = loadable_module_get_api_interface(cmd))) {
- api->function(arg, retbuf, sizeof(retbuf));
- } else {
- snprintf(retbuf, sizeof(retbuf), "INVALID COMMAND [%s]", cmd);
- }
+ switch_api_execute(cmd, arg, retbuf, sizeof(retbuf));
if (switch_event_create(&event, SWITCH_EVENT_API) == SWITCH_STATUS_SUCCESS) {
if (cmd) {
static int switch_console_process(char *cmd)
{
-switch_api_interface *api;
char *arg = NULL;
+ char retbuf[1024] = "";
#ifdef EMBED_PERL
const char *perlhelp = "perl - execute some perl. (print to STDERR if you want to see it.)\n";
}
- if ((api = loadable_module_get_api_interface(cmd))) {
- char retbuf[512] = "";
- api->function(arg, retbuf, sizeof(retbuf));
- switch_console_printf(SWITCH_CHANNEL_CONSOLE_CLEAN, "API CALL [%s(%s)] output:\n%s\n", cmd, arg ? arg : "", retbuf);
- return 1;
- }
-
-
#ifdef EMBED_PERL
if (!strncmp(cmd, "perl ", 5)) {
cmd += 5;
return 1;
}
#endif
- switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Unknown Command: %s\n", cmd);
+
+ if (switch_api_execute(cmd, arg, retbuf, sizeof(retbuf)) == SWITCH_STATUS_SUCCESS) {
+ switch_console_printf(SWITCH_CHANNEL_CONSOLE_CLEAN, "API CALL [%s(%s)] output:\n%s\n", cmd, arg ? arg : "", retbuf);
+ } else {
+ switch_console_printf(SWITCH_CHANNEL_CONSOLE, "Unknown Command: %s\n", cmd);
+ }
return 1;
}
return i;
}
+
+SWITCH_DECLARE(switch_status) switch_api_execute(char *cmd, char *arg, char *retbuf, size_t len)
+{
+ switch_api_interface *api;
+
+ if ((api = loadable_module_get_api_interface(cmd))) {
+ api->function(arg, retbuf, len);
+ } else {
+ snprintf(retbuf, len, "INVALID COMMAND [%s]", cmd);
+ return SWITCH_STATUS_FALSE;
+ }
+
+ return SWITCH_STATUS_SUCCESS;
+}