func_shutdown_non_register = function () {
            if (b_has_non_register_dialogs) {
                do {
                    if ((This.o_layer_dialog.ao_dialogs.length <= i_register_dialogs_count)) {
                        setTimeout(func_shutdown_register, 1); // success: move to next
                        return;
                    }
                    if ((new Date() - o_date_start) >= i_timeout_non_register) {
                        setTimeout(func_shutdown_register, 1); // timeout: move to next
                        return;
                    }
                }
                while (false);
            }

            setTimeout(func_shutdown_non_register, 1); // again
        }
Stops the SIP stack. Feedbacks will be reported to @ref on_event_stack callback function
@tparam int i_timeout Optional parameter used to defined maximum time in milliseconds to take to stop the stack. 
Default value: 2000 millis
@treturn int 0 if succeed and non-zero value otherwise