mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-15 16:39:14 +00:00
fix regression from fix to last regression
This commit is contained in:
parent
8773fab490
commit
8f15bc7b45
@ -116,7 +116,7 @@ static void check_timeouts(void)
|
|||||||
switch_hash_this(i_hi, &i_var, NULL, &i_val);
|
switch_hash_this(i_hi, &i_var, NULL, &i_val);
|
||||||
i_ext = (char *) i_var;
|
i_ext = (char *) i_var;
|
||||||
token = (valet_token_t *) i_val;
|
token = (valet_token_t *) i_val;
|
||||||
if (token->timeout > 0 && token->timeout < now) {
|
if (token->timeout > 0 && (token->timeout < now || token->timeout == 1)) {
|
||||||
switch_core_hash_delete(lot->hash, i_ext);
|
switch_core_hash_delete(lot->hash, i_ext);
|
||||||
switch_safe_free(token);
|
switch_safe_free(token);
|
||||||
goto top;
|
goto top;
|
||||||
@ -164,7 +164,7 @@ SWITCH_STANDARD_APP(valet_parking_function)
|
|||||||
char dtmf_buf[128] = "";
|
char dtmf_buf[128] = "";
|
||||||
int is_auto = 0, play_announce = 1;
|
int is_auto = 0, play_announce = 1;
|
||||||
const char *var;
|
const char *var;
|
||||||
valet_token_t *token;
|
valet_token_t *token = NULL;
|
||||||
|
|
||||||
if ((var = switch_channel_get_variable(channel, "valet_announce_slot"))) {
|
if ((var = switch_channel_get_variable(channel, "valet_announce_slot"))) {
|
||||||
play_announce = switch_true(var);
|
play_announce = switch_true(var);
|
||||||
@ -279,6 +279,7 @@ SWITCH_STANDARD_APP(valet_parking_function)
|
|||||||
if (!zstr(var)) {
|
if (!zstr(var)) {
|
||||||
if (!strcmp(var, token->uuid)) {
|
if (!strcmp(var, token->uuid)) {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Valet ticket %s accepted.\n", var);
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Valet ticket %s accepted.\n", var);
|
||||||
|
token->timeout = 0;
|
||||||
switch_channel_set_variable(channel, "valet_ticket", NULL);
|
switch_channel_set_variable(channel, "valet_ticket", NULL);
|
||||||
} else {
|
} else {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid token %s\n", token->uuid);
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid token %s\n", token->uuid);
|
||||||
@ -319,7 +320,6 @@ SWITCH_STANDARD_APP(valet_parking_function)
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch_zmalloc(token, sizeof(*token));
|
switch_zmalloc(token, sizeof(*token));
|
||||||
token->timeout = switch_epoch_time_now(NULL) + 10;
|
|
||||||
switch_set_string(token->uuid, switch_core_session_get_uuid(session));
|
switch_set_string(token->uuid, switch_core_session_get_uuid(session));
|
||||||
switch_core_hash_insert(lot->hash, ext, token);
|
switch_core_hash_insert(lot->hash, ext, token);
|
||||||
|
|
||||||
@ -335,15 +335,15 @@ SWITCH_STANDARD_APP(valet_parking_function)
|
|||||||
switch_core_session_t *b_session;
|
switch_core_session_t *b_session;
|
||||||
|
|
||||||
if ((b_session = switch_core_session_locate(uuid))) {
|
if ((b_session = switch_core_session_locate(uuid))) {
|
||||||
|
token->timeout = switch_epoch_time_now(NULL) + 10;
|
||||||
if (play_announce) {
|
if (play_announce) {
|
||||||
switch_ivr_phrase_macro(session, "valet_announce_ext", tmp, NULL, NULL);
|
switch_ivr_phrase_macro(session, "valet_announce_ext", tmp, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch_ivr_session_transfer(b_session, dest, "inline", NULL);
|
switch_ivr_session_transfer(b_session, dest, "inline", NULL);
|
||||||
switch_mutex_unlock(lot->mutex);
|
switch_mutex_unlock(lot->mutex);
|
||||||
switch_core_session_rwunlock(b_session);
|
switch_core_session_rwunlock(b_session);
|
||||||
switch_channel_hangup(channel, SWITCH_CAUSE_NORMAL_CLEARING);
|
switch_channel_hangup(channel, SWITCH_CAUSE_NORMAL_CLEARING);
|
||||||
return;
|
goto end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -388,6 +388,13 @@ SWITCH_STANDARD_APP(valet_parking_function)
|
|||||||
} else {
|
} else {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Usage: %s\n", VALET_APP_SYNTAX);
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Usage: %s\n", VALET_APP_SYNTAX);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
end:
|
||||||
|
|
||||||
|
if (token) {
|
||||||
|
token->timeout = 1;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SWITCH_STANDARD_API(valet_info_function)
|
SWITCH_STANDARD_API(valet_info_function)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user