Newer
Older
ubFramework / Portal / docroot / user / voip / did_json.php
@Christopher W. Olsen Christopher W. Olsen on 10 Dec 2017 5 KB Cleaning Up Making It A Sub Module
<?php

/*
 * ****************************************************************************************
 * Copyright (c) 2013, 2014, 2015 Christopher W. Olsen <cwolsen@ubixtechnologies.com>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice, this list of
 * conditions, the following disclaimer and the list of authors. Redistributions in binary
 * form must reproduce the above copyright notice, this list of conditions, the following
 * disclaimer and the list of authors in the documentation and/or other materials provided
 * with the distribution. Neither the name of the uBix Cube Project nor the names of its
 * contributors may be used to endorse or promote products derived from this software
 * without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
 * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * $Id: did_json.php 201 2015-12-06 00:52:48Z reddawg $
 *
 * ***************************************************************************************
 */

/* Main include info */
ini_set ( 'include_path', $_SERVER ['DOCUMENT_ROOT'] . "/include/" );
include ("config.php");

$ubF->session->Validate_JSON ( 'U_V_', 1 );

if (! isset ( $ubF->data ['dtype'] ))
  $ubF->data ['dtype'] = 0;

switch ($ubF->data ['req']) {
  case 'did_update' :
    
    switch ($ubF->data ['dest_type']) {
      case 'EXT' :
      case 'ext' :
        $dst = array (
            'type' => 'EXT',
            'data' => $ubF->data ['dest_ext'] 
        );
        break;
      case 'RG' :
      case 'rg' :
        $dst = array (
            'type' => 'RG',
            'data' => $ubF->data ['dest_rg'] 
        );
        break;
      case 'AA' :
      case 'aa' :
        $dst = array (
            'type' => 'AA',
            'data' => $ubF->data ['dest_aa'] 
        );
        break;
      default :
    }
    
    // $query = "UPDATE voip_did SET account_number = '" . $ubF->data ['account_number'] . "', caller_id = '" . $ubF->data ['cid_out'] . "', prefix = '" . $ubF->data ['cid_in'] . "', exten = '" . json_encode ( $dst ) . "', rec_in = " . $ubF->data ['rec_calls'] . ", modified = 1 WHERE did = '" . $ubF->data ['did'] . "'";
    $query = "UPDATE voip_did SET caller_id = '" . trim ( $ubF->data ['cid_out'] ) . "', prefix = '" . trim ( $ubF->data ['cid_in'] ) . "', dest = '" . json_encode ( $dst ) . "', recording = " . $ubF->data ['rec_calls'] . ", modified = 1 WHERE vdid_id = '" . $ubF->data ['vdid'] . "' AND account_number = '" . $ubF->session->account_number . "'";
    
    $res = $ubF->DB ['main']->query ( $query );
    
    if ($res && $res->affected_rows > 0)
      $ubF->json_return ( 1, 'Success: [' . $query . ']', $query );
    else
      $ubF->json_return ( 0, 'Error Saving Changes: [' . $query . ']' );
    
    break;
  case 'did_list' :
    $query = "SELECT vdid_id,did,caller_id,recording,dest FROM voip_did v LEFT JOIN vi_groups g ON v.group_id = g.gid WHERE type = " . $ubF->data ['dtype'] . " AND (v.account_number = '" . $ubF->session->account_number . "' OR g.account_number = '" . $ubF->session->account_number . "') ORDER BY did";
    
    $result = $ubF->DB ['main']->query ( $query );
    
    $rows = array ();
    
    if ($result !== false && $result->num_rows > 0) {
      while ( $qData = $result->fetch_assoc () ) {
        
        $rows [] = array (
            $qData ['vdid_id'],
            '<a class="edit_did" id="' . $qData ['vdid_id'] . '">' . $ubF->libs ['voip']->formatPhoneNumber ( $qData ['did'] ) . '</a>',
            $qData ['caller_id'],
            ($qData ['recording'] == 0) ? 'Disabled' : 'Enabled',
            'Prefix',
            'Dest' 
        );
      }
      $result->free ();
    }
    else
      $rows = null;
    
    $ubF->json_return ( 1, 'Success', $rows );
    break;
  case 'did_info' :
    $query = "SELECT vdid_id, did, caller_id, recording, prefix, dest FROM voip_did WHERE vdid_id = '" . $ubF->data ['did'] . "'";
    $result = $ubF->DB ['main']->query ( $query );
    
    if ($result !== false && $result->num_rows > 0) {
      $qData = $result->fetch_assoc ();
      $result->free ();
      
      $qData ['did'] = $ubF->libs ['voip']->formatPhoneNumber ( $qData ['did'] );
      
      $qData ['dest'] = json_decode ( $qData ['dest'] );
      
      $ubF->json_return ( 1, 'Success', $qData );
    }
    break;
  default :
    $ubF->json_return ( 0, "Invalid Command" );
    break;
}

?>