diff --git a/src/mod/endpoints/mod_skinny/conf/skinny_profiles/internal.xml b/src/mod/endpoints/mod_skinny/conf/skinny_profiles/internal.xml index 39ce60fe4a..74cb86701b 100644 --- a/src/mod/endpoints/mod_skinny/conf/skinny_profiles/internal.xml +++ b/src/mod/endpoints/mod_skinny/conf/skinny_profiles/internal.xml @@ -14,6 +14,7 @@ + diff --git a/src/mod/endpoints/mod_skinny/mod_skinny.c b/src/mod/endpoints/mod_skinny/mod_skinny.c index dc83c47294..18b0f3c3f5 100644 --- a/src/mod/endpoints/mod_skinny/mod_skinny.c +++ b/src/mod/endpoints/mod_skinny/mod_skinny.c @@ -171,6 +171,7 @@ switch_status_t skinny_profile_dump(const skinny_profile_t *profile, switch_stre stream->write_function(stream, "Listener-Threads \t%d\n", profile->listener_threads); stream->write_function(stream, "Ext-Voicemail \t%s\n", profile->ext_voicemail); stream->write_function(stream, "Ext-Redial \t%s\n", profile->ext_redial); + stream->write_function(stream, "Ext-MeetMe \t%s\n", profile->ext_meetme); stream->write_function(stream, "%s\n", line); return SWITCH_STATUS_SUCCESS; @@ -1864,6 +1865,10 @@ switch_status_t skinny_profile_set(skinny_profile_t *profile, const char *var, c if (!profile->ext_redial || strcmp(val, profile->ext_redial)) { profile->ext_redial = switch_core_strdup(profile->pool, val); } + } else if (!strcasecmp(var, "ext-meetme")) { + if (!profile->ext_meetme || strcmp(val, profile->ext_meetme)) { + profile->ext_meetme = switch_core_strdup(profile->pool, val); + } } else { return SWITCH_STATUS_FALSE; } @@ -1956,6 +1961,10 @@ static switch_status_t load_skinny_config(void) skinny_profile_set(profile, "ext-redial", "redial"); } + if (!profile->ext_meetme) { + skinny_profile_set(profile, "ext-meetme", "conference"); + } + if (profile->port == 0) { profile->port = 2000; } diff --git a/src/mod/endpoints/mod_skinny/mod_skinny.h b/src/mod/endpoints/mod_skinny/mod_skinny.h index d8ed1b03bf..39faed4388 100644 --- a/src/mod/endpoints/mod_skinny/mod_skinny.h +++ b/src/mod/endpoints/mod_skinny/mod_skinny.h @@ -117,6 +117,7 @@ struct skinny_profile { /* extensions */ char *ext_voicemail; char *ext_redial; + char *ext_meetme; /* db */ char *dbname; char *odbc_dsn; diff --git a/src/mod/endpoints/mod_skinny/skinny_api.c b/src/mod/endpoints/mod_skinny/skinny_api.c index 604b8509f7..94318c8de0 100644 --- a/src/mod/endpoints/mod_skinny/skinny_api.c +++ b/src/mod/endpoints/mod_skinny/skinny_api.c @@ -233,6 +233,7 @@ static switch_status_t skinny_api_list_settings(const char *line, const char *cu switch_console_push_match(&my_matches, "auto-restart"); switch_console_push_match(&my_matches, "ext-voicemail"); switch_console_push_match(&my_matches, "ext-redial"); + switch_console_push_match(&my_matches, "ext-meetme"); if (my_matches) { *matches = my_matches; diff --git a/src/mod/endpoints/mod_skinny/skinny_server.c b/src/mod/endpoints/mod_skinny/skinny_server.c index 95d486d3e0..f2d8eb8abe 100644 --- a/src/mod/endpoints/mod_skinny/skinny_server.c +++ b/src/mod/endpoints/mod_skinny/skinny_server.c @@ -76,7 +76,7 @@ uint32_t soft_key_template_default_events[] = { SOFTKEY_CONF, SOFTKEY_PARK, SOFTKEY_JOIN, - SOFTKEY_MEETMECONF, + SOFTKEY_MEETME, SOFTKEY_CALLPICKUP, SOFTKEY_GRPCALLPICKUP, SOFTKEY_DND, @@ -1929,6 +1929,10 @@ switch_status_t skinny_handle_soft_key_event_message(listener_t *listener, skinn } } break; + case SOFTKEY_MEETME: + skinny_create_incoming_session(listener, &line_instance, &session); + skinny_session_process_dest(session, listener, line_instance, listener->profile->ext_meetme, '\0', 0); + break; default: switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Unknown SoftKeyEvent type: %d.\n", request->data.soft_key_event.event); diff --git a/src/mod/endpoints/mod_skinny/skinny_tables.c b/src/mod/endpoints/mod_skinny/skinny_tables.c index 9f04f8cd63..ea29918cbb 100644 --- a/src/mod/endpoints/mod_skinny/skinny_tables.c +++ b/src/mod/endpoints/mod_skinny/skinny_tables.c @@ -239,7 +239,7 @@ SKINNY_DECLARE_STR2ID(skinny_str2button, SKINNY_BUTTONS, -1) {SOFTKEY_CONF, "SoftkeyConf"}, {SOFTKEY_PARK, "SoftkeyPark"}, {SOFTKEY_JOIN, "SoftkeyJoin"}, - {SOFTKEY_MEETMECONF, "SoftkeyMeetmeconfrm"}, + {SOFTKEY_MEETME, "SoftkeyMeetme"}, {SOFTKEY_CALLPICKUP, "SoftkeyCallpickup"}, {SOFTKEY_GRPCALLPICKUP, "SoftkeyGrpcallpickup"}, {SOFTKEY_DND, "SoftkeyDnd"}, diff --git a/src/mod/endpoints/mod_skinny/skinny_tables.h b/src/mod/endpoints/mod_skinny/skinny_tables.h index 1e35a7d208..647837f212 100644 --- a/src/mod/endpoints/mod_skinny/skinny_tables.h +++ b/src/mod/endpoints/mod_skinny/skinny_tables.h @@ -192,7 +192,7 @@ enum skinny_soft_key_event { SOFTKEY_CONF = 0x0D, SOFTKEY_PARK = 0x0E, SOFTKEY_JOIN = 0x0F, - SOFTKEY_MEETMECONF = 0x10, + SOFTKEY_MEETME = 0x10, SOFTKEY_CALLPICKUP = 0x11, SOFTKEY_GRPCALLPICKUP = 0x12, SOFTKEY_DND = 0x13,