• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/classes/general/im_call.php
  • Класс: CIMCall
  • Вызов: CIMCall::Answer
static function Answer($arParams)
{
	$arConfig['CHAT_ID'] = intval($arParams['CHAT_ID']);
	if ($arConfig['CHAT_ID'] <= 0)
		return false;

	global $DB, $USER;
	$arConfig['USER_ID'] = intval($arParams['USER_ID']) > 0? intval($arParams['USER_ID']): intval($USER->GetID());

	$strSql = "UPDATE b_im_relation SET CALL_STATUS = ".IM_CALL_STATUS_ANSWER." WHERE CHAT_ID = ".$arConfig['CHAT_ID']." AND USER_ID = ".$arConfig['USER_ID'];
	$DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__); if ($arParams['CALL_TO_GROUP']) self::MessageToChat($arConfig['CHAT_ID'], "IM_CALL_CHAT_START_", $arConfig['USER_ID'], true); $arConfig['MOBILE'] = isset($arParams['MOBILE']) && $arParams['MOBILE'] == 'Y'? 'Y': 'N'; CIMCall::Signaling(Array( 'CHAT_ID' => $arConfig['CHAT_ID'], 'USER_ID' => $arConfig['USER_ID'], 'PARAMS' => Array('isMobile' => $arConfig['MOBILE'] == 'Y'), 'COMMAND' => 'answer', )); self::Command($arConfig['CHAT_ID'], $arConfig['USER_ID'], 'answer_self', Array()); $arChat = CIMChat::GetChatData(Array('ID' => $arConfig['CHAT_ID'], 'USER_ID' => $arConfig['USER_ID'])); if (empty($arChat['chat'])) return false; foreach ($arChat['userInChat'][$arConfig['CHAT_ID']] as $value) { if ($arConfig['USER_ID'] != $value) { $arConfig['RECIPIENT_ID'] = $value; break; } } if (!$arParams['CALL_TO_GROUP'] && CModule::IncludeModule('pull') && CPullOptions::GetPushStatus()) { BitrixPullPush::add($arConfig['USER_ID'], Array( 'module_id' => 'im', 'push' => Array( 'expiry' => 0, 'advanced_params' => Array( 'notificationsToCancel' => array('IM_CALL_'. $arConfig['RECIPIENT_ID']), ), 'send_immediately' => 'Y' ) )); BitrixPullPush::add($arConfig['RECIPIENT_ID'], Array( 'module_id' => 'im', 'push' => Array( 'expiry' => 0, 'advanced_params' => Array( 'notificationsToCancel' => array('IM_CALL_'. $arConfig['USER_ID']), ), 'send_immediately' => 'Y' ) )); } return true; }