Add skinny device kill api command
This commit is contained in:
parent
1b0375371a
commit
45d33b02e9
|
@ -1378,7 +1378,7 @@ static void close_socket(switch_socket_t **sock, skinny_profile_t *profile)
|
|||
switch_mutex_unlock(profile->sock_mutex);
|
||||
}
|
||||
|
||||
static switch_status_t kill_listener(listener_t *listener, void *pvt)
|
||||
switch_status_t kill_listener(listener_t *listener, void *pvt)
|
||||
{
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Killing listener %s:%d.\n",
|
||||
listener->device_name, listener->device_instance);
|
||||
|
|
|
@ -243,6 +243,7 @@ switch_bool_t skinny_execute_sql_callback(skinny_profile_t *profile,
|
|||
/* LISTENER FUNCTIONS */
|
||||
/*****************************************************************************/
|
||||
uint8_t listener_is_ready(listener_t *listener);
|
||||
switch_status_t kill_listener(listener_t *listener, void *pvt);
|
||||
switch_status_t keepalive_listener(listener_t *listener, void *pvt);
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -268,6 +268,26 @@ static switch_status_t skinny_api_cmd_status_profile_device(const char *profile_
|
|||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t skinny_api_cmd_profile_device_kill(const char *profile_name, const char *device_name, switch_stream_handle_t *stream)
|
||||
{
|
||||
skinny_profile_t *profile;
|
||||
|
||||
if ((profile = skinny_find_profile(profile_name))) {
|
||||
listener_t *listener = NULL;
|
||||
skinny_profile_find_listener_by_device_name(profile, device_name, &listener);
|
||||
if(listener) {
|
||||
kill_listener(listener, NULL);
|
||||
stream->write_function(stream, "+OK\n");
|
||||
} else {
|
||||
stream->write_function(stream, "Listener not found!\n");
|
||||
}
|
||||
} else {
|
||||
stream->write_function(stream, "Profile not found!\n");
|
||||
}
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t skinny_api_cmd_profile_device_send_ringer_message(const char *profile_name, const char *device_name, const char *ring_type, const char *ring_mode, switch_stream_handle_t *stream)
|
||||
{
|
||||
skinny_profile_t *profile;
|
||||
|
@ -491,6 +511,9 @@ SWITCH_STANDARD_API(skinny_function)
|
|||
} else if (argc == 5 && !strcasecmp(argv[0], "status") && !strcasecmp(argv[1], "profile") && !strcasecmp(argv[3], "device")) {
|
||||
/* skinny status profile <profile_name> device <device_name> */
|
||||
status = skinny_api_cmd_status_profile_device(argv[2], argv[4], stream);
|
||||
} else if (argc == 5 && !strcasecmp(argv[0], "profile") && !strcasecmp(argv[2], "device") && !strcasecmp(argv[4], "kill")) {
|
||||
/* skinny profile <profile_name> device <device_name> kill */
|
||||
status = skinny_api_cmd_profile_device_kill(argv[1],argv[3],stream);
|
||||
} else if (argc >= 6 && !strcasecmp(argv[0], "profile") && !strcasecmp(argv[2], "device") && !strcasecmp(argv[4], "send")) {
|
||||
/* skinny profile <profile_name> device <device_name> send ... */
|
||||
switch(skinny_str2message_type(argv[5])) {
|
||||
|
@ -559,6 +582,8 @@ switch_status_t skinny_api_register(switch_loadable_module_interface_t **module_
|
|||
switch_console_set_complete("add skinny status profile ::skinny::list_profiles");
|
||||
switch_console_set_complete("add skinny status profile ::skinny::list_profiles device ::skinny::list_devices");
|
||||
|
||||
switch_console_set_complete("add skinny profile ::skinny::list_profiles device ::skinny::list_devices kill");
|
||||
|
||||
switch_console_set_complete("add skinny profile ::skinny::list_profiles device ::skinny::list_devices send ResetMessage ::skinny::list_reset_types");
|
||||
switch_console_set_complete("add skinny profile ::skinny::list_profiles device ::skinny::list_devices send SetRingerMessage ::skinny::list_ring_types ::skinny::list_ring_modes");
|
||||
switch_console_set_complete("add skinny profile ::skinny::list_profiles device ::skinny::list_devices send SetLampMessage ::skinny::list_stimuli ::skinny::list_stimulus_instances ::skinny::list_stimulus_modes");
|
||||
|
|
Loading…
Reference in New Issue