- Модуль: voximplant
- Путь к файлу: ~/bitrix/modules/voximplant/lib/signaling.php
- Класс: BitrixVoximplantSignaling
- Вызов: Signaling::sendOutgoing
public function sendOutgoing(int $userId,$callDevice = 'WEBRTC')
{
$call = $this->call;
$lineConfig = $call->getConfig();
$queueId = $call->getQueueId();
$queueName = $queueId ? Queue::createWithId($queueId)->getName() : null;
if ($call->isInternalCall() && Loader::includeModule('im'))
{
$userData = CIMContactList::GetUserData([
'ID' => $call->getUserIds(),
'DEPARTMENT' => 'N',
'HR_PHOTO' => 'Y']
);
}
else
{
$userData = [];
}
$crmData = $call->isInternalCall() ? [] : CVoxImplantCrmHelper::GetDataForPopup($call->getCallId(), $call->getCallerId(), $userId);
$config = [
'callId' => $call->getCallId(),
'callDevice' => $callDevice === 'PHONE'? 'PHONE': 'WEBRTC',
'phoneNumber' => $call->getCallerId(),
'portalCall' => $call->isInternalCall(),
'portalCallUserId' => $call->isInternalCall() ? $call->getPortalUserId(): 0,
'portalCallData' => $call->isInternalCall() ? $userData: [],
'portalCallQueueName' => $queueName,
'config' => CVoxImplantConfig::getConfigForPopup($call->getCallId()),
'lineNumber' => $call->getPortalNumber() ?: '',
'lineName' => $lineConfig['PORTAL_MODE'] === CVoxImplantConfig::MODE_SIP ? $lineConfig['PHONE_TITLE'] : $lineConfig['PHONE_NAME'],
"CRM" => $crmData,
];
if(!$call->isInternalCall())
{
$config['showCrmCard'] = ($call->isCrmEnabled());
$config['crmEntityType'] = $call->getPrimaryEntityType();
$config['crmEntityId'] = $call->getPrimaryEntityId();
$config['crmBindings'] = CVoxImplantCrmHelper::resolveBindingNames($call->getCrmBindings());
}
CVoxImplantHistory::WriteToLog([
'COMMAND' => 'outgoing',
'USER_ID' => $userId,
'CALL_ID' => $call->getId(),
'CALL_DEVICE' => $callDevice,
'PHONE_NUMBER' => $call->getCallerId(),
'PORTAL_CALL_USER_ID' => $call->getPortalUserId(),
'CRM' => $crmData,
'CRM_ENTITY_TYPE' => $call->getPrimaryEntityType(),
'CRM_ENTITY_ID' => $call->getPrimaryEntityId(),
'CRM_ACTIVITY_ID' => $call->getCrmActivityId(),
]);
$this->send([$userId],static::COMMAND_OUTGOING, $config, null);
}