• Модуль: voximplant
  • Путь к файлу: ~/bitrix/modules/voximplant/lib/scenario.php
  • Класс: BitrixVoximplantScenario
  • Вызов: Scenario::send
protected function send(array $command, $waitResponse): Result
{
	$result = new Result();

	if(!isset($command['CALL_ID']))
	{
		$command['CALL_ID'] = $this->call->getCallId();
	}

	$httpClient = HttpClientFactory::create(array(
		'waitResponse' => $waitResponse
	));
	$queryResult = $httpClient->query('POST', $this->call->getAccessUrl(), Json::encode($command));

	if($waitResponse)
	{
		if ($queryResult === false)
		{
			$httpClientErrors = $httpClient->getError();
			if(!empty($httpClientErrors))
			{
				foreach ($httpClientErrors as $code => $message)
				{
					$result->addError(new BitrixMainError($message, $code));
				}
			}
		}

		$responseStatus = $httpClient->getStatus();
		if ($responseStatus == 200)
		{
			// nothing here
		}
		else if ($httpClient->getStatus() == 404)
		{
			$result->addError(new BitrixMainError('Call scenario is not running', 'NOT_FOUND'));
		}
		else
		{
			$result->addError(new BitrixMainError("Scenario server returns code " . $httpClient->getStatus()));

		}
	}

	return $result;
}