示例#1
0
 public static function CallStart($callId, $userId, $callDevice = 'WEBRTC', $external = false)
 {
     // TODO check $callId, $userId
     $res = Bitrix\Voximplant\CallTable::getList(array('select' => array('ID', 'CALL_ID', 'CALLER_ID', 'DATE_CREATE', 'CRM_LEAD', 'PORTAL_USER_ID'), 'filter' => array('=CALL_ID' => $callId)));
     if ($call = $res->fetch()) {
         $crmData = false;
         if ($call['CRM_LEAD'] > 0) {
             CVoxImplantCrmHelper::UpdateLead($call['CRM_LEAD'], array('ASSIGNED_BY_ID' => $userId));
             $crmData = CVoxImplantCrmHelper::GetDataForPopup($call['CALL_ID'], $call['CALLER_ID'], $userId);
         }
         Bitrix\Voximplant\CallTable::update($call['ID'], array('USER_ID' => $userId, 'STATUS' => Bitrix\Voximplant\CallTable::STATUS_CONNECTED));
         foreach (GetModuleEvents("voximplant", "onCallStart", true) as $arEvent) {
             ExecuteModuleEventEx($arEvent, array(array('CALL_ID' => $call['CALL_ID'], 'USER_ID' => $userId)));
         }
         $pushUser = array($userId);
         if ($call['PORTAL_USER_ID'] > 0) {
             $pushUser[] = $call['PORTAL_USER_ID'];
         }
         foreach ($pushUser as $userId) {
             self::SendPullEvent(array('COMMAND' => 'start', 'USER_ID' => $userId, 'CALL_ID' => $callId, 'CALL_DEVICE' => $callDevice, 'EXTERNAL' => $external ? true : false, 'CRM' => $crmData));
         }
     }
 }