• Модуль: 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);
}