Changeset 1019
- Timestamp:
- 09/15/08 09:07:13 (4 months ago)
- Files:
-
- trunk/admin/Public/form_data/FG_var_def_ratecard.inc (modified) (2 diffs)
- trunk/AGI/a2billing.php (modified) (1 diff)
- trunk/common/lib/Class.A2Billing.php (modified) (5 diffs)
- trunk/common/lib/Class.RateEngine.php (modified) (5 diffs)
- trunk/common/lib/interface/constants.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/admin/Public/form_data/FG_var_def_ratecard.inc
r967 r1019 173 173 "" , "", "", "", "" , "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.")); 174 174 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 175 187 $HD_Form -> AddEditElement(gettext("DESTINATION"), 176 188 "destination", … … 516 528 if (ADVANCED_MODE) { 517 529 // 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'); 519 531 }else{ 520 532 // 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'); 522 534 } 523 535 trunk/AGI/a2billing.php
r1012 r1019 31 31 include (dirname(__FILE__)."/lib/phpagi/phpagi-asmanager.php"); 32 32 include (dirname(__FILE__)."/lib/Misc.php"); 33 include (dirname(__FILE__)."/lib/interface/constants.php"); 33 34 34 35 $charge_callback=0; trunk/common/lib/Class.A2Billing.php
r1013 r1019 178 178 */ 179 179 var $CC_TESTING; 180 180 181 // List of dialstatus 182 var $dialstatus_rev_list; 183 181 184 182 185 /* CONSTRUCTOR */ 183 184 186 function A2Billing() 185 187 { 186 188 $this -> agiconfig['debug'] = true; 187 189 //$this -> DBHandle = $DBHandle; 190 191 $this -> dialstatus_rev_list = Constants::getDialStatus_Revert_List(); 188 192 } 189 193 190 194 191 195 /* Init */ 192 193 196 function Reinit() 194 197 { … … 1080 1083 1081 1084 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 1083 1091 if ($answeredtime > 0){ 1084 1092 $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 ". 1087 1095 "('".$this->uniqueid."', '".$this->channel."', '".$this->id_card."', '".$this->hostname."',"; 1088 1096 if ($this->config['database']['dbtype'] == "postgres"){ … … 1091 1099 $QUERY .= " CURRENT_TIMESTAMP - INTERVAL $answeredtime SECOND "; 1092 1100 } 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' )"; 1094 1102 1095 1103 $result = $this -> instance_table -> SQLExec ($this->DBHandle, $QUERY, 0); … … 1227 1235 1228 1236 $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 ". 1232 1245 "('".$this->uniqueid."', '".$this->channel."', '".$this->id_card."', '".$this->hostname."',"; 1233 1246 if ($this->config['database']['dbtype'] == "postgres"){ … … 1236 1249 $QUERY .= " CURRENT_TIMESTAMP - INTERVAL $answeredtime SECOND "; 1237 1250 } 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' )"; 1239 1252 1240 1253 $result = $this -> instance_table -> SQLExec ($this->DBHandle, $QUERY, 0); trunk/common/lib/Class.RateEngine.php
r1013 r1019 38 38 var $usedtrunk = 0; 39 39 var $freetimetocall_used= 0; 40 41 // List of dialstatus 42 var $dialstatus_rev_list; 43 40 44 41 45 /* CONSTRUCTOR */ 42 46 function RateEngine () 43 47 { 44 48 $this -> dialstatus_rev_list = Constants::getDialStatus_Revert_List(); 45 49 } 46 50 … … 55 59 $this -> lastcost = ''; 56 60 $this -> lastbuycost = ''; 61 57 62 } 58 63 … … 1033 1038 else $calltype = 0; 1034 1039 1040 if (strlen($this -> dialstatus_rev_list[$dialstatus])>0) 1041 $terminatecauseid = $this -> dialstatus_rev_list[$dialstatus]; 1042 else 1043 $terminatecauseid = 0; 1044 1035 1045 $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, " . 1037 1047 " id_trunk, src, sipiax, buyrate, buycost, id_card_package_offer, dnid, id_cc_prefix) VALUES ('".$A2B->uniqueid."', '".$A2B->channel."', '". 1038 1048 $A2B->id_card."', '".$A2B->hostname."', "; … … 1044 1054 } 1045 1055 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))."', ". 1047 1057 " '$id_tariffgroup', '$id_tariffplan', '$id_ratecard', '".$this -> usedtrunk."', '".$A2B->CallerID."', '$calltype', ". 1048 1058 "'$buyrateapply', '$buycost', '$id_card_package_offer', '".$A2B->dnid."', '".$calldestination."')"; … … 1370 1380 }; 1371 1381 1372 ?>trunk/common/lib/interface/constants.php
r1013 r1019 181 181 public static function getDialStatusList(){ 182 182 $dialstatus_list = array(); 183 $dialstatus_list["1"] = array( gettext("ANSWER ED") , "1");183 $dialstatus_list["1"] = array( gettext("ANSWER") , "1"); 184 184 $dialstatus_list["2"] = array( gettext("BUSY") , "2"); 185 185 $dialstatus_list["3"] = array( gettext("NOANSWER") , "3"); … … 191 191 $dialstatus_list["9"] = array( gettext("INVALIDARGS") , "9"); 192 192 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; 193 207 } 194 208
