]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Skinny: hangup and hold calls in PROCEED state
authorMathieu Parent <math.parent@gmail.com>
Tue, 20 Jul 2010 20:42:04 +0000 (22:42 +0200)
committerMathieu Parent <math.parent@gmail.com>
Tue, 20 Jul 2010 20:43:56 +0000 (22:43 +0200)
as those CONNECTED

src/mod/endpoints/mod_skinny/mod_skinny.c
src/mod/endpoints/mod_skinny/skinny_server.c

index 335edaaa6ffc8c526be66a18891708b1cc6ec9bf..7062bd2e4c0b05a5f2aa16ac80ba9c9a0ff05884 100644 (file)
@@ -756,7 +756,7 @@ int channel_on_hangup_callback(void *pArg, int argc, char **argv, char **columnN
 
        skinny_profile_find_listener_by_device_name_and_instance(helper->tech_pvt->profile, device_name, device_instance, &listener);
        if(listener) {
-               if(call_state == SKINNY_CONNECTED) {
+               if((call_state == SKINNY_PROCEED) || (call_state == SKINNY_CONNECTED)) { /* calling parties */
                        send_stop_tone(listener, line_instance, call_id);
                }
                send_set_lamp(listener, SKINNY_BUTTON_LINE, line_instance, SKINNY_LAMP_OFF);
@@ -776,7 +776,7 @@ int channel_on_hangup_callback(void *pArg, int argc, char **argv, char **columnN
                        default:
                                send_display_prompt_status(listener, 0, switch_channel_cause2str(helper->cause), line_instance, call_id);
                }
-               if(call_state == SKINNY_CONNECTED) { /* calling parties */
+               if((call_state == SKINNY_PROCEED) || (call_state == SKINNY_CONNECTED)) { /* calling parties */
                        skinny_session_stop_media(helper->tech_pvt->session, listener, line_instance);
                }
 
index e3c112b53149a581ee45a7bf8e08693645e7105f..56decd0036b69602a0a2b84eaff65ebc457aab59 100644 (file)
@@ -898,8 +898,8 @@ switch_status_t skinny_hold_active_calls(listener_t *listener)
                                "ON skinny_active_lines.device_name = skinny_lines.device_name "
                                "AND skinny_active_lines.device_instance = skinny_lines.device_instance "
                                "AND skinny_active_lines.line_instance = skinny_lines.line_instance "
-                       "WHERE skinny_lines.device_name='%s' AND skinny_lines.device_instance=%d AND call_state=%d",
-                       listener->device_name, listener->device_instance, SKINNY_CONNECTED))) {
+                       "WHERE skinny_lines.device_name='%s' AND skinny_lines.device_instance=%d AND (call_state=%d OR call_state=%d)",
+                       listener->device_name, listener->device_instance, SKINNY_PROCEED, SKINNY_CONNECTED))) {
                skinny_execute_sql_callback(listener->profile, listener->profile->sql_mutex, sql, skinny_hold_active_calls_callback, &helper);
                switch_safe_free(sql);
        }