- Модуль: voximplant
- Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_crm_helper.php
- Класс: CVoxImplantCrmHelper
- Вызов: CVoxImplantCrmHelper::addMissedCall
static function addMissedCall(array $params)
{
if(!BitrixMainLoader::includeModule('crm'))
return false;
$config = CVoxImplantConfig::GetConfigBySearchId($params['CONFIG_SEARCH_ID']);
if(!$config)
return false;
$callId = uniqid('call.', true);
$entityFields = CCrmSipHelper::getEntityFields(
CCrmOwnerType::ResolveID($params['CRM_ENTITY_TYPE']),
$params['CRM_ENTITY_ID']
);
if(!is_array($entityFields))
return false;
$responsibleUserId = $entityFields['ASSIGNED_BY_ID'];
$statisticsRecord = array(
'INCOMING' => $params['INCOMING'] ?: CVoxImplantMain::CALL_INCOMING,
'PORTAL_USER_ID' => $responsibleUserId,
'PORTAL_NUMBER' => $params['CONFIG_SEARCH_ID'],
'PHONE_NUMBER' => $params['PHONE_NUMBER'],
'CALL_ID' => $callId,
'CALL_DURATION' => 0,
'CALL_START_DATE' => new BitrixMainTypeDateTime(),
'CALL_FAILED_CODE' => '304',
'CALL_FAILED_REASON' => 'Missed call',
'CRM_ENTITY_TYPE' => $params['CRM_ENTITY_TYPE'],
'CRM_ENTITY_ID' => $params['CRM_ENTITY_ID']
);
$insertResult = VIStatisticTable::add($statisticsRecord);
if(!$insertResult->isSuccess())
return false;
$statisticsRecord['ID'] = $insertResult->getId();
if($config['CRM'] == 'Y')
{
$activityId = static::AddCall($statisticsRecord);
if($activityId > 0)
{
VIStatisticTable::update($statisticsRecord['ID'], array(
'CRM_ACTIVITY_ID' => $activityId
));
}
$chatMessage = CVoxImplantHistory::GetMessageForChat($statisticsRecord, false);
if($chatMessage != '')
{
CVoxImplantHistory::SendMessageToChat($statisticsRecord["PORTAL_USER_ID"], $statisticsRecord["PHONE_NUMBER"], $statisticsRecord["INCOMING"], $chatMessage);
}
}
}