- Модуль: voximplant
- Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_main.php
- Класс: CVoxImplantMain
- Вызов: CVoxImplantMain::SendPullEvent
static function SendPullEvent($params)
{
if (!CModule::IncludeModule('pull') || !CPullOptions::GetQueueServerStatus() || $params['USER_ID'] <= 0)
return false;
$config = Array();
$push = Array();
if ($params['COMMAND'] == 'start')
{
$config = Array(
"callId" => $params['CALL_ID'],
"callDevice" => $params['CALL_DEVICE'] == 'PHONE'? 'PHONE': 'WEBRTC',
"CRM" => $params['CRM']? $params['CRM']: false,
);
$push['send_immediately'] = 'Y';
$push['advanced_params'] = Array(
"notificationsToCancel" => array('VI_CALL_'.$params['CALL_ID']),
);
}
else if ($params['COMMAND'] == 'timeout')
{
$config = Array(
"callId" => $params['CALL_ID'],
);
$push['send_immediately'] = 'Y';
$push['advanced_params'] = Array(
"notificationsToCancel" => array('VI_CALL_'.$params['CALL_ID']),
);
}
else if($params['COMMAND'] == 'answer_phone')
{
$config = Array(
"callId" => $params['CALL_ID'],
);
$push['send_immediately'] = 'Y';
$push['advanced_params'] = Array(
"notificationsToCancel" => array('VI_CALL_'.$params['CALL_ID']),
);
}
else if($params['COMMAND'] == 'showExternalCall')
{
$config = Array(
'callId' => $params['CALL_ID'],
'phoneNumber' => $params['PHONE_NUMBER'],
'lineNumber' => $params['LINE_NUMBER'],
'companyPhoneNumber' => $params['COMPANY_PHONE_NUMBER'],
'isCallback' => $params['INCOMING'] == CVoxImplantMain::CALL_CALLBACK,
'showCrmCard' => $params['SHOW_CRM_CARD'],
'crmEntityType' => $params['CRM_ENTITY_TYPE'],
'crmEntityId' => $params['CRM_ENTITY_ID'],
'crmBindings' => $params['CRM_BINDINGS'],
'crmActivityId' => $params['CRM_ACTIVITY_ID'] ?? null,
'crmActivityEditUrl' => $params['CRM_ACTIVITY_EDIT_URL'] ?? null,
'config' => $params['CONFIG'],
"portalCall" => $params['PORTAL_CALL'] == 'Y'? true: false,
"portalCallUserId" => $params['PORTAL_CALL'] == 'Y'? $params['PORTAL_CALL_USER_ID']: 0,
"portalCallData" => $params['PORTAL_CALL'] == 'Y'? $params['PORTAL_CALL_DATA']: Array(),
"CRM" => $params["CRM"] ?: array()
);
if($params['INCOMING'] == self::CALL_INCOMING)
$config['toUserId'] = $params['USER_ID'];
else if($params['INCOMING'] == self::CALL_OUTGOING)
$config['fromUserId'] = $params['USER_ID'];
}
else if($params['COMMAND'] == 'hideExternalCall')
{
$config = Array(
'callId' => $params['CALL_ID']
);
}
if (isset($params['MARK']))
{
$config['mark'] = $params['MARK'];
}
$userId = is_array($params['USER_ID']) ? $params['USER_ID'] : array($params['USER_ID']);
BitrixPullEvent::add($userId,
Array(
'module_id' => 'voximplant',
'command' => $params['COMMAND'],
'params' => $config,
'push' => $push
)
);
return true;
}