Changeset 1019

Show
Ignore:
Timestamp:
09/15/08 09:07:13 (4 months ago)
Author:
areski
Message:

optimization CDR

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/admin/Public/form_data/FG_var_def_ratecard.inc

    r967 r1019  
    173173   "" , "", "", "", "" , "A2B_entity_prefix.php?popup_select=1&", ", 'prefix','width=550,height=340,top=20,left=100,scrollbars=1'", gettext("A) Add destination prefixes, ie '441' for UK Landlines.<br>B) Use 'defaultprefix' to setup a rate for all destinations where a specific rate is not provided.<br>C) if you ADD a rate, NOT an EDIT, you can define a range of prefixes. '32484-32487' adds all prefixes between 32484 and 32487. '32484,32386,32488' would add only the individual prefixes listed.<br>D) Asterisk extensions style + POSIX regex syntaxes are supported. '_447[7-9]XXXXXXXX' matches 12-digit UK mobiles. '_X{0,3}(112|999|911)' matches any 0-3 digits followed an emergency number. '_' can be used to add length, and raise the priority.")); 
    174174 
     175 
     176$HD_Form -> AddEditElement(gettext("Prefix_Destination"), 
     177   "id_cc_prefix", 
     178   '$value',     
     179   "SELECT",     
     180   "", "", "",   
     181   "sql",                
     182   "cc_prefix",  
     183   "destination, id, prefixe",           
     184   "", "", "%3 (%1)", "", gettext("This will later replace the field Destination, select here the prefix Destination corresponding to your prefix rate.")); 
     185    
     186 
    175187$HD_Form -> AddEditElement(gettext("DESTINATION"), 
    176188   "destination", 
     
    516528if (ADVANCED_MODE) { 
    517529        // This Variable store the argument for the SQL query 
    518         $HD_Form -> FieldEditElement ('idtariffplan, dialprefix, destination, buyrate, buyrateinitblock, buyrateincrement, rateinitial, initblock, billingblock, connectcharge, disconnectcharge, minimal_cost, stepchargea, chargea, timechargea, billingblocka, stepchargeb, chargeb, timechargeb, billingblockb, stepchargec, chargec, timechargec, billingblockc, startdate, stopdate, starttime, endtime, rounding_calltime, rounding_threshold, additional_block_charge, additional_block_charge_time,additional_grace, id_trunk, id_outbound_cidgroup, tag, musiconhold'); 
     530        $HD_Form -> FieldEditElement ('idtariffplan, dialprefix, id_cc_prefix, destination, buyrate, buyrateinitblock, buyrateincrement, rateinitial, initblock, billingblock, connectcharge, disconnectcharge, minimal_cost, stepchargea, chargea, timechargea, billingblocka, stepchargeb, chargeb, timechargeb, billingblockb, stepchargec, chargec, timechargec, billingblockc, startdate, stopdate, starttime, endtime, rounding_calltime, rounding_threshold, additional_block_charge, additional_block_charge_time,additional_grace, id_trunk, id_outbound_cidgroup, tag, musiconhold'); 
    519531}else{ 
    520532        // This Variable store the argument for the SQL query 
    521         $HD_Form -> FieldEditElement ('idtariffplan, dialprefix, destination, buyrate, buyrateinitblock, buyrateincrement,rateinitial, initblock, billingblock, connectcharge, disconnectcharge, minimal_cost, startdate, stopdate, starttime, endtime, rounding_calltime, rounding_threshold, additional_block_charge, additional_block_charge_time,additional_grace, id_trunk, id_outbound_cidgroup, tag'); 
     533        $HD_Form -> FieldEditElement ('idtariffplan, dialprefix, id_cc_prefix, destination, buyrate, buyrateinitblock, buyrateincrement,rateinitial, initblock, billingblock, connectcharge, disconnectcharge, minimal_cost, startdate, stopdate, starttime, endtime, rounding_calltime, rounding_threshold, additional_block_charge, additional_block_charge_time,additional_grace, id_trunk, id_outbound_cidgroup, tag'); 
    522534} 
    523535 
  • trunk/AGI/a2billing.php

    r1012 r1019  
    3131include (dirname(__FILE__)."/lib/phpagi/phpagi-asmanager.php"); 
    3232include (dirname(__FILE__)."/lib/Misc.php"); 
     33include (dirname(__FILE__)."/lib/interface/constants.php"); 
    3334 
    3435$charge_callback=0; 
  • trunk/common/lib/Class.A2Billing.php

    r1013 r1019  
    178178        */ 
    179179        var $CC_TESTING; 
    180  
     180         
     181        // List of dialstatus 
     182        var $dialstatus_rev_list; 
     183         
    181184 
    182185        /* CONSTRUCTOR */ 
    183  
    184186        function A2Billing() 
    185187        { 
    186188                $this -> agiconfig['debug'] = true; 
    187189                //$this -> DBHandle = $DBHandle; 
     190                 
     191                $this -> dialstatus_rev_list = Constants::getDialStatus_Revert_List(); 
    188192        } 
    189193 
    190194 
    191195        /* Init */ 
    192  
    193196        function Reinit() 
    194197        { 
     
    10801083 
    10811084                        if (($dialstatus  == "CHANUNAVAIL") || ($dialstatus  == "CONGESTION"))  continue; 
    1082  
     1085                         
     1086                        if (strlen($this -> dialstatus_rev_list[$dialstatus])>0) 
     1087                                $terminatecauseid = $this -> dialstatus_rev_list[$dialstatus]; 
     1088                        else 
     1089                                $terminatecauseid = 0; 
     1090                         
    10831091                        if ($answeredtime > 0){ 
    10841092                                $this -> debug( WRITELOG, $agi, __FILE__, __LINE__, "[CC_RATE_ENGINE_UPDATESYSTEM: usedratecard K=$K - (answeredtime=$answeredtime :: dialstatus=$dialstatus :: cost=$cost)]"); 
    1085                                 $QUERY = "INSERT INTO cc_call (uniqueid,sessionid,card_id,nasipaddress,starttime,sessiontime, calledstation, ". 
    1086                                         " terminatecause, stoptime, calledrate, sessionbill, id_tariffgroup, id_tariffplan, id_ratecard, id_trunk, src, sipiax) VALUES ". 
     1093                                $QUERY = "INSERT INTO cc_call (uniqueid, sessionid, card_id, nasipaddress, starttime, sessiontime, calledstation, ". 
     1094                                        " terminatecauseid, stoptime, calledrate, sessionbill, id_tariffgroup, id_tariffplan, id_ratecard, id_trunk, src, sipiax) VALUES ". 
    10871095                                        "('".$this->uniqueid."', '".$this->channel."',  '".$this->id_card."', '".$this->hostname."',"; 
    10881096                                if ($this->config['database']['dbtype'] == "postgres"){ 
     
    10911099                                        $QUERY .= " CURRENT_TIMESTAMP - INTERVAL $answeredtime SECOND "; 
    10921100                                } 
    1093                                 $QUERY .= ", '$answeredtime', '".$card_alias."', '$dialstatus', now(), '0', '0', '0', '0', '$this->CallerID', '1' )"; 
     1101                                $QUERY .= ", '$answeredtime', '".$card_alias."', '$terminatecauseid', now(), '0', '0', '0', '0', '$this->CallerID', '1' )"; 
    10941102                                 
    10951103                                $result = $this -> instance_table -> SQLExec ($this->DBHandle, $QUERY, 0); 
     
    12271235 
    12281236                                                $this -> debug( WRITELOG, $agi, __FILE__, __LINE__, "[DID CALL - LOG CC_CALL: FOLLOWME=$callcount - (answeredtime=$answeredtime :: dialstatus=$dialstatus :: cost=$cost)]"); 
    1229  
    1230                                                 $QUERY = "INSERT INTO cc_call (uniqueid,sessionid,card_id,nasipaddress,starttime,sessiontime, calledstation, ". 
    1231                                                         " terminatecause, stoptime, calledrate, sessionbill, id_tariffgroup, id_tariffplan, id_ratecard, id_trunk, src, sipiax) VALUES ". 
     1237                                                 
     1238                                                if (strlen($this -> dialstatus_rev_list[$dialstatus])>0) 
     1239                                                        $terminatecauseid = $this -> dialstatus_rev_list[$dialstatus]; 
     1240                                                else 
     1241                                                        $terminatecauseid = 0; 
     1242                                                 
     1243                                                $QUERY = "INSERT INTO cc_call (uniqueid, sessionid, card_id, nasipaddress, starttime, sessiontime, calledstation, ". 
     1244                                                        " terminatecauseid, stoptime, calledrate, sessionbill, id_tariffgroup, id_tariffplan, id_ratecard, id_trunk, src, sipiax) VALUES ". 
    12321245                                                        "('".$this->uniqueid."', '".$this->channel."',  '".$this->id_card."', '".$this->hostname."',"; 
    12331246                                                if ($this->config['database']['dbtype'] == "postgres"){ 
     
    12361249                                                        $QUERY .= " CURRENT_TIMESTAMP - INTERVAL $answeredtime SECOND "; 
    12371250                                                } 
    1238                                                 $QUERY .= ", '$answeredtime', '".$inst_listdestination[4]."', '$dialstatus', now(), '0', '0', '0', '0', '$this->CallerID', '3' )"; 
     1251                                                $QUERY .= ", '$answeredtime', '".$inst_listdestination[4]."', '$terminatecauseid', now(), '0', '0', '0', '0', '$this->CallerID', '3' )"; 
    12391252                                                 
    12401253                                                $result = $this -> instance_table -> SQLExec ($this->DBHandle, $QUERY, 0); 
  • trunk/common/lib/Class.RateEngine.php

    r1013 r1019  
    3838        var $usedtrunk                  = 0; 
    3939        var $freetimetocall_used= 0; 
     40         
     41        // List of dialstatus 
     42        var $dialstatus_rev_list; 
     43         
    4044 
    4145        /* CONSTRUCTOR */ 
    4246        function RateEngine () 
    4347        { 
    44  
     48                $this -> dialstatus_rev_list = Constants::getDialStatus_Revert_List(); 
    4549        } 
    4650 
     
    5559                $this -> lastcost = ''; 
    5660                $this -> lastbuycost = ''; 
     61                 
    5762        } 
    5863 
     
    10331038                else $calltype = 0; 
    10341039                 
     1040                if (strlen($this -> dialstatus_rev_list[$dialstatus])>0) 
     1041                        $terminatecauseid = $this -> dialstatus_rev_list[$dialstatus]; 
     1042                else 
     1043                        $terminatecauseid = 0; 
     1044                 
    10351045                $QUERY = "INSERT INTO cc_call (uniqueid, sessionid, card_id, nasipaddress, starttime, sessiontime, real_sessiontime, calledstation, ". 
    1036                         " terminatecause, stoptime, calledrate, sessionbill, id_tariffgroup, id_tariffplan, id_ratecard, " . 
     1046                        " terminatecauseid, stoptime, calledrate, sessionbill, id_tariffgroup, id_tariffplan, id_ratecard, " . 
    10371047                        " id_trunk, src, sipiax, buyrate, buycost, id_card_package_offer, dnid, id_cc_prefix) VALUES ('".$A2B->uniqueid."', '".$A2B->channel."', '". 
    10381048                        $A2B->id_card."', '".$A2B->hostname."', "; 
     
    10441054                } 
    10451055 
    1046                 $QUERY .=       ", '$sessiontime', '".$this->real_answeredtime."', '$calledstation', '$dialstatus', now(), '$rateapply', '$signe_cc_call".a2b_round(abs($cost))."', ". 
     1056                $QUERY .=       ", '$sessiontime', '".$this->real_answeredtime."', '$calledstation', '$terminatecauseid', now(), '$rateapply', '$signe_cc_call".a2b_round(abs($cost))."', ". 
    10471057                                        " '$id_tariffgroup', '$id_tariffplan', '$id_ratecard', '".$this -> usedtrunk."', '".$A2B->CallerID."', '$calltype', ". 
    10481058                                        "'$buyrateapply', '$buycost', '$id_card_package_offer', '".$A2B->dnid."', '".$calldestination."')"; 
     
    13701380}; 
    13711381 
    1372 ?> 
  • trunk/common/lib/interface/constants.php

    r1013 r1019  
    181181        public static function getDialStatusList(){ 
    182182                $dialstatus_list = array(); 
    183                 $dialstatus_list["1"] = array( gettext("ANSWERED")            , "1"); 
     183                $dialstatus_list["1"] = array( gettext("ANSWER")              , "1"); 
    184184                $dialstatus_list["2"] = array( gettext("BUSY")                  , "2"); 
    185185                $dialstatus_list["3"] = array( gettext("NOANSWER")              , "3"); 
     
    191191                $dialstatus_list["9"] = array( gettext("INVALIDARGS")   , "9"); 
    192192                return $dialstatus_list; 
     193        } 
     194         
     195        public static function getDialStatus_Revert_List(){ 
     196                $dialstatus_rev_list = array(); 
     197                $dialstatus_rev_list["ANSWER"]          = 1; 
     198                $dialstatus_rev_list["BUSY"]            = 2; 
     199                $dialstatus_rev_list["NOANSWER"]        = 3; 
     200                $dialstatus_rev_list["CANCEL"]          = 4; 
     201                $dialstatus_rev_list["CONGESTION"]      = 5; 
     202                $dialstatus_rev_list["CHANUNAVAIL"] = 6; 
     203                $dialstatus_rev_list["DONTCALL"]        = 7; 
     204                $dialstatus_rev_list["TORTURE"]         = 8; 
     205                $dialstatus_rev_list["INVALIDARGS"] = 9; 
     206                return $dialstatus_rev_list; 
    193207        } 
    194208 


Google