diff --git a/conf/directory/default/skinny-example.xml b/conf/directory/default/skinny-example.xml
index 2f19710136..8a61ae5be5 100644
--- a/conf/directory/default/skinny-example.xml
+++ b/conf/directory/default/skinny-example.xml
@@ -3,6 +3,7 @@
diff --git a/src/mod/endpoints/mod_skinny/mod_skinny.h b/src/mod/endpoints/mod_skinny/mod_skinny.h
index 99b52b6fb8..3dec3e9abb 100644
--- a/src/mod/endpoints/mod_skinny/mod_skinny.h
+++ b/src/mod/endpoints/mod_skinny/mod_skinny.h
@@ -135,6 +135,7 @@ struct listener {
uint32_t device_type;
char firmware_version[16];
+ char *default_soft_key_set_set;
switch_socket_t *sock;
switch_memory_pool_t *pool;
diff --git a/src/mod/endpoints/mod_skinny/skinny_server.c b/src/mod/endpoints/mod_skinny/skinny_server.c
index de4fdbd1cc..7325a6cb5f 100644
--- a/src/mod/endpoints/mod_skinny/skinny_server.c
+++ b/src/mod/endpoints/mod_skinny/skinny_server.c
@@ -999,6 +999,8 @@ switch_status_t skinny_handle_register(listener_t *listener, skinny_message_t *r
const char *value = switch_xml_attr_soft(xparam, "value");
if (!strcasecmp(name, "skinny-firmware-version")) {
strncpy(listener->firmware_version, value, 16);
+ } else if (!strcasecmp(name, "skinny-default-soft-key-set-set")) {
+ listener->default_soft_key_set_set = switch_core_strdup(profile->pool, value);
}
}
}
@@ -1693,14 +1695,19 @@ end:
switch_status_t skinny_handle_soft_key_set_request(listener_t *listener, skinny_message_t *request)
{
- skinny_message_t *message;
+ skinny_message_t *message = NULL;
- message = switch_core_hash_find(listener->profile->soft_key_set_sets_hash, "default");
+ if (listener->default_soft_key_set_set) {
+ message = switch_core_hash_find(listener->profile->soft_key_set_sets_hash, listener->default_soft_key_set_set);
+ }
+ if (!message) {
+ message = switch_core_hash_find(listener->profile->soft_key_set_sets_hash, "default");
+ }
if (message) {
skinny_send_reply(listener, message);
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR,
- "Profile %s doesn't have a default . Profile ignored.\n", listener->profile->name);
+ "Profile %s doesn't have a default .\n", listener->profile->name);
}
/* Init the states */