$ViMain->ClearUserInfo(); $ViMain->ClearAccountInfo(); } else { if ($_POST['COMMAND'] == 'init') { $ViMain = new CVoxImplantMain($userId); $result = $ViMain->GetDialogInfo($_POST['NUMBER']); if ($result) { echo CUtil::PhpToJsObject(array('DIALOG_ID' => $result['DIALOG_ID'], 'HR_PHOTO' => $result['HR_PHOTO'], 'ERROR' => '')); } else { echo CUtil::PhpToJsObject(array('CODE' => $ViMain->GetError()->code, 'ERROR' => $ViMain->GetError()->msg)); } } else { if ($_POST['COMMAND'] == 'deviceStartCall') { $_POST['PARAMS'] = CUtil::JsObjectToPhp($_POST['PARAMS']); if (CVoxImplantUser::GetPhoneActive($USER->GetId())) { CVoxImplantOutgoing::StartCall($USER->GetId(), $_POST['PARAMS']['NUMBER']); } } else { if ($_POST['COMMAND'] == 'deviceHungup') { $_POST['PARAMS'] = CUtil::JsObjectToPhp($_POST['PARAMS']); CVoxImplantIncoming::SendCommand(array('CALL_ID' => $_POST['PARAMS']['CALL_ID'], 'COMMAND' => CVoxImplantIncoming::RULE_HUNGUP)); } else { if ($_POST['COMMAND'] == 'wait') { $_POST['PARAMS'] = CUtil::JsObjectToPhp($_POST['PARAMS']); CVoxImplantIncoming::SendCommand(array('CALL_ID' => $_POST['PARAMS']['CALL_ID'], 'COMMAND' => CVoxImplantIncoming::RULE_WAIT)); } else { if ($_POST['COMMAND'] == 'answer') { $_POST['PARAMS'] = CUtil::JsObjectToPhp($_POST['PARAMS']); CVoxImplantIncoming::SendCommand(array('CALL_ID' => $_POST['PARAMS']['CALL_ID'], 'COMMAND' => CVoxImplantIncoming::RULE_WAIT)); CVoxImplantIncoming::SendPullEvent(array('COMMAND' => 'answer_self', 'USER_ID' => $userId, 'CALL_ID' => $_POST['PARAMS']['CALL_ID'])); if (CModule::IncludeModule('im')) {
} elseif ($params["COMMAND"] == "UnlinkExpirePhoneNumber") { $result = CVoxImplantConfig::DeleteConfigBySearchId($params['PHONE_NUMBER']); CVoxImplantHistory::WriteToLog($result, 'CONTROLLER UNLINK EXPIRE PHONE NUMBER'); echo json_encode($result); } elseif ($params["COMMAND"] == "UpdateOperatorRequest") { $params['OPERATOR_CONTRACT'] = \Bitrix\Main\Text\Encoding::convertEncodingToCurrent($params['OPERATOR_CONTRACT']); CVoxImplantPhoneOrder::Update($params); $result = array('RESULT' => 'OK'); CVoxImplantHistory::WriteToLog($result, 'UPDATE OPERATOR REQUEST'); echo json_encode($result); } else { if ($params["COMMAND"] == "ExternalHungup") { $res = Bitrix\Voximplant\CallTable::getList(array('filter' => array('=CALL_ID' => $params['CALL_ID_TMP']))); if ($call = $res->fetch()) { Bitrix\Voximplant\CallTable::delete($call['ID']); CVoxImplantOutgoing::SendPullEvent(array('COMMAND' => 'timeout', 'USER_ID' => $call['USER_ID'], 'CALL_ID' => $call['CALL_ID'], 'FAILED_CODE' => intval($params['CALL_FAILED_CODE']), 'MARK' => 'timeout_hit_7')); CVoxImplantHistory::WriteToLog($call, 'EXTERNAL CALL HANGUP'); } } else { if ($params["COMMAND"] == "VerifyResult") { $params['REVIEWER_COMMENT'] = \Bitrix\Main\Text\Encoding::convertEncodingToCurrent($params['REVIEWER_COMMENT']); $ViDocs = new CVoxImplantDocuments(); $ViDocs->SetVerifyResult($params); } } } } else { echo "You don't have access to this page."; } } CMain::FinalActions();