<?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; } ?>