root/trunk/CHANGELOG

Revision 2726, 110.3 kB (checked in by areski, 7 months ago)

fix on DB script

Line 
1
2 To see the latest change please refer to :
3 http://www.asterisk2billing.org/cgi-bin/trac.cgi/log/trunk
4
5
6 ========================================================================
7
8 ...
9
10 ...
11
12
13 2009-05-14 - Belaid Arezqui <areski@gmail.com>
14         Menu fix for IE
15         order prefix on ratecard - clean rates search (only support mysql5)
16
17 2009-05-13 - Belaid Arezqui <areski@gmail.com>
18         Update Mailer to work with new PHPMailer and improve to support gmail
19         Update PHPMailer V5.0.0
20         Ticket #517: root has no rights for refills in if (has_rights (ACXMODIFY_REFILLS)) statement
21         correct brazil dial prefix
22         remove mysql cluster script file and add INFO
23         fix on edit card to not update the cardtype on edition
24         Ticket #504 : Cannot add or edit rates
25
26 2009-05-13 - Belaid Rachid <rachid.belaid@gmail.com>
27         Correct Ticket #493 : no check of parameter on the generate customer For the admin UI
28
29 2009-05-12 - Belaid Arezqui <areski@gmail.com>
30         correct Mass Mail TO list
31         fix display of payment option
32         fix payment on customer panel
33         fix massmail : blank page if account # is upper than few thousands, memory limit
34         CSS correction to improve display on long text menu section
35
36 2009-05-12 - Belaid Rachid <rachid.belaid@gmail.com>
37         Ticket #511 Load template for mass mail
38
39 2009-05-11 - Belaid Arezqui <areski@gmail.com>
40         Ticket #504 : Cannot add or edit rates
41         Ticket #505 : retrieve rates back from LCR
42         Ticket #498 : add_DID_dest not worked correctly ; if someone create new DID in admin UI, then go add dest and add destination(select some card,some dest)
43         set all extra charge to 0 by default + change in AGI debug for extra charge
44         bug on add refill and add payment due to new ACL
45         fix export on admin & agent
46         bug on edit customer for admin with ACL
47         add lastms in sip realtime
48         improve on search call-plan LCR
49
50 2009-05-11 - Belaid Rachid <rachid.belaid@gmail.com>
51         Ticket 490 : there wasn't nothing to do a search on the ticket.
52         Ticket #477 : error of display on the VOIP configs page
53         Ticket #475 : There was nothing to inform the admin user that there was already a search filter apply on thelist of cards
54
55 2009-05-09 - Belaid Arezqui <areski@gmail.com>
56         Ticket #496 : Voice Prompt cent playing twice
57         Ticket #504: Cannot add or edit rates
58
59 2009-05-08 - Belaid Arezqui <areski@gmail.com>
60         add extensions_a2billing.conf
61
62 2009-05-08 - Belaid Rachid <rachid.belaid@gmail.com>
63         Authorize payment online of invoices
64
65 2009-05-07 - Belaid Rachid <rachid.belaid@gmail.com>
66         Correct the amount to pay of an invoice
67         correct the vat format
68         fill the vat with the vat of the customer
69         Authorize a customer to see only this receipt
70         Correct Bug about the SPEED DIAL filter
71
72 2009-05-06 - Belaid Rachid <rachid.belaid@gmail.com>
73         Correct Ticket #473 : Some bugs in the rates browsing
74         Correct Ticket #481 : the display of the customers' history faild
75         Correct Ticket #483 : Too much modification are saved in the log status
76         Correct Ticket #491 : Error on the call reporting page
77
78 2009-04-29 - Belaid Arezqui <areski@gmail.com>
79         update doc for AGI
80
81 2009-04-27 - Belaid Arezqui <areski@gmail.com>
82         localization : add Spanish for customer UI
83         add PQP for Agent and Customer
84         use mysql in conf file by default
85
86 2009-04-26 - Belaid Arezqui <areski@gmail.com>
87         Add : PHP Quick Profiler
88
89 2009-04-21 - Belaid Rachid <rachid.belaid@gmail.com>
90         Correct Ticket #484: log status are not deleted when you delete a customer
91         Correct Ticket #478: Generate Customers : we can modify the initial balance and no refills are created.. and an other display mistake.
92         Correct Css in the simulator page to center the result
93         Change the enough_credit_to_call function to handle the postpaid type.
94         Conserve credit limit in variable of A2billing class
95         Display  the free time information in the in the simulator
96
97 2009-04-20 - Belaid Rachid <rachid.belaid@gmail.com>
98         Correction use properly the package in every case in the test to know if a customer have enough credit
99         Add a filter in framework to order the result in the multi select
100         Init call plan with a default value for the package.
101         Correct Ticket #442 about the packages : now we can use the free minute even if we have not enough credit to call
102
103 2009-04-18 - Belaid Arezqui <areski@gmail.com>
104         Correct Css mistake to align properly
105         fix notice error on display_ratecard api
106
107 2009-04-17 - Belaid Rachid <rachid.belaid@gmail.com>
108         Correct money format for the receipt ; Correct update of receipt item ; Add check on paramater and show alert for the the receipt
109         Corrected Ticket #459 : impossible to disable captcha
110         Correct Ticket #463 : Can't delete card in admin UI
111         Correct Ticket #464 : SIP & IAX were not created on the signup
112        
113 2009-04-17 - Belaid Arezqui <areski@gmail.com>
114         fix charges on cront
115         fix bug on sanitize
116
117 2009-04-15 - Belaid Rachid <rachid.belaid@gmail.com>
118         Correct framework to do search insensitive to the case
119         Authorize to edit date in refill and payment if you have the right
120         New module to generate Signup URL with a simple key in the db.
121         Delete the old with a secret to crypt some info.
122         Correct filter search in admin ui
123         Add Search criteria for refills and paymens
124
125 2009-04-15 - Belaid Arezqui <areski@gmail.com>
126         add feature : Demo mode
127         New Error Page.
128         Refactor Smarty Template to use an header
129
130 2009-04-13 - Belaid Rachid <rachid.belaid@gmail.com>
131         Delete inused Tpl
132         Correct Ticket 454 :  the VAT registry number was not showed 
133         Correct Ticket 449 : Account Balance in Agent Portal, if you click on Invoice or Payment on the right of the account it does not give you invoice
134         Correct display: Show summary table only if you have card in your system
135         Correct the default value of VAT : Ticket 451
136
137 2009-04-09 - Belaid Rachid <rachid.belaid@gmail.com>
138         Adapt the Agent UI in the New Style
139         Create a new layout canvas compatible with Safari, Firefox and Fucking IE
140         Adapt some composant for the new layout
141
142 2009-04-09 - Belaid Arezqui <areski@gmail.com>
143         internazionalization : add shell script to create & generate PO/MO
144         internazionalization : add flag and file to prepare romanian langague
145         add missing logo for plugnpay
146
147 2009-04-08 - Belaid Arezqui <areski@gmail.com>
148         fix on signup : activatedbyuser
149         internazionalization : update for Customer & Admin panel
150        
151 2009-04-08 - Belaid Rachid <rachid.belaid@gmail.com>
152         correct: redirect after adding a rate
153
154 2009-04-07 - Steve Dommett <steve@st4vs.net>
155         The UNIQUE contraint on the email template table ''must'' have been incorrect as it referenced an auto-incrementing column.  I think
156         this makes more sense.  The fix for Pgsql v1.4.0 schema will come later,  as part of a much larger patch.
157         Also fixed an unnecessary column type conversion for Pgsql 1.3.4-1.4.0 upgrade.
158         Include a link to the AGPL 3 license from within the Admin UI
159
160 2009-04-06 - Belaid Rachid <rachid.belaid@gmail.com>
161         Correct menu template
162         Add an Icon for the change password link menu
163         Convert some help msg in the new style
164         Acknowledge Digium's trademark.
165
166 2009-04-01 - Steve Dommett <steve@st4vs.net>
167         Postgres compatibility fix:  for aggregate expressions,  like count(*) or sum(*),   ORDER BY makes little sense
168         as a maximum of one row can be returned.
169        
170 2009-04-01 - Belaid Arezqui <areski@gmail.com>
171         customer Localization : Romanian languages
172         Feature : Add option & ACL to delete CDR
173         Add SQL script for postgresql 1.4 Database creation
174         rebuild & merge all the PO & MO for the customer interface
175
176 2009-03-31 - Steve Dommett <steve@st4vs.net>
177         Fix MySQL schema triggers
178         More bug fixes to the MySQL schema installation.
179         Add 'text/x-csv' to the permitted MIME-types
180
181 2009-03-31 - Belaid Rachid <rachid.belaid@gmail.com>
182         Authorise an agent to edit this personal information
183
184 2009-03-31 - Belaid Arezqui <areski@gmail.com>
185         Admin ui - PO & MO update : Spanish language
186         Admin ui - PO & MO update : Brazilian language
187         Customer ui - PO & MO update : Romanian language
188         Agent ui - PO & MO update : English language
189
190 2009-03-30 - Belaid Rachid <rachid.belaid@gmail.com>
191         Correct display of captcha
192         Add right to delete notification because the box is shared between all admin
193         Add default value for the Support module to use it the first time
194         Add an notification after a ticket added by a customer or an agent
195
196 2009-03-30 - Belaid Arezqui <areski@gmail.com>
197         Ticket #429 : pnl report enhance
198         customer ui - PO update : English
199         update doc for Gettext + remove sort on ticket
200
201 2009-03-28 - Steve Dommett <steve@st4vs.net>
202         misc of english correction + little fixes
203         Spelling fix, and synch Postgres schema
204
205 2009-03-27- Belaid Rachid <rachid.belaid@gmail.com>
206         Change SIP/IAX buddies to use notification module
207
208 2009-03-27 - Belaid Arezqui <areski@gmail.com>
209         Improve structure
210
211 2009-03-27 - Alberto Escudero-Pascual <aep@it46.se>
212         admin UI and Smarty Documentation
213         Adding a README file, expected to be the entry point of people to the code
214         change of header template document
215         Login-Forget password documentation
216         Epayment module documentation
217         WSDL code for callback in Documentation
218         Dial Status Documentation
219         Import Rates Documentation
220         DID billing documentation
221         Invoicing documentation
222         Autodialer IVR interaction tip
223         Document for 1.3.4 for Ratecard API - needs changes for 1.4
224         Adding more documentation and templates for txt documents
225         Adding alarm info to documentation
226         The Ultime PDF Installation Guide to a2billing 1.4 :-) 1.0
227
228 2009-03-26 - Belaid Arezqui <areski@gmail.com> - Alberto Escudero-Pascual <aep@it46.se>
229         * restructure files, tree, review existing doc
230         * delete not used files
231
232 2009-03-25 - Belaid Arezqui <areski@gmail.com>
233         * Update English Gettext : PO & MO files
234
235 2009-03-24
236         * Fresh new schema for v1.4.0 - Alberto Escudero-Pascual <aep@it46.se>
237         * Review of ACL right - Belaid Rachid <rachid.belaid@gmail.com>
238         * Small spelling fix,  and synch Postgres schema - Steve Dommett <steve@st4vs.net>
239
240 2009-03-23 - Belaid Rachid <rachid.belaid@gmail.com>
241         * Better Handler for the DB connection
242         * Correct View on the List of Log
243                 Add an info page for the security
244                 Put on false the edition
245
246 2009-03-19
247         * Add Info view for a Refill and Payment in Agent UI - Belaid Rachid <rachid.belaid@gmail.com>
248         * change A2Billing logo
249         * Add new rights for Admin ACL to
250                 Edit / Delete a Refill
251                 Edit / Delete a Payment
252                 Edit / Delete a Customer - Belaid Rachid <rachid.belaid@gmail.com>
253        
254
255 2009-03-18 - Belaid Rachid <rachid.belaid@gmail.com>
256         * Add commission the commission in agent UI
257                 Correct some bugs in admin UI about commission
258                 add a new function in misc to link directly an id with the card number or agent name
259
260 2009-03-17 - Alberto Escudero-Pascual <aep@it46.se>
261         * Fixing all those section numbers.... 18 menus
262         * This is a first proposal for a new GUI rearrangement.
263                 - Trying to keep actions as one word to easy localization
264                 - Rearrange the order of the GUI in hierarchical order
265                 - Separate Agents from Admins
266                 - Promote Support and Call Reports to higher parts of the UI
267                 - Wording consistency
268                 - Some changes might have considerations with the ACX permission system
269                 - Section indexes need to be fixed
270                 - Billing Submenu still not changed until is frozen
271
272 2009-03-16
273         * add links in admin UI to see Agent transaction - Belaid Rachid <rachid.belaid@gmail.com>
274         * Adding line for Debian based asterisk installation - Alberto Escudero-Pascual <aep@it46.se>
275         * Accepting the : as separator breaks complex CSV import. Accepting only ; as separator - Alberto Escudero-Pascual <aep@it46.se>
276        
277 2009-03-15 - Alberto Escudero-Pascual <aep@it46.se>
278         * Fixed access control in Agent UI. Card History should be under $ACX_CALL_REPORT if statement.
279         * The $A2B -> credit was overwritten by callingcard_ivr_authenticate_light() and not using the form balance.
280                 Included the possibility to choose between account current balance or manual input of balance via form
281         * Added Notification Help and wiki link
282         * Cleaning up notification admin UI, added help link and cleanup links to Global Config
283
284 2009-03-14
285         * Correct payment for an agent - Belaid Rachid <rachid.belaid@gmail.com>
286         * bug on voucher IVR : set to used - Belaid Arezqui <areski@gmail.com>
287         * ticket #399: Selecting 5 Vouchers in admin interface creates only 1 - Belaid Arezqui <areski@gmail.com>
288
289 2009-03-13
290         * remove redundant SIGNUP CONFIRMED - Belaid Arezqui <areski@gmail.com>
291         * add credit on ratecard simulator - Belaid Arezqui <areski@gmail.com>
292         * Synch Postgres schema - Steve Dommett <steve@st4vs.net>
293
294 2009-03-12 - Belaid Arezqui <areski@gmail.com>
295         * add symb link for sounds directory
296         * cc_sip_buddies_empty view for OpenSips
297
298 2009-03-11
299         * New Batch of billing - Belaid Rachid <rachid.belaid@gmail.com>
300         * fix for asterisk realtime : add regserver - Belaid Arezqui <areski@gmail.com>
301
302 2009-03-11 - Steve Dommett <steve@st4vs.net>
303         * More code removal due to MytoPg,  plus it now handles DATE_FORMAT().  Also fixed another Postgres-related error:
304                 column "cc_logrefill.date" must appear in the GROUP BY clause or be used in an aggregate function
305  
306 2009-03-10 - Belaid Rachid <rachid.belaid@gmail.com>
307         Correct the money situation of the system to use invoices
308
309 2009-03-09 - Steve Dommett <steve@st4vs.net>
310         * add of ORM for Postgresql support : MytoPG
311         * Synch Postgres schema up to MySQL
312
313 2009-03-08 - Belaid Arezqui <areski@gmail.com>
314         * Voip account for agent, instead of IAX/SIP Friends
315
316 2009-03-04 - Belaid Arezqui <areski@gmail.com>
317         * Move config file to /etc/a2billing.conf
318         * add RPM for A2billing callback Daemon
319         * Change money situation of customer to use invoices
320         * add link for Asterisk GUI
321
322 2009-03-03 - Belaid Rachid <rachid.belaid@gmail.com>
323         * Change the rules for the billing process..
324                 Add a new object in the process : Receipt
325                 Receipt is only an information for users like a summary of costs charged during the last month
326
327 2009-02-25 - Belaid Rachid <rachid.belaid@gmail.com>
328         * Refactor the batch of did billing use to generate reminder invoice
329         * Refactor generate invoice ref number
330
331 2009-02-24 - Belaid Rachid <rachid.belaid@gmail.com>
332         * Refactor framework to avoid a redirection and display a correct message when the system faild to add a record.
333         * replace Destination by Phonenumber on Call-history Customer UI
334         * DB update : All password will be change to 'changepassword'
335
336 2009-02-23 - Belaid Arezqui <areski@gmail.com>
337         * Dial Balance reservation - Credit to reserve from the balance when a call is made.
338
339 2009-02-19
340         * Add commission for agent - Belaid Rachid <rachid.belaid@gmail.com>
341         * correct in invoice , the payment item adding - Belaid Rachid <rachid.belaid@gmail.com>
342         * Create a invoice after a payment - Belaid Rachid <rachid.belaid@gmail.com>
343         * config file : add RotatingFileHandler - Belaid Arezqui <areski@gmail.com>
344
345 2009-02-17
346         * Ticket #367 : speed Dial working with USE_DNID - Belaid Arezqui <areski@gmail.com>
347         * serial functionality - Alexander merkulov <arheops@gmail.com>
348
349 2009-02-09 - Belaid Rachid <rachid.belaid@gmail.com>
350         * Add preview on the next billing invoice with detailled calls ...
351           link the paid status with the payment's type of the customer
352         * Detailled invoice for billing
353         * Generate correct invoice when you bill one customer
354
355 2009-01-10 - Steve Dommett <steve@st4vs.net>
356         * Give an example of how to update to the new-style destination lookup table when your trunks perform rewrites.
357                 Fix the regex to match multiple digits,  rather than just a single one.
358                 Add a query to update the CDRs to new-style destination lookups too.  ( fixes #326 )
359
360 2009-01-09 - Steve Dommett <steve@st4vs.net>
361         * Small Postgres fixes
362         * Bring the Postgres schema in line with the one for MySQL
363         * Update UK prefixes,  and flag possible problem with MySQL schema
364
365 2009-01-02 - Belaid Arezqui <areski@gmail.com>
366         * Fix : A2billing 1.4 web gui doesnt work with internet-Explorer 7.0
367
368 2008-12-29 - Belaid Arezqui <areski@gmail.com>
369         * Add new payment method : plugnPay
370
371 2008-12-18 - Belaid Rachid <rachid.belaid@gmail.com>
372         * new invoice module
373
374 2008-12-18 - Belaid Arezqui <areski@gmail.com>
375         * Clean javascript function from header
376
377 2008-12-15 - Belaid Arezqui <areski@gmail.com>
378         * fix for DID call insert CDR
379
380 2008-12-11 - Alexander merkulov <arheops@gmail.com>
381         * DB reconnect After Dial command
382
383 2008-12-10
384         * update postgresql script - Belaid Rachid <rachid.belaid@gmail.com>
385         * Fix for SPLITABLE FIELD - Belaid Arezqui <areski@gmail.com>
386
387 2008-12-09 - Belaid Arezqui <areski@gmail.com>
388         * update Mysql Cluster schema - Belaid Rachid <rachid.belaid@gmail.com>
389
390 2008-12-08 - Belaid Arezqui <areski@gmail.com>
391         * Add files for Spanish Translation on the Admin inteface
392
393 2008-12-03 - Belaid Rachid <rachid.belaid@gmail.com>
394         * create a dashboard to replace the actual home page :
395                 will list the some main information :
396                 nb users,
397                 invoices pending,
398                 support ticket open,
399                 amount of CDR in the system
400                 the sell, buy, profit of the current day
401                 the sell, buy, profit of the current month
402
403 2008-12-04 - Belaid Arezqui <areski@gmail.com>
404         * Customer UI: Remove BLANK PAGE after customer changes password
405        
406 2008-12-03 - Belaid Rachid <rachid.belaid@gmail.com>
407         * Create refill and payment for agent
408         * Add right for SIP/IAX features in agent section
409         * Correct Import
410         * Correct bug about adding agent
411
412 2008-12-01 - Belaid Arezqui <areski@gmail.com>
413         * move signup to customer UI
414
415 2008-11-27 - Belaid Rachid <rachid.belaid@gmail.com>
416         * Improvement support module
417
418 2008-11-24 - Belaid Rachid <rachid.belaid@gmail.com>
419         * Forbidden delete of the DEFAULT group
420         * Add feature in Framework to forbid to delete some record
421
422 2008-11-21 - Belaid Rachid <rachid.belaid@gmail.com>
423         * enhancement for automatic rate update base on the prefix table
424         * Generate SIGNUP Agent
425        
426 2008-11-20 - Belaid Arezqui <areski@gmail.com>
427         * CDR optimization : Use new table with prefix to store the destination,
428         remove text destination from CDR.
429
430 2008-11-16
431         * generate card : add custom number
432         * billing parameter announce_time_correction
433
434 2008-11-12
435         * New verbosity and logging system
436         0 = FATAL; 1 = ERROR; WARN = 2 ; INFO = 3 ; DEBUG = 4
437
438 2008-11-10
439         * add filter on DID & DID destination
440         * Cleaning of admin UI + replace card by account
441         * add IAX trunking parameter
442
443 2008-11-08
444         * remove callback field from cc_card : no used
445         * remove predictive Dialer
446        
447 2008-11-07
448         * Update Agent UI, update of icons
449        
450 2008-11-05
451         * Create refill when you add payment
452
453 2008-11-03
454         * add PNL report
455         * add restriction on the phone number the customer is allowed to call
456
457 2008-10-31
458         * Correct bugs after refactor of cc_call
459
460 2008-10-28
461         * fix USE_REALTIME setting
462         * better layout with IE
463         * add Customer Group
464         * Add the management of the web customer interface in the customer group
465         * Add Customer INFO page
466         * Add Last 10 call in the customer info page
467        
468 2008-10-23
469         * add DNID report
470         * Refactor Recurring Service to be more logical. Now you choose in the service what s group  that you apply to this service
471        
472 2008-10-21
473         * add pid management process for the cront auto dialer
474         * IVR russian language fixes
475        
476 2008-10-10
477         * disconenctcharge time condition
478
479 2008-10-03
480         * Auto dialer : New system for auto dialing
481
482 2008-09-26
483         * feature to cutomize the IVR to play sound files for the cents for a specific currency
484        
485 2008-09-18
486         * add Asterisk Info
487
488 2008-09-17
489         * remove unsupported Design template
490         * correct limit behaviours for adding callerid in customer section
491         * Correct bug : conflict between free package , low balance and charge. if you have connect or disconnect charge andyou don't have enough credit to call but you have free minutes
492
493 2008-09-16
494         * add PHPConfig, interface to edit asterisk configuration files (sip.conf, iax.conf, etc..)
495         * add phpSysInfo : interface to monitor the local server
496         * add phpInfo : page to retrieve php information
497                
498 2008-09-19
499         * New Features :
500                 -Update Batch for Recurring Service
501                 -Refactor Framework to add a link on the view , for exemple, adding record
502                 exemple: modify customer to add link to create new customer
503
504 2008-09-18
505         * New Features :       
506                 -Refactor Recurring Service
507
508         *Change:-Add default value pour select in framework for adding
509                 -And choose Individual access like default access
510                
511
512         *Bug:   - Convert the list of notification's limit in customer currency
513                 - Correct Card groups
514
515 2008-09-17
516         * New Features :
517                 -Add search by card id for the card history's
518
519         *Bug :  - correct limit behaviours for adding callerid in customer section
520                 -conflict between free package , low balance and charge
521                 description: if you have connect or disconnect charge and you don't have enough credit to call but you have free minutes
522                 - correct bad forward on blank page when you try to importe rate with no enough parameter
523                 - Status log page : popup for the card selection didn't work
524 2008-09-16
525         * New Features :
526                 - Change the behaviours of the "not enough credit" to handle the free package and precision
527                 - Link to customer account on customer info page
528         *Bug :  - Correct import and constant
529                 - add sound for the Ivr to say cent when you have only one 'cent'
530                
531 2008-09-15
532         optimization CDR : remove no needed fields, refactor existing ones.
533
534 2008-09-03
535         * New Features : Script to fill db
536        
537 2008-08-29
538         *Bug : - correct bug about simulator when you want you use free package
539
540 2008-08-26
541
542         * New Features :
543                 - Define 0* like redial number
544         * Bug :
545                 - Correct the dynamic menu for the IVR
546
547 2008-08-25
548         * New Features :
549                 - Option to disable seconds annoucement
550                 - Add Sell Rates and Buy Rates CDR result
551                 - Manage charge of the paypal fee (customer or admin)
552 2008-08-21
553         * New Features :
554                 - Dynamic Menu language in the IVR.
555                 - Handle ru, es , fr , en
556                 - New sound for the menu (ru,es,fr,en)
557
558 2008-08-19 -  Belaid Rachid <rachid.belaid@gmail.com>   
559         * New Features :
560                 - Add in CDR search engine buy rate and sell rate.
561                 - Add in Brows Rates result: RATECARD
562                 - Add PAYMENT BUTTON to list callerid
563                 - Search CDR's using time
564
565 2008-08-13 -  Belaid Rachid <rachid.belaid@gmail.com>   
566         * New Features :
567                 - Info Bouton/Link in list by the framework
568                 - New Icon for Edit, Pay, Delete, Info
569                 - Info page for the card
570
571 2008-08-06 - Belaid Rachid <rachid.belaid@gmail.com>   
572         * New Features :Change arround rules about initblock and billingblock (BUY/SELL)
573
574 2008-08-05 - Belaid Rachid <rachid.belaid@gmail.com>
575
576         * New Features :
577                 - Search by first use date in card list
578                 - Add payment action in card list with a automatic refill of the balance.
579                 - Remove old refill process
580                 - Disable Balance edit
581
582 2008-07-31 - Belaid Rachid <rachid.belaid@gmail.com>
583
584         correct bug:  remove search by caller id
585        
586         * New Features :
587                 - add new special character in filter of card
588                 - add the features update password for the admins
589
590 2008-07-30 - Belaid Rachid <rachid.belaid@gmail.com>
591
592         correct bug:
593                 (bug) adding SIP/IAX FRIENDS when a customer is created
594                 (bug) see the SIP FRIENDS list
595                 (bug) edition/delette SIP/IAX FRIENDS
596                 (bug) delete customer feature
597
598 2008-07-29 - Belaid Rachid <rachid.belaid@gmail.com>
599
600         *New Features :
601                 - Add new fields for the cards
602                 - New fields about company for the customers
603                 - Add search criteria by caller id for the cards
604
605         Correct the bug : adding customer
606
607
608 2008-07-28 - Belaid Rachid <rachid.belaid@gmail.com>
609
610         Correct bug : 
611                 (bug) Now you can define the password when you create the admin
612                  (bug) refill don't work.
613                 And you don't do a other refill , if you refresh the screen
614
615         * New Features :
616                 - Filter special characters in the search of card number.
617                 - Add criterias for the search by terminate cause for calls logs
618
619 2008-07-25 - Belaid Rachid <rachid.belaid@gmail.com>
620
621         *New Features :
622                 - encoded password in DB for the administrator.
623                 - No view on the admin pwd.
624                 - search by dnid for the CDR
625
626         Correct : reinit root user with 'myroot' password (encoded now)
627
628
629 2008-07-24 - Belaid Rachid <rachid.belaid@gmail.com>
630
631         *New Features :
632         - to switch the Callplan from a customer, new parameter : callplan_deck_minute_threshold
633         - Filter for incompleted calls and congestionned calls
634         - trim for the search by card number
635         - add trim for the filter prefix card number
636
637 2008-07-10 - Belaid Rachid <rachid.belaid@gmail.com>
638         *New Features : add description for the REFILL and PAYMENT  for the ADMIN and AGENT
639        
640 2008-07-10 - Belaid Rachid <rachid.belaid@gmail.com>
641         *correct currency behaviour with MONEYBOOKER
642
643 2008-07-09 - Belaid Rachid <rachid.belaid@gmail.com>
644         *Add grace times in rate
645
646 2008-07-09 - Belaid Rachid <rachid.belaid@gmail.com>
647         *correct currency behaviour with PAYPAL
648        
649 2008-07-06 - Belaid Rachid <rachid.belaid@gmail.com>
650         *New Feature new free packages system
651
652 2008-06-26 - Belaid Rachid <rachid.belaid@gmail.com>
653         *Correct bug : correct rules for the language russian
654
655 2008-06-23 - Belaid Rachid <rachid.belaid@gmail.com>
656         *Correct bug :Refill an payment popup was disabled
657
658 2008-06-13 - 2008-06-23  Belaid Rachid <rachid.belaid@gmail.com>
659
660         *New Feature : Agent's UI of A2Billing.
661        
662 2008-06-12 - Belaid Rachid <rachid.belaid@gmail.com>
663        
664         Correct bug in Card simulator   
665
666 2008-06-05 - Belaid Rachid <rachid.belaid@gmail.com>
667
668
669         Refactoring : Constants List (Customer Part)
670
671        
672 28 May 2008 - Belaid Rachid <rachid.belaid@gmail.com>
673
674         * New Feature : add support of Russian language
675
676 26 May 2008     - Steve Dommett <steve@st4vs.net>
677
678         * BUG: emails from DID billing cron job didn't include the generated body (#226)
679
680 26 May 2008 - Belaid Rachid <rachid.belaid@gmail.com>
681
682         * BUG: Precision around rating... with the smalls rates
683
684 22 May 2008
685
686         * start agent interface - Belaid Arezqui <areski@gmail.com>
687
688         * Add audio files for Russian - Belaid Arezqui <areski@gmail.com>
689
690         * add notification date tag in cc_card to send a notification every X days - Belaid Rachid
691
692
693 20 May 2008     - Belaid Rachid
694
695         * New feature for Balance threshold notification
696
697
698 14 May 2008     - Belaid Arezqui <areski@gmail.com>
699
700         * Fix on Ratecard APIs - display right number of page and remove current page on link Letter
701
702
703 13 May 2008     - Belaid Arezqui <areski@gmail.com>
704
705         * correct the search by letter for the api display_ratecard
706         * fixes for support module
707
708
709 #### Regular expressions dialprefixes for ratecards
710 ********************************************************************
711 You can use now a mix of Asterisk and POSIX regular expression syntax to match rates, eg
712 _447[7-9]XXXXXXXX       matches UK mobile numbers
713 _X{0,3}(112|999|911)    matches any 0-3 digits followed by a common emergency number
714 _XXX                    matches any 3 digit numbers
715 _NX.                    match numbers starting with 2-9, followed by at least one more digit
716 You can use more '_' (anywhere in the string) to pad the length, and therefore increase the match priority.
717
718
719 #### no answer on followme
720 ********************************************************************
721 a2billing.php|2|did: file:Class.A2Billing.php - line:952 - [A2Billing] DID call friend: FOLLOWME=2 (cardnumber:7909954270|destination:5995815170|tariff:21)
722
723 make a new voice promoted to replace the one called prepaid-noanswerand make a new one called prepaid-callfollowme
724
725 prepaid-callfollowme :
726 "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"
727
728 "la persona a la que ustede llamo no se encuentra disponible, porfavor espere on momento el servicio sigueme enrutara su llamada"
729
730 "La personne que vous essayez de contacter n est pas disponible, restez en ligne pendant que notre service fait suivre votre appel"
731
732
733 #### TODO : ARCHIVE CDRs & Cards
734 ********************************************************************
735 We will create cc_call_archive && cc_card_archive
736 table with the same structure cc_call where id will be primary key.
737 So we can build a cront application that will weekly, retrieve all the CDRs
738 older than X months move them to cc_call_archive and then
739 explain the Database and rebuild index so that it start to be fast again.
740 X Month will be in parameter in config
741
742 Think to better solution maybe !?
743 +
744 ** WEB INTERFACE **
745
746 Maybe a web interface similar at the massmail Archive, with 2 options for customer and CDR
747 so we should be able to make a selection of the USER and move them to the archive table
748 same for the CDR cc_call
749
750
751 #### EXPORT RATECARD
752 ********************************************************************
753 Add all field on the export csv
754
755
756 #### TODO : function do_field
757 ********************************************************************
758 function do_field($sql,$fld,$dbfld){
759
760 This function is defined in many places, need to create in misc.php
761 and remove it from other page where it s used (mainly in report section)
762
763
764 #### TODO : Detach Selling ratecard from Buying ratecard - DEPRECIATED
765 ********************************************************************
766 - you need to update the selling prices multiple times
767 - you cannot really remove the sorter matching prefixes as you do right now, since one provider can have more granularity than other
768
769
770 #### MASS MAIL FEATURE
771 ********************************************************************
772 option to let send an email to all the a2billing user
773 - check how is it done on phpBB
774 if we have several thousand of mail to send this can be an issue with normal php scripts
775 maybe a daemon is needed
776
777 * We should be able to define the search Criteria as in View Card in order to preselect
778 only some customer to which u want to run the massmail
779
780
781 #### BUG : REMOVING A CALLPLAN
782 ********************************************************************
783 When removing a CallPlan, the card assigned are removed as well...
784
785
786 #### TRUNK CHANGE : UPDATE DAEMON TO USE THE DB CONF
787 ********************************************************************
788 read conf from the DB
789
790         my $manager_host = $cfg->val('global', 'manager_host');
791         my $manager_username = $cfg->val('global', 'manager_username');
792         my $manager_secret = $cfg->val('global', 'manager_secret');
793
794
795 #### TODO : CRITERIA CALLPLAN
796 ********************************************************************
797 I added Callplan on CDR report, see revision 303, we need to add the same on the 3 pages :
798 (Section Call Report)
799 # Calls Compare
800 # Monthly Traffic
801 # Daily Load
802
803 If graph we need to pass the parameter there too.
804
805
806 #### TODO : CRITERIA RATECARD ID
807 ********************************************************************
808 Same as for the CallPlan but now for the ratecard ID, normally already same in CDR :
809 (Section Call Report)
810 # CDR report
811 # Calls Compare
812 # Monthly Traffic
813 # Daily Load
814
815 If graph we need to pass the parameter there too.
816
817
818
819 #### TODO : MOVE CAPTCHA Directory to signup directory
820 ********************************************************************
821 lib/captcha
822 due to htaccess in lib/ it s an issue on most installation, as the pictures is not accessable
823 so move         A2Billing_UI/lib/captcha
824 to                      A2Billing_UI/signup/captcha
825
826
827 #### TODO : BATCH UPDATE  FOR TAG ; ROUNDING CALLTIME ; ROUNDING THRESHOLD ; ADDITIONAL BLOCK CHARGE ; ADDITIONAL BLOCK CHARGE TIME
828 ********************************************************************
829 Batch update for
830 TAG ; ROUNDING CALLTIME ; ROUNDING THRESHOLD ; ADDITIONAL BLOCK CHARGE ; ADDITIONAL BLOCK CHARGE TIME
831
832
833 #### IMPORT : ROUNDING CALLTIME ; ROUNDING THRESHOLD ; ADDITIONAL BLOCK CHARGE ; ADDITIONAL BLOCK CHARGE TIME
834 ********************************************************************
835 Add ROUNDING CALLTIME ; ROUNDING THRESHOLD ; ADDITIONAL BLOCK CHARGE ; ADDITIONAL BLOCK CHARGE TIME
836 on the import ratecard tool
837
838
839 #### TODO : TAG IN RATECARD
840 ********************************************************************
841 We need a tag field into the ratecard!
842 this allow us to tag and filter some rates from a ratecard.
843 For instance, if we want to tag all the proper line prefix, so that we can then
844 apply batch update only for them.
845
846 We can add a new field in cc_ratecard for this :
847 ALTER TABLE cc_ratecad ADD COLUMN tag CHAR(50);
848 - We should add a reseach by tag on "Browse Rates".
849
850
851 ** ADD TAG IN THE IMPORT RATECARD **
852
853
854
855 #### ADDITIONAL CHARGES ON REALTIME BILLING
856 ********************************************************************
857 1) Rouding calltime
858
859         We will need 2 new fields in the ratecard to define this,
860
861         - rounding_calltime will define the new calltime that will be assigned to this call, for instance 360 (6 minutes)
862         - rounding_threshold that will define the amount in seconds from which the rounding calltime will apply
863         for instance 300 (5 minutes)
864
865         ** take note that if the call last 7 minutes if the rounding_calltime is less than the current
866                 calltime we dont round down the calltime
867
868         Example :
869         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
870         now the ratecard will be configure with  rounding_calltime = 360 - 6min
871         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
872         and so it will round the call to the new calltime, rounding_calltime = 360
873         so my call will be rated to 0.6$ instead of 0.5
874
875
876 2) Additional Block charge
877
878         This is an additional charge that will be apply according to the duration of the call and
879         the amount of "time block" inside the the calltime.
880         We will need 2 new fields in the ratecard to define this,
881         - additional_block_charge that will define the charge amount, ie 0.50 cents
882         - additional_block_charge_time that will define the amount of seconds from which we have to apply this
883           new charge, we will count the amount of time this block of time can be contain inside
884           the calltime and apply the charge accordingly to this.
885         Example, additional_block_charge_time = 300 (5 minutes) if the call last 360 seconds, the
886         additional_block_charge_time is contains 1 time so we apply this charge once.
887         If the call last now 660 seconds (11 minutes), the additional_block_charge_time (5min) is contains
888         2 time so we will apply this charge 2 time too (2 time 0.50 cents)
889
890
891 * add real_sessiontime in cc_call
892
893
894 #### FEATURE : CUSTOMER SERVICES FRIENDLY
895 ********************************************************************
896
897 1. Make the customer account number a link everywhere that it is displayed,
898 so that if you see a customer number, you click on it, and it takes you to the customer details screen.
899
900 2. Within the customer accounts screen, have a link to click to bring up to
901 the login screen A2BCustomer_UI - but without the requirement to fill again the user's name and password.
902
903 3. A notes field against the customer - simply a free text field.
904
905 4. A customer history, would include date stamped notes added by the
906 Customer services, and may even display an element of the automatic history already displayed on the system.
907
908
909 #### FIX : Web service - status log dont work, check Activation_Card
910 ********************************************************************
911 Web service - status log dont work, check Activation_Card
912
913
914 #### FIX : ADODB cache dir
915 ********************************************************************
916 Put the adodb cache in /tmp , too
917
918
919 #### CHECK : Check AGI use the Status
920 ********************************************************************
921 in AGI Class.A2Billing, function authentication,
922 when we check card is valid or not, we still use cc_card.activated
923 we need to replace this by cc_card.status
924
925
926
927 #### TODO : GENERATE VOUCHER & GENERATE CARD
928 ********************************************************************
929 In the generate option, the tag value is set to a random ID : 1181897201
930 this allow us to see exactly after the generation those that has been created!
931 If someone really use the tag feature to classify his voucher, this can be bit annoying!
932 we need to give the option to define the tag to a specific value or to use the random number.
933
934 We can add a new field in cc_card for this :
935 ALTER TABLE cc_card ADD COLUMN tag CHAR(50);
936 We should add a reseach by tag too on View card.
937
938
939 #### GENERAL : replace activated by status
940 ********************************************************************
941 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.
942
943
944 #### BILLING : ADD VIEW AND SEARCH ON TABLE cc_epayment_log
945 ********************************************************************
946 ADD VIEW AND SEARCH ON TABLE cc_epayment_log
947 status -> 0 : New ; 1 : proceed ; 2 ; in process
948
949
950
951 #### CHECK BACKUP & RESTORE FEATURE
952 ********************************************************************
953 user posted that is broken.
954
955
956
957 #### UPDATE CSS Menu : menu.css
958 ********************************************************************
959 With some translation the text in the menu overpass the size of the cell.
960 changing has below the height change the design we need to wrap the text and make it
961 fit according to the amount of text.
962
963  #nav ul li span,#nav ul li a {
964       padding: 2px 18px 2px 20px;
965       font-size: 10px;
966 -       height : 11px;
967  }
968
969
970 ### DB CONFIG - SHOW WRONG
971 ********************************************************************
972 CLICK ON ALL ->
973 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
974
975 should use
976 LEFT JOIN
977
978
979
980 #### FEATURE : ADD CSV EXPORT ON THE CDR REPORT
981 ********************************************************************
982 Add CSV & XML Export on the cdr report
983 - look how it s done on the customer list
984
985
986 #### FEATURE : play rate
987 ********************************************************************
988 a2billing.php|1: file:Class.A2Billing.php - line:763 - TIMEOUT::> 1016  : minutes=16 - seconds=56
989 AGI Tx >> 200 result=1
990 AGI Rx << SAY NUMBER 285 ""
991     -- Playing 'digits/2' (language 'en')
992     -- Playing 'digits/hundred' (language 'en')
993     -- Playing 'digits/80' (language 'en')
994     -- Playing 'digits/5' (language 'en')
995 AGI Tx >> 200 result=0
996 AGI Rx << STREAM FILE cents-per-minute ""
997
998 create a mode to choose if we play in cents or in unit
999 2 dollars and 85 cents per minutes
1000
1001
1002
1003 #### TODO : CUSTOMER UI
1004 ********************************************************************
1005 A2BCustomer_UI/userinfo.php
1006 suggest that the only Logo's (paypal, Moneybooker, Authorize.net) displayed on the customer interface
1007 are the payment methods that are enabled.
1008
1009 patch for trunk and branches/1.3
1010
1011
1012 #### A2Billing_UI/Public/index.php
1013 ********************************************************************
1014 on the login page & signup, there is a log enable :
1015 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','')
1016
1017 remove this for page where user is not login too
1018
1019 #### FEATURE - GMT SUPPORT
1020 ********************************************************************
1021 - we need a parameter to define the server_GMT
1022 - when creating a customer we need to have it as default on GMT+0
1023         * for signup module it can be managed with a right definition in the sql
1024 - CustomerUI : call-history.php on customer dont have any GMT support on it
1025
1026
1027 #### FEATURE - DB CONFIGURATION
1028 ********************************************************************
1029
1030 - if the field is readonly : find a way maybe with css to change the backgroup color of the field like grey color
1031
1032 - comments when u edit : "Insert the Group Name",  stuff like that when u edit -> this section is to provide a real information
1033
1034 - dropdown value : As we have many Variables like Card_Type which can have 2 Values like postpaid & Prepaid,
1035    Our System will automatically show a Dropdown List to provide customer to select from it...
1036
1037 - we need a drop down for the group in list configuration
1038
1039 - remove the Text Area  and will make it simple Paragraph.. i will add a new type in the Framework
1040   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
1041
1042 - we want to define a concept of heritage for the AGI-Conf1, 2, 3
1043 using a general one agi-conf-base and we will only redefine the changes in agi-conf1, 2, etc...
1044 The web interface need to allow us to redefine only the parameter we want.
1045
1046 - Change the name of list config groups to List Global Config
1047
1048
1049
1050 We should get something like this at the end :
1051
1052 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.
1053
1054 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.
1055
1056 4. Beneath "List Global Config" we need a button call Add AGI-CONF -
1057 this simply creates a standard agi-conf and calls it agi-conf2 (or 3 or 4 depending on how many have been created)
1058 We will see the parameter from AGI-Conf-Base and be able to redefine and save the changes
1059
1060 The new agi-conf-X can then be accessed via "List Global Config"
1061 this will do a SELECT of the AGI-Conf-Base and show the parameter that has been created
1062
1063 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.
1064
1065
1066 #### BUG : choose language
1067 ********************************************************************
1068 problem on calling card language selection. once select 1 or 2 or 3 in the language selection IVR, it dropped rightaway.
1069 it was good on my original version.
1070
1071
1072 #### move a2billing.conf in DB
1073 ********************************************************************
1074 move a2billing.conf in DB
1075
1076
1077 #### multi-langague on email template
1078 ********************************************************************
1079 multiple email templates based on location signup
1080 ie, if some one is from india, they will recieve their email in indian language
1081
1082
1083
1084 #### BUG []
1085 ********************************************************************
1086
1087 Line 382 in a2billing.php has:
1088                                    if (substr($A2B->CallerID,0,1)=='0'){
1089                                            $A2B ->dnid = $A2B ->destination =
1090 $caller_areacode.substr($A2B->CallerID,1);
1091                                    }else{
1092                                            $A2B ->dnid = $A2B ->destination =
1093 $caller_areacode.$A2B->CallerID;
1094                                    }
1095                                    $agi->verbose('line:'.__LINE__.' - '.'[destination:
1096 - '.$A2B->destination.']');
1097
1098 [a2billing-cid-callback]
1099 exten => _X.,1,DeadAGI(a2billing.php|1|cid-callback|34) ;last
1100 parameter is the callback area code
1101 exten => _X.,2,Hangup
1102
1103 As u see the last parameter is the area code and from instance :
1104 if I am in Belgium and use a local DID for callback but my server are
1105 in UK, the system will probably not know that it needs to call me back
1106 over the prefix 32, that's why is needed.
1107 So in this case my cell number 0473510969, a2b will be call me as 32473510969.
1108 That s the meaning of the remaining zero and it makes sense to set a parameter
1109 for the leading zero if you are
1110 already in the local country.
1111
1112
1113 ********************************************************************
1114                                                 V1.3
1115 ********************************************************************
1116
1117
1118 #### BUG : CallBack
1119 ********************************************************************
1120 DIVIDE THE AMOUNT OF CREDIT BY 2 IN ORDER TO AVOID NEGATIVE BALANCE IF THE USER USE ALL HIS CREDIT
1121
1122
1123 #### BUG : Customer UI
1124 ********************************************************************
1125 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?
1126 http://forum.asterisk2billing.org/viewtopic.php?t=2250
1127
1128
1129 #### MISC
1130 ********************************************************************
1131 - Change qualify to 7 chars :
1132         db change mysql :
1133                 ALTER TABLE cc_iax_buddies CHANGE qualify qualify char(7);
1134                 ALTER TABLE cc_sip_buddies CHANGE qualify qualify char(7);
1135         db change psql :
1136                 ALTER TABLE cc_iax_buddies ALTER COLUMN qualify TYPE char(7);
1137                 ALTER TABLE cc_sip_buddies ALTER COLUMN qualify TYPE char(7);
1138
1139 - Correction on alarm spelling
1140 - Add export rates csv & xml
1141 - BUG : wrong audio file prepaid-enter-pin-number.gsm
1142 - BUG : peer sip iax qualify & nat & sip/iax info on Customer UI display
1143 - UPDATE : scrollbar on textarea
1144 - UPDATE : naming on batch update
1145 - UPDATE : Help files
1146 - UPDATE : remove paypal section from conf files
1147 - UPDATE : Display ratecard 100% wide
1148 - BUG : Reporting
1149
1150
1151 #### NEW LOGO ON MAIN PAGE
1152 ********************************************************************
1153
1154
1155 #### MOVE THIS IN CONF FILE
1156 ********************************************************************
1157         and this the a2billing-callback-daemon:
1158
1159         ####### ASTERISK MANAGER ######
1160         my $manager_host = "localhost";
1161         my $manager_username = "myasterisk";
1162         my $manager_secret = "mycode";
1163
1164 use a2billing.conf
1165 [global]
1166 ; MANAGER CONNECTION PARAMETERS
1167 manager_host = localhost
1168 manager_username = myasterisk
1169 manager_secret = mycode
1170
1171
1172 #### FILE USED ?
1173 ********************************************************************
1174 trunk/A2BCustomer_UI/lib/epayment/includes/PP_header.php
1175 trunk/A2Billing_UI/lib/epayment/includes/PP_header.php
1176
1177 To remove :
1178 trunk/A2Billing_UI/signup/PP_footer.php
1179 trunk/A2Billing_UI/signup/PP_header.php
1180
1181 #### BUG : IAX / SIP friends
1182 ********************************************************************
1183 I have the BLANK PAGE when I click to generate the iax friend
1184 it happens on the first user in the system
1185
1186
1187 #### BUG : IE Customer UI
1188 ********************************************************************
1189 the menu is very bad on Internet Explorer in client interface
1190 you can view just half of the menu
1191
1192
1193 #### CALLBACK : INTRO MESSAGE
1194 ********************************************************************
1195 Play an intro message on CallBack
1196
1197
1198 #### Building a logging / tracking system on the web interface
1199 ********************************************************************
1200 Building a logging / tracking system on the web interface
1201
1202
1203 #### FEATURE : IVR - OPTION NO VOICE
1204 ********************************************************************
1205 Create an option on the AGI to remove Audio
1206
1207 ; Play audio - this will disable all stream file but not the Get Data
1208 ; for wholesale ensure that the authentication works and than number_try = 1
1209 play_audio = YES
1210
1211
1212 #### REMOVE OLD PAYPAL
1213 ********************************************************************
1214 A2Billing_UI/paypal
1215 A2B_entity_paypal.php?atmenu=paypal&stitle=PaypalTransaction&form_action=list&section=2
1216 FG_var_paypal
1217
1218
1219 #### SIGNUP : IF SIP/IAX Created reload asterik
1220 ********************************************************************
1221 After the public signup , get Asterisk to do a reload, as when a new card is created,
1222 asterisk is not reloaded, and therefore the SIP/IAX friend cannot register.
1223
1224 I added new parameter to handle this :
1225 ; Define if you want to reload Asterisk when a SIP / IAX Friend is created at signup time
1226 reload_asterisk_if_sipiax_created = no
1227
1228
1229
1230 #### CHANGE : INVOICE ADD MORE INFO
1231 ********************************************************************
1232 A2BCustomer_UI/A2B_entity_call_details.php
1233 add : Calls by Destination ; Calls by Date ; TOTAL ; VAT
1234 like we have in A2BCustomer_UI/A2B_entity_invoice_detail.php?section=4&invoice_type=1
1235
1236
1237 #### CHANGE : PAYMENT MODULE
1238 ********************************************************************
1239 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
1240 This will be the right process otherwise we cannot remove this conflict
1241 Userinfo => Just Pay Now Button..no amount
1242 Checkout_payment => Select Payment gateway
1243 Checkout_amount => Enter the amount ,,, Currecny will be shown to him
1244 checkout_confirmation =>
1245
1246 $arr_purchase_amount = split(":", EPAYMENT_PURCHASE_AMOUNT);
1247 if (!is_array($arr_purchase_amount)) $arr_purchase_amount[0]=10;
1248
1249 foreach($arr_purchase_amount as $value){
1250
1251 #### INVOICE FIX
1252 ********************************************************************
1253 fix on A2Billing_UI/Public/invoices_customer.php ->  false cardnumber
1254 # Error page : Blank page with "No User found"
1255 need design good error pages !!
1256 Golden rule : never show a white page with an error message.
1257
1258
1259 #### FIX : REFILL BASE CURRENCY
1260 ********************************************************************
1261 A2BCustomer_UI/userinfo.php
1262 # when we are changing the base currency -> on the userinfo it is shown to purchage 20 $
1263 the amount to refill should be show in the base currency and the next page should refill accordingly
1264
1265
1266 #### FIX : HIDE DIV ON "List Customer" & "Browse Rates"
1267 ********************************************************************
1268 Jquery - HIDE DIV ON "List Customer" & "Browse Rates"
1269
1270 ## USE CC_COUNTRY TO SELECT THE COUNTRY : ON SIGNUP & EDIT CUSTOMER
1271 ********************************************************************
1272 We will use cc_country table to select the country on signup module and also when
1273 we edit customer info. The value store in cc_card->country will be the cc_country->countrycode
1274
1275 #### BUG
1276 ********************************************************************
1277 yes the authorize is always in USD as it s only for US peoples.
1278 So the amount received by Authorize is in USD, we need configure it convert from
1279 USD -> base currency before making the insert.
1280 if the base currency is in EURO it wont work correctly now
1281
1282 #### PROMOTE : CALL-LABS
1283 ********************************************************************
1284 Promote : call-labs on a2billing trunk
1285
1286
1287 #### EPAYMENT : MULTI CURRENCY MANAGEMENT
1288 ********************************************************************
1289 handle mc_currency with paypal & mb_currency with moneybookers
1290 in order to secure the currency of the transactions
1291
1292 #### UPDATE : IMPORT MODULE
1293 ********************************************************************
1294 When I import, I get a page which allows me to check the data is being
1295 imported properly. There is no way to accept that import without selecting
1296 the csv files again.
1297
1298 #### BUGS
1299 ********************************************************************
1300 1# One more thing - if the SIP/IAX friend is created via "Create SIP Friend" button,
1301 then the defaults are not filled in, such as the context.
1302
1303 2#
1304 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.
1305
1306 #### FEATURES : EDIT SOME CUSTOMER INFORMATION ON CUSTOMERUI
1307 ********************************************************************
1308 A2BCustomer_UI/userinfo.php
1309 add a button below "Country" -> "edit my personal informations"
1310 we should be able to edit some of the data, not all, base on our framework.
1311 Ensure that customer cannot edit an other cardid
1312
1313 #### CONSOLIDATE THE GETTEXT FILES
1314 ********************************************************************
1315 Consolidate the gettext files for customer and admin interface
1316 regenerate all PO & MO files
1317
1318 #### ADD referial ID : Admin & customer (conf)
1319 ********************************************************************
1320 https://www.moneybookers.com/app/?rid=811621
1321 https://www.paypal.com/es/mrb/pal=PGSJEXAEXKTBU
1322
1323
1324 #### BUG
1325 ********************************************************************
1326 http://forum.asterisk2billing.org/viewtopic.php?t=1927
1327
1328
1329 #### FEATURE CUSTOMER UI : SIP/IAX INFO & partial edit
1330 ********************************************************************
1331 What about link under account Info.
1332
1333 VoIP settings
1334           o List SIP
1335           o List IAX
1336
1337 Put the User name and password under each link from the appropriate table.
1338
1339 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.
1340
1341
1342 User info Profile user can see any data for SIP registrations his device like sip-login an sip-password (locked to change)
1343
1344 #### E-PAYMENT MODULE
1345 ********************************************************************
1346 Modified: trunk/A2BCustomer_UI/checkout_payment.php
1347
1348 # customers_id -> feed with the card ID
1349
1350 # http://locals.com/checkout_process.php?sess_id=8g34831kbhdimm790mt5heh0u5&transactionID=6
1351 Secure that
1352
1353 # ADD a random number MDP
1354 on $key = securitykey(EPAYMENT_TRANSACTION_KEY, $time_stamp."^".$transaction_no[0][0]."^".$amount."^".$_SESSION["card_id"]);
1355
1356 # Check security on MD5 HMAC
1357 but we need a secret code on moneybooker side / paypal / etc---
1358
1359 // Calculate and return fingerprint
1360 // Use when you need control on the HTML output
1361 function CalculateFP ($loginid, $txnkey, $amount, $sequence, $tstamp, $currency = "") {
1362   return ($this->hmac ($txnkey, $loginid . "^" . $sequence . "^" . $tstamp . "^" . $amount . "^" . $currency));
1363 }
1364 that will work only stored on provider side
1365
1366
1367 #### FEATURES : CALLBACK APIs
1368 ********************************************************************
1369 1# Queue a callback request from an API : HTTP / WSDL
1370 - it will return the uniqueID generate for the callback request
1371 an API could generate a callback http://apiurl/callback-exec.php?listparameter=values&uniqueid=324234
1372 return an ID to identify the callback request
1373
1374 2# API to check the status of the callback : webservice
1375 - check the status of a generated callback
1376
1377 So an API will return result of a callback http://apiurl/callback-status.php?id=123453
1378 id is the ID returned by
1379 reply : Pending ; Success ; Error, etc ...
1380
1381
1382 #### WEB-CALLBACK
1383 ********************************************************************
1384 if the 2 leg is not connected, we need to bill the 1st
1385
1386
1387 #### SIGNUP SELECT TARIFFGROUP
1388 ********************************************************************
1389 "
1390 ; ID Tariffgroup to use, check the ID in the tariffgroup list - WebUI
1391 tariff = 1
1392 "
1393 -> need to be changed to ->
1394
1395 ; ID CallPlan to sign the customers
1396 ; or define a list of ID to let himselect select the callplan
1397 ; check the ID in the callplan list - WebUI
1398 callplan = 1, 2, 3
1399 "
1400
1401 SO "IN CASE OF MULTIPLE CALLPLAN", a new Dropdown menu will appear on the signup form.
1402 with the list of Callplan associate here to the list of ID
1403 (name of the callplab will appear, not the number 1, 2, 3)
1404
1405 Security, ensure at the sign-up time that the value send by the form is include in
1406 it to avoid the possibility from the customer to signup under an other tariffgroup
1407
1408
1409
1410 #### MoneyBooker bug
1411 ********************************************************************
1412 http://myaccount.call-labs.com/checkout_process.php?sess_id=58u4ckvmu0e0eedn9k872v1od4
1413 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
1414
1415
1416 #### BUG
1417 ********************************************************************
1418 You have 1 dependent records.
1419 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 ?
1420
1421
1422 #### check files
1423 ********************************************************************
1424 A2BCustomer_UI/lib/epayment/includes/methods/*
1425
1426 define action url from conf file
1427 A2BCustomer_UI/lib/epayment/methods/moneybookers.php
1428
1429
1430 #### SHIFT LEFT : DEFINES.PHP
1431 ********************************************************************
1432 SHIFT LEFT : DEFINES.PHP
1433
1434
1435 #### FEATURE : NEW CALLBACK SYSTEM
1436 ********************************************************************
1437 rebuild of the callback system, we are using a spool system in DB and a perl Daemon to initiate the callback.
1438 it brings flexibility and a way to track the callback request, their status, etc...
1439 So we have a spool system, all request are stored and handled by a perl daemon that will take care of dispatching
1440 them through several asterisk server.
1441 There is also an API also for this to generate the callback.
1442 /api/api_spool_callback.php
1443 this could be use by any third application/platform to generate callback request.
1444
1445 #### INVOICES
1446 ********************************************************************
1447 View Invoices
1448         # show cardnumber
1449         # Status appears to be empty for the invoice I had previously why ?
1450         # if I click on Sent the sent date is not update
1451         # Enter the cardnumber: -> this is the Card ID
1452
1453         # Click on Details -> it will be good to see the Start date and the End Date there
1454         # Details ->
1455                 the Charges is not converted at all if I have a charge of 100 in EUR and my base currency is in usd
1456                 it will show 100 usd the amount is not converted
1457                 there is function in Misc.php for this
1458         # Details -> the amount dont fit with what I have on the invoice page !!
1459         # Details -> keeping some options like in invoices.php
1460                 - RESULT :       Minutes - Second
1461                 - EXPORT FORMAT :        See Invoice in HTML  or Export PDF
1462                 - CURRENCY : selection
1463         # Details -> Status :                    Connected      DisConnected
1464                 only show Status : [the appropiated image ] Connected or DisConnected
1465
1466 Create Invoices
1467         # For card number: -> From card ID:
1468         # When you create the invoice we need an option to choose if we send or not directly the mail
1469         # INVOICE STATUS
1470                 UNPAID
1471                 SENT-UNPAID
1472                 SENT-PAID
1473                 PAID
1474
1475         # A2B_entity_create_invoice.php no footer
1476
1477
1478 Invoice_Customer
1479         # Menu dont use _ -> Invoice Customer
1480
1481         # Error page : Blank with "No User found"
1482         Can we design good error pages !!
1483
1484         # if there is no calls and no charge, only the logo appear :
1485                 there is nothing telling u that the invoice is empty!!
1486
1487         # show the covert start date
1488
1489         # keeping some options like in invoices.php
1490                 - RESULT :       Minutes - Second
1491                 - EXPORT FORMAT :        See Invoice in HTML  or Export PDF
1492                 - CURRENCY : selection
1493
1494 CUSTOMER
1495         # A2BCustomer_UI/invoices_customer.php
1496                 - if there is no calls and no charge, only the logo appear :
1497                 there is nothing telling u that the invoice is empty!!
1498                 - show the covert start date
1499         # List of invoices
1500                 customer should be able to see his own history of invoices with their status
1501                 Status should be different here, only pay or unpay
1502
1503
1504
1505 #### FEATURE : REVIEW NEW DID MANAGEMENT
1506 ********************************************************************
1507 Reservation and release
1508 * To check
1509
1510 ######## CURRENCY MANAGEMENT IN CRONT SERVICE
1511 ********************************************************************
1512 Currency management in cront service
1513
1514
1515 #### VOUCHER
1516 ********************************************************************
1517 if you want to refill you card with a voucher please dial...
1518 and its not understandable
1519
1520
1521 #### Review Audio
1522 ********************************************************************
1523 Send mail to Vincent for Spanish recording
1524
1525 #### DID CRONT - currency cc_charge
1526 ********************************************************************
1527 1#  add currency
1528         a2billing_bill_diduse.php
1529
1530
1531 #### JQUERY SLIDE
1532 ********************************************************************
1533 Menu with Jquery
1534
1535
1536 #### NAMING
1537 ********************************************************************
1538 REPLACE SIGNUP IN THE LEFT MENU -> MISC
1539 replace also SIGNUP  in ACL
1540
1541 TARIFFGROUP -> CALL PLAN
1542         TARIFFGROUPNAME -> NAME
1543         Change in edit card, signup & AGI
1544
1545
1546 #### JQUERY SLIDE
1547 ********************************************************************
1548 help.php
1549
1550
1551 #### Misc : FORMAT
1552 ********************************************************************
1553 To tidy up the box for filtering, can you either reduce the font size or use symbols only, e.g. >  ;   >=  ; <=
1554
1555
1556 #### Misc : INVOICE
1557 ********************************************************************
1558 1#
1559         http://trac.a2billing.net/cgi-bin/trac.cgi/changeset/981
1560         we need to have all this way
1561
1562 2#
1563         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."
1564
1565         it doesnt looks pretty, the description column is very small
1566
1567         problem on :
1568         A2B_entity_invoice_billedmail.php
1569         A2B_entity_invoice_detail.php
1570         ...
1571
1572 3#
1573         if you click on payment button when u have few payment
1574         then u click on the "sort button" or to display [10] [50] [100] it fails or show up the menu!!!
1575
1576
1577 4#
1578         images on
1579         <img src="<?php echo Images_Path;?>/asterisk01.jpg" align="middle">
1580
1581         I added a new parameter on a2billing.conf,
1582         ; 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/)
1583         invoice_image = asterisk01.jpg
1584
1585         we will handle this that way
1586
1587 5#
1588         A2B_entity_invoice_billedmail.php?section=2&id=8&cardid=12&action=sendinvoice&exporttype=html
1589         some images dont exist
1590         Public/templates/default/images/spacer.jpg
1591
1592 6#
1593         A2B_entity_invoice_billedmail.php
1594         this need to use mailtemplate
1595         $email_from = "admin@a2billing.org";
1596         $email_subject = "A2Billing Invoice";
1597         $email_message = "Dear Customer<br><br>\n\n Attached is the Invoice.\n\n <br><br>Sincerely<br>\n\nAdministrator A2Billing";
1598
1599
1600 7#
1601         Refactoring this HUGE mess.
1602         We have tons of pages to show up almost the same report
1603         Find a centralized way to make it clean and compress
1604
1605
1606 8#
1607         A2B_entity_invoice_billedmail.php
1608         we still have the understandable stuff at the end :
1609         Status :
1610     Connected      Disconnected
1611
1612         do the same as : A2B_entity_invoice_detail.php
1613
1614
1615 #### TO FIX
1616 ********************************************************************
1617 to check the patch I made here :
1618 http://trac.a2billing.net/cgi-bin/trac.cgi/changeset/955
1619
1620 and try to reproduce this all all the invoices pages
1621 this compress and make the code cleaner.
1622
1623 do this work for all the files :
1624 A2B_entity_invoice_billedmail.php
1625 A2B_entity_invoice_detail.php
1626 A2B_entity_invoice_list.php
1627 A2B_entity_invoices.php
1628 A2B_entity_invoices_unbilled.php
1629 A2B_entity_invoice_unbilledmail.php
1630
1631 #### MISC
1632 ********************************************************************
1633 * Customer -> Call Details : add criteria - Answered call
1634
1635 #### FORMAT
1636 ********************************************************************
1637 Rates -> Browse Rates
1638 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
1639
1640
1641 #### ADD SCROLLBAR ON ALL POPUP
1642 ********************************************************************
1643 scrollbars=1 in the window.open
1644 Check Rev 977
1645
1646
1647 #### WRITE DOCUMENTATION: API SHOW RATECARD ->
1648 ********************************************************************
1649 WRITE FULL DOCUMENTATION FOR :
1650 trunk/A2Billing_UI/api/display_ratecard.php
1651
1652
1653
1654 #### WRITE DOCUMENTATION: ALARM SYSTEM
1655 ********************************************************************
1656 WRITE DOCUMENTATION: ALARM SYSTEM
1657
1658
1659 #### FEATURE : NEW INVOICING SYSTEM
1660 ********************************************************************
1661 you will see, I dont describe here
1662
1663
1664 #### FEATURE : jump_voucher_if_min_credit
1665 ********************************************************************
1666 When the user credit are below the minimum credit to call min_credit
1667 we might have an option to decide if we jump directly to the voucher IVR menu instead of just disconecting
1668
1669 option in a2billing.conf
1670 jump_voucher_if_min_credit = yes or no
1671
1672
1673 #### MANAGE MULTI LENGHT CARD NUMBER
1674 ********************************************************************
1675 New parameter :
1676 [global]
1677 ; len_cardnumber is removed
1678 ; interval for the length of the cardnumber (number of digits),
1679 ; ie: 10-15 (cardnumber authorised 10, 11, 12, 13, 14, 15) ; 10,12,14 (cardnumber authorised 10, 12, 14)
1680 interval_len_cardnumber = 10-15
1681
1682
1683 We will support more than 1 lenght for the cardnumber.
1684 Admin Web interface :
1685 - Create customer :
1686         Add a drop-down button in the top page (below the help) to select the lenght for the card creation
1687         -> if the drop-down is selected the page will refresh with the new value for the card lenght
1688         by default we will use the minimum value of interval_len_cardnumber
1689 - Generate Customer :
1690         Add a point 13) as a drop-down button, select the card lenght but no refresh needed here
1691 - AGI
1692
1693 #### EXEC_SETLANGUAGE
1694 ********************************************************************
1695 function exec_setlanguage($language='en')
1696 {
1697   return $this->exec('SetLanguage', $language);
1698 }
1699
1700
1701 #### UPDATE a2billing_invoice_cront
1702 ********************************************************************
1703 * use the conf parameter : invoice_system -> invoiceday
1704 * add cc_charge
1705 * invoice_history
1706
1707
1708 #### BUG CAPTCHA
1709 ********************************************************************
1710 please have a look also at the captcha
1711 if u use caps letters, it wont work, all the pics are shows with caps
1712
1713 #### HOURLY ALARM
1714 ********************************************************************
1715 add in the alarm system an hourly check
1716
1717
1718 #### bug CallerID
1719 ********************************************************************
1720 CID not working  when  ANSWER_CALL=NO
1721 iv changed back to ANSER_CALL=YES , AND WORKS
1722
1723
1724 #### missing text put text in Gettext
1725 ********************************************************************
1726 CC_phonelist_import_analyse.php
1727 CC_ratecard_import_analyse.php
1728 CC_card_import_analyse.php
1729
1730 also some more are missing on those files (check the javascript):
1731 CC_card_import.php
1732 CC_phonelist_import.php
1733 CC_ratecard_import.php
1734
1735
1736 #### ADD INVOICE DAY
1737 ********************************************************************
1738
1739
1740 #### SAVE PAYMENT OPTION
1741 ********************************************************************
1742 when go on edit paypal/moneybooker and click on Update
1743 I dont get any confirmation that the option has been saved
1744
1745
1746 #### PAYMENT OPTION
1747 ********************************************************************
1748 put some help on the top
1749
1750 #### IMPORT RATECARD
1751 ********************************************************************
1752 ADD option to define if we want to import the price in cents or in units
1753
1754
1755 #### BAD ERROR MESSAGE
1756 ********************************************************************
1757 when u import a csv file and the size is bigger the 500 k for example u get the error  file not found
1758 the error message its not defined correctly
1759
1760
1761 #### FEATURE
1762 ********************************************************************
1763 REPORTING AND SUPPORT ALARMS :
1764
1765
1766         * ALOC (average length of call): Too low or too high.
1767         * ASR (answer seize ratio): Too low or too high.
1768
1769         maybe if possible :
1770         * CIC (Consecutive Incomplete Calls): Too many.
1771
1772 We already have ALOC under the name of ACD in the page "CDR REPORT", we just need a new column for ASR and
1773 rename ACD -> ALOC
1774
1775
1776 ASR = Answer Seizure Ratio
1777 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.
1778
1779
1780 For "Consecutive Incomplete Calls", we might find a way to display this I open to your suggestion. maybe a report as follow :
1781 Date ; total nb fails ; max of number fail calls succesively ; rate of fails (%)
1782
1783
1784
1785 For the alarm let's build a new table and a new page in CRONT SERVICE.
1786 We need the user to be able to define different kind of alarm, for instance if I want
1787 to monitor a specific trunk and not all
1788 We can have in the table something like :
1789 - period (daily ; monday-sunday ; 01 - 31)
1790 - typealarm (asr, aloc, callfail)
1791 - trunk (all or the ID of the trunk)
1792 - etc...
1793
1794
1795
1796 #### FEATURE : PACKAGES SYSTEM - FREE MINUTES
1797 ********************************************************************
1798 Situation :
1799 We need to support a new relation call "FREE MINUTE" under kind of package according to the destination.
1800 We have an example : http://www.blueface.ie/
1801 There is several kind of packages :
1802 - Unlimited UK/Ireland where they can call as much as they want to this destination and pay for the rest.
1803 - 300 minutes free over 20 destinations + unlimited on Uk for instance
1804 - 300 minutes free over 20 destinations
1805 - pay as you go, standard
1806
1807 We have to add in A2Billing this relation... For the unlimited calls we already have the routes at 0 cost.
1808 now we might need to assign the X free minutes relation over YZ destinations.
1809
1810
1811 - 300 minutes free over 20 destinations + unlimited on Uk for instance
1812 the relation unlimited is already defined in the rate-engine through the route with cost=0
1813
1814 we need to add new table :
1815 table cc_package to define the type package & min free.
1816 CREATE TABLE cc_package_offer (
1817     id bigserial NOT NULL,
1818     creationdate timestamp without time zone DEFAULT now(),
1819     label text NOT NULL,
1820     packagetype int NOT NULL,
1821         billingtype int NOT NULL,
1822         startday int NOT NULL,
1823         freeminutes int NOT NULL
1824 );
1825 -- packagetype : Free minute + Unlimited ; Free minute ; Unlimited ; Normal
1826 -- billingtype : Monthly ; Weekly
1827 -- startday : according to billingtype ; if monthly value 1-31 ; if Weekly value 1-7 (Monday to Sunday)
1828 I guess a field in cc_tariffgroup which will define the relation with cc_package_offer
1829 and a field in cc_ratecard to define if the rate will take advantage of the package offer (part of X min free)
1830
1831 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)
1832 and by user/card, Customer have to have the offer for each time period (since the creation date).
1833 Table cc_card_package (id_card, id_package_offer, time_used(secondes) )
1834
1835 CREATE TABLE cc_card_package_offer (
1836     id                                  bigserial NOT NULL,
1837         id_cc_card                      bigint NOT NULL.
1838         id_cc_package_offer bigint NOT NULL,
1839     date_consumption    timestamp without time zone DEFAULT now(),
1840         used_secondes           bigint NOT NULL
1841 );
1842 CREATE INDEX ind_cc_card_package_offer_id_card ON cc_card_package_offer USING btree (id_cc_card);
1843 CREATE INDEX ind_cc_card_package_offer_id_package_offer ON cc_card_package_offer USING btree (id_package_offer);
1844 CREATE INDEX ind_cc_card_package_offer_date_consumption ON cc_card_package_offer USING btree (date_consumption);
1845
1846 ALTER TABLE cc_tariffgroup      ADD COLUMN id_cc_package_offer BIGINT NOT NULL DEFAULT 0;
1847 ALTER TABLE cc_ratecard         ADD COLUMN freeminute_package_offer INT NOT NULL DEFAULT 0;
1848
1849
1850 Other Billing difficulty :
1851 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...
1852
1853
1854 CREATE TABLE cc_subscription_fee (
1855     id                          BIGSERIAL NOT NULL,
1856     label                       TEXT NOT NULL,
1857         fee                     NUMERIC(12,4) NOT NULL,
1858         currency                CHARACTER VARYING(3) DEFAULT 'USD'::character varying,
1859         status                  INTEGER NOT NULL DEFAULT 0,
1860     numberofrun         INTEGER NOT NULL DEFAULT 0,
1861     datecreate          timestamp(0) without time zone DEFAULT now(),
1862     datelastrun         timestamp(0) without time zone DEFAULT now(),
1863     emailreport         TEXT,
1864     totalcredit         DOUBLE PRECISION NOT NULL DEFAULT 0,
1865     totalcardperform INTEGER NOT NULL DEFAULT 0
1866 );
1867 ALTER TABLE ONLY cc_subscription_fee
1868 ADD CONSTRAINT cc_subscription_fee_pkey PRIMARY KEY (id);
1869
1870
1871 ALTER TABLE cc_charge   ADD COLUMN currency                             CHARACTER VARYING(3) DEFAULT 'USD'::CHARACTER VARYING;
1872 ALTER TABLE cc_charge   ADD COLUMN id_cc_subscription_fee       BIGINT DEFAULT 0;
1873
1874
1875 CREATE INDEX ind_cc_charge_id_cc_card                           ON cc_charge USING btree (id_cc_card);
1876 CREATE INDEX ind_cc_charge_id_cc_subscription_fee       ON cc_charge USING btree (id_cc_subscription_fee);
1877 CREATE INDEX ind_cc_charge_creationdate                         ON cc_charge USING btree (creationdate);
1878
1879
1880 -- INSTEAD USE CC_CHARGE
1881 --      CREATE TABLE cc_subscription_fee_card (
1882 --          id                                          BIGSERIAL NOT NULL,
1883 --          id_cc_card                          BIGINT NOT NULL,
1884 --              id_cc_subscription_fee  BIGINT NOT NULL,
1885 --          datefee                             TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT now(),
1886 --          fee                                         NUMERIC(12,4) NOT NULL,
1887 --              fee_converted                   NUMERIC(12,4) NOT NULL,
1888 --              currency                                CHARACTER VARYING(3) DEFAULT 'USD'::CHARACTER VARYING
1889 --      );
1890 --      ALTER TABLE ONLY cc_subscription_fee_card
1891 --      ADD CONSTRAINT cc_subscription_fee_card_pkey PRIMARY KEY (id);
1892
1893 --      CREATE INDEX ind_cc_subscription_fee_card_id_card ON cc_subscription_fee_card USING btree (id_card);
1894 --      CREATE INDEX ind_cc_subscription_fee_card_id_cc_subscription_fee ON cc_subscription_fee_card USING btree (id_cc_subscription_fee);
1895 --      CREATE INDEX ind_cc_subscription_fee_card_datefee ON cc_subscription_fee_card USING btree (datefee);
1896
1897
1898
1899 --- MENU ---
1900 PACKAGE OFFER
1901         * List package Offer
1902         * Add package Offer
1903         * details by card
1904
1905 SERVICE
1906         * List subscription service
1907         * Add subscription service
1908
1909
1910
1911
1912 ?? ADD CC_SUBSCRIPTION_FEE & CC_CHARGE CHANGES IN MYSQL SCHEMAS
1913
1914 MISSING :
1915 - AGI
1916         http://trac.a2billing.net/cgi-bin/trac.cgi/changeset/789
1917
1918         IF PACKAGE IN THE TARIFFGROUP
1919                 0#      add freetimetocall_package_offer in select ratecard
1920
1921                 1#      Get info from the package
1922                         - billingtype ; startday ; freetimetocall
1923                 2#
1924                         According to billingtype (monthly 0 ; weekly 1)
1925                         if (monthly){
1926                                 if (startday > last day of the month) startday = last day of the month;
1927                                 if (startday <= 0 ) startday = 1;
1928                                 dateclause >= year-month-startday
1929                         }else{// weekly
1930                                 startday = startday % 7 (modulo)
1931                                 if (currentdayofweek < startday) currentdayofweek++7
1932                                 diffday = currentdayofweek - startday (current lundi 1 - mercredi 3 = 5)
1933                                 dateclause >=
1934                                 # mysql -> SELECT DATE_SUB('2003-07-13 00:00:00', INTERVAL 14 DAY);
1935                                 # mysql -> SELECT DATE_SUB(NOW(), INTERVAL 14 DAY);
1936                                 # psql  -> SELECT (date('2003-07-13 00:00:00') - interval '14 day');
1937                                 # psql  -> SELECT (now() - interval '14 day');
1938                         }
1939                         SELECT  sum(used_secondes) AS used_secondes
1940                         FROM cc_card_package_offer
1941                         WHERE (date_consumption) >= ('2007-02-01') AND id_cc_card = '%%%%%%%%%%%' AND id_cc_package_offer = '%%%%%%%%%%%'
1942                         AND DATE_CLAUSE
1943
1944                         init freetimetocall_used
1945                         freetimetocall_left = freetimetocall - freetimetocall_used
1946
1947                         ### MAKE CALL ###
1948                         CHECK IF THE RATE HAVE "freetimetocall_package_offer" = Yes
1949
1950                         if (Yes && (TimeofCAll >0) && (freetimetocall_left > 0)){
1951
1952                                         if (freetimetocall_left >= TIMEOFCALL) freetimetocall_used = TIMEOFCALL;
1953                                         else freetimetocall_used = freetimetocall_left;
1954
1955                                         TIMEOFCALL = TIMEOFCALL - freetimetocall_used
1956                                         Before calculated the cost
1957                                         TIMEOFCALL = TIMEOFCALL + freetimetocall_used
1958
1959                                         Add table cc_card_package_offer (...freetimetocall_used)
1960                                         add cc_call <- id_card_package_offer
1961                         }
1962
1963 - CRONT
1964         - BROWSE ALL THE CUSTOMER THAT HAVE A SUBSCRIPTION FEE ENABLE
1965                 SELECT * FROM cc_card LEFT JOIN cc_subscription_fee ON cc_card.id_subscription_fee=cc_subscription_fee.id WHERE cc_subscription_fee.status=1
1966         - Support multi currency
1967         - Add a charge for this user
1968                 INSERT INTO cc_charge (id_cc_card, amount, chargetype, description) values ('1', '120', '3', 'description here...')
1969         - Decrement his balance
1970
1971 - ADD SELECT subscription fee on card
1972 ALTER TABLE cc_card ADD COLUMN id_subscription_fee INTEGER;
1973
1974
1975 #### DOCUMENTATION : SMARTY & NEW DID MANAGEMENT
1976 ********************************************************************
1977 - How smarty works and how to customize the design of a2billing with smarty and css.
1978   little guide about how to do it!
1979 - Doc/DID_Billing.info to continue : make a detailed explanation of how to configure and use
1980   the DID billing explain a real case when we need to sell DIDs through A2Billing
1981
1982
1983 #### STYLE
1984 ********************************************************************
1985 LIST CUSTOMER -> Define specific criteria to search for cards created.
1986 Search engine style should be the same as we have over CDR Report
1987
1988 http://trac.a2billing.net/cgi-bin/trac.cgi/changeset/895
1989 this patch make a couples of fixes & changes on the CDR Report (such as text size, position, names, colors...)
1990
1991
1992 #### CAPTCHA
1993 ********************************************************************
1994 Try to add some captcha into the Sign-Up Form
1995
1996 http://www.nogajski.de/horst/php/captcha/index.php?download=yes&id=1234
1997
1998 ** Add parameter in a2billing.conf to enable captcha
1999
2000
2001 #### SIGN-UP LINK ON CUSTOMER UI
2002 ********************************************************************
2003
2004 put a link on the Customer sign in page.
2005 "To sign up click here" where "here" links to  A2Billing_UI/signup
2006
2007 use of the new parameter in a2billing.conf
2008
2009 [webcustomerui]
2010
2011 ; url of the signup page to show up on the sign in page (if empty no link will show up)
2012 signup_page_url = "http://localhost/~areski/svn/a2billing/trunk/A2Billing_UI/signup/"
2013
2014
2015 #### NEW MODE VOUCHER
2016 ********************************************************************
2017 add a mode voucher to just let the refill
2018
2019 check also for :
2020 ; When the user credit are below the minimum credit to call min_credit
2021 ; jump directly to the voucher IVR menu  (values: YES - NO)
2022 jump_voucher_if_min_credit = NO
2023
2024
2025 #### SIGNUP MODULE
2026 ********************************************************************
2027 the design is broken probably due to smarty template
2028
2029
2030 #### NEW TASK
2031 ********************************************************************
2032 When removing a Card -> Check if SIP/IAX has been created if yes ask for confirmation.
2033 1# we can add an id_card in the buddy table
2034 2# we can add an id_sip id_iax in the cc_card table
2035 find the best solution
2036
2037
2038 #### REPORT IMPROVE PRESENTATION
2039 ********************************************************************
2040 commit :
2041 http://trac.a2billing.net/cgi-bin/trac.cgi/changeset/895
2042 this patch make a couples of fixes & changes on the CDR Report (such as text size, position, names, colors...)
2043
2044 We need to make those same changes over the other report page :
2045 # Invoices
2046 # Calls Compare
2047 # Monthly Traffic
2048 # Daily Load
2049 # Report
2050
2051 and also on the customer interface.
2052
2053
2054 #### BUGS & CHECKS : DIVERS
2055 ********************************************************************
2056 [FIXED]
2057 1) Bug on edit entity (framework) keep transfered value in case of errors RegEx
2058
2059 2) Reduce big space in top pages :
2060                         A2B_entity_def_ratecard.php?atmenu=ratecard&stitle=RateCard&section=3
2061                         CC_ratecard_import.php?atmenu=ratecard&stitle=RateCard&section=3
2062
2063                         Good high :
2064                         A2B_entity_card.php?atmenu=card&stitle=Customers_Card&section=1
2065
2066
2067 2) LIST CARDNUMBER -> REFILL : ARANGE FORMAT OF REFILL - remove the ugly red border
2068 3) EDIT TARIFFGROUP -> add ratecard : reduce the border
2069 4) Security check on update tariffgroup : not create code on tmp
2070 %% ??
2071
2072 #### MISC
2073 ********************************************************************
2074 - Selection of the month -> replace by -> Month select ...
2075 - 1.Call Report – CDR Report – for appearances sake, can you make the font and size
2076 the same for Show: Answered Calls etc in the options section. As per the rest of this form ?
2077 - see more bug from Joe's report
2078
2079 #### CHECK DESIGN ERROR WITH IE (INTERNET EXPLORER)
2080 ********************************************************************
2081 - licence at the bottom is broken
2082 - anything else we find, etc...
2083
2084
2085 #### IE ISSUES
2086 ********************************************************************
2087 A user can face following issues in the client side Website.
2088
2089 1) Login Page: Click Here Text is very Small.
2090 2) Main Problem at the Pages is Menu. Left Side Menu is Half Displayed. and + Expand functionality is not working for DID.
2091 3) Userinfo.php: Text Font is very bad. Huge font are displayed. 2) Page layout is disturbed.
2092 4) Layout is disturbed on all pages
2093 5) Layout of the Footer is not ok.
2094 6) Change password page layout: Page has much white space under the header.
2095 7) Add Caller ID Page is containing different text fonts.
2096
2097
2098
2099 ######## ACTIVATED TO CHECK ON CID ROUTING
2100 ********************************************************************
2101 CREATE TABLE cc_outbound_cid_list (
2102     id                                  BIGSERIAL NOT NULL,
2103         outbound_cid_group      NOT NULL,
2104         cid                                     TEXT NOT NULL,
2105     activated                   CHAR(1) DEFAULT 't' NOT NULL,
2106     creationdate                TIMESTAMP(0) without time zone DEFAULT now()
2107 );
2108 ALTER TABLE ONLY cc_outbound_cid_list
2109 ADD CONSTRAINT cc_outbound_cid_list_pkey PRIMARY KEY (id);
2110
2111 We have         activated               CHAR(1) DEFAULT 't' NOT NULL,
2112 We should always use the following type
2113 activated INTEGER NOT NULL DEFAULT 0,
2114 (0 false ; 1 True)
2115
2116 Update webinterface and AGI accordingly
2117
2118
2119 ######## CID GROUP DELETE
2120 ********************************************************************
2121 when u delete a group of CID, it may remove all the CID inside that group
2122
2123
2124 #### UPDATE ACL : RIGHT MANAGEMENT
2125 ********************************************************************
2126 A2Billing_UI/Public/A2B_entity_user.php?form_action=ask-add&atmenu=user&groupID=1&stitle=ACL+Admin+management&section=10
2127
2128 Add new list of rights for the new options in the menu
2129 for instance add a new option for callback.
2130 Edit all the page of the callback and modify the access restriction to
2131 fit with the new right.
2132
2133 MODIFY ACX_RATECARD with the new right
2134 if (! has_rights (ACX_RATECARD)){
2135            Header ("HTTP/1.0 401 Unauthorized");
2136            Header ("Location: PP_error.php?c=accessdenied");
2137            die();
2138 }
2139
2140 #### UPDATE THE FORMAT OF THE SCRIPT : REARRANGE
2141 ********************************************************************
2142 DataBase/mysql/Mysql-3.x_4.x/a2billing-mysql-schema-MYSQL.3.X-4.X_v1.2.4.sql
2143 DataBase/mysql/Mysql-5.x/a2billing-mysql-schema-MYSQL.5.X-v1.2.4.sql
2144 DataBase/psql/a2billing-pgsql-schema-v1.2.4.sql
2145
2146 This :
2147
2148         CREATE TABLE cc_service_report (
2149                 id bigserial NOT NULL,
2150                 cc_service_id bigserial NOT NULL,
2151                 daterun timestamp(0) without time zone DEFAULT now(),
2152                 totalcardperform integer,
2153                 totalcredit double precision
2154         );
2155         ALTER TABLE ONLY cc_service_report
2156         ADD CONSTRAINT cc_service_report_pkey PRIMARY KEY (id);
2157
2158 will become :
2159
2160         CREATE TABLE cc_service_report (
2161                 id                                      BIGSERIAL NOT NULL,
2162                 cc_service_id           BIGSERIAL NOT NULL,
2163                 daterun                         TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NOW(),
2164                 totalcardperform        INTEGER,
2165                 totalcredit             DOUBLE PRECISION
2166         );
2167         ALTER TABLE ONLY cc_service_report
2168         ADD CONSTRAINT cc_service_report_pkey PRIMARY KEY (id);
2169
2170
2171 ######## CURRENCY MANAGEMENT IN CRONT SUBSCRIPTION FEE
2172 ********************************************************************
2173 Currency management in cront subscription fee
2174
2175
2176 #### MIGRATE NEW VERSION OF ADODB
2177 ********************************************************************
2178 started by Angel
2179
2180
2181 #### FEATURE : ADD ALL EPAYMENT METHOD TO THE VERSION
2182 ********************************************************************
2183 Authorize, moneybooker, etc...
2184
2185
2186 ######## Misc BUGS
2187 ********************************************************************
2188 A2BCustomer_UI/invoices.php?section=4
2189 - click on search, left menu dissapear
2190
2191 A2BCustomer_UI/A2B_entity_call_details.php?section=4
2192 - Javascript popup debug : "I am in a function"
2193 - click on search, left menu disappear
2194
2195 A2BCustomer_UI/A2B_entity_unbilled_summary.php?section=4
2196 - Fatal error: Call to a member function numRows() on a non-object in /home/areski/public_html/svn/a2billing/trunk/A2BCustomer_UI/A2B_entity_unbilled_summary.php on line 240
2197
2198 A2BCustomer_UI/A2B_entity_billed_summary.php?section=4
2199 - Fatal error: Call to a member function numRows() on a non-object in /home/areski/public_html/svn/a2billing/trunk/A2BCustomer_UI/A2B_entity_billed_summary.php on line 268
2200
2201 A2B_entity_card_multi.php?stitle=Card&section=1
2202 - Dont work at all, neither for range creation or standard generation cards
2203
2204
2205 #### FEATURE : ENSURE MENU STAY OPTION IN THE LAST SELECTED SECTION
2206 ********************************************************************
2207 Ensure menu stay option in the last selected section : use session for this
2208 Keep a different format for the last select submenu
2209
2210
2211 #### BUGS : TEST AGI 1.2 & 1.4
2212 ********************************************************************
2213 Test AGI for 1.2. and 1.4 and check warning and fix it
2214
2215 #### REMOVE cc_subscription_fee_card we use cc_charge instead
2216 ********************************************************************
2217 REMOVE cc_subscription_fee_card we use cc_charge instead
2218
2219
2220
2221 #### FEATURE : ROTATION CALLERID IN OUTBOUND CALLS
2222 ********************************************************************
2223 Situation: if I want to put a Asterisk box in Romania with a Digium board to terminate Romanian traffic.
2224 But the Romanian PTT will deny all calls if they don't have a Romanian CID. we need a way you can make some
2225 thing so that every time I send a call to Romania it takes a good Romanian number out of a list of 500 or 1000 CID's.
2226
2227 NEED : Little modification to do in the AGI and on the Admin UI.
2228 We will have to define the group of CallerID according to the destination and so we need a new field in
2229 cc_ratecard -> outbound_cid_group
2230
2231
2232 and 2 new tables :
2233 cc_outbound_cid_group
2234 (id, label, datecreated, blabla...)
2235 cc_outbound_cid_list
2236 (id, outbound_cid_group, cid, datecreated, blabla...)
2237
2238 cc_outbound_cid_group is the group info that will be associate to the destination : destination (cc_ratecard)
2239
2240 In the AGI : if the system found cc_outbound_cid_group defined when running the outbound call, it will take randomly
2241 a CID number in this group and it will be defined before the outbound call.
2242
2243
2244 In the admin site, there is a bit of work also, but basically it will use the standard function from the framework.
2245 OUTBOUND CID
2246 - Create Group
2247 - List Group
2248 - Add OUTBOUND CID
2249 - List OUTBOUND CID
2250
2251 later :
2252 - Import OUTBOUND CID
2253
2254 #### FEATURE : API SHOW RATECARD
2255 ********************************************************************
2256 http://domain/a2billing/api/display_ratecard.php?security_key&ratecardid&css_url&
2257 nb_display_lines&filter&field_to_display=sellingrate|buyrate|etc...&column_name=sellingrate|buyrate|etc...
2258 &browse_style= page number or Letter (A, B, C)
2259 & prefix_select = 32 (only prefix start by 32)
2260 & url_page = http://mysite.com/rates.php
2261
2262 The idea it s to have something very flexible so that users could get
2263 something like this
2264 http://www.voip.com/voip_international.aspx
2265 well more or less :D
2266
2267 I guess we can reuse some page from the customer interface to show ratecard and
2268 transform this to an API and something more flexible on design
2269 well the idea it s to keep something flexible so that anybody can display what
2270 they want from the ratecard.
2271
2272
2273
2274
2275 #### BUG
2276 ********************************************************************
2277 22 Aug 2006
2278  subject: voucher list in web customer problem with Firefox     Reply with quote
2279 I've the last version of A2Billing and I've Firefox.
2280 In the web Customer page i can't see the dialog box to insert the voucher, here:
2281 http://...../A2B_entity_voucher.php?form_action=list
2282 All OK with Internet Explorer.
2283 Can you test in your Firefox Browser?
2284
2285
2286
2287 #### ADD
2288 ********************************************************************
2289 Add Cardalias in the search engine -> list customers
2290
2291 In Invoice option as in Call Report to show only the answered calls
2292 (Customer & Admin)
2293
2294
2295
2296 #### []
2297 ********************************************************************
2298 Automatic DID Billing
2299 Cront to find the DID used and bill then accordingly
2300
2301 #### NEW TASK []
2302 ********************************************************************
2303 Smarty - template management
2304
2305
2306 #### [Done]
2307 ********************************************************************
2308 Add VAT in customer invoice
2309
2310 #### [Done]
2311 ********************************************************************
2312 NEW FRAMEWORK NEED TO CREATE SIP/IAX FRIENDS WHEN CREATING CARDS
2313
2314
2315 #### [done]
2316 ********************************************************************
2317 We need also the option when creating rate to create multi entries
2318 ie:
2319         Define the destination prefix. ie, 44 for UK proper. You can use 'defaultprefix' to setup a rate
2320         by default for the destination for which you dont want to provide a specific rate.
2321         IF YOU ADD A RATE AND NOT AN EDIT => You can also define several in the same time and range, as below:
2322         32484-32487 -> this would insert 32484, 32485, 32486, 32487
2323         32476,32477,32478 separate by comma
2324
2325
2326 #### [Done]
2327 ********************************************************************
2328 BUG on new framework when you edit a def ratecard.
2329
2330 #### []
2331 ********************************************************************
2332 Importation tools for the cards
2333
2334
2335 #### []
2336 ********************************************************************
2337 Add report by voip-provider
2338 see the selling traffic and the buying traffic, be able to see how much I
2339 earn for each voip-provider (difference from the selling rate and the buyrate)
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355 ********************************************************************
2356                                                 V1.2.3
2357 ********************************************************************
2358
2359
2360 #### NEW TASK []
2361 ********************************************************************
2362 margin is (revenue - carrier cost)/revenue
2363 markup is revenue - carrier cost)/carrier cost
2364 the above gives a %
2365 $50 revenue $25 carrier cost
2366 Profit = $25
2367 MArgin = 50%
2368 Markup = 100%
2369
2370 #### UPDATE []
2371 ********************************************************************
2372  sip/iax secret need to be only numeric for some voip client (Kiax) or hardphone
2373
2374
2375 #### NEW TASK []
2376 ********************************************************************
2377         language support : add flag on Admin
2378
2379
2380 #### NEW TASK []
2381 ********************************************************************
2382 import example (rates, card, DID) -> centralize in 1 file
2383
2384 #### UPDATE
2385 ********************************************************************
2386         ON CUSTOM INTERFACE
2387         Generate a new PO and merge it will the current transalation
2388
2389 #### FIXED
2390 ********************************************************************
2391 Admin : voucher  -> Export CSV  : Broken
2392 I just cant export the customer list to xml or csv just got a
2393 ERROR CSV EXPORT
2394 but nothing about the error in the apache logs.
2395 didnt modified the fields, its as it comes configured.
2396 ->>> CHECK ALL THE CSV & XML export
2397
2398
2399 #### NEW TASK []
2400 ********************************************************************
2401         Forget password option
2402                 Case 1
2403                         WE Create a User From Signup module and he dont get email
2404                         Solution 1
2405                                 We should make a page in the Signup Module to list all Non Active User and From where we should be able to send email again containing Activation key
2406                 Case 2
2407                         if the user is Already Signup ,, and Forgot Password
2408                         Solution :
2409                                 We should have the forgot password link on the User Side
2410                 Case 3
2411                         if the User is Disabled by the Admin... or Disable By Default as he didnt activated account
2412                                 Now the place comes where we have to create a differentiation
2413                                 that is if the By Default Settings contain the Active = f for New User when we create via Signup;; it mean User is not Active. and need Activation
2414                                 and 2nd is the Again Active = f when administrator Blocks some User
2415
2416
2417
2418 #### NEW TASK []
2419 ********************************************************************
2420 Added provider/trunk filtering in call reports.
2421 Thx Marcel :D
2422
2423
2424 #### NEW TASK []
2425 ********************************************************************
2426 You can afterward check that I created CC_card_import.php... CC_card_import_analyse.php
2427 make later on a tool as the import ratecard but for cards
2428 So peoples would like to import card, name, firstname, address, cardnumber, cardalias, webuipass, etc...
2429
2430
2431
2432 #### TO FIX
2433 ********************************************************************
2434  BUG in CUSTOMER DID
2435  Select Country -> Duplicate in the DID list (select Virtual Phonenumber)
2436
2437 #### TO ADD
2438 ********************************************************************
2439 FILTER PREFIX on the define ratecard
2440 handy to have it back
2441
2442 #### TO ADD
2443 ********************************************************************
2444 Email confirmation on signup module
2445
2446 #### NEW TASK []
2447 ********************************************************************
2448 multi langague for Admin,
2449
2450 #### TO FIX []
2451 ********************************************************************
2452         if (!isset($_SESSION["language"]))
2453     {
2454         $_SESSION["language"]='english';
2455     }
2456         else if (isset($language))
2457     {
2458         $_SESSION["language"] = $language;
2459     }
2460
2461         this is working with register_globals = off
2462         but if On it doesnt
2463         We need a solution that work with both
2464
2465
2466
2467 #### NEW TASK DID []
2468 ********************************************************************
2469 DID insert : support range and interval
2470 Also a little import tool as the one for the Ratecard
2471
2472
2473 #### NEW TASK []
2474 ********************************************************************
2475 /Form Class have an issue due to the images path
2476 on A2Billing_UI the path for the images is ../Images
2477 and on A2BCustomer_UI the path for the images is ./images
2478
2479 we need the path to be a DEFINE in the defines.php in order
2480 to user the same Form Class on the both interface (Customer & Admin)
2481
2482
2483
2484 #### NEW TASK []
2485 ********************************************************************
2486 On Calls Compare (call-comp.php)
2487 the graphs show the variantion according to the amount of calls.
2488 We need now Sells, Buyings and also Earnings
2489
2490 Same on Monthly Traffic
2491 -> We need now Sells, Buyings and also Earnings
2492
2493
2494
2495 #### NEW TASK []
2496 ********************************************************************
2497 Customer Interface : move all to the new framework
2498 A2BCustomer_UI/ratecard.php
2499 A2BCustomer_UI/did.php
2500 A2BCustomer_UI/voucher.php
2501
2502
2503 #### NEW TASK []
2504 ********************************************************************
2505 customer should be allow to change password. That should be in customer interface.
2506
2507
2508 #### []
2509 ********************************************************************
2510 Report on the earnings
2511 define the buy rate into the cc_call table to know how much
2512 we have to pay for this call made
2513 add in cc_call : buyrate, buycost
2514
2515         -- Add Buying cost into the reporting
2516
2517         POSTGRESQL
2518                 ALTER TABLE cc_call ADD COLUMN buyrate numeric(12,4);
2519                 ALTER TABLE cc_call ALTER COLUMN buyrate SET DEFAULT 0;
2520
2521                 ALTER TABLE cc_call ADD COLUMN buycost numeric(12,4);
2522                 ALTER TABLE cc_call ALTER COLUMN buycost SET DEFAULT 0;
2523
2524         MYSQL
2525                 ALTER TABLE cc_call ADD COLUMN buyrate decimal(15,5);
2526                 ALTER TABLE cc_call ALTER COLUMN buyrate SET DEFAULT 0;
2527
2528                 ALTER TABLE cc_call ADD COLUMN buycost decimal(15,5);
2529                 ALTER TABLE cc_call ALTER COLUMN buycost SET DEFAULT 0;
2530
2531
2532  use in the AGI : from cc_ratecard,     buyrate buyrateinitblock        buyrateincrement
2533
2534
2535 #### NEW TASK []
2536 ********************************************************************
2537 When Card "pre-selection" is made on A2B_entity_card.php
2538 we need to add a feature to remove the pre-selected cards.
2539
2540
2541 #### ADD
2542 ********************************************************************
2543 AUTO REFILL FEATURE
2544
2545
2546         -- inital balance : it would be used by the cron in order to refill automatically each month
2547         ALTER TABLE cc_card ADD COLUMN initialbalance numeric(12,4);
2548         ALTER TABLE cc_card ALTER COLUMN initialbalance SET DEFAULT 0;
2549         UPDATE cc_card SET initialbalance = '0';
2550
2551         -- invoiceday : day of the month when the customer invoice need to be created
2552         ALTER TABLE cc_card ADD COLUMN invoiceday integer;
2553         ALTER TABLE cc_card ALTER COLUMN invoiceday SET DEFAULT 1;
2554         UPDATE cc_card SET invoiceday = '1';
2555
2556         -- autorefill : define if the automatic refill will be permorfed on this card
2557         ALTER TABLE cc_card ADD COLUMN autorefill integer;
2558         ALTER TABLE cc_card ALTER COLUMN autorefill SET DEFAULT 0;
2559         UPDATE cc_card SET autorefill = '0';
2560
2561         -- Auto Refill Report Table
2562         CREATE TABLE cc_autorefill_report (
2563                 id bigserial NOT NULL,
2564                 daterun timestamp(0) without time zone DEFAULT now(),
2565                 totalcardperform integer,
2566                 totalcredit double precision
2567         );
2568         ALTER TABLE ONLY cc_autorefill_report
2569         ADD CONSTRAINT cc_autorefill_report_pkey PRIMARY KEY (id);
2570
2571
2572         create new Cront a2billing_autorefill.php
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585 ********************************************************************
2586                                                 V1.2.2
2587 ********************************************************************
2588
2589 #### []
2590 ********************************************************************
2591 migrate ADD callerID and Speeddial from Customer interface to the
2592 new framework
2593
2594
2595
2596 #### NEW TASK []
2597 ********************************************************************
2598 When removing a ratecard -> Remove all the rate belonging to
2599 When removing a trunk -> Check if rate are using it if yes ask for confirmation.
2600 When removing a tarriffgroup -> Check if Card are using it if yes ask for confirmation.
2601 When removing a DIDgroup -> Check if Card are using it if yes ask for confirmation.
2602
2603 #### BUG []
2604 ********************************************************************
2605 (11:33:55) Vahan: have a look at A2BCustomer_UI/add caller id / delete
2606 (11:34:07) Vahan: there is no delete button, it says 'Caller ID' only without button background :)
2607
2608
2609
2610 #### BUG [fixed]
2611 ********************************************************************
2612 Paypal update the card correctly
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628 ********************************************************************
2629                                                 V1.2.1
2630 ********************************************************************
2631
2632
2633 #### []
2634 ********************************************************************
2635 Use gettext in the future ftm only user interface
2636
2637
2638
2639 #### NEW TASK [Done]
2640 ********************************************************************
2641 In my opinion, may be "RUN SERVICE" could be one option; when we "Generate customers"
2642 RUN SERVICE : Yes No
2643 This could be helpful to enable run service for those cards in bulk, When we generate customers.
2644
2645
2646 #### BUG V1.2 [fixed]
2647 ********************************************************************
2648 POPUP
2649 http://localhost/~areski/svn/a2billing/trunk/A2Billing_UI/Public/CC_entity_sim_ratecard.php?atmenu=ratecard&stitle=Ratecard+Simulator
2650
2651
2652 #### NEW TASK [Done]
2653 ********************************************************************
2654 In my opinion: if its there also
2655 FILTER input field for "View money situation" & "View Payment".
2656
2657
2658 #### BUG V1.2 [Fixed]
2659 ********************************************************************
2660
2661 Customer bal is $2.5912
2662 It says $2.5912 is the balance instead of $2.59
2663 It seems to be a matter of some calculation that is not being rounded to 2 decmal places.
2664
2665
2666 #### NEW
2667 ********************************************************************
2668 UPDATE I18n TO GETTEXT ON CUSTOMER INTERFACE AND ADMIN
2669
2670
2671 #### CHANGE FRAMEWORK
2672 ********************************************************************
2673 signup module
2674
2675
2676
2677 ********************************************************************
2678                                                 V1.2
2679 ********************************************************************
2680
2681
2682
2683 #### BUG [Done]
2684 ********************************************************************
2685 when i delete an acount....they  seting are stil in the list iax or sip
2686 oh true
2687 we need to regenerate the conf files
2688
2689
2690
2691 #### BUG [fixed]
2692 ********************************************************************
2693 create IAX friends
2694 secret = carnumber ?? might be webui
2695
2696
2697 #### BUG [Fixed]
2698 ********************************************************************
2699 DID - customer interface show up more number that what it might
2700
2701
2702 #### BUG [was not a bug]
2703 ********************************************************************
2704 Launched AGI Script /var/lib/asterisk/agi-bin/a2billing.php
2705   a2billing.php|1|did: line:59 - IDCONFIG : 1
2706   a2billing.php|1|did:
2707   a2billing.php|1|did: line:68 - MODE : did
2708   ....
2709  (34650XXXXX|30|HL(3600000:61000:30000))
2710  ...
2711
2712  DID call seems to not assign the trunk value on the callout
2713
2714
2715 #### BUG [Fixed]
2716 ********************************************************************
2717 Webphone doesnt work anymore
2718
2719
2720
2721 #### BUG [fixed]
2722 ********************************************************************
2723 export vouchers...is exporting the accounts
2724
2725
2726 #### BUG [Fixed]
2727 ********************************************************************
2728 iv increase it to 17 digits.. but still doing voishers with 15 digits
2729
2730
2731 #### BUG [Fixed]
2732 ********************************************************************
2733 - CALLERID LIST -
2734 FILTER ON CALLERID :
2735 CALLERID        CARDNUMBER      ACTIVATED       ACTION
2736                 Active    Edit this CallerID   Delete this CallerID
2737 5905868969      5905868969      Active    Edit this CallerID   Delete this CallerID
2738
2739 caller id list
2740 when i click on card button..... i get this
2741 Not Found
2742
2743 The requested URL /ksys/A2Billing_UI/Public/A2B_entity_card was not found on this server.
2744 Apache/2.0.54 (Fedora) Server at 213.246.61.95 Port 80
2745
2746
2747 #### BUG [Fixed]
2748 ********************************************************************
2749 when i click list sip friends///
2750 select a card number....aply filter..is tellin me that : THERE IS NO IAX FRIEND CREATED!
2751
2752 but im the list sip friend no list iax friend :)
2753  - IAX FRIEND LIST -
2754 FILTER ON NAME :
2755 NAME    ACCOUNTCODE     CALLERID        CONTEXT         DEFAULTIP       DTMFMODE        ACTION
2756 6829162082      6829162082      6829162082      a2billing
2757  instead or showing me the sip friend after i aply the filter is showing me the IAX friend
2758
2759
2760 #### [Done]
2761 ********************************************************************
2762 Fix Money Situation
2763
2764 #### [Done]
2765 ********************************************************************
2766 Tag php short mode : Off
2767
2768
2769 #### [Done]
2770 ********************************************************************
2771 //// IMPORTANT
2772 More meangingful error message on the AGI section
2773  APPLY_RULES DESTINATION ::> 1815
2774  a2billing.php: RESFINDRATE::> 0
2775
2776 #### [DONE]
2777 ********************************************************************
2778 //// IMPORTANT
2779 Hardcoded
2780 additional_a2billing_sip.conf & additional_a2billing_iax.conf
2781
2782 #### [done]
2783 *******************************************************************
2784 //// IMPORTANT
2785 * signup autocreates SIP/IAX additional_a2billing_SIP/IAX.conf
2786
2787
2788
2789 #### [Done]
2790 *******************************************************************
2791 * List available rates in Customer UI.
2792 * JIAX integration in  Customer UI.
2793 * use the useralias in the sip/iax calls
2794
2795
2796 #### [done-guess]
2797 ********************************************************************
2798
2799 b) RateCard's entries not only for weeking days because there are normally many local calls which have PEAK (Mo to Fr from 8a.m. to 6p.m) and OFF PEAK (from Fr 6.p.m to Mo 8a.m and on holidays) prices for the carrier as for the customer. So this would be very usefully for more special definitions.
2800
2801 #### [done]
2802 ********************************************************************
2803
2804 6.) BUG - SIP/IAX allow codec problem
2805
2806 The codec will be printed out like allow=g729;ulaw;alaw;gsm but this don't work with Asterisk 1.2.x (I think also not with 1.0.x but I'm not sure) because there must be for each allow a own line like allow=g729 allow=ulaw .. and so on.
2807
2808 So there is missing a simple FOREACH in the module where it will be printed out
2809
2810
2811 #### [done]
2812 ********************************************************************
2813
2814 4.) SECURITY : In case of some problems with MySQL 4.1.14 if in my.cnf is defined "latin1" as default you will get roubles at the "CC_asterisk_rate-engine: SUPER QUERY". The problem is that as default the database will be installed for "varchar"-fields with "latin1-swedish" ;-(
2815
2816 It's surely a bug with MySQL because it is the last entry from latin1. So to be more secure you should change/add the charset to the CREATE syntax of MySQL to CHARSET=utf8 .This will be in the future also much more better if someone upgrades to MySQL 5.x Here is one example (se last entry will be used which is utf8_general_ci  ;-)
2817
2818 DROP TABLE IF EXISTS `templatemail`;
2819 CREATE TABLE `templatemail` (
2820   `mailtype` varchar(50) default NULL,
2821   `fromemail` varchar(70) default NULL,
2822   `fromname` varchar(70) default NULL,
2823   `subject` varchar(70) default NULL,
2824   `messagetext` longtext,
2825   `messagehtml` longtext
2826 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
2827
2828 #### [done]
2829 ********************************************************************
2830 //// IMPORTANT
2831 Update currency table
2832 Use Yahoo, check the script php for this
2833 Store currency in the Database
2834
2835
2836 #### [Update-local-text-files]
2837 ********************************************************************
2838
2839 DOCUMENTATION
2840
2841 from your web site
2842
2843 cp -rf libs_a2billing /var/lib/asterisk/agi-bin/.
2844 should be
2845 cp -rf libs_a2billing/* /var/lib/asterisk/agi-bin/.
2846 or u will miss 2 files in the folder
2847
2848 likewise from your website
2849 cp  sounds/en/* /var/lib/asterisk/sounds/.
2850 can be
2851 cp  sounds/en/* /var/lib/asterisk/sounds/. < yes.txt
2852 if u want to automate in a script
2853
2854
2855 #### [done]
2856 ********************************************************************
2857
2858
2859  - Leaking in documentation that AGI needs php as cgi ( so people with only mod_phpX won't able to make it work ),
2860    well at least in some systems php command line comes with cgi package or in a separate package php4-cli.
2861
2862 #### [done]
2863 ********************************************************************
2864
2865  - Leaking in documentation a2billing needs php-pcntl ( in debian is not in official repository ).
2866
2867 #### [done]
2868 ********************************************************************
2869
2870  - Use a unique file to store all the path and setting , so we avoid to changes values from files where
2871    are hardcoded :
2872
2873    i.ex in defines.php there's :
2874
2875    include ("/etc/asterisk/rates.inc");
2876
2877    Maybe a good solution is to move those variable to a2billing.conf file, that can be fixed because it's
2878    already defined -> buddyfilepath.
2879
2880    Also can be checked asterisk.conf because there are placed path for asterisk locations.
2881
2882    ( Others files with hardcoded data -> CC_upload.php , a2billing.php , Class.A2Billing.php , etc ... ).
2883
2884 #### [done]
2885 ********************************************************************
2886 //// IMPORTANT
2887  - Files inside [astetcdir] have to be writeables by apache user ( nobody or apache or www-data , etc ... ).
2888    ( not need to be set 777 )
2889
2890 #### [done]
2891 ********************************************************************
2892 //// IMPORTANT
2893  - Directories sounds and mohmp3 ( [astvarlibdir]/sounds/a2billing [astvarlibdir]/mohmp3 ) have to be
2894    writeable by apache user ( not need to be set 777 ) .
2895
2896
2897 #### [done]
2898 ********************************************************************
2899
2900  - CC_entity_car_refill.php ( if no cardnumber is added and you try or you try to refill a non existing
2901    user no error message just a 0 is written in left top of the page.
2902
2903 #### [not-valid]
2904 ********************************************************************
2905
2906  - allow field from table cc_sip_buddies is filled with "g729ulawalawgsm" ( change that input field with
2907    a drop box ). Moreover from CC_entity_edit_friend.php ( allows to insert a new user with only the name field ).
2908
2909 #### [no-valid]
2910 ********************************************************************
2911
2912  - If duplitated entry CC_entity_edit_friend.php :
2913
2914    Database error: Invalid SQL: INSERT INTO cc_sip_buddies (name, type, amaflags, nat, dtmfmode, canreinvite, disallow, allow, host, context, regseconds, cancallforward) values ('pepito', 'friend', 'billing', 'yes', 'RFC2833', 'yes', 'all', 'g729ulawalawgsm', 'dynamic', 'callingcard', '0', 'yes')
2915 MySQL Error: 1062 (Duplicate entry 'pepito' for key 2)
2916
2917
2918 #### [done]
2919 ********************************************************************
2920
2921  - In CC_entity_friend.php , if the users listed are only sip and you click over "Generate additional_a2billing_iax.conf" page blank
2922    is returned. That happens when there's only a type of user ( IAX or SIP ) and click over the button to generate file for oposite
2923    type of user.
2924
2925 #### [not-valid] -> It should be done at starting , and maybe also in login screen.
2926 ********************************************************************
2927
2928  - CC_entity_friend.php should check if additional files exist and are writeable otherwise warm the user.
2929
2930 #### [done]
2931 ********************************************************************
2932
2933  -  [error] PHP Warning:  Invalid argument supplied for foreach() in /usr/local/www/data-dist/a2billing/Public/CC_entity_card_refill.php on line 144.
2934
2935 #### [not-valid]
2936 ********************************************************************
2937 //// IMPORTANT
2938
2939  - mysql -u root mya2billing < update-PredictiveDialer-mysql-schema-v1.0.sql
2940 ERROR 1293 (HY000) at line 67: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
2941
2942  That is in the creation of :
2943
2944  CREATE TABLE cc_campaign (
2945     id INT NOT NULL AUTO_INCREMENT,
2946     campaign_name CHAR(50) NOT NULL,
2947     creationdate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
2948     startingdate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
2949     expirationdate TIMESTAMP,
2950     description MEDIUMTEXT,
2951     id_trunk INT DEFAULT 0,
2952     secondusedreal INT DEFAULT 0,
2953     nb_callmade INT DEFAULT 0,
2954     enable INT DEFAULT 0 NOT NULL,
2955     PRIMARY KEY (id),
2956     UNIQUE cons_phonelistname (campaign_name)
2957 );
2958
2959  Reference : http://dev.mysql.com/doc/refman/4.1/en/error-messages-server.html
2960
2961  Solution : maybe creationdate , should be change and when the campaign is create from web , use
2962             to mysql query the CURRENT_TIMESTAMP value.
2963
2964 #### [done]
2965 ********************************************************************
2966
2967
2968  - a2billing-mysql-createdb-user-v1.0.0.sql could be too "friendly" maybe change to be more restrictive.
2969
2970 #### [done]
2971 *******************************************************************
2972 //// IMPORTANT
2973  - DID in Customer UI doesn't work properly , seems that only for mysql-3.x_4.x due a sql subqueries .
2974
2975 #### [done]
2976 *******************************************************************
2977 //// IMPORTANT
2978  - Create tools for backup/restore database.
2979
2980
2981 #### [Done]
2982 ********************************************************************
2983 Export csv for the card
2984
2985  1# Solve the issue that the csv files opened with Excel remove leading 0
2986     Use the 'format the number to force it as a string
2987
2988 #### [done]
2989 ********************************************************************
2990 //// IMPORTANT
2991 Generate customers -> check box to choose to generate the IAX/SIP
2992 friends too
2993
2994
2995 #### [done]
2996 ********************************************************************
2997 //// IMPORTANT
2998 "Customer Creation" -> check box to choose to generate the IAX/SIP
2999 friends too
3000
3001 When a Customer is deleted if he was created as sip/iax friend that is not
3002 detele from asterisk additionals-* files.
3003
3004 #### [done]
3005 ********************************************************************
3006 //// IMPORTANT
3007 move the currency select from defines.php to a specific file
3008
3009 #### [done]
3010 ********************************************************************
3011 Export csv for the card
3012
3013 2# Customize the field to export, perhaps use a parameter in a2billing.conf
3014    to define the different field to export
3015       ;; card_export_field_list = creationdate, username, credit, lastname,
3016       firstname
3017
3018
3019 #### [done]
3020 ********************************************************************
3021 popup simulate ratecard - bug
3022
3023
3024
3025
3026 #### [Done]
3027 ********************************************************************
3028 //// IMPORTANT
3029 Make a Advanced-user features into the a2billing.conf to let the user
3030 1.1. on the "trunks" screen  shouldn't there be a "delete" as well as "edit"
3031 1.2. on the "Administrator" screen  shouldn't there be a "delete" as well as "edit"
3032 also we can make a div that will hide by default the cycle into the rateengine
3033
3034
3035
3036
3037 #### [Done]
3038 ********************************************************************
3039 //// IMPORTANT
3040 SUGGESTED RENAME
3041
3042 CYCLE -> call it time c
3043
3044 time charge is a duration not a charge, it should be called initial block
3045
3046
3047
3048
3049 STEPCHARGE C
3050 When entering in the cycle 'C', define the amount to charge for the
3051 entrance.
3052 CHARGE C
3053 When entering in the cycle 'C', define the rate to apply.
3054 TIMECHARGE C
3055 Define the duration of the cycle 'C'.
3056 BILLING BLOCK C
3057 Define the duration of each billing block to apply the rate 'CHARGE C'.
3058
3059
3060 timecharge c - define the duration of the cycle
3061 quite obviously IF IT IS A DURATION IT IS NOT A CHARGE SO DO NOT CALL IT
3062 "TIMECHARGEC"
3063 terribly confusing can u see that ?
3064
3065 stepcharge c
3066 u mean the "bong charge for this cycle" or "connection charge for this
3067 cycle"  (bong charge or connection charge is better term than "entrance"
3068 - this is not a stage)
3069
3070 charge c
3071 i would add in my definition "the rate to apply to block c"
3072
3073 BUYING RATE
3074 BUYRATE INIT BLOCK
3075 define the minimum time that your provider buy for (ie 30 secs)
3076 BUYRATE BILLING BLOCK
3077 Define the billing increment (billing block) to the provider apply.
3078 RATEINITIAL
3079 MIN DURATION
3080 This allow you to define the minimum time to bill the caller (ie 30 secs)
3081 BILLING BLOCK
3082 Define the duration of each billing block to apply globaly (if not cycle
3083 are defined).
3084
3085
3086 POETS AND PROGRAMMERS SHOULD USE SYMMETRIC FORM !!!!!!!!!!!!
3087
3088 if block refers to duration or time use the words duration or time EVERY
3089 where u use the term block
3090
3091 if buying rate refers to the block rate then it should say so the term
3092 buy rate without adjective is meaningless
3093
3094 EITHER HAVE A BLACK LINE ACROSS SCREEN TO SEPARATE BUY FROM SELL
3095 OR prefix buy_ and sell_ to the field names
3096 do u c how confusing this is ?
3097
3098 besides none of the grammar is right and some of it is painful to read
3099
3100  >>>define the minimum time that your provider buy for (ie 30 secs)
3101  >>>provider buys not buy
3102
3103  >>>This allow you to define the minimum time to bill the caller (ie 30
3104 secs)
3105  >>>this allows not allow
3106
3107  >>>Define the duration of each billing block to apply globaly (if not
3108 cycle are defined).
3109  >>>this is painful to read....it should say (if cycle is not defined)
3110
3111 #### [done]
3112 *******************************************************************
3113 //// IMPORTANT
3114  - Fix window.open width , needs to show the whole table .
3115
3116
3117
3118 #### [Done]
3119 ********************************************************************
3120 //// IMPORTANT
3121 Callback 1st leg billing
3122
3123
3124 #### [Done]
3125 ********************************************************************
3126 1. webui password auto-generation
3127
3128 #### [done-but-only selfsigned]
3129 ******************************************************************
3130
3131 Fix the iax webphone , sign with our own certificate.
3132
Note: See TracBrowser for help on using the browser.



Google