diff --git a/src/mod/endpoints/mod_skinny/conf/directory/default/skinny-example.xml b/src/mod/endpoints/mod_skinny/conf/directory/default/skinny-example.xml
index c51b5ce9cf..9227a7e7f7 100644
--- a/src/mod/endpoints/mod_skinny/conf/directory/default/skinny-example.xml
+++ b/src/mod/endpoints/mod_skinny/conf/directory/default/skinny-example.xml
@@ -7,6 +7,7 @@
     <param name="ext-voicemail" value="voicemail">
     <param name="ext-redial" value="redial">
     <param name="ext-meetme" value="conference">
+    <param name="ext-autodial" value="operator">
     -->
 
     <!-- if you define an extension that runs 'pickup' application with 'key' as the data
diff --git a/src/mod/endpoints/mod_skinny/mod_skinny.h b/src/mod/endpoints/mod_skinny/mod_skinny.h
index 09641452ce..60616020cf 100644
--- a/src/mod/endpoints/mod_skinny/mod_skinny.h
+++ b/src/mod/endpoints/mod_skinny/mod_skinny.h
@@ -203,6 +203,7 @@ struct listener {
 	char *ext_meetme;
 	char *ext_pickup;
 	char *ext_cfwdall;
+	char *ext_autodial;
 };
 
 typedef struct listener listener_t;
diff --git a/src/mod/endpoints/mod_skinny/skinny_server.c b/src/mod/endpoints/mod_skinny/skinny_server.c
index af73b1978a..897e57fd45 100644
--- a/src/mod/endpoints/mod_skinny/skinny_server.c
+++ b/src/mod/endpoints/mod_skinny/skinny_server.c
@@ -285,7 +285,15 @@ switch_status_t skinny_session_process_dest(switch_core_session_t *session, list
 	channel = switch_core_session_get_channel(session);
 	tech_pvt = switch_core_session_get_private(session);
 
-	if (!dest) {
+	// get listener profile setting for ringdown/autodial
+	// if initial offhook - and we have a ringdown/autodial configured, just dial it in one shot
+	if (!dest && append_dest == '\0' && listener->ext_autodial ) {
+		switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, 
+			"triggering auto dial to (%s)\n", listener->ext_autodial);
+
+		tech_pvt->caller_profile->destination_number = switch_core_strdup(tech_pvt->caller_profile->pool, listener->ext_autodial);
+		switch_set_flag_locked(tech_pvt, TFLAG_FORCE_ROUTE);
+	} else if (!dest) {
 		if (strlen(tech_pvt->caller_profile->destination_number) == 0) {/* no digit yet */
 			send_start_tone(listener, SKINNY_TONE_DIALTONE, 0, line_instance, tech_pvt->call_id);
 		}
@@ -1128,6 +1136,10 @@ switch_status_t skinny_handle_register(listener_t *listener, skinny_message_t *r
 					if (!listener->ext_cfwdall || strcmp(value,listener->ext_cfwdall)) {
 						listener->ext_cfwdall = switch_core_strdup(profile->pool, value);
 					}
+				} else if (!strcasecmp(name, "ext-autodial")) {
+					if (!listener->ext_autodial || strcmp(value,listener->ext_autodial)) {
+						listener->ext_autodial = switch_core_strdup(profile->pool, value);
+					}
 				}
 			}
 		}