提交 7f76b67f authored 作者: Anthony Minessale's avatar Anthony Minessale

FS-4191 --resolve

上级 ffc4c83b
...@@ -1212,6 +1212,7 @@ typedef enum { ...@@ -1212,6 +1212,7 @@ typedef enum {
CF_ZRTP_HASH, CF_ZRTP_HASH,
CF_ZRTP_PASS, CF_ZRTP_PASS,
CF_CHANNEL_SWAP, CF_CHANNEL_SWAP,
CF_PICKUP,
/* WARNING: DO NOT ADD ANY FLAGS BELOW THIS LINE */ /* WARNING: DO NOT ADD ANY FLAGS BELOW THIS LINE */
/* IF YOU ADD NEW ONES CHECK IF THEY SHOULD PERSIST OR ZERO THEM IN switch_core_session.c switch_core_session_request_xml() */ /* IF YOU ADD NEW ONES CHECK IF THEY SHOULD PERSIST OR ZERO THEM IN switch_core_session.c switch_core_session_request_xml() */
CF_FLAG_MAX CF_FLAG_MAX
......
...@@ -3490,6 +3490,7 @@ static switch_call_cause_t pickup_outgoing_channel(switch_core_session_t *sessio ...@@ -3490,6 +3490,7 @@ static switch_call_cause_t pickup_outgoing_channel(switch_core_session_t *sessio
switch_channel_set_name(nchannel, name); switch_channel_set_name(nchannel, name);
switch_channel_set_variable(nchannel, "process_cdr", "false"); switch_channel_set_variable(nchannel, "process_cdr", "false");
pickup_add_session(nsession, pickup); pickup_add_session(nsession, pickup);
switch_channel_set_flag(nchannel, CF_PICKUP);
goto done; goto done;
......
...@@ -429,6 +429,7 @@ static uint8_t check_channel_status(originate_global_t *oglobals, originate_stat ...@@ -429,6 +429,7 @@ static uint8_t check_channel_status(originate_global_t *oglobals, originate_stat
char bug_key[256] = ""; char bug_key[256] = "";
int send_ringback = 0; int send_ringback = 0;
uint8_t ring_ready_val = 0; uint8_t ring_ready_val = 0;
int pickups = 0;
oglobals->hups = 0; oglobals->hups = 0;
oglobals->idx = IDX_NADA; oglobals->idx = IDX_NADA;
...@@ -462,6 +463,11 @@ static uint8_t check_channel_status(originate_global_t *oglobals, originate_stat ...@@ -462,6 +463,11 @@ static uint8_t check_channel_status(originate_global_t *oglobals, originate_stat
} }
} }
if (originate_status[i].peer_channel && switch_channel_test_flag(originate_status[i].peer_channel, CF_PICKUP)) {
pickups++;
}
if (!(originate_status[i].peer_channel && originate_status[i].peer_session)) { if (!(originate_status[i].peer_channel && originate_status[i].peer_session)) {
oglobals->hups++; oglobals->hups++;
continue; continue;
...@@ -719,7 +725,7 @@ static uint8_t check_channel_status(originate_global_t *oglobals, originate_stat ...@@ -719,7 +725,7 @@ static uint8_t check_channel_status(originate_global_t *oglobals, originate_stat
} }
} }
if (oglobals->hups == len) { if (oglobals->hups + pickups == len) {
rval = 0; rval = 0;
} else { } else {
rval = 1; rval = 1;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论