} else { if ($params["COMMAND"] == "HangupCall") { $res = Bitrix\Voximplant\CallTable::getList(array('filter' => array('=CALL_ID' => $params['CALL_ID']))); $userTimeout = array(); if ($call = $res->fetch()) { $res = Bitrix\Voximplant\QueueTable::getList(array('filter' => array('=CONFIG_ID' => $call['CONFIG_ID']))); while ($queue = $res->fetch()) { if ($call['TRANSFER_USER_ID'] == $queue['USER_ID']) { continue; } $userTimeout[$queue['USER_ID']] = true; CVoxImplantMain::SendPullEvent(array('COMMAND' => 'timeout', 'USER_ID' => $queue['USER_ID'], 'CALL_ID' => $call['CALL_ID'], 'MARK' => 'timeout_hit_3')); } if ($call['TRANSFER_USER_ID'] > 0) { $userTimeout[$call['TRANSFER_USER_ID']] = true; CVoxImplantTransfer::SendPullEvent(array('COMMAND' => 'timeoutTransfer', 'USER_ID' => $call['TRANSFER_USER_ID'], 'CALL_ID' => $call['CALL_ID'])); } if ($call['PORTAL_USER_ID'] > 0 && !$userTimeout[$call['PORTAL_USER_ID']]) { $userTimeout[$call['PORTAL_USER_ID']] = true; CVoxImplantMain::SendPullEvent(array('COMMAND' => 'timeout', 'USER_ID' => $call['PORTAL_USER_ID'], 'CALL_ID' => $call['CALL_ID'], 'MARK' => 'timeout_hit_4')); } if ($call['USER_ID'] > 0 && !$userTimeout[$call['USER_ID']]) { CVoxImplantMain::SendPullEvent(array('COMMAND' => 'timeout', 'USER_ID' => $call['USER_ID'], 'CALL_ID' => $call['CALL_ID'], 'MARK' => 'timeout_hit_5')); } } else { CVoxImplantMain::SendPullEvent(array('COMMAND' => 'timeout', 'USER_ID' => $params['USER_ID'], 'CALL_ID' => $params['CALL_ID'], 'MARK' => 'timeout_hit_6')); } CVoxImplantHistory::WriteToLog($call, 'PORTAL HANGUP'); echo json_encode(array('result' => 'OK')); } else { if ($params["COMMAND"] == "GetNextAction") {
} else { if ($_POST['COMMAND'] == 'waitTransfer') { $_POST['PARAMS'] = CUtil::JsObjectToPhp($_POST['PARAMS']); CVoxImplantTransfer::Wait($_POST['PARAMS']['CALL_ID']); } else { if ($_POST['COMMAND'] == 'declineTransfer') { $_POST['PARAMS'] = CUtil::JsObjectToPhp($_POST['PARAMS']); CVoxImplantTransfer::Decline($_POST['PARAMS']['CALL_ID']); } else { if ($_POST['COMMAND'] == 'cancelTransfer') { $_POST['PARAMS'] = CUtil::JsObjectToPhp($_POST['PARAMS']); CVoxImplantTransfer::Cancel($_POST['PARAMS']['CALL_ID']); } else { if ($_POST['COMMAND'] == 'timeoutTransfer') { $_POST['PARAMS'] = CUtil::JsObjectToPhp($_POST['PARAMS']); CVoxImplantTransfer::Timeout($_POST['PARAMS']['CALL_ID']); } } } } } } } } } } } } } } }
} else { if ($_POST['COMMAND'] == 'answerTransfer') { $_POST['PARAMS'] = CUtil::JsObjectToPhp($_POST['PARAMS']); CVoxImplantTransfer::Answer($_POST['PARAMS']['CALL_ID']); } else { if ($_POST['COMMAND'] == 'waitTransfer') { $_POST['PARAMS'] = CUtil::JsObjectToPhp($_POST['PARAMS']); CVoxImplantTransfer::Wait($_POST['PARAMS']['CALL_ID']); } else { if ($_POST['COMMAND'] == 'declineTransfer') { $_POST['PARAMS'] = CUtil::JsObjectToPhp($_POST['PARAMS']); CVoxImplantTransfer::Decline($_POST['PARAMS']['CALL_ID']); } else { if ($_POST['COMMAND'] == 'cancelTransfer') { $_POST['PARAMS'] = CUtil::JsObjectToPhp($_POST['PARAMS']); CVoxImplantTransfer::Cancel($_POST['PARAMS']['CALL_ID']); } } } } } } } } } } } } } } }