Changeset 723

Show
Ignore:
Timestamp:
05/14/08 07:50:55 (8 months ago)
Author:
areski
Message:

CHANGELOG UPDATE

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/1.3/CHANGELOG

    r62 r723  
    1  
    2  
    3 ******************************************************************** 
    4                                                 V1.3 
    5 ******************************************************************** 
    6  
    7  
    8 #### BUG : CallBack 
    9 ******************************************************************** 
    10 DIVIDE THE AMOUNT OF CREDIT BY 2 IN ORDER TO AVOID NEGATIVE BALANCE IF THE USER USE ALL HIS CREDIT 
    11  
    12  
    13 #### BUG : Customer UI 
    14 ******************************************************************** 
    15 from the user portal, i'm able to add more than 5 callerID eventhough i just set limit_callerid = 2. Is it a BUG or just i'm having this problem? 
    16 http://forum.asterisk2billing.org/viewtopic.php?t=2250 
    17  
    18  
    19 #### MISC 
    20 ******************************************************************** 
    21 - Change qualify to 7 chars :  
    22         db change mysql : 
    23                 ALTER TABLE cc_iax_buddies CHANGE qualify qualify char(7); 
    24                 ALTER TABLE cc_sip_buddies CHANGE qualify qualify char(7); 
    25         db change psql : 
    26                 ALTER TABLE cc_iax_buddies ALTER COLUMN qualify TYPE char(7); 
    27                 ALTER TABLE cc_sip_buddies ALTER COLUMN qualify TYPE char(7); 
    28          
    29 - Correction on alarm spelling 
    30 - Add export rates csv & xml 
    31 - BUG : wrong audio file prepaid-enter-pin-number.gsm 
    32 - BUG : peer sip iax qualify & nat & sip/iax info on Customer UI display  
    33 - UPDATE : scrollbar on textarea 
    34 - UPDATE : naming on batch update 
    35 - UPDATE : Help files 
    36 - UPDATE : remove paypal section from conf files 
    37 - UPDATE : Display ratecard 100% wide 
    38 - BUG : Reporting 
    39  
    40  
    41 #### NEW LOGO ON MAIN PAGE 
    42 ******************************************************************** 
    43  
    44  
    45 #### MOVE THIS IN CONF FILE 
    46 ******************************************************************** 
    47         and this the a2billing-callback-daemon: 
    48          
    49         ####### ASTERISK MANAGER ###### 
    50         my $manager_host = "localhost"; 
    51         my $manager_username = "myasterisk"; 
    52         my $manager_secret = "mycode";  
    53  
    54 use a2billing.conf 
    55 [global] 
    56 ; MANAGER CONNECTION PARAMETERS 
    57 manager_host = localhost 
    58 manager_username = myasterisk 
    59 manager_secret = mycode 
    60  
    61  
    62 #### FILE USED ? 
    63 ******************************************************************** 
    64 trunk/A2BCustomer_UI/lib/epayment/includes/PP_header.php 
    65 trunk/A2Billing_UI/lib/epayment/includes/PP_header.php 
    66  
    67 To remove :  
    68 trunk/A2Billing_UI/signup/PP_footer.php 
    69 trunk/A2Billing_UI/signup/PP_header.php 
    70  
    71 #### BUG : IAX / SIP friends 
    72 ******************************************************************** 
    73 I have the BLANK PAGE when I click to generate the iax friend  
    74 it happens on the first user in the system 
    75  
    76  
    77 #### BUG : IE Customer UI 
    78 ******************************************************************** 
    79 the menu is very bad on Internet Explorer in client interface 
    80 you can view just half of the menu 
    81  
    82  
    83 #### CALLBACK : INTRO MESSAGE 
    84 ******************************************************************** 
    85 Play an intro message on CallBack 
    86  
    87  
    88 #### Building a logging / tracking system on the web interface 
    89 ******************************************************************** 
    90 Building a logging / tracking system on the web interface 
    91  
    92  
    93 #### FEATURE : IVR - OPTION NO VOICE 
    94 ******************************************************************** 
    95 Create an option on the AGI to remove Audio 
    96  
    97 ; Play audio - this will disable all stream file but not the Get Data  
    98 ; for wholesale ensure that the authentication works and than number_try = 1 
    99 play_audio = YES 
    100  
    101  
    102 #### REMOVE OLD PAYPAL 
    103 ******************************************************************** 
    104 A2Billing_UI/paypal 
    105 A2B_entity_paypal.php?atmenu=paypal&stitle=PaypalTransaction&form_action=list&section=2 
    106 FG_var_paypal 
    107  
    108  
    109 #### SIGNUP : IF SIP/IAX Created reload asterik 
    110 ******************************************************************** 
    111 After the public signup , get Asterisk to do a reload, as when a new card is created,  
    112 asterisk is not reloaded, and therefore the SIP/IAX friend cannot register. 
    113  
    114 I added new parameter to handle this : 
    115 ; Define if you want to reload Asterisk when a SIP / IAX Friend is created at signup time 
    116 reload_asterisk_if_sipiax_created = no 
    1171 
    1182 
    1193 
    120 #### CHANGE : INVOICE ADD MORE INFO 
    121 ******************************************************************** 
    122 A2BCustomer_UI/A2B_entity_call_details.php 
    123 add : Calls by Destination ; Calls by Date ; TOTAL ; VAT 
    124 like we have in A2BCustomer_UI/A2B_entity_invoice_detail.php?section=4&invoice_type=1 
     4------------------------------------------------------------------------------------------ 
    1255 
     614 May 2008     - Belaid Arezqui <areski@gmail.com> 
    1267 
    127 #### CHANGE : PAYMENT MODULE 
    128 ******************************************************************** 
    129 We should have a single button but just saying that Pay Amount.. and then on the check_payment select payment gate way then fill the amount 
    130 This will be the right process otherwise we cannot remove this conflict 
    131 Userinfo => Just Pay Now Button..no amount 
    132 Checkout_payment => Select Payment gateway 
    133 Checkout_amount => Enter the amount ,,, Currecny will be shown to him 
    134 checkout_confirmation => 
    135  
    136 $arr_purchase_amount = split(":", EPAYMENT_PURCHASE_AMOUNT); 
    137 if (!is_array($arr_purchase_amount)) $arr_purchase_amount[0]=10; 
    138  
    139 foreach($arr_purchase_amount as $value){ 
    140  
    141 #### INVOICE FIX 
    142 ******************************************************************** 
    143 fix on A2Billing_UI/Public/invoices_customer.php ->  false cardnumber 
    144 # Error page : Blank page with "No User found" 
    145 need design good error pages !! 
    146 Golden rule : never show a white page with an error message. 
    147  
    148  
    149 #### FIX : REFILL BASE CURRENCY 
    150 ******************************************************************** 
    151 A2BCustomer_UI/userinfo.php 
    152 # when we are changing the base currency -> on the userinfo it is shown to purchage 20 $ 
    153 the amount to refill should be show in the base currency and the next page should refill accordingly 
    154  
    155  
    156 #### FIX : HIDE DIV ON "List Customer" & "Browse Rates" 
    157 ******************************************************************** 
    158 Jquery - HIDE DIV ON "List Customer" & "Browse Rates" 
    159  
    160 ## USE CC_COUNTRY TO SELECT THE COUNTRY : ON SIGNUP & EDIT CUSTOMER 
    161 ******************************************************************** 
    162 We will use cc_country table to select the country on signup module and also when  
    163 we edit customer info. The value store in cc_card->country will be the cc_country->countrycode 
    164  
    165 #### BUG 
    166 ******************************************************************** 
    167 yes the authorize is always in USD as it s only for US peoples. 
    168 So the amount received by Authorize is in USD, we need configure it convert from   
    169 USD -> base currency before making the insert. 
    170 if the base currency is in EURO it wont work correctly now 
    171  
    172 #### PROMOTE : CALL-LABS 
    173 ******************************************************************** 
    174 Promote : call-labs on a2billing trunk 
    175  
    176  
    177 #### EPAYMENT : MULTI CURRENCY MANAGEMENT 
    178 ******************************************************************** 
    179 handle mc_currency with paypal & mb_currency with moneybookers 
    180 in order to secure the currency of the transactions 
    181  
    182 #### UPDATE : IMPORT MODULE 
    183 ******************************************************************** 
    184 When I import, I get a page which allows me to check the data is being 
    185 imported properly. There is no way to accept that import without selecting  
    186 the csv files again.  
    187  
    188 #### BUGS 
    189 ******************************************************************** 
    190 1# One more thing - if the SIP/IAX friend is created via "Create SIP Friend" button,  
    191 then the defaults are not filled in, such as the context. 
    192  
    193 2# 
    194 IAX and SIP friends are not created correctly when created from the customer signup page. My understanding is that the account number and CID should be the same as the account number and card alias - this is the ony way it seems to work, otherwise the call is rejected. 
    195  
    196 #### FEATURES : EDIT SOME CUSTOMER INFORMATION ON CUSTOMERUI 
    197 ******************************************************************** 
    198 A2BCustomer_UI/userinfo.php 
    199 add a button below "Country" -> "edit my personal informations" 
    200 we should be able to edit some of the data, not all, base on our framework. 
    201 Ensure that customer cannot edit an other cardid 
    202  
    203 #### CONSOLIDATE THE GETTEXT FILES 
    204 ******************************************************************** 
    205 Consolidate the gettext files for customer and admin interface 
    206 regenerate all PO & MO files 
    207  
    208 #### ADD referial ID : Admin & customer (conf) 
    209 ******************************************************************** 
    210 https://www.moneybookers.com/app/?rid=811621 
    211 https://www.paypal.com/es/mrb/pal=PGSJEXAEXKTBU 
    212  
    213  
    214 #### BUG 
    215 ******************************************************************** 
    216 http://forum.asterisk2billing.org/viewtopic.php?t=1927 
    217  
    218  
    219 #### FEATURE CUSTOMER UI : SIP/IAX INFO & partial edit 
    220 ******************************************************************** 
    221 What about link under account Info. 
    222   
    223 VoIP settings 
    224           o List SIP 
    225           o List IAX 
    226  
    227 Put the User name and password under each link from the appropriate table. 
    228   
    229 This could be developed in a later release to allow the customer to change some of the more advanced settings, unless of course you just re-use the "List IAX-Friend" code from the admin screens, which would be a very quick win.  
    230  
    231  
    232 User info Profile user can see any data for SIP registrations his device like sip-login an sip-password (locked to change)  
    233  
    234 #### E-PAYMENT MODULE 
    235 ******************************************************************** 
    236 Modified: trunk/A2BCustomer_UI/checkout_payment.php 
    237  
    238 # customers_id -> feed with the card ID 
    239  
    240 # http://locals.com/checkout_process.php?sess_id=8g34831kbhdimm790mt5heh0u5&transactionID=6 
    241 Secure that 
    242  
    243 # ADD a random number MDP 
    244 on $key = securitykey(EPAYMENT_TRANSACTION_KEY, $time_stamp."^".$transaction_no[0][0]."^".$amount."^".$_SESSION["card_id"]); 
    245  
    246 # Check security on MD5 HMAC  
    247 but we need a secret code on moneybooker side / paypal / etc--- 
    248  
    249 // Calculate and return fingerprint 
    250 // Use when you need control on the HTML output 
    251 function CalculateFP ($loginid, $txnkey, $amount, $sequence, $tstamp, $currency = "") { 
    252   return ($this->hmac ($txnkey, $loginid . "^" . $sequence . "^" . $tstamp . "^" . $amount . "^" . $currency)); 
    253 
    254 that will work only stored on provider side 
    255  
    256  
    257 #### FEATURES : CALLBACK APIs 
    258 ******************************************************************** 
    259 1# Queue a callback request from an API : HTTP / WSDL 
    260 - it will return the uniqueID generate for the callback request 
    261 an API could generate a callback http://apiurl/callback-exec.php?listparameter=values&uniqueid=324234 
    262 return an ID to identify the callback request 
    263  
    264 2# API to check the status of the callback : webservice   
    265 - check the status of a generated callback  
    266  
    267 So an API will return result of a callback http://apiurl/callback-status.php?id=123453 
    268 id is the ID returned by  
    269 reply : Pending ; Success ; Error, etc ... 
    270  
    271  
    272 #### WEB-CALLBACK 
    273 ******************************************************************** 
    274 if the 2 leg is not connected, we need to bill the 1st  
    275  
    276  
    277 #### SIGNUP SELECT TARIFFGROUP 
    278 ******************************************************************** 
    279 
    280 ; ID Tariffgroup to use, check the ID in the tariffgroup list - WebUI 
    281 tariff = 1 
    282 
    283 -> need to be changed to -> 
    284  
    285 ; ID CallPlan to sign the customers 
    286 ; or define a list of ID to let himselect select the callplan 
    287 ; check the ID in the callplan list - WebUI 
    288 callplan = 1, 2, 3 
    289 
    290  
    291 SO "IN CASE OF MULTIPLE CALLPLAN", a new Dropdown menu will appear on the signup form. 
    292 with the list of Callplan associate here to the list of ID  
    293 (name of the callplab will appear, not the number 1, 2, 3) 
    294  
    295 Security, ensure at the sign-up time that the value send by the form is include in 
    296 it to avoid the possibility from the customer to signup under an other tariffgroup 
     8        * A2Billing 1.3.3 released 
    2979 
    29810 
    29911 
    300 #### MoneyBooker bug 
    301 ******************************************************************** 
    302 http://myaccount.call-labs.com/checkout_process.php?sess_id=58u4ckvmu0e0eedn9k872v1od4 
    303 Fatal error: Call to undefined method moneybookers::get_CurrentCurrency() in /var/www/html/svn/trunk/A2BCustomer_UI/lib/epayment/classes/payment.php on line 168 
     12Some important updates and fixes since last version 1.3.2 : 
     13         
     14        * disable IAX phone by default 
     15         
     16        * The $caller_areacode variable is not being used during the voucher mode for CallerID authentication 
     17         
     18        * Add another valid MIME file type for CSV files under "import RateCard" 
     19         
     20        * add MySQL currency truncation fix to branches/1.3 
     21         
     22        * port Yahoo precision workaround to branches/1.3 
     23         
     24        * more fix for ticket 175 : When I delete a customer, a2billing informs me than there is a sip account associated and is going to be deleted, 
     25         
     26        * improve on transaction ID for epayment 
     27         
     28        * allow codecs for peer friends : no spaces 
     29         
     30        * Add support of Ukrainian on Customer UI - supported by Oleh 
     31         
     32        * UPDATE: DID usage page could possibly construct malformed SQL queries. 
     33         
     34        * Big bug if we have more that one Call Plan with LCR : the processing of LCR will not be exact ! 
     35         
     36        * FEATURE:  add links to helpful wiki entries from most pages in the admin UI 
     37         
     38        * BUG: DID billing cron job didn't account for postpaid customers' credit limits 
     39         
     40        * fix links on the customer second template 'design 1' 
     41         
     42        * add some parameters to give more flexibility on distant login and forget password use 
     43         
     44        * UPDATE: allow ratecard import to set ft2c_package_offer too 
     45         
     46        * Avoiding integer overflow in PHP and long overflow in C++ (Asterisk) that may lead to unpredictable behavior of the Dial command for extremely large %timeout% values. 
     47         
     48        * UPDATE: the CDR reports were needlessly loading every row from the cc_card table into memory 
     49         
     50        * add caching on API ratecard 
     51         
     52        * FIX : if auto create card, prompt for voucher if jump is defined and autocredit = 0 
     53         
     54        * currency set to global value when auto create 
     55         
     56        * BUG: emailing more than one PDF invoice didn't work 
     57         
     58        * context=from-trunk no longer hard-coded in the customer UI 
     59         
     60        * UPDATE : move prefix optimization to branch 1.3 
     61         
     62        * BUG: Profit/loss reports were inaccurate due to extracharge_did adjusting the sell-rate without an accompanying adjustment to the buy-rate. 
     63         
     64        * BUG: Postgresql compatibility fix in DID usage page 
     65         
     66        * UPDATE: eliminate all(?) the remaining usage of troublesome PHP short-tags 
     67         
     68        * UPDATE: Trigonometry to get an alternating value 
     69         
     70        * UPDATE: small refinements to alarm emails. Moved the fencepost: they no longer trigger until the metric is outside the defined range. 
     71         
     72        * UPDATE : New voucher Search & Batch Update 
     73         
     74        * a2billing.php|1|callback is now more customizable and no more "Unable to write frame ..." during callback trigger. 
     75         
     76        * Account balance is better converted in currency format with proper rounding. 
     77         
     78        * UPDATE : insecure field to 20 length 
    30479 
     80        
     81        
    30582 
    306 #### BUG 
    307 ******************************************************************** 
    308 You have 1 dependent records. 
    309 You are going as well to remove all the SIP/IAX accounts attached to this card! Please comfirm that you really want to remove that SIP/IAX Accounts ? 
    310  
    311  
    312 #### check files  
    313 ******************************************************************** 
    314 A2BCustomer_UI/lib/epayment/includes/methods/* 
    315  
    316 define action url from conf file 
    317 A2BCustomer_UI/lib/epayment/methods/moneybookers.php 
    318  
    319  
    320 #### SHIFT LEFT : DEFINES.PHP 
    321 ******************************************************************** 
    322 SHIFT LEFT : DEFINES.PHP 
    323  
    324  
    325 #### FEATURE : NEW CALLBACK SYSTEM 
    326 ******************************************************************** 
    327 rebuild of the callback system, we are using a spool system in DB and a perl Daemon to initiate the callback. 
    328 it brings flexibility and a way to track the callback request, their status, etc... 
    329 So we have a spool system, all request are stored and handled by a perl daemon that will take care of dispatching  
    330 them through several asterisk server. 
    331 There is also an API also for this to generate the callback. 
    332 /api/api_spool_callback.php 
    333 this could be use by any third application/platform to generate callback request. 
    334  
    335 #### INVOICES  
    336 ******************************************************************** 
    337 View Invoices  
    338         # show cardnumber 
    339         # Status appears to be empty for the invoice I had previously why ? 
    340         # if I click on Sent the sent date is not update 
    341         # Enter the cardnumber: -> this is the Card ID 
    342          
    343         # Click on Details -> it will be good to see the Start date and the End Date there 
    344         # Details ->  
    345                 the Charges is not converted at all if I have a charge of 100 in EUR and my base currency is in usd 
    346                 it will show 100 usd the amount is not converted 
    347                 there is function in Misc.php for this 
    348         # Details -> the amount dont fit with what I have on the invoice page !! 
    349         # Details -> keeping some options like in invoices.php   
    350                 - RESULT :       Minutes - Second 
    351                 - EXPORT FORMAT :        See Invoice in HTML  or Export PDF 
    352                 - CURRENCY : selection 
    353         # Details -> Status :                    Connected      DisConnected 
    354                 only show Status : [the appropiated image ] Connected or DisConnected 
    355          
    356 Create Invoices  
    357         # For card number: -> From card ID: 
    358         # When you create the invoice we need an option to choose if we send or not directly the mail 
    359         # INVOICE STATUS 
    360                 UNPAID 
    361                 SENT-UNPAID 
    362                 SENT-PAID 
    363                 PAID 
    364          
    365         # A2B_entity_create_invoice.php no footer 
    366          
    367  
    368 Invoice_Customer 
    369         # Menu dont use _ -> Invoice Customer 
    370          
    371         # Error page : Blank with "No User found" 
    372         Can we design good error pages !! 
    373          
    374         # if there is no calls and no charge, only the logo appear : 
    375                 there is nothing telling u that the invoice is empty!! 
    376                  
    377         # show the covert start date 
    378          
    379         # keeping some options like in invoices.php 
    380                 - RESULT :       Minutes - Second 
    381                 - EXPORT FORMAT :        See Invoice in HTML  or Export PDF 
    382                 - CURRENCY : selection 
    383  
    384 CUSTOMER 
    385         # A2BCustomer_UI/invoices_customer.php 
    386                 - if there is no calls and no charge, only the logo appear : 
    387                 there is nothing telling u that the invoice is empty!! 
    388                 - show the covert start date 
    389         # List of invoices 
    390                 customer should be able to see his own history of invoices with their status 
    391                 Status should be different here, only pay or unpay 
    392          
    393          
    394  
    395 #### FEATURE : REVIEW NEW DID MANAGEMENT 
    396 ******************************************************************** 
    397 Reservation and release 
    398 * To check 
    399  
    400 ######## CURRENCY MANAGEMENT IN CRONT SERVICE  
    401 ******************************************************************** 
    402 Currency management in cront service 
    403  
    404  
    405 #### VOUCHER 
    406 ******************************************************************** 
    407 if you want to refill you card with a voucher please dial... 
    408 and its not understandable 
    409  
    410  
    411 #### Review Audio 
    412 ******************************************************************** 
    413 Send mail to Vincent for Spanish recording 
    414  
    415 #### DID CRONT - currency cc_charge 
    416 ******************************************************************** 
    417 1#  add currency 
    418         a2billing_bill_diduse.php 
    419          
    420          
    421 #### JQUERY SLIDE 
    422 ******************************************************************** 
    423 Menu with Jquery 
    424  
    425  
    426 #### NAMING 
    427 ******************************************************************** 
    428 REPLACE SIGNUP IN THE LEFT MENU -> MISC 
    429 replace also SIGNUP  in ACL 
    430  
    431 TARIFFGROUP -> CALL PLAN 
    432         TARIFFGROUPNAME -> NAME 
    433         Change in edit card, signup & AGI 
    434  
    435  
    436 #### JQUERY SLIDE 
    437 ******************************************************************** 
    438 help.php 
    439  
    440  
    441 #### Misc : FORMAT 
    442 ******************************************************************** 
    443 To tidy up the box for filtering, can you either reduce the font size or use symbols only, e.g. >  ;   >=  ; <= 
    444  
    445  
    446 #### Misc : INVOICE 
    447 ******************************************************************** 
    448 1#  
    449         http://trac.a2billing.net/cgi-bin/trac.cgi/changeset/981 
    450         we need to have all this way 
    451  
    452 2# 
    453         if the description is long, for instance put in the description "Extra Charges are to allow the billing of one-off or re-occurring monthly charges. These may be used as setup or service charges, etc...Charges will appear to the user with the description you attach. Each charge that you create for a user will decrement his account." 
    454  
    455         it doesnt looks pretty, the description column is very small 
    456          
    457         problem on : 
    458         A2B_entity_invoice_billedmail.php 
    459         A2B_entity_invoice_detail.php 
    460         ... 
    461  
    462 3#  
    463         if you click on payment button when u have few payement 
    464         then u click on the "sort button" or to display [10] [50] [100] it fails or show up the menu!!! 
    465  
    466          
    467 4# 
    468         images on  
    469         <img src="<?php echo Images_Path;?>/asterisk01.jpg" align="middle"> 
    470          
    471         I added a new parameter on a2billing.conf, 
    472         ; filename of the image that will be display at the top of the invoice (if not defined no image will appear ; path to place the image templates/default/images/) 
    473         invoice_image = asterisk01.jpg 
    474          
    475         we will handle this that way 
    476          
    477 5# 
    478         A2B_entity_invoice_billedmail.php?section=2&id=8&cardid=12&action=sendinvoice&exporttype=html 
    479         some images dont exist 
    480         Public/templates/default/images/spacer.jpg 
    481          
    482 6# 
    483         A2B_entity_invoice_billedmail.php 
    484         this need to use mailtemplate 
    485         $email_from = "admin@a2billing.org";  
    486         $email_subject = "A2Billing Invoice"; 
    487         $email_message = "Dear Customer<br><br>\n\n Attached is the Invoice.\n\n <br><br>Sincerely<br>\n\nAdministrator A2Billing"; 
    488          
    489          
    490 7# 
    491         Refactoring this HUGE mess. 
    492         We have tons of pages to show up almost the same report 
    493         Find a centralized way to make it clean and compress 
    494  
    495  
    496 8# 
    497         A2B_entity_invoice_billedmail.php 
    498         we still have the understandable stuff at the end : 
    499         Status :  
    500     Connected      Disconnected 
    501          
    502         do the same as : A2B_entity_invoice_detail.php 
    503          
    504  
    505 #### TO FIX 
    506 ******************************************************************** 
    507 to check the patch I made here : 
    508 http://trac.a2billing.net/cgi-bin/trac.cgi/changeset/955 
    509  
    510 and try to reproduce this all all the invoices pages 
    511 this compress and make the code cleaner. 
    512  
    513 do this work for all the files : 
    514 A2B_entity_invoice_billedmail.php 
    515 A2B_entity_invoice_detail.php 
    516 A2B_entity_invoice_list.php 
    517 A2B_entity_invoices.php 
    518 A2B_entity_invoices_unbilled.php 
    519 A2B_entity_invoice_unbilledmail.php 
    520  
    521 #### MISC 
    522 ******************************************************************** 
    523 * Customer -> Call Details : add criteria - Answered call 
    524  
    525 #### FORMAT 
    526 ******************************************************************** 
    527 Rates -> Browse Rates 
    528 Reduce the size of the fonts in the batch up section e.g. 1.) Trunk – looks ok in firefox, but everything falls off the end in IE7  
    529  
    530  
    531 #### ADD SCROLLBAR ON ALL POPUP 
    532 ******************************************************************** 
    533 scrollbars=1 in the window.open 
    534 Check Rev 977 
    535  
    536  
    537 #### WRITE DOCUMENTATION: API SHOW RATECARD ->  
    538 ******************************************************************** 
    539 WRITE FULL DOCUMENTATION FOR : 
    540 trunk/A2Billing_UI/api/display_ratecard.php 
    541  
    542  
    543  
    544 #### WRITE DOCUMENTATION: ALARM SYSTEM 
    545 ******************************************************************** 
    546 WRITE DOCUMENTATION: ALARM SYSTEM 
    547  
    548  
    549 #### FEATURE : NEW INVOICING SYSTEM 
    550 ******************************************************************** 
    551 you will see, I dont describe here 
    552  
    553  
    554 #### FEATURE : jump_voucher_if_min_credit 
    555 ******************************************************************** 
    556 When the user credit are below the minimum credit to call min_credit  
    557 we might have an option to decide if we jump directly to the voucher IVR menu instead of just disconecting 
    558  
    559 option in a2billing.conf 
    560 jump_voucher_if_min_credit = yes or no 
    561  
    562  
    563 #### MANAGE MULTI LENGHT CARD NUMBER 
    564 ******************************************************************** 
    565 New parameter : 
    566 [global] 
    567 ; len_cardnumber is removed 
    568 ; interval for the length of the cardnumber (number of digits),  
    569 ; ie: 10-15 (cardnumber authorised 10, 11, 12, 13, 14, 15) ; 10,12,14 (cardnumber authorised 10, 12, 14) 
    570 interval_len_cardnumber = 10-15 
    571  
    572  
    573 We will support more than 1 lenght for the cardnumber. 
    574 Admin Web interface : 
    575 - Create customer :  
    576         Add a drop-down button in the top page (below the help) to select the lenght for the card creation 
    577         -> if the drop-down is selected the page will refresh with the new value for the card lenght 
    578         by default we will use the minimum value of interval_len_cardnumber 
    579 - Generate Customer : 
    580         Add a point 13) as a drop-down button, select the card lenght but no refresh needed here 
    581 - AGI 
    582  
    583 #### EXEC_SETLANGUAGE 
    584 ******************************************************************** 
    585 function exec_setlanguage($language='en') 
    586 { 
    587   return $this->exec('SetLanguage', $language); 
    588 } 
    589  
    590  
    591 #### UPDATE a2billing_invoice_cront 
    592 ******************************************************************** 
    593 * use the conf parameter : invoice_system -> invoiceday 
    594 * add cc_charge 
    595 * invoice_history 
    596  
    597  
    598 #### BUG CAPTCHA 
    599 ******************************************************************** 
    600 please have a look also at the captcha 
    601 if u use caps letters, it wont work, all the pics are shows with caps 
    602  
    603 #### HOURLY ALARM 
    604 ******************************************************************** 
    605 add in the alarm system an hourly check 
    606  
    607  
    608 #### bug CallerID 
    609 ******************************************************************** 
    610 CID not working  when  ANSWER_CALL=NO 
    611 iv changed back to ANSER_CALL=YES , AND WORKS 
    612  
    613  
    614 #### missing text put text in Gettext 
    615 ******************************************************************** 
    616 CC_phonelist_import_analyse.php 
    617 CC_ratecard_import_analyse.php 
    618 CC_card_import_analyse.php 
    619  
    620 also some more are missing on those files (check the javascript): 
    621 CC_card_import.php 
    622 CC_phonelist_import.php 
    623 CC_ratecard_import.php 
    624  
    625  
    626 #### ADD INVOICE DAY 
    627 ******************************************************************** 
    628  
    629  
    630 #### SAVE PAYMENT OPTION 
    631 ******************************************************************** 
    632 when go on edit paypal/moneybooker and click on Update 
    633 I dont get any confirmation that the option has been saved 
    634  
    635  
    636 #### PAYMENT OPTION 
    637 ******************************************************************** 
    638 put some help on the top 
    639  
    640 #### IMPORT RATECARD 
    641 ******************************************************************** 
    642 ADD option to define if we want to import the price in cents or in units 
    643  
    644  
    645 #### BAD ERROR MESSAGE 
    646 ******************************************************************** 
    647 when u import a csv file and the size is bigger the 500 k for example u get the error  file not found 
    648 the error message its not defined correctly 
    649  
    650  
    651 #### FEATURE 
    652 ******************************************************************** 
    653 REPORTING AND SUPPORT ALARMS : 
    654  
    655          
    656         * ALOC (average length of call): Too low or too high. 
    657         * ASR (answer seize ratio): Too low or too high. 
    658          
    659         maybe if possible : 
    660         * CIC (Consecutive Incomplete Calls): Too many. 
    661     
    662 We already have ALOC under the name of ACD in the page "CDR REPORT", we just need a new column for ASR and 
    663 rename ACD -> ALOC 
    664  
    665  
    666 ASR = Answer Seizure Ratio 
    667 Its calculated by taking the number of sucessfully answered calls and dividing by the total number of calls attempted (seizures). Since busy signals and other rejections by the called number count as call failures, the calculated ASR value can vary depending on user behaviour.  
    668  
    669  
    670 For "Consecutive Incomplete Calls", we might find a way to display this I open to your suggestion. maybe a report as follow : 
    671 Date ; total nb fails ; max of number fail calls succesively ; rate of fails (%) 
    672  
    673  
    674  
    675 For the alarm let's build a new table and a new page in CRONT SERVICE. 
    676 We need the user to be able to define different kind of alarm, for instance if I want 
    677 to monitor a specific trunk and not all 
    678 We can have in the table something like : 
    679 - period (daily ; monday-sunday ; 01 - 31) 
    680 - typealarm (asr, aloc, callfail) 
    681 - trunk (all or the ID of the trunk) 
    682 - etc... 
    683  
    684  
    685  
    686 #### FEATURE : PACKAGES SYSTEM - FREE MINUTES 
    687 ******************************************************************** 
    688 Situation : 
    689 We need to support a new relation call "FREE MINUTE" under kind of package according to the destination. 
    690 We have an example : http://www.blueface.ie/ 
    691 There is several kind of packages : 
    692 - Unlimited UK/Ireland where they can call as much as they want to this destination and pay for the rest. 
    693 - 300 minutes free over 20 destinations + unlimited on Uk for instance 
    694 - 300 minutes free over 20 destinations 
    695 - pay as you go, standard 
    696  
    697 We have to add in A2Billing this relation... For the unlimited calls we already have the routes at 0 cost. 
    698 now we might need to assign the X free minutes relation over YZ destinations. 
    699  
    700  
    701 - 300 minutes free over 20 destinations + unlimited on Uk for instance 
    702 the relation unlimited is already defined in the rate-engine through the route with cost=0 
    703  
    704 we need to add new table : 
    705 table cc_package to define the type package & min free.  
    706 CREATE TABLE cc_package_offer ( 
    707     id bigserial NOT NULL, 
    708     creationdate timestamp without time zone DEFAULT now(), 
    709     label text NOT NULL, 
    710     packagetype int NOT NULL, 
    711         billingtype int NOT NULL, 
    712         startday int NOT NULL, 
    713         freeminutes int NOT NULL 
    714 ); 
    715 -- packagetype : Free minute + Unlimited ; Free minute ; Unlimited ; Normal 
    716 -- billingtype : Monthly ; Weekly  
    717 -- startday : according to billingtype ; if monthly value 1-31 ; if Weekly value 1-7 (Monday to Sunday)  
    718 I guess a field in cc_tariffgroup which will define the relation with cc_package_offer  
    719 and a field in cc_ratecard to define if the rate will take advantage of the package offer (part of X min free) 
    720  
    721 We have also to think that the offer will be per month (per week, etc..) so we will need to keep the number of free-minutes used by month (period) 
    722 and by user/card, Customer have to have the offer for each time period (since the creation date). 
    723 Table cc_card_package (id_card, id_package_offer, time_used(secondes) ) 
    724  
    725 CREATE TABLE cc_card_package_offer ( 
    726     id                                  bigserial NOT NULL, 
    727         id_cc_card                      bigint NOT NULL. 
    728         id_cc_package_offer bigint NOT NULL, 
    729     date_consumption    timestamp without time zone DEFAULT now(), 
    730         used_secondes           bigint NOT NULL 
    731 ); 
    732 CREATE INDEX ind_cc_card_package_offer_id_card ON cc_card_package_offer USING btree (id_cc_card); 
    733 CREATE INDEX ind_cc_card_package_offer_id_package_offer ON cc_card_package_offer USING btree (id_package_offer); 
    734 CREATE INDEX ind_cc_card_package_offer_date_consumption ON cc_card_package_offer USING btree (date_consumption); 
    735  
    736 ALTER TABLE cc_tariffgroup      ADD COLUMN id_cc_package_offer BIGINT NOT NULL DEFAULT 0; 
    737 ALTER TABLE cc_ratecard         ADD COLUMN freeminute_package_offer INT NOT NULL DEFAULT 0; 
    738  
    739  
    740 Other Billing difficulty :  
    741 When we reach the limite, we will have part of the call inside the offer (so not billed) and the rest of the minutes should be billed... 
    742  
    743  
    744 CREATE TABLE cc_subscription_fee ( 
    745     id                          BIGSERIAL NOT NULL, 
    746     label                       TEXT NOT NULL,   
    747         fee                     NUMERIC(12,4) NOT NULL, 
    748         currency                CHARACTER VARYING(3) DEFAULT 'USD'::character varying, 
    749         status                  INTEGER NOT NULL DEFAULT 0, 
    750     numberofrun         INTEGER NOT NULL DEFAULT 0, 
    751     datecreate          timestamp(0) without time zone DEFAULT now(), 
    752     datelastrun         timestamp(0) without time zone DEFAULT now(), 
    753     emailreport         TEXT, 
    754     totalcredit         DOUBLE PRECISION NOT NULL DEFAULT 0, 
    755     totalcardperform INTEGER NOT NULL DEFAULT 0 
    756 ); 
    757 ALTER TABLE ONLY cc_subscription_fee 
    758 ADD CONSTRAINT cc_subscription_fee_pkey PRIMARY KEY (id); 
    759  
    760  
    761 ALTER TABLE cc_charge   ADD COLUMN currency                             CHARACTER VARYING(3) DEFAULT 'USD'::CHARACTER VARYING; 
    762 ALTER TABLE cc_charge   ADD COLUMN id_cc_subscription_fee       BIGINT DEFAULT 0; 
    763  
    764  
    765 CREATE INDEX ind_cc_charge_id_cc_card                           ON cc_charge USING btree (id_cc_card); 
    766 CREATE INDEX ind_cc_charge_id_cc_subscription_fee       ON cc_charge USING btree (id_cc_subscription_fee); 
    767 CREATE INDEX ind_cc_charge_creationdate                         ON cc_charge USING btree (creationdate); 
    768  
    769  
    770 -- INSTEAD USE CC_CHARGE 
    771 --      CREATE TABLE cc_subscription_fee_card ( 
    772 --          id                                          BIGSERIAL NOT NULL, 
    773 --          id_cc_card                          BIGINT NOT NULL, 
    774 --              id_cc_subscription_fee  BIGINT NOT NULL, 
    775 --          datefee                             TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT now(), 
    776 --          fee                                         NUMERIC(12,4) NOT NULL, 
    777 --              fee_converted                   NUMERIC(12,4) NOT NULL, 
    778 --              currency                                CHARACTER VARYING(3) DEFAULT 'USD'::CHARACTER VARYING 
    779 --      ); 
    780 --      ALTER TABLE ONLY cc_subscription_fee_card 
    781 --      ADD CONSTRAINT cc_subscription_fee_card_pkey PRIMARY KEY (id); 
    782  
    783 --      CREATE INDEX ind_cc_subscription_fee_card_id_card ON cc_subscription_fee_card USING btree (id_card); 
    784 --      CREATE INDEX ind_cc_subscription_fee_card_id_cc_subscription_fee ON cc_subscription_fee_card USING btree (id_cc_subscription_fee); 
    785 --      CREATE INDEX ind_cc_subscription_fee_card_datefee ON cc_subscription_fee_card USING btree (datefee); 
    786  
    787  
    788  
    789 --- MENU --- 
    790 PACKAGE OFFER 
    791         * List package Offer 
    792         * Add package Offer 
    793         * details by card 
    794  
    795 SERVICE 
    796         * List subscription service 
    797         * Add subscription service 
    798  
    799  
    800  
    801  
    802 ?? ADD CC_SUBSCRIPTION_FEE & CC_CHARGE CHANGES IN MYSQL SCHEMAS 
    803  
    804 MISSING :  
    805 - AGI 
    806         http://trac.a2billing.net/cgi-bin/trac.cgi/changeset/789 
    807          
    808         IF PACKAGE IN THE TARIFFGROUP 
    809                 0#      add freetimetocall_package_offer in select ratecard 
    810                  
    811                 1#      Get info from the package 
    812                         - billingtype ; startday ; freetimetocall 
    813                 2#  
    814                         According to billingtype (monthly 0 ; weekly 1) 
    815                         if (monthly){ 
    816                                 if (startday > last day of the month) startday = last day of the month; 
    817                                 if (startday <= 0 ) startday = 1; 
    818                                 dateclause >= year-month-startday 
    819                         }else{// weekly 
    820                                 startday = startday % 7 (modulo) 
    821                                 if (currentdayofweek < startday) currentdayofweek++7 
    822                                 diffday = currentdayofweek - startday (current lundi 1 - mercredi 3 = 5)  
    823                                 dateclause >=                            
    824                                 # mysql -> SELECT DATE_SUB('2003-07-13 00:00:00', INTERVAL 14 DAY); 
    825                                 # mysql -> SELECT DATE_SUB(NOW(), INTERVAL 14 DAY); 
    826                                 # psql  -> SELECT (date('2003-07-13 00:00:00') - interval '14 day'); 
    827