} else { if ($_POST['COMMAND'] == 'readyTransfer') { $_POST['PARAMS'] = CUtil::JsObjectToPhp($_POST['PARAMS']); CVoxImplantTransfer::Ready($_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']); } else { if ($_POST['COMMAND'] == 'timeoutTransfer') { $_POST['PARAMS'] = CUtil::JsObjectToPhp($_POST['PARAMS']); CVoxImplantTransfer::Timeout($_POST['PARAMS']['CALL_ID']); } } } } } } }
} else { if ($params["COMMAND"] == "IncomingInvite") { $result = CVoxImplantIncoming::Init(array('SEARCH_ID' => $params['PHONE_NUMBER'], 'CALL_ID' => $params['CALL_ID'], 'CALLER_ID' => $params['CALLER_ID'], 'DIRECT_CODE' => $params['DIRECT_CODE'], 'ACCESS_URL' => $params['ACCESS_URL'])); CVoxImplantHistory::WriteToLog($result, 'INCOMING INVITE: ANSWER'); echo json_encode($result); } else { if ($params["COMMAND"] == "FailAnswer") { CVoxImplantMain::SendPullEvent(array('COMMAND' => 'timeout', 'USER_ID' => $params['USER_ID'], 'CALL_ID' => $params['CALL_ID'], 'MARK' => 'timeout_hit_1')); echo json_encode(array('result' => 'OK')); } else { if ($params["COMMAND"] == "TransferTimeout") { CVoxImplantTransfer::Timeout($params['CALL_ID']); echo json_encode(array('result' => 'OK')); } else { if ($params["COMMAND"] == "TransferCancel") { CVoxImplantTransfer::Decline($params['CALL_ID'], false); echo json_encode(array('result' => 'OK')); } else { if ($params["COMMAND"] == "TransferComplete") { CVoxImplantTransfer::Complete($params['CALL_ID'], $params['CALL_DEVICE']); echo json_encode(array('result' => 'OK')); } else { if ($params["COMMAND"] == "StartCall") { CVoxImplantMain::CallStart($params['CALL_ID'], $params['USER_ID'], $params['CALL_DEVICE'], $params['EXTERNAL'] == 'Y'); $res = Bitrix\Voximplant\CallTable::getList(array('filter' => array('=CALL_ID' => $params['CALL_ID']))); if ($call = $res->fetch()) { if ($call['PORTAL_USER_ID'] <= 0) { $res = Bitrix\Voximplant\QueueTable::getList(array('filter' => array('=CONFIG_ID' => $call['CONFIG_ID']))); while ($queue = $res->fetch()) { if ($params['USER_ID'] == $queue['USER_ID'] || $call['PORTAL_USER_ID'] == $queue['USER_ID']) { continue;