Пример #1
0
         $params['PORTAL_NUMBER'] = $params['ACCOUNT_SEARCH_ID'];
     }
     CVoxImplantHistory::Add($params);
     $ViAccount = new CVoxImplantAccount();
     $ViAccount->SetAccountBalance($params["balance"]);
     echo "200 OK";
 } elseif ($params["COMMAND"] == "IncomingGetConfig") {
     $result = CVoxImplantIncoming::GetConfigBySearchId($params['PHONE_NUMBER']);
     CVoxImplantHistory::WriteToLog($result, 'PORTAL GET INCOMING CONFIG');
     if ($result['ID']) {
         $result = CVoxImplantIncoming::RegisterCall($result, $params);
     }
     $isNumberInBlacklist = CVoxImplantIncoming::IsNumberInBlackList($params["CALLER_ID"]);
     $isBlacklistAutoEnable = Bitrix\Main\Config\Option::get("voximplant", "blacklist_auto", "N") == "Y";
     if ($result["WORKTIME_SKIP_CALL"] == "Y" && !$isNumberInBlacklist && $isBlacklistAutoEnable) {
         $isNumberInBlacklist = CVoxImplantIncoming::CheckNumberForBlackList($params["CALLER_ID"]);
     }
     if ($isNumberInBlacklist) {
         $result["NUMBER_IN_BLACKLIST"] = "Y";
     }
     if (!CVoxImplantAccount::IsPro()) {
         $result["CRM_SOURCE"] = 'CALL';
         $result["CALL_VOTE"] = 'N';
         if ($result["QUEUE_TYPE"] == CVoxImplantConfig::QUEUE_TYPE_ALL) {
             $result["QUEUE_TYPE"] = CVoxImplantConfig::QUEUE_TYPE_EVENLY;
             $result["NO_ANSWER_RULE"] = CVoxImplantIncoming::RULE_VOICEMAIL;
         }
     }
     foreach (GetModuleEvents("voximplant", "onCallInit", true) as $arEvent) {
         ExecuteModuleEventEx($arEvent, array(array('CALL_ID' => $params['CALL_ID'], 'CALL_TYPE' => 2, 'ACCOUNT_SEARCH_ID' => $params['ACCOUNT_SEARCH_ID'], 'PHONE_NUMBER' => $params['PHONE_NUMBER'], 'CALLER_ID' => $params['CALLER_ID'])));
     }