root/experimental_v2/CHANGELOG

Revision 584, 85.2 kB (checked in by areski, 10 months ago)

UPDATE : move v2 to experimental

<
Line 
1 ********************************************************************
2                                                 V1.4
3 ********************************************************************
4
5
6 #### no answer on followme
7 ********************************************************************
8 a2billing.php|2|did: file:Class.A2Billing.php - line:952 - [A2Billing] DID call friend: FOLLOWME=2 (cardnumber:7909954270|destination:5995815170|tariff:21)
9
10 make a new voice promoted to replace the one called prepaid-noanswerand make a new one called prepaid-callfollowme
11
12 prepaid-callfollowme :
13 "The person you are trying to reach did not answer. Please wait as the called party has the feature call follow me activated and we will route your call to the called party"
14
15 "la persona a la que ustede llamo no se encuentra disponible, porfavor espere on momento el servicio sigueme enrutara su llamada"
16
17 "La personne que vous essayez de contacter n est pas disponible, restez en ligne pendant que notre service fait suivre votre appel"
18
19
20 #### TODO : ARCHIVE CDRs & Cards
21 ********************************************************************
22 We will create cc_call_archive && cc_card_archive
23 table with the same structure cc_call where id will be primary key.
24 So we can build a cront application that will weekly, retrieve all the CDRs
25 older than X months move them to cc_call_archive and then
26 explain the Database and rebuild index so that it start to be fast again.
27 X Month will be in parameter in config
28
29 Think to better solution maybe !?
30 +
31 ** WEB INTERFACE **
32
33 Maybe a web interface similar at the massmail Archive, with 2 options for customer and CDR
34 so we should be able to make a selection of the USER and move them to the archive table
35 same for the CDR cc_call
36
37
38 #### EXPORT RATECARD
39 ********************************************************************
40 Add all field on the export csv
41
42
43 #### TODO : function do_field
44 ********************************************************************
45 function do_field($sql,$fld,$dbfld){
46
47 This function is defined in many places, need to create in misc.php
48 and remove it from other page where it s used (mainly in report section)
49
50
51 #### TODO : Detach Selling ratecard from Buying ratecard - DEPRECIATED
52 ********************************************************************
53 - you need to update the selling prices multiple times
54 - you cannot really remove the sorter matching prefixes as you do right now, since one provider can have more granularity than other
55
56
57 #### MASS MAIL FEATURE
58 ********************************************************************
59 option to let send an email to all the a2billing user
60 - check how is it done on phpBB
61 if we have several thousand of mail to send this can be an issue with normal php scripts
62 maybe a daemon is needed
63
64 * We should be able to define the search Criteria as in View Card in order to preselect
65 only some customer to which u want to run the massmail
66
67
68 #### BUG : REMOVING A CALLPLAN
69 ********************************************************************
70 When removing a CallPlan, the card assigned are removed as well...
71
72
73 #### TRUNK CHANGE : UPDATE DAEMON TO USE THE DB CONF
74 ********************************************************************
75 read conf from the DB
76
77         my $manager_host = $cfg->val('global', 'manager_host');
78         my $manager_username = $cfg->val('global', 'manager_username');
79         my $manager_secret = $cfg->val('global', 'manager_secret');
80
81
82 #### TODO : CRITERIA CALLPLAN
83 ********************************************************************
84 I added Callplan on CDR report, see revision 303, we need to add the same on the 3 pages :
85 (Section Call Report)
86 # Calls Compare
87 # Monthly Traffic
88 # Daily Load
89
90 If graph we need to pass the parameter there too.
91
92
93 #### TODO : CRITERIA RATECARD ID
94 ********************************************************************
95 Same as for the CallPlan but now for the ratecard ID, normally already same in CDR :
96 (Section Call Report)
97 # CDR report
98 # Calls Compare
99 # Monthly Traffic
100 # Daily Load
101
102 If graph we need to pass the parameter there too.
103
104
105
106 #### TODO : MOVE CAPTCHA Directory to signup directory
107 ********************************************************************
108 lib/captcha
109 due to htaccess in lib/ it s an issue on most installation, as the pictures is not accessable
110 so move         A2Billing_UI/lib/captcha
111 to                      A2Billing_UI/signup/captcha
112
113
114 #### TODO : BATCH UPDATE  FOR TAG ; ROUNDING CALLTIME ; ROUNDING THRESHOLD ; ADDITIONAL BLOCK CHARGE ; ADDITIONAL BLOCK CHARGE TIME
115 ********************************************************************
116 Batch update for
117 TAG ; ROUNDING CALLTIME ; ROUNDING THRESHOLD ; ADDITIONAL BLOCK CHARGE ; ADDITIONAL BLOCK CHARGE TIME
118
119
120 #### IMPORT : ROUNDING CALLTIME ; ROUNDING THRESHOLD ; ADDITIONAL BLOCK CHARGE ; ADDITIONAL BLOCK CHARGE TIME
121 ********************************************************************
122 Add ROUNDING CALLTIME ; ROUNDING THRESHOLD ; ADDITIONAL BLOCK CHARGE ; ADDITIONAL BLOCK CHARGE TIME
123 on the import ratecard tool
124
125
126 #### TODO : TAG IN RATECARD
127 ********************************************************************
128 We need a tag field into the ratecard!
129 this allow us to tag and filter some rates from a ratecard.
130 For instance, if we want to tag all the proper line prefix, so that we can then
131 apply batch update only for them.
132
133 We can add a new field in cc_ratecard for this :
134 ALTER TABLE cc_ratecad ADD COLUMN tag CHAR(50);
135 - We should add a reseach by tag on "Browse Rates".
136
137
138 ** ADD TAG IN THE IMPORT RATECARD **
139
140
141
142 #### ADDITIONAL CHARGES ON REALTIME BILLING
143 ********************************************************************
144 1) Rouding calltime
145
146         We will need 2 new fields in the ratecard to define this,
147        
148         - rounding_calltime will define the new calltime that will be assigned to this call, for instance 360 (6 minutes)
149         - rounding_threshold that will define the amount in seconds from which the rounding calltime will apply
150         for instance 300 (5 minutes)
151        
152         ** take note that if the call last 7 minutes if the rounding_calltime is less than the current
153                 calltime we dont round down the calltime
154        
155         Example :
156         I make a call of 5 minutes to Belgium,  the rate is 0.1$ per minutes, I have normally to pay 0.5 for this call
157         now the ratecard will be configure with  rounding_calltime = 360 - 6min
158         and rounding_threshold will be set to 240, so 4min, the rateengine will see that my current calltime (300) is upper than the defined rounding_threshold
159         and so it will round the call to the new calltime, rounding_calltime = 360
160         so my call will be rated to 0.6$ instead of 0.5
161        
162        
163 2) Additional Block charge
164
165         This is an additional charge that will be apply according to the duration of the call and
166         the amount of "time block" inside the the calltime.
167         We will need 2 new fields in the ratecard to define this,
168         - additional_block_charge that will define the charge amount, ie 0.50 cents
169         - additional_block_charge_time that will define the amount of seconds from which we have to apply this
170           new charge, we will count the amount of time this block of time can be contain inside
171           the calltime and apply the charge accordingly to this.
172         Example, additional_block_charge_time = 300 (5 minutes) if the call last 360 seconds, the
173         additional_block_charge_time is contains 1 time so we apply this charge once.
174         If the call last now 660 seconds (11 minutes), the additional_block_charge_time (5min) is contains
175         2 time so we will apply this charge 2 time too (2 time 0.50 cents)
176
177
178 * add real_sessiontime in cc_call
179
180
181 #### FEATURE : CUSTOMER SERVICES FRIENDLY
182 ********************************************************************
183  
184 1. Make the customer account number a link everywhere that it is displayed,
185 so that if you see a customer number, you click on it, and it takes you to the customer details screen.
186
187 2. Within the customer accounts screen, have a link to click to bring up to
188 the login screen A2BCustomer_UI - but without the requirement to fill again the user's name and password.
189
190 3. A notes field against the customer - simply a free text field.
191
192 4. A customer history, would include date stamped notes added by the
193 Customer services, and may even display an element of the automatic history already displayed on the system.
194
195
196 #### FIX : Web service - status log dont work, check Activation_Card
197 ********************************************************************
198 Web service - status log dont work, check Activation_Card
199
200
201 #### FIX : ADODB cache dir
202 ********************************************************************
203 Put the adodb cache in /tmp , too
204
205
206 #### CHECK : Check AGI use the Status
207 ********************************************************************
208 in AGI Class.A2Billing, function authentication,
209 when we check card is valid or not, we still use cc_card.activated
210 we need to replace this by cc_card.status
211
212
213
214 #### TODO : GENERATE VOUCHER & GENERATE CARD
215 ********************************************************************
216 In the generate option, the tag value is set to a random ID : 1181897201
217 this allow us to see exactly after the generation those that has been created!
218 If someone really use the tag feature to classify his voucher, this can be bit annoying!
219 we need to give the option to define the tag to a specific value or to use the random number.
220
221 We can add a new field in cc_card for this :
222 ALTER TABLE cc_card ADD COLUMN tag CHAR(50);
223 We should add a reseach by tag too on View card.
224
225
226 #### GENERAL : replace activated by status
227 ********************************************************************
228 we need to review where we use activated and replace it by status everywhere in the code or we are duplicating the need on this field.
229
230
231 #### BILLING : ADD VIEW AND SEARCH ON TABLE cc_epayment_log
232 ********************************************************************
233 ADD VIEW AND SEARCH ON TABLE cc_epayment_log
234 status -> 0 : New ; 1 : proceed ; 2 ; in process
235
236
237
238 #### CHECK BACKUP & RESTORE FEATURE
239 ********************************************************************
240 user posted that is broken.
241
242
243
244 #### UPDATE CSS Menu : menu.css
245 ********************************************************************
246 With some translation the text in the menu overpass the size of the cell.
247 changing has below the height change the design we need to wrap the text and make it
248 fit according to the amount of text.
249
250  #nav ul li span,#nav ul li a {
251       padding: 2px 18px 2px 20px;
252       font-size: 10px;
253 -       height : 11px;
254  }
255
256
257 ### DB CONFIG - SHOW WRONG
258 ********************************************************************
259 CLICK ON ALL ->
260 SELECT config_title, config_key, config_value, config_description, group_title, ccc.id FROM cc_config ccc, cc_config_group ccg ORDER BY config_group_id ASC LIMIT 0,5000
261
262 should use
263 LEFT JOIN
264
265
266
267 #### FEATURE : ADD CSV EXPORT ON THE CDR REPORT
268 ********************************************************************
269 Add CSV & XML Export on the cdr report
270 - look how it s done on the customer list
271
272
273 #### FEATURE : play rate
274 ********************************************************************
275 a2billing.php|1: file:Class.A2Billing.php - line:763 - TIMEOUT::> 1016  : minutes=16 - seconds=56
276 AGI Tx >> 200 result=1
277 AGI Rx << SAY NUMBER 285 ""
278     -- Playing 'digits/2' (language 'en')
279     -- Playing 'digits/hundred' (language 'en')
280     -- Playing 'digits/80' (language 'en')
281     -- Playing 'digits/5' (language 'en')
282 AGI Tx >> 200 result=0
283 AGI Rx << STREAM FILE cents-per-minute ""
284
285 create a mode to choose if we play in cents or in unit
286 2 dollars and 85 cents per minutes
287
288
289
290 #### TODO : CUSTOMER UI
291 ********************************************************************
292 A2BCustomer_UI/userinfo.php
293 suggest that the only Logo's (paypal, Moneybooker, Authorize.net) displayed on the customer interface
294 are the payment methods that are enabled.
295
296 patch for trunk and branches/1.3
297
298
299 #### A2Billing_UI/Public/index.php
300 ********************************************************************
301 on the login page & signup, there is a log enable :
302 QUERY:INSERT INTO cc_system_log (iduser, loglevel, action, description, tablename, pagename, ipaddress, data) VALUES('1','1','Page Visit','User Visited the Page','','index.php','127.0.0.1','')
303
304 remove this for page where user is not login too
305
306 #### FEATURE - GMT SUPPORT
307 ********************************************************************
308 - we need a parameter to define the server_GMT
309 - when creating a customer we need to have it as default on GMT+0
310         * for signup module it can be managed with a right definition in the sql
311 - CustomerUI : call-history.php on customer dont have any GMT support on it
312
313
314 #### FEATURE - DB CONFIGURATION
315 ********************************************************************
316
317 - if the field is readonly : find a way maybe with css to change the backgroup color of the field like grey color
318
319 - comments when u edit : "Insert the Group Name",  stuff like that when u edit -> this section is to provide a real information
320
321 - dropdown value : As we have many Variables like Card_Type which can have 2 Values like postpaid & Prepaid,
322    Our System will automatically show a Dropdown List to provide customer to select from it...
323    
324 - we need a drop down for the group in list configuration   
325
326 - remove the Text Area  and will make it simple Paragraph.. i will add a new type in the Framework
327   we need to show the only Description,, it should not confuse the use that either it is something to enter in database as this is description for this whole record
328
329 - we want to define a concept of heritage for the AGI-Conf1, 2, 3
330 using a general one agi-conf-base and we will only redefine the changes in agi-conf1, 2, etc...
331 The web interface need to allow us to redefine only the parameter we want.
332
333 - Change the name of list config groups to List Global Config
334
335
336
337 We should get something like this at the end :
338  
339 1. In Global config (list config groups), we should be able to click on each line, and only see the settings pertaining to that section.
340  
341 2. When we click on a section, we can then edit, just as we can under list configuration, but you can only see the section you have clicked on.
342  
343 4. Beneath "List Global Config" we need a button call Add AGI-CONF -
344 this simply creates a standard agi-conf and calls it agi-conf2 (or 3 or 4 depending on how many have been created)
345 We will see the parameter from AGI-Conf-Base and be able to redefine and save the changes
346  
347 The new agi-conf-X can then be accessed via "List Global Config"
348 this will do a SELECT of the AGI-Conf-Base and show the parameter that has been created
349  
350 5. Within each setting, where possible, the user should be restricted to valid values, e.g if the options are "yes" or "no" then there should be a dropdown that only allows "yes" or "no" and no other value is allowed.
351        
352
353 #### BUG : choose language
354 ********************************************************************
355 problem on calling card language selection. once select 1 or 2 or 3 in the language selection IVR, it dropped rightaway.
356 it was good on my original version.
357
358
359 #### move a2billing.conf in DB
360 ********************************************************************
361 move a2billing.conf in DB
362
363
364 #### multi-langague on email template
365 ********************************************************************
366 multiple email templates based on location signup
367 ie, if some one is from india, they will recieve their email in indian language
368
369
370
371 #### BUG []
372 ********************************************************************
373
374 Line 382 in a2billing.php has:
375                                    if (substr($A2B->CallerID,0,1)=='0'){
376                                            $A2B ->dnid = $A2B ->destination =
377 $caller_areacode.substr($A2B->CallerID,1);
378                                    }else{
379                                            $A2B ->dnid = $A2B ->destination =
380 $caller_areacode.$A2B->CallerID;
381                                    }
382                                    $agi->verbose('line:'.__LINE__.' - '.'[destination:
383 - '.$A2B->destination.']');
384
385 [a2billing-cid-callback]
386 exten => _X.,1,DeadAGI(a2billing.php|1|cid-callback|34) ;last
387 parameter is the callback area code
388 exten => _X.,2,Hangup
389
390 As u see the last parameter is the area code and from instance :
391 if I am in Belgium and use a local DID for callback but my server are
392 in UK, the system will probably not know that it needs to call me back
393 over the prefix 32, that's why is needed.
394 So in this case my cell number 0473510969, a2b will be call me as 32473510969.
395 That s the meaning of the remaining zero and it makes sense to set a parameter
396 for the leading zero if you are
397 already in the local country.
398
399
400 ********************************************************************
401                                                 V1.3
402 ********************************************************************
403
404
405 #### BUG : CallBack
406 ********************************************************************
407 DIVIDE THE AMOUNT OF CREDIT BY 2 IN ORDER TO AVOID NEGATIVE BALANCE IF THE USER USE ALL HIS CREDIT
408
409
410 #### BUG : Customer UI
411 ********************************************************************
412 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?
413 http://forum.asterisk2billing.org/viewtopic.php?t=2250
414
415
416 #### MISC
417 ********************************************************************
418 - Change qualify to 7 chars :
419         db change mysql :
420                 ALTER TABLE cc_iax_buddies CHANGE qualify qualify char(7);
421                 ALTER TABLE cc_sip_buddies CHANGE qualify qualify char(7);
422         db change psql :
423                 ALTER TABLE cc_iax_buddies ALTER COLUMN qualify TYPE char(7);
424                 ALTER TABLE cc_sip_buddies ALTER COLUMN qualify TYPE char(7);
425        
426 - Correction on alarm spelling
427 - Add export rates csv & xml
428 - BUG : wrong audio file prepaid-enter-pin-number.gsm
429 - BUG : peer sip iax qualify & nat & sip/iax info on Customer UI display
430 - UPDATE : scrollbar on textarea
431 - UPDATE : naming on batch update
432 - UPDATE : Help files
433 - UPDATE : remove paypal section from conf files
434 - UPDATE : Display ratecard 100% wide
435 - BUG : Reporting
436
437
438 #### NEW LOGO ON MAIN PAGE
439 ********************************************************************
440
441
442 #### MOVE THIS IN CONF FILE
443 ********************************************************************
444         and this the a2billing-callback-daemon:
445        
446         ####### ASTERISK MANAGER ######
447         my $manager_host = "localhost";
448         my $manager_username = "myasterisk";
449         my $manager_secret = "mycode";
450
451 use a2billing.conf
452 [global]
453 ; MANAGER CONNECTION PARAMETERS
454 manager_host = localhost
455 manager_username = myasterisk
456 manager_secret = mycode
457
458
459 #### FILE USED ?
460 ********************************************************************
461 trunk/A2BCustomer_UI/lib/epayment/includes/PP_header.php
462 trunk/A2Billing_UI/lib/epayment/includes/PP_header.php
463
464 To remove :
465 trunk/A2Billing_UI/signup/PP_footer.php
466 trunk/A2Billing_UI/signup/PP_header.php
467
468 #### BUG : IAX / SIP friends
469 ********************************************************************
470 I have the BLANK PAGE when I click to generate the iax friend
471 it happens on the first user in the system
472
473
474 #### BUG : IE Customer UI
475 ********************************************************************
476 the menu is very bad on Internet Explorer in client interface
477 you can view just half of the menu
478
479
480 #### CALLBACK : INTRO MESSAGE
481 ********************************************************************
482 Play an intro message on CallBack
483
484
485 #### Building a logging / tracking system on the web interface
486 ********************************************************************
487 Building a logging / tracking system on the web interface
488
489
490 #### FEATURE : IVR - OPTION NO VOICE
491 ********************************************************************
492 Create an option on the AGI to remove Audio
493
494 ; Play audio - this will disable all stream file but not the Get Data
495 ; for wholesale ensure that the authentication works and than number_try = 1
496 play_audio = YES
497
498
499 #### REMOVE OLD PAYPAL
500 ********************************************************************
501 A2Billing_UI/paypal
502 A2B_entity_paypal.php?atmenu=paypal&stitle=PaypalTransaction&form_action=list&section=2
503 FG_var_paypal
504
505
506 #### SIGNUP : IF SIP/IAX Created reload asterik
507 ********************************************************************
508 After the public signup , get Asterisk to do a reload, as when a new card is created,
509 asterisk is not reloaded, and therefore the SIP/IAX friend cannot register.
510
511 I added new parameter to handle this :
512 ; Define if you want to reload Asterisk when a SIP / IAX Friend is created at signup time
513 reload_asterisk_if_sipiax_created = no
514
515
516
517 #### CHANGE : INVOICE ADD MORE INFO
518 ********************************************************************
519 A2BCustomer_UI/A2B_entity_call_details.php
520 add : Calls by Destination ; Calls by Date ; TOTAL ; VAT
521 like we have in A2BCustomer_UI/A2B_entity_invoice_detail.php?section=4&invoice_type=1
522
523
524 #### CHANGE : PAYMENT MODULE
525 ********************************************************************
526 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
527 This will be the right process otherwise we cannot remove this conflict
528 Userinfo => Just Pay Now Button..no amount
529 Checkout_payment => Select Payment gateway
530 Checkout_amount => Enter the amount ,,, Currecny will be shown to him
531 checkout_confirmation =>
532
533 $arr_purchase_amount = split(":", EPAYMENT_PURCHASE_AMOUNT);
534 if (!is_array($arr_purchase_amount)) $arr_purchase_amount[0]=10;
535
536 foreach($arr_purchase_amount as $value){
537
538 #### INVOICE FIX
539 ********************************************************************
540 fix on A2Billing_UI/Public/invoices_customer.php ->  false cardnumber
541 # Error page : Blank page with "No User found"
542 need design good error pages !!
543 Golden rule : never show a white page with an error message.
544
545
546 #### FIX : REFILL BASE CURRENCY
547 ********************************************************************
548 A2BCustomer_UI/userinfo.php
549 # when we are changing the base currency -> on the userinfo it is shown to purchage 20 $
550 the amount to refill should be show in the base currency and the next page should refill accordingly
551
552
553 #### FIX : HIDE DIV ON "List Customer" & "Browse Rates"
554 ********************************************************************
555 Jquery - HIDE DIV ON "List Customer" & "Browse Rates"
556
557 ## USE CC_COUNTRY TO SELECT THE COUNTRY : ON SIGNUP & EDIT CUSTOMER
558 ********************************************************************
559 We will use cc_country table to select the country on signup module and also when
560 we edit customer info. The value store in cc_card->country will be the cc_country->countrycode
561
562 #### BUG
563 ********************************************************************
564 yes the authorize is always in USD as it s only for US peoples.
565 So the amount received by Authorize is in USD, we need configure it convert from 
566 USD -> base currency before making the insert.
567 if the base currency is in EURO it wont work correctly now
568
569 #### PROMOTE : CALL-LABS
570 ********************************************************************
571 Promote : call-labs on a2billing trunk
572
573
574 #### EPAYMENT : MULTI CURRENCY MANAGEMENT
575 ********************************************************************
576 handle mc_currency with paypal & mb_currency with moneybookers
577 in order to secure the currency of the transactions
578
579 #### UPDATE : IMPORT MODULE
580 ********************************************************************
581 When I import, I get a page which allows me to check the data is being
582 imported properly. There is no way to accept that import without selecting
583 the csv files again.
584
585 #### BUGS
586 ********************************************************************
587 1# One more thing - if the SIP/IAX friend is created via "Create SIP Friend" button,
588 then the defaults are not filled in, such as the context.
589
590 2#
591 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.
592
593 #### FEATURES : EDIT SOME CUSTOMER INFORMATION ON CUSTOMERUI
594 ********************************************************************
595 A2BCustomer_UI/userinfo.php
596 add a button below "Country" -> "edit my personal informations"
597 we should be able to edit some of the data, not all, base on our framework.
598 Ensure that customer cannot edit an other cardid
599
600 #### CONSOLIDATE THE GETTEXT FILES
601 ********************************************************************
602 Consolidate the gettext files for customer and admin interface
603 regenerate all PO & MO files
604
605 #### ADD referial ID : Admin & customer (conf)
606 ********************************************************************
607 https://www.moneybookers.com/app/?rid=811621
608 https://www.paypal.com/es/mrb/pal=PGSJEXAEXKTBU
609
610
611 #### BUG
612 ********************************************************************
613 http://forum.asterisk2billing.org/viewtopic.php?t=1927
614
615
616 #### FEATURE CUSTOMER UI : SIP/IAX INFO & partial edit
617 ********************************************************************
618 What about link under account Info.
619  
620 VoIP settings
621           o List SIP
622           o List IAX
623
624 Put the User name and password under each link from the appropriate table.
625  
626 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.
627
628
629 User info Profile user can see any data for SIP registrations his device like sip-login an sip-password (locked to change)
630
631 #### E-PAYMENT MODULE
632 ********************************************************************
633 Modified: trunk/A2BCustomer_UI/checkout_payment.php
634
635 # customers_id -> feed with the card ID
636
637 # http://locals.com/checkout_process.php?sess_id=8g34831kbhdimm790mt5heh0u5&transactionID=6
638 Secure that
639
640 # ADD a random number MDP
641 on $key = securitykey(EPAYMENT_TRANSACTION_KEY, $time_stamp."^".$transaction_no[0][0]."^".$amount."^".$_SESSION["card_id"]);
642
643 # Check security on MD5 HMAC
644 but we need a secret code on moneybooker side / paypal / etc---
645
646 // Calculate and return fingerprint
647 // Use when you need control on the HTML output
648 function CalculateFP ($loginid, $txnkey, $amount, $sequence, $tstamp, $currency = "") {
649   return ($this->hmac ($txnkey, $loginid . "^" . $sequence . "^" . $tstamp . "^" . $amount . "^" . $currency));
650 }
651 that will work only stored on provider side
652
653
654 #### FEATURES : CALLBACK APIs
655 ********************************************************************
656 1# Queue a callback request from an API : HTTP / WSDL
657 - it will return the uniqueID generate for the callback request
658 an API could generate a callback http://apiurl/callback-exec.php?listparameter=values&uniqueid=324234
659 return an ID to identify the callback request
660
661 2# API to check the status of the callback : webservice 
662 - check the status of a generated callback
663
664 So an API will return result of a callback http://apiurl/callback-status.php?id=123453
665 id is the ID returned by
666 reply : Pending ; Success ; Error, etc ...
667
668
669 #### WEB-CALLBACK
670 ********************************************************************
671 if the 2 leg is not connected, we need to bill the 1st
672
673
674 #### SIGNUP SELECT TARIFFGROUP
675 ********************************************************************
676 "
677 ; ID Tariffgroup to use, check the ID in the tariffgroup list - WebUI
678 tariff = 1
679 "
680 -> need to be changed to ->
681
682 ; ID CallPlan to sign the customers
683 ; or define a list of ID to let himselect select the callplan
684 ; check the ID in the callplan list - WebUI
685 callplan = 1, 2, 3
686 "
687
688 SO "IN CASE OF MULTIPLE CALLPLAN", a new Dropdown menu will appear on the signup form.
689 with the list of Callplan associate here to the list of ID
690 (name of the callplab will appear, not the number 1, 2, 3)
691
692 Security, ensure at the sign-up time that the value send by the form is include in
693 it to avoid the possibility from the customer to signup under an other tariffgroup
694
695
696
697 #### MoneyBooker bug
698 ********************************************************************
699 http://myaccount.call-labs.com/checkout_process.php?sess_id=58u4ckvmu0e0eedn9k872v1od4
700 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
701
702
703 #### BUG
704 ********************************************************************
705 You have 1 dependent records.
706 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 ?
707
708
709 #### check files
710 ********************************************************************
711 A2BCustomer_UI/lib/epayment/includes/methods/*
712
713 define action url from conf file
714 A2BCustomer_UI/lib/epayment/methods/moneybookers.php
715
716
717 #### SHIFT LEFT : DEFINES.PHP
718 ********************************************************************
719 SHIFT LEFT : DEFINES.PHP
720
721
722 #### FEATURE : NEW CALLBACK SYSTEM
723 ********************************************************************
724 rebuild of the callback system, we are using a spool system in DB and a perl Daemon to initiate the callback.
725 it brings flexibility and a way to track the callback request, their status, etc...
726 So we have a spool system, all request are stored and handled by a perl daemon that will take care of dispatching
727 them through several asterisk server.
728 There is also an API also for this to generate the callback.
729 /api/api_spool_callback.php
730 this could be use by any third application/platform to generate callback request.
731
732 #### INVOICES
733 ********************************************************************
734 View Invoices
735         # show cardnumber
736         # Status appears to be empty for the invoice I had previously why ?
737         # if I click on Sent the sent date is not update
738         # Enter the cardnumber: -> this is the Card ID
739        
740         # Click on Details -> it will be good to see the Start date and the End Date there
741         # Details ->
742                 the Charges is not converted at all if I have a charge of 100 in EUR and my base currency is in usd
743                 it will show 100 usd the amount is not converted
744                 there is function in Misc.php for this
745         # Details -> the amount dont fit with what I have on the invoice page !!
746         # Details -> keeping some options like in invoices.php 
747                 - RESULT :       Minutes - Second
748                 - EXPORT FORMAT :        See Invoice in HTML  or Export PDF
749                 - CURRENCY : selection
750         # Details -> Status :                    Connected      DisConnected
751                 only show Status : [the appropiated image ] Connected or DisConnected
752        
753 Create Invoices
754         # For card number: -> From card ID:
755         # When you create the invoice we need an option to choose if we send or not directly the mail
756         # INVOICE STATUS
757                 UNPAID
758                 SENT-UNPAID
759                 SENT-PAID
760                 PAID
761        
762         # A2B_entity_create_invoice.php no footer
763        
764
765 Invoice_Customer
766         # Menu dont use _ -> Invoice Customer
767        
768         # Error page : Blank with "No User found"
769         Can we design good error pages !!
770        
771         # if there is no calls and no charge, only the logo appear :
772                 there is nothing telling u that the invoice is empty!!
773                
774         # show the covert start date
775        
776         # keeping some options like in invoices.php
777                 - RESULT :       Minutes - Second
778                 - EXPORT FORMAT :        See Invoice in HTML  or Export PDF
779                 - CURRENCY : selection
780
781 CUSTOMER
782         # A2BCustomer_UI/invoices_customer.php
783                 - if there is no calls and no charge, only the logo appear :
784                 there is nothing telling u that the invoice is empty!!
785                 - show the covert start date
786         # List of invoices
787                 customer should be able to see his own history of invoices with their status
788                 Status should be different here, only pay or unpay
789        
790        
791
792 #### FEATURE : REVIEW NEW DID MANAGEMENT
793 ********************************************************************
794 Reservation and release
795 * To check
796
797 ######## CURRENCY MANAGEMENT IN CRONT SERVICE
798 ********************************************************************
799 Currency management in cront service
800
801
802 #### VOUCHER
803 ********************************************************************
804 if you want to refill you card with a voucher please dial...
805 and its not understandable
806
807
808 #### Review Audio
809 ********************************************************************
810 Send mail to Vincent for Spanish recording
811
812 #### DID CRONT - currency cc_charge
813 ********************************************************************
814 1#  add currency
815         a2billing_bill_diduse.php
816        
817        
818 #### JQUERY SLIDE
819 ********************************************************************
820 Menu with Jquery
821
822
823 #### NAMING
824 ********************************************************************
825 REPLACE SIGNUP IN THE LEFT MENU -> MISC
826 replace also SIGNUP  in ACL
827
828 TARIFFGROUP -> CALL PLAN
829         TARIFFGROUPNAME -> NAME
830         Change in edit card, signup & AGI
831
832
833 #### JQUERY SLIDE
834 ********************************************************************
835 help.php
836
837
838 #### Misc : FORMAT
839 ********************************************************************
840 To tidy up the box for filtering, can you either reduce the font size or use symbols only, e.g. >  ;   >=  ; <=
841
842
843 #### Misc : INVOICE
844 ********************************************************************
845 1#
846         http://trac.a2billing.net/cgi-bin/trac.cgi/changeset/981
847         we need to have all this way
848
849 2#
850         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."
851
852         it doesnt looks pretty, the description column is very small
853        
854         problem on :
855         A2B_entity_invoice_billedmail.php
856         A2B_entity_invoice_detail.php
857         ...
858
859 3#
860         if you click on payment button when u have few payement
861         then u click on the "sort button" or to display [10] [50] [100] it fails or show up the menu!!!
862
863        
864 4#
865         images on
866         <img src="<?php echo Images_Path;?>/asterisk01.jpg" align="middle">
867        
868         I added a new parameter on a2billing.conf,
869         ; 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/)
870         invoice_image = asterisk01.jpg
871        
872         we will handle this that way
873        
874 5#
875         A2B_entity_invoice_billedmail.php?section=2&id=8&cardid=12&action=sendinvoice&exporttype=html
876         some images dont exist
877         Public/templates/default/images/spacer.jpg
878        
879 6#
880         A2B_entity_invoice_billedmail.php
881         this need to use mailtemplate
882         $email_from = "admin@a2billing.org";
883         $email_subject = "A2Billing Invoice";
884         $email_message = "Dear Customer<br><br>\n\n Attached is the Invoice.\n\n <br><br>Sincerely<br>\n\nAdministrator A2Billing";
885        
886        
887 7#
888         Refactoring this HUGE mess.
889         We have tons of pages to show up almost the same report
890         Find a centralized way to make it clean and compress
891
892
893 8#
894         A2B_entity_invoice_billedmail.php
895         we still have the understandable stuff at the end :
896         Status :
897     Connected      Disconnected
898        
899         do the same as : A2B_entity_invoice_detail.php
900        
901
902 #### TO FIX
903 ********************************************************************
904 to check the patch I made here :
905 http://trac.a2billing.net/cgi-bin/trac.cgi/changeset/955
906
907 and try to reproduce this all all the invoices pages
908 this compress and make the code cleaner.
909
910 do this work for all the files :
911 A2B_entity_invoice_billedmail.php
912 A2B_entity_invoice_detail.php
913 A2B_entity_invoice_list.php
914 A2B_entity_invoices.php
915 A2B_entity_invoices_unbilled.php
916 A2B_entity_invoice_unbilledmail.php
917
918 #### MISC
919 ********************************************************************
920 * Customer -> Call Details : add criteria - Answered call
921
922 #### FORMAT
923 ********************************************************************
924 Rates -> Browse Rates
925 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
926
927
928 #### ADD SCROLLBAR ON ALL POPUP
929 ********************************************************************
930 scrollbars=1 in the window.open
931 Check Rev 977
932
933
934 #### WRITE DOCUMENTATION: API SHOW RATECARD ->
935 ********************************************************************
936 WRITE FULL DOCUMENTATION FOR :
937 trunk/A2Billing_UI/api/display_ratecard.php
938
939
940
941 #### WRITE DOCUMENTATION: ALARM SYSTEM
942 ********************************************************************
943 WRITE DOCUMENTATION: ALARM SYSTEM
944
945
946 #### FEATURE : NEW INVOICING SYSTEM
947 ********************************************************************
948 you will see, I dont describe here
949
950
951 #### FEATURE : jump_voucher_if_min_credit
952 ********************************************************************
953 When the user credit are below the minimum credit to call min_credit
954 we might have an option to decide if we jump directly to the voucher IVR menu instead of just disconecting
955
956 option in a2billing.conf
957 jump_voucher_if_min_credit = yes or no
958
959
960 #### MANAGE MULTI LENGHT CARD NUMBER
961 ********************************************************************
962 New parameter :
963 [global]
964 ; len_cardnumber is removed
965 ; interval for the length of the cardnumber (number of digits),
966 ; ie: 10-15 (cardnumber authorised 10, 11, 12, 13, 14, 15) ; 10,12,14 (cardnumber authorised 10, 12, 14)
967 interval_len_cardnumber = 10-15
968
969
970 We will support more than 1 lenght for the cardnumber.
971 Admin Web interface :
972 - Create customer :
973         Add a drop-down button in the top page (below the help) to select the lenght for the card creation
974         -> if the drop-down is selected the page will refresh with the new value for the card lenght
975         by default we will use the minimum value of interval_len_cardnumber
976 - Generate Customer :
977         Add a point 13) as a drop-down button, select the card lenght but no refresh needed here
978 - AGI
979
980 #### EXEC_SETLANGUAGE
981 ********************************************************************
982 function exec_setlanguage($language='en')
983 {
984   return $this->exec('SetLanguage', $language);
985 }
986
987
988 #### UPDATE a2billing_invoice_cront
989 ********************************************************************
990 * use the conf parameter : invoice_system -> invoiceday
991 * add cc_charge
992 * invoice_history
993
994
995 #### BUG CAPTCHA
996 ********************************************************************
997 please have a look also at the captcha
998 if u use caps letters, it wont work, all the pics are shows with caps
999
1000 #### HOURLY ALARM
1001 ********************************************************************
1002 add in the alarm system an hourly check
1003
1004
1005 #### bug CallerID
1006 ********************************************************************
1007 CID not working  when  ANSWER_CALL=NO
1008 iv changed back to ANSER_CALL=YES , AND WORKS
1009
1010
1011 #### missing text put text in Gettext
1012 ********************************************************************
1013 CC_phonelist_import_analyse.php
1014 CC_ratecard_import_analyse.php
1015 CC_card_import_analyse.php
1016
1017 also some more are missing on those files (check the javascript):
1018 CC_card_import.php
1019 CC_phonelist_import.php
1020 CC_ratecard_import.php
1021
1022
1023 #### ADD INVOICE DAY
1024 ********************************************************************
1025
1026
1027 #### SAVE PAYMENT OPTION