• Модуль: voximplant
  • Путь к файлу: ~/bitrix/modules/voximplant/lib/call.php
  • Класс: BitrixVoximplantCall
  • Вызов: Call::finish
public function finish(array $additionalParams = [])
{
	$childCalls = static::getChildCalls($this->getCallId());
	foreach ($childCalls as $childCallId)
	{
		$childCall = Call::load($childCallId);
		if($childCall)
		{
			$childCall->finish();
		}
	}

	if($this->status == CallTable::STATUS_FINISHED)
	{
		return;
	}

	if($additionalParams['externalHangup'] ?? null)
	{
		static::delete($this->callId);
	}
	else
	{
		$this->update(['STATUS' => CallTable::STATUS_FINISHED]);
	}

	$users = array_keys($this->users);
	if(!empty($users))
	{
		$this->signaling->sendTimeout($users, $additionalParams);
	}

	foreach ($users as $userId)
	{
		$userInfo = CVoxImplantIncoming::getUserInfo($userId);
		if($userInfo['AVAILABLE'] == 'Y')
		{
			CallQueue::dequeueFirstUserCall($userId);
		}
	}
}