2012-06-04 16:58:40 +02:00
< ? php
/*
FusionPBX
Version : MPL 1.1
The contents of this file are subject to the Mozilla Public License Version
1.1 ( the " License " ); you may not use this file except in compliance with
the License . You may obtain a copy of the License at
http :// www . mozilla . org / MPL /
Software distributed under the License is distributed on an " AS IS " basis ,
WITHOUT WARRANTY OF ANY KIND , either express or implied . See the License
for the specific language governing rights and limitations under the
License .
The Original Code is FusionPBX
The Initial Developer of the Original Code is
Mark J Crane < markjcrane @ fusionpbx . com >
2019-02-01 21:35:30 +01:00
Portions created by the Initial Developer are Copyright ( C ) 2008 - 2019
2012-06-04 16:58:40 +02:00
the Initial Developer . All Rights Reserved .
Contributor ( s ) :
Mark J Crane < markjcrane @ fusionpbx . com >
*/
2016-07-27 04:49:23 +02:00
//includes
require_once " root.php " ;
require_once " resources/require.php " ;
require_once " resources/check_auth.php " ;
//check permissions
if ( permission_exists ( 'xml_cdr_view' )) {
//access granted
}
else {
echo " access denied " ;
exit ;
}
2012-06-04 16:58:40 +02:00
//additional includes
2018-07-04 02:40:35 +02:00
require_once " resources/paging.php " ;
2012-06-04 16:58:40 +02:00
//set 24hr or 12hr clock
define ( 'TIME_24HR' , 1 );
//get post or get variables from http
2014-07-17 18:23:49 +02:00
if ( count ( $_REQUEST ) > 0 ) {
2019-06-07 05:10:20 +02:00
$cdr_id = $_REQUEST [ " cdr_id " ];
$missed = $_REQUEST [ " missed " ];
$direction = $_REQUEST [ " direction " ];
$caller_id_name = $_REQUEST [ " caller_id_name " ];
$caller_id_number = $_REQUEST [ " caller_id_number " ];
$caller_destination = $_REQUEST [ " caller_destination " ];
2019-09-29 02:42:13 +02:00
$extension_uuid = $_REQUEST [ " extension_uuid " ];
2019-06-07 05:10:20 +02:00
$destination_number = $_REQUEST [ " destination_number " ];
$context = $_REQUEST [ " context " ];
$start_stamp_begin = $_REQUEST [ " start_stamp_begin " ];
$start_stamp_end = $_REQUEST [ " start_stamp_end " ];
$answer_stamp_begin = $_REQUEST [ " answer_stamp_begin " ];
$answer_stamp_end = $_REQUEST [ " answer_stamp_end " ];
$end_stamp_begin = $_REQUEST [ " end_stamp_begin " ];
$end_stamp_end = $_REQUEST [ " end_stamp_end " ];
$start_epoch = $_REQUEST [ " start_epoch " ];
$stop_epoch = $_REQUEST [ " stop_epoch " ];
$duration = $_REQUEST [ " duration " ];
$billsec = $_REQUEST [ " billsec " ];
$hangup_cause = $_REQUEST [ " hangup_cause " ];
$call_result = $_REQUEST [ " call_result " ];
$xml_cdr_uuid = $_REQUEST [ " xml_cdr_uuid " ];
$bleg_uuid = $_REQUEST [ " bleg_uuid " ];
$accountcode = $_REQUEST [ " accountcode " ];
$read_codec = $_REQUEST [ " read_codec " ];
$write_codec = $_REQUEST [ " write_codec " ];
$remote_media_ip = $_REQUEST [ " remote_media_ip " ];
$network_addr = $_REQUEST [ " network_addr " ];
$bridge_uuid = $_REQUEST [ " network_addr " ];
$order_by = $_REQUEST [ " order_by " ];
$order = $_REQUEST [ " order " ];
2016-12-23 05:36:46 +01:00
if ( is_array ( $_SESSION [ 'cdr' ][ 'field' ])) {
foreach ( $_SESSION [ 'cdr' ][ 'field' ] as $field ) {
$array = explode ( " , " , $field );
$field_name = end ( $array );
if ( isset ( $_REQUEST [ $field_name ])) {
2019-06-07 05:10:20 +02:00
$$field_name = $_REQUEST [ $field_name ];
2016-12-23 05:36:46 +01:00
}
2016-12-22 01:02:10 +01:00
}
}
2019-06-07 05:10:20 +02:00
if ( strlen ( $_REQUEST [ " mos_comparison " ]) > 0 ) {
switch ( $_REQUEST [ " mos_comparison " ]) {
2016-03-11 00:29:47 +01:00
case 'less' : $mos_comparison = " < " ; break ;
case 'greater' : $mos_comparison = " > " ; break ;
case 'lessorequal' : $mos_comparison = " <= " ; break ;
case 'greaterorequal' : $mos_comparison = " >= " ; break ;
case 'equal' : $mos_comparison = " < " ; break ;
case 'notequal' : $mos_comparison = " <> " ; break ;
2015-12-09 23:08:33 +01:00
}
2019-09-03 16:29:44 +02:00
}
else {
2016-07-27 04:49:23 +02:00
$mos_comparison = '' ;
}
2019-06-07 05:10:20 +02:00
//$mos_comparison = $_REQUEST["mos_comparison"];
$mos_score = $_REQUEST [ " mos_score " ];
$leg = $_REQUEST [ " leg " ];
2012-06-04 16:58:40 +02:00
}
2019-06-07 05:10:20 +02:00
//check to see if permission does not exist
2019-09-24 21:38:07 +02:00
if ( ! permission_exists ( 'xml_cdr_b_leg' )){
2017-06-03 06:31:20 +02:00
$leg = 'a' ;
}
2015-12-09 23:08:33 +01:00
2019-06-07 05:10:20 +02:00
//get variables used to control the order
$order_by = $_REQUEST [ " order_by " ];
$order = $_REQUEST [ " order " ];
//validate the order
switch ( $order ) {
case 'asc' :
break ;
case 'desc' :
break ;
default :
$order = '' ;
2014-06-24 02:37:17 +02:00
}
2016-12-22 01:02:10 +01:00
2019-06-07 05:10:20 +02:00
//set the assigned extensions
2014-06-17 00:08:30 +02:00
if ( ! permission_exists ( 'xml_cdr_domain' )) {
2019-06-07 05:10:20 +02:00
foreach ( $_SESSION [ 'user' ][ 'extension' ] as $row ) {
if ( is_uuid ( $row [ 'extension_uuid' ])) {
$extension_uuids [] = $row [ 'extension_uuid' ];
2012-06-04 16:58:40 +02:00
}
}
}
//set the param variable which is used with paging
2019-09-07 02:46:50 +02:00
$param = " &cdr_id= " . urlencode ( $cdr_id );
$param .= " &missed= " . urlencode ( $missed );
$param .= " &direction= " . urlencode ( $direction );
$param .= " &caller_id_name= " . urlencode ( $caller_id_name );
$param .= " &caller_id_number= " . urlencode ( $caller_id_number );
$param .= " &caller_destination= " . urlencode ( $caller_destination );
2019-09-29 02:42:13 +02:00
$param .= " &extension_uuid= " . urlencode ( $extension_uuid );
2019-09-07 02:46:50 +02:00
$param .= " &destination_number= " . urlencode ( $destination_number );
$param .= " &context= " . urlencode ( $context );
$param .= " &start_stamp_begin= " . urlencode ( $start_stamp_begin );
$param .= " &start_stamp_end= " . urlencode ( $start_stamp_end );
$param .= " &answer_stamp_begin= " . urlencode ( $answer_stamp_begin );
$param .= " &answer_stamp_end= " . urlencode ( $answer_stamp_end );
$param .= " &end_stamp_begin= " . urlencode ( $end_stamp_begin );
$param .= " &end_stamp_end= " . urlencode ( $end_stamp_end );
$param .= " &start_epoch= " . urlencode ( $start_epoch );
$param .= " &stop_epoch= " . urlencode ( $stop_epoch );
$param .= " &duration= " . urlencode ( $duration );
$param .= " &billsec= " . urlencode ( $billsec );
$param .= " &hangup_cause= " . urlencode ( $hangup_cause );
$param .= " &call_result= " . urlencode ( $call_result );
$param .= " &xml_cdr_uuid= " . urlencode ( $xml_cdr_uuid );
$param .= " &bleg_uuid= " . urlencode ( $bleg_uuid );
$param .= " &accountcode= " . urlencode ( $accountcode );
$param .= " &read_codec= " . urlencode ( $read_codec );
$param .= " &write_codec= " . urlencode ( $write_codec );
$param .= " &remote_media_ip= " . urlencode ( $remote_media_ip );
$param .= " &network_addr= " . urlencode ( $network_addr );
$param .= " &bridge_uuid= " . urlencode ( $bridge_uuid );
$param .= " &mos_comparison= " . urlencode ( $mos_comparison );
$param .= " &mos_score= " . urlencode ( $mos_score );
2016-12-23 05:36:46 +01:00
if ( is_array ( $_SESSION [ 'cdr' ][ 'field' ])) {
foreach ( $_SESSION [ 'cdr' ][ 'field' ] as $field ) {
$array = explode ( " , " , $field );
$field_name = end ( $array );
if ( isset ( $$field_name )) {
2019-09-07 02:46:50 +02:00
$param .= " & " . $field_name . " = " . urlencode ( $$field_name );
2016-12-23 05:36:46 +01:00
}
2016-12-22 01:02:10 +01:00
}
}
2017-12-09 20:26:36 +01:00
if ( $_GET [ 'show' ] == 'all' && permission_exists ( 'xml_cdr_all' )) {
$param .= " &show=all " ;
2015-03-06 18:15:09 +01:00
}
2012-08-24 07:56:45 +02:00
if ( isset ( $order_by )) {
2019-09-07 02:46:50 +02:00
$param .= " &order_by= " . urlencode ( $order_by ) . " &order= " . urlencode ( $order );
2012-08-24 07:56:45 +02:00
}
2012-06-04 16:58:40 +02:00
//create the sql query to get the xml cdr records
2019-09-26 16:27:13 +02:00
if ( strlen ( $order_by ) == 0 ) { $order_by = " start_stamp " ; }
2019-09-07 02:46:50 +02:00
if ( strlen ( $order ) == 0 ) { $order = " desc " ; }
2012-06-04 16:58:40 +02:00
2014-07-11 03:34:47 +02:00
//set a default number of rows to show
2012-06-04 16:58:40 +02:00
$num_rows = '0' ;
2016-07-27 04:49:23 +02:00
//disable the paging
if ( $_REQUEST [ 'export_format' ] == " csv " ) { $rows_per_page = 0 ; }
if ( $_REQUEST [ 'export_format' ] == " pdf " ) { $rows_per_page = 0 ; }
2018-05-01 10:57:47 +02:00
//count the records in the database
/*
if ( $_SESSION [ 'cdr' ][ 'limit' ][ 'numeric' ] == 0 ) {
2019-09-03 16:29:44 +02:00
$sql = " select count(*) from v_xml_cdr " ;
$sql .= " where domain_uuid = :domain_uuid " ;
$sql .= " . $sql_where ;
$parameters [ 'domain_uuid' ] = $domain_uuid ;
$database = new database ;
$num_rows = $database -> select ( $sql , $parameters , 'column' );
unset ( $sql , $parameters );
2018-05-01 10:57:47 +02:00
}
*/
2017-04-08 23:17:52 +02:00
2018-05-01 10:57:47 +02:00
//limit the number of results
if ( $_SESSION [ 'cdr' ][ 'limit' ][ 'numeric' ] > 0 ) {
$num_rows = $_SESSION [ 'cdr' ][ 'limit' ][ 'numeric' ];
2012-06-04 16:58:40 +02:00
}
2018-05-01 10:57:47 +02:00
//set the default paging
$rows_per_page = $_SESSION [ 'domain' ][ 'paging' ][ 'numeric' ];
//prepare to page the results
//$rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50; //set on the page that includes this page
if ( is_numeric ( $_GET [ 'page' ])) { $page = $_GET [ 'page' ]; }
2018-05-01 11:16:40 +02:00
if ( ! isset ( $_GET [ 'page' ])) { $page = 0 ; $_GET [ 'page' ] = 0 ; }
2018-05-01 10:57:47 +02:00
$offset = $rows_per_page * $page ;
2012-06-04 16:58:40 +02:00
//get the results from the db
2019-01-30 16:36:37 +01:00
$sql = " select \n " ;
$sql .= " c.domain_uuid, \n " ;
$sql .= " e.extension, \n " ;
$sql .= " c.start_stamp, \n " ;
$sql .= " c.end_stamp, \n " ;
$sql .= " c.start_epoch, \n " ;
$sql .= " c.hangup_cause, \n " ;
$sql .= " c.duration, \n " ;
$sql .= " c.billmsec, \n " ;
$sql .= " c.record_path, \n " ;
$sql .= " c.record_name, \n " ;
$sql .= " c.xml_cdr_uuid, \n " ;
$sql .= " c.bridge_uuid, \n " ;
$sql .= " c.direction, \n " ;
$sql .= " c.billsec, \n " ;
$sql .= " c.caller_id_name, \n " ;
$sql .= " c.caller_id_number, \n " ;
$sql .= " c.caller_destination, \n " ;
$sql .= " c.source_number, \n " ;
$sql .= " c.destination_number, \n " ;
$sql .= " c.leg, \n " ;
2019-09-03 16:29:44 +02:00
$sql .= " (c.xml is not null or c.json is not null) as raw_data_exists, \n " ;
2019-05-24 19:55:59 +02:00
$sql .= " c.json, \n " ;
2016-06-04 03:47:35 +02:00
if ( is_array ( $_SESSION [ 'cdr' ][ 'field' ])) {
foreach ( $_SESSION [ 'cdr' ][ 'field' ] as $field ) {
2016-12-23 00:59:34 +01:00
$array = explode ( " , " , $field );
$field_name = end ( $array );
2019-01-30 16:36:37 +01:00
$sql .= $field_name . " , \n " ;
2016-06-04 03:47:35 +02:00
}
}
2018-02-09 21:39:32 +01:00
if ( is_array ( $_SESSION [ 'cdr' ][ 'export' ])) {
foreach ( $_SESSION [ 'cdr' ][ 'export' ] as $field ) {
2019-01-30 16:36:37 +01:00
$sql .= $field . " , \n " ;
2018-02-09 21:39:32 +01:00
}
}
2019-01-30 16:36:37 +01:00
$sql .= " c.accountcode, \n " ;
$sql .= " c.answer_stamp, \n " ;
$sql .= " c.sip_hangup_disposition, \n " ;
2014-12-10 04:57:48 +01:00
if ( permission_exists ( " xml_cdr_pdd " )) {
2019-01-30 16:36:37 +01:00
$sql .= " c.pdd_ms, \n " ;
2014-12-10 04:57:48 +01:00
}
if ( permission_exists ( " xml_cdr_mos " )) {
2019-01-30 16:36:37 +01:00
$sql .= " c.rtp_audio_in_mos, \n " ;
2014-12-10 04:57:48 +01:00
}
2019-01-30 16:36:37 +01:00
$sql .= " (c.answer_epoch - c.start_epoch) as tta " ;
2017-12-09 20:26:36 +01:00
if ( $_REQUEST [ 'show' ] == " all " && permission_exists ( 'xml_cdr_all' )) {
2019-01-30 16:36:37 +01:00
$sql .= " , c.domain_name \n " ;
2015-03-06 18:15:09 +01:00
}
2019-02-01 21:35:30 +01:00
$sql .= " from v_xml_cdr as c \n " ;
2019-06-07 05:10:20 +02:00
$sql .= " left join v_extensions as e on e.extension_uuid = c.extension_uuid \n " ;
$sql .= " inner join v_domains as d on d.domain_uuid = c.domain_uuid \n " ;
2017-12-09 20:26:36 +01:00
if ( $_REQUEST [ 'show' ] == " all " && permission_exists ( 'xml_cdr_all' )) {
2019-09-03 16:29:44 +02:00
$sql .= " where true " ;
}
else {
2019-06-07 05:10:20 +02:00
$sql .= " where c.domain_uuid = :domain_uuid \n " ;
$parameters [ 'domain_uuid' ] = $domain_uuid ;
}
if ( ! permission_exists ( 'xml_cdr_domain' )) { //only show the user their calls
2019-06-18 07:35:48 +02:00
$sql .= " and (c.extension_uuid = ' " . implode ( " ' or c.extension_uuid = ' " , $extension_uuids ) . " ') " ;
2019-06-07 05:10:20 +02:00
}
if ( $missed == true ) {
$sql .= " and missed_call = 1 \n " ;
}
if ( strlen ( $start_epoch ) > 0 && strlen ( $stop_epoch ) > 0 ) {
2019-09-03 16:29:44 +02:00
$sql .= " and start_epoch between :start_epoch and :stop_epoch \n " ;
2019-06-07 05:10:20 +02:00
$parameters [ 'start_epoch' ] = $start_epoch ;
$parameters [ 'stop_epoch' ] = $stop_epoch ;
}
if ( strlen ( $cdr_id ) > 0 ) {
$sql .= " and cdr_id like :cdr_id \n " ;
$parameters [ 'cdr_id' ] = '%' . $cdr_id . '%' ;
}
if ( strlen ( $direction ) > 0 ) {
$sql .= " and direction = :direction \n " ;
$parameters [ 'direction' ] = $direction ;
}
if ( strlen ( $caller_id_name ) > 0 ) {
$mod_caller_id_name = str_replace ( " * " , " % " , $caller_id_name );
2019-06-27 17:05:06 +02:00
$sql .= " and caller_id_name like :caller_id_name \n " ;
2019-06-07 05:10:20 +02:00
$parameters [ 'caller_id_name' ] = '%' . $mod_caller_id_name . '%' ;
}
if ( strlen ( $caller_id_number ) > 0 ) {
$mod_caller_id_number = preg_replace ( " #[^0-9./]# " , " " , $caller_id_number );
if ( strlen ( $mod_caller_id_number ) == 0 ) {
$mod_caller_id_number = trim ( $caller_id_number );
}
$sql .= " and caller_id_number like :caller_id_number \n " ;
$parameters [ 'caller_id_number' ] = '%' . $mod_caller_id_number . '%' ;
}
2019-09-29 02:42:13 +02:00
if ( strlen ( $extension_uuid ) > 0 && is_uuid ( $extension_uuid )) {
2019-06-07 05:10:20 +02:00
$sql .= " and e.extension_uuid = :extension_uuid \n " ;
2019-09-29 02:42:13 +02:00
$parameters [ 'extension_uuid' ] = $extension_uuid ;
2019-06-07 05:10:20 +02:00
}
if ( strlen ( $caller_destination ) > 0 ) {
$mod_caller_destination = preg_replace ( " #[^0-9./]# " , " " , $caller_destination );
if ( strlen ( $mod_caller_destination ) == 0 ) {
$mod_caller_destination = trim ( $caller_destination );
}
$sql .= " and caller_destination like :caller_destination \n " ;
$parameters [ 'caller_destination' ] = '%' . $mod_caller_destination . '%' ;
}
if ( strlen ( $destination_number ) > 0 ) {
$mod_destination_number = preg_replace ( " #[^0-9./]# " , " " , $destination_number );
if ( strlen ( $mod_destination_number ) == 0 ) {
$mod_destination_number = trim ( $destination_number );
}
$sql .= " and destination_number like :destination_number \n " ;
$parameters [ 'destination_number' ] = '%' . $mod_destination_number . '%' ;
}
if ( strlen ( $context ) > 0 ) {
$sql .= " and context like :context \n " ;
$parameters [ 'context' ] = '%' . $context . '%' ;
}
if ( is_array ( $_SESSION [ 'cdr' ][ 'field' ])) {
foreach ( $_SESSION [ 'cdr' ][ 'field' ] as $field ) {
$array = explode ( " , " , $field );
$field_name = end ( $array );
if ( isset ( $$field_name )) {
$$field_name = $_REQUEST [ $field_name ];
if ( strlen ( $$field_name ) > 0 ) {
$sql .= " and $field_name like : " . $field_name . " \n " ;
$parameters [ $field_name ] = '%' . $$field_name . '%' ;
}
}
}
}
if ( strlen ( $start_stamp_begin ) > 0 && strlen ( $start_stamp_end ) > 0 ) {
2019-09-03 16:29:44 +02:00
$sql .= " and start_stamp between :start_stamp_begin and :start_stamp_end " ;
2019-06-07 05:10:20 +02:00
$parameters [ 'start_stamp_begin' ] = $start_stamp_begin . ':00.000' ;
$parameters [ 'start_stamp_end' ] = $start_stamp_end . ':59.999' ;
}
else {
if ( strlen ( $start_stamp_begin ) > 0 ) {
$sql .= " and start_stamp >= :start_stamp_begin " ;
$parameters [ 'start_stamp_begin' ] = $start_stamp_begin . ':00.000' ;
}
if ( strlen ( $start_stamp_end ) > 0 ) {
$sql .= " and start_stamp <= :start_stamp_end " ;
$parameters [ 'start_stamp_end' ] = $start_stamp_end . ':59.999' ;
}
}
if ( strlen ( $answer_stamp_begin ) > 0 && strlen ( $answer_stamp_end ) > 0 ) {
2019-09-03 16:29:44 +02:00
$sql .= " and answer_stamp between :answer_stamp_begin and :answer_stamp_end " ;
2019-06-07 05:10:20 +02:00
$parameters [ 'answer_stamp_begin' ] = $answer_stamp_begin . ':00.000' ;
$parameters [ 'answer_stamp_end' ] = $answer_stamp_end . ':59.999' ;
}
else {
if ( strlen ( $answer_stamp_begin ) > 0 ) {
$sql .= " and answer_stamp >= :answer_stamp_begin " ;
$parameters [ 'answer_stamp_begin' ] = $answer_stamp_begin . ':00.000' ;
}
if ( strlen ( $answer_stamp_end ) > 0 ) {
$sql .= " and answer_stamp <= :answer_stamp_end " ;
$parameters [ 'answer_stamp_end' ] = $answer_stamp_end . ':59.999' ;
}
}
if ( strlen ( $end_stamp_begin ) > 0 && strlen ( $end_stamp_end ) > 0 ) {
2019-09-03 16:29:44 +02:00
$sql .= " and end_stamp between :end_stamp_begin and :end_stamp_end " ;
2019-06-07 05:10:20 +02:00
$parameters [ 'end_stamp_begin' ] = $end_stamp_begin . ':00.000' ;
$parameters [ 'end_stamp_end' ] = $end_stamp_end . ':59.999' ;
}
else {
if ( strlen ( $end_stamp_begin ) > 0 ) {
$sql .= " and end_stamp >= :end_stamp_begin " ;
$parameters [ 'end_stamp_begin' ] = $end_stamp_begin . ':00.000' ;
}
if ( strlen ( $end_stamp_end ) > 0 ) {
$sql .= " and end_stamp <= :end_stamp_end " ;
$parameters [ 'end_stamp' ] = $end_stamp_end . ':59.999' ;
}
}
if ( strlen ( $duration ) > 0 ) {
$sql .= " and duration like :duration " ;
$parameters [ 'duration' ] = '%' . $duration . '%' ;
}
if ( strlen ( $billsec ) > 0 ) {
$sql .= " and billsec like :billsec " ;
$parameters [ 'billsec' ] = '%' . $billsec . '%' ;
}
if ( strlen ( $hangup_cause ) > 0 ) {
$sql .= " and hangup_cause like :hangup_cause " ;
$parameters [ 'hangup_cause' ] = '%' . $hangup_cause . '%' ;
}
if ( strlen ( $call_result ) > 0 ) {
switch ( $call_result ) {
case 'answered' :
$sql .= " and (answer_stamp is not null and bridge_uuid is not null) " ;
break ;
case 'voicemail' :
$sql .= " and (answer_stamp is not null and bridge_uuid is null) " ;
break ;
case 'missed' :
$sql .= " and missed_call = '1' " ;
break ;
case 'cancelled' :
if ( $direction == 'inbound' || $direction == 'local' || $call_result == 'missed' ) {
$sql = " and (answer_stamp is null and bridge_uuid is null and sip_hangup_disposition <> 'send_refuse') " ;
}
else if ( $direction == 'outbound' ) {
$sql = " and (answer_stamp is null and bridge_uuid is not null) " ;
}
else {
$sql .= "
and ((
( direction = 'inbound' or direction = 'local' )
and answer_stamp is null
and bridge_uuid is null
and sip_hangup_disposition <> 'send_refuse'
)
or (
direction = 'outbound'
and answer_stamp is null
and bridge_uuid is not null
)) " ;
}
break ;
default : //failed
//$sql .= "and (answer_stamp is null and bridge_uuid is null and billsec = 0 and sip_hangup_disposition = 'send_refuse') ";
}
}
if ( strlen ( $xml_cdr_uuid ) > 0 ) {
$sql .= " and xml_cdr_uuid = :xml_cdr_uuid " ;
$parameters [ 'xml_cdr_uuid' ] = $xml_cdr_uuid ;
}
if ( strlen ( $bleg_uuid ) > 0 ) {
$sql .= " and bleg_uuid = :bleg_uuid " ;
$parameters [ 'bleg_uuid' ] = $bleg_uuid ;
}
if ( strlen ( $accountcode ) > 0 ) {
$sql .= " and accountcode = :accountcode " ;
$parameters [ 'accountcode' ] = $accountcode ;
}
if ( strlen ( $read_codec ) > 0 ) {
$sql .= " and read_codec like :read_codec " ;
$parameters [ 'read_codec' ] = '%' . $read_codec . '%' ;
}
if ( strlen ( $write_codec ) > 0 ) {
$sql .= " and write_codec like :write_codec " ;
$parameters [ 'write_codec' ] = '%' . $write_codec . '%' ;
}
if ( strlen ( $remote_media_ip ) > 0 ) {
$sql .= " and remote_media_ip like :remote_media_ip " ;
$parameters [ 'remote_media_ip' ] = $remote_media_ip ;
}
if ( strlen ( $network_addr ) > 0 ) {
$sql .= " and network_addr like :network_addr " ;
$parameters [ 'network_addr' ] = '%' . $network_addr . '%' ;
}
//if (strlen($mos_comparison) > 0 && strlen($mos_score) > 0 ) {
// $sql .= "and rtp_audio_in_mos = :mos_comparison :mos_score ";
// $parameters['mos_comparison'] = $mos_comparison;
// $parameters['mos_score'] = $mos_score;
//}
if ( strlen ( $leg ) > 0 ) {
$sql .= " and leg = :leg " ;
$parameters [ 'leg' ] = $leg ;
}
//end where
if ( strlen ( $order_by ) > 0 ) {
2019-09-07 02:46:50 +02:00
$sql .= order_by ( $order_by , $order );
//$sql .= " order by $order_by $order ";
2015-03-06 18:15:09 +01:00
}
2016-07-27 04:49:23 +02:00
if ( $_REQUEST [ 'export_format' ] != " csv " && $_REQUEST [ 'export_format' ] != " pdf " ) {
2016-05-05 06:35:05 +02:00
if ( $rows_per_page == 0 ) {
2019-06-07 05:10:20 +02:00
$sql .= " limit :limit offset 0 \n " ;
$parameters [ 'limit' ] = $_SESSION [ 'cdr' ][ 'limit' ][ 'numeric' ];
2016-05-05 06:35:05 +02:00
}
else {
2019-06-07 05:10:20 +02:00
$sql .= " limit :limit offset :offset \n " ;
$parameters [ 'limit' ] = $rows_per_page ;
$parameters [ 'offset' ] = $offset ;
2016-05-05 06:35:05 +02:00
}
2012-07-11 04:23:05 +02:00
}
2019-06-07 05:10:20 +02:00
$sql = str_replace ( " " , " " , $sql );
2018-04-23 21:24:30 +02:00
$database = new database ;
if ( $archive_request == 'true' ) {
if ( $_SESSION [ 'cdr' ][ 'archive_database' ][ 'boolean' ] == 'true' ) {
$database -> driver = $_SESSION [ 'cdr' ][ 'archive_database_driver' ][ 'text' ];
$database -> host = $_SESSION [ 'cdr' ][ 'archive_database_host' ][ 'text' ];
$database -> type = $_SESSION [ 'cdr' ][ 'archive_database_type' ][ 'text' ];
$database -> port = $_SESSION [ 'cdr' ][ 'archive_database_port' ][ 'text' ];
$database -> db_name = $_SESSION [ 'cdr' ][ 'archive_database_name' ][ 'text' ];
$database -> username = $_SESSION [ 'cdr' ][ 'archive_database_username' ][ 'text' ];
$database -> password = $_SESSION [ 'cdr' ][ 'archive_database_password' ][ 'text' ];
}
}
2019-06-07 05:10:20 +02:00
$result = $database -> select ( $sql , $parameters , 'all' );
2018-04-23 21:24:30 +02:00
$result_count = count ( $result );
2019-06-07 05:10:20 +02:00
unset ( $database , $sql );
2018-05-01 10:57:47 +02:00
//return the paging
list ( $paging_controls_mini , $rows_per_page , $offset ) = paging ( $num_rows , $param , $rows_per_page , true , $result_count ); //top
list ( $paging_controls , $rows_per_page , $offset ) = paging ( $num_rows , $param , $rows_per_page , false , $result_count ); //bottom
2012-06-04 16:58:40 +02:00
2018-05-01 10:57:47 +02:00
//set the row style
2012-06-04 16:58:40 +02:00
$c = 0 ;
$row_style [ " 0 " ] = " row_style0 " ;
$row_style [ " 1 " ] = " row_style1 " ;
2019-09-29 02:42:13 +02:00
?>