Пример #1
0
 } else {
     if ($_POST['COMMAND'] == 'answer') {
         $_POST['PARAMS'] = CUtil::JsObjectToPhp($_POST['PARAMS']);
         CVoxImplantIncoming::SendCommand(array('CALL_ID' => $_POST['PARAMS']['CALL_ID'], 'COMMAND' => CVoxImplantIncoming::RULE_WAIT));
         CVoxImplantIncoming::SendPullEvent(array('COMMAND' => 'answer_self', 'USER_ID' => $userId, 'CALL_ID' => $_POST['PARAMS']['CALL_ID']));
         if (CModule::IncludeModule('im')) {
             CIMStatus::SetIdle($userId, false);
         }
     } else {
         if ($_POST['COMMAND'] == 'skip') {
             $_POST['PARAMS'] = CUtil::JsObjectToPhp($_POST['PARAMS']);
             CVoxImplantIncoming::SendCommand(array('CALL_ID' => $_POST['PARAMS']['CALL_ID'], 'COMMAND' => CVoxImplantIncoming::RULE_QUEUE));
         } else {
             if ($_POST['COMMAND'] == 'start') {
                 $_POST['PARAMS'] = CUtil::JsObjectToPhp($_POST['PARAMS']);
                 CVoxImplantMain::CallStart($_POST['PARAMS']['CALL_ID'], $userId);
             } else {
                 if ($_POST['COMMAND'] == 'hold' || $_POST['COMMAND'] == 'unhold') {
                     $_POST['PARAMS'] = CUtil::JsObjectToPhp($_POST['PARAMS']);
                     CVoxImplantMain::CallHold($_POST['PARAMS']['CALL_ID'], $_POST['COMMAND'] == 'hold');
                 } else {
                     if ($_POST['COMMAND'] == 'ready') {
                         $_POST['PARAMS'] = CUtil::JsObjectToPhp($_POST['PARAMS']);
                         CVoxImplantIncoming::SendCommand(array('CALL_ID' => $_POST['PARAMS']['CALL_ID'], 'COMMAND' => CVoxImplantIncoming::RULE_USER, 'USER_ID' => $USER->GetId()));
                     } else {
                         if ($_POST['COMMAND'] == 'inviteTransfer') {
                             $_POST['PARAMS'] = CUtil::JsObjectToPhp($_POST['PARAMS']);
                             CVoxImplantTransfer::Invite($_POST['PARAMS']['CALL_ID'], $_POST['PARAMS']['USER_ID']);
                         } else {
                             if ($_POST['COMMAND'] == 'readyTransfer') {
                                 $_POST['PARAMS'] = CUtil::JsObjectToPhp($_POST['PARAMS']);
Пример #2
0
     echo json_encode(array('result' => 'OK'));
 } else {
     if ($params["COMMAND"] == "TransferTimeout") {
         CVoxImplantTransfer::Timeout($params['CALL_ID']);
         echo json_encode(array('result' => 'OK'));
     } else {
         if ($params["COMMAND"] == "TransferCancel") {
             CVoxImplantTransfer::Decline($params['CALL_ID'], false);
             echo json_encode(array('result' => 'OK'));
         } else {
             if ($params["COMMAND"] == "TransferComplete") {
                 CVoxImplantTransfer::Complete($params['CALL_ID'], $params['CALL_DEVICE']);
                 echo json_encode(array('result' => 'OK'));
             } else {
                 if ($params["COMMAND"] == "StartCall") {
                     CVoxImplantMain::CallStart($params['CALL_ID'], $params['USER_ID'], $params['CALL_DEVICE'], $params['EXTERNAL'] == 'Y');
                     $res = Bitrix\Voximplant\CallTable::getList(array('filter' => array('=CALL_ID' => $params['CALL_ID'])));
                     if ($call = $res->fetch()) {
                         if ($call['PORTAL_USER_ID'] <= 0) {
                             $res = Bitrix\Voximplant\QueueTable::getList(array('filter' => array('=CONFIG_ID' => $call['CONFIG_ID'])));
                             while ($queue = $res->fetch()) {
                                 if ($params['USER_ID'] == $queue['USER_ID'] || $call['PORTAL_USER_ID'] == $queue['USER_ID']) {
                                     continue;
                                 }
                                 CVoxImplantMain::SendPullEvent(array('COMMAND' => 'timeout', 'USER_ID' => $queue['USER_ID'], 'CALL_ID' => $call['CALL_ID'], 'MARK' => 'timeout_hit_2'));
                             }
                         }
                     }
                     echo json_encode(array('result' => 'OK'));
                 } else {
                     if ($params["COMMAND"] == "HangupCall") {