]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Skinny: MODSKINNY-12 (Cisco phone 7910 transfer button will not work)
authorMathieu Parent <math.parent@gmail.com>
Tue, 24 Aug 2010 20:13:44 +0000 (22:13 +0200)
committerMathieu Parent <math.parent@gmail.com>
Tue, 24 Aug 2010 20:13:44 +0000 (22:13 +0200)
src/mod/endpoints/mod_skinny/skinny_server.c
src/mod/endpoints/mod_skinny/skinny_tables.c
src/mod/endpoints/mod_skinny/skinny_tables.h

index 4de568b72c16f0726f5ebbe7b9a5f9909df40b70..4fca4108cbc13160ae72b7435745bc9b3a083ba1 100644 (file)
@@ -1202,6 +1202,13 @@ switch_status_t skinny_handle_stimulus_message(listener_t *listener, skinny_mess
                                status = skinny_session_hold_line(session, listener, line_instance);
                        }
                        break;
+               case SKINNY_BUTTON_TRANSFER:
+                       session = skinny_profile_find_session(listener->profile, listener, &line_instance, call_id);
+
+                       if(session) {
+                           status = skinny_session_transfer(session, listener, line_instance);
+                       }                       
+                       break;
                case SKINNY_BUTTON_VOICEMAIL:
                    skinny_create_incoming_session(listener, &line_instance, &session);
                        skinny_session_process_dest(session, listener, line_instance, "vmain", '\0', 0);
index d9f0aad0ef04734aa77f6152a89117477877e478..f76e84320e0d6194f3b4f5c6decd2c32f9d8dc63 100644 (file)
@@ -141,6 +141,7 @@ struct skinny_table SKINNY_BUTTONS[] = {
     {"LastNumberRedial", SKINNY_BUTTON_LAST_NUMBER_REDIAL},
     {"SpeedDial", SKINNY_BUTTON_SPEED_DIAL},
     {"Hold", SKINNY_BUTTON_HOLD},
+    {"Transfer", SKINNY_BUTTON_TRANSFER},
     {"Line", SKINNY_BUTTON_LINE},
     {"Voicemail", SKINNY_BUTTON_VOICEMAIL},
     {"Privacy", SKINNY_BUTTON_PRIVACY},
index 0b2c5442427a316ed5bdd6d38d1fcdf629efab7f..6c9182516e2173002ebe817836bd2a5f0cb029ac 100644 (file)
@@ -160,13 +160,14 @@ enum skinny_button_definition {
     SKINNY_BUTTON_LAST_NUMBER_REDIAL = 0x01,
     SKINNY_BUTTON_SPEED_DIAL = 0x02,
     SKINNY_BUTTON_HOLD = 0x03,
+    SKINNY_BUTTON_TRANSFER = 0x04,
     SKINNY_BUTTON_LINE = 0x09,
     SKINNY_BUTTON_VOICEMAIL = 0x0F,
     SKINNY_BUTTON_PRIVACY = 0x13,
     SKINNY_BUTTON_SERVICE_URL = 0x14,
     SKINNY_BUTTON_UNDEFINED = 0xFF,
 };
-extern struct skinny_table SKINNY_BUTTONS[10];
+extern struct skinny_table SKINNY_BUTTONS[11];
 const char *skinny_button2str(uint32_t id);
 uint32_t skinny_str2button(const char *str);
 #define SKINNY_PUSH_STIMULI SKINNY_DECLARE_PUSH_MATCH(SKINNY_BUTTONS)