-
Notifications
You must be signed in to change notification settings - Fork 4
/
TODO
655 lines (413 loc) · 25.3 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
*******************************************************************************
TODO LIST - SPECIFIC
*******************************************************************************
#### NEW INTERFACE
********************************************************************
Also when do you think you can help with the interface to search client cards by ID, PIN, OR Caller ID? I think that the Customer interface would work if you could fix it to log in by ID,PIN or CID Instead of username and password. From the Customer interface, call center can see everything important, CDR, and remove CID and shows balance. At present, The only place to locate username and password is the section of a2billing that we dont want to give access.
#### TO CHECK
********************************************************************
check in lib/invoices.php
<img src="<?php echo Images_Path;?>/asterisk01.jpg" align="middle">
#### USE SMTP CLASS SERVER ON THE WHOLE A2BILLING
********************************************************************
replace all the mail function in php that use sendmail and replace by
using PHPMAILER
add parameter in global to configure SMTP server
* use_sendmail
* smpt_host
in /home/areski/public_html/svn/asterisk2billing/trunk/A2Billing_UI/Public, the only one is :
Big changes in A2B_mass_mail.php, be sure to test well
Check in A2Billing_UI/lib, the files smtp.php & emailer.php
Done with API & SIGNUP
check the cronts as well
#### disable sip/iax conf files generation by default
********************************************************************
issues if u handle tons of card, the files creation will fails with 50k cards.
need lot of memomry
#### OPTIMIZE RATE-ENGINE
********************************************************************
1)
check with Stavros his suggestion
http://forum.asterisk2billing.org/viewtopic.php?t=2666&postdays=0&postorder=asc&start=0
2)
to have startdate/stopdate for each ratecard? Shouldn't we just have them only at the tariffplan?
And then, you can split the ratecards according to start/stopdate.
3)
you should first try the '1234' entry and if the trunk fails the '123' ..
my idea was to ensure if the dialprefix match always to something on failover
for belgium we have :
1# 32 475 Mobile belgium
2# 32 495 Mobile belgium
3# 32 Landline + Mobile trunk (mix)
if 32 455 is dialed we use 3#
if 32 495 is dialed we will use 2# but probably the failover dont have to go to 3# as it will get wrong the rating
that's the point: we should better not fallback to entries from the same tariffplan..
#### Add VoiceMail
********************************************************************
http://www.ecualug.org/?q=2006/12/12/comos/configurar_a2billing_en_menos_de_10_minutos
http://forum.asterisk2billing.org/viewtopic.php?t=93&highlight=voicemail
You need to create the appropiated line for each extension at the voicemail.conf file. Add the following lines to your
a2billing context to give your clients the voicemail feature:
Code:
[vmmain]
exten => *97,1,Answer
exten => *97,n,Wait(1)
exten => *97,n,VoiceMailMain(${CALLERID(num)}@default)
exten => *97,n,Hangup
#### IMPROVE IN RIGHT / PERMISSION MANAGEMENT
********************************************************************
recommendation : Admin interface is sometimes too messed, we need to restructure
the menu in an intelligement way so that not all the features appears.
#### Add Description for AGI-CONF X configuration
********************************************************************
if we have many it will be handy to have a little description to remind what is it for and where is it used.
ie, IVR voice promt for callign card service
#### UPDATE : Move the language selection on the login screen
********************************************************************
Move the language selection on the login screen
#### TODO : RATECARD MERGING TOOL
********************************************************************
Goal of the tool, Example :
- we have 2 ratecard : R1 & R2
we have R1 already well configured with 2000 prefix-rates, buying rate, selling rates defined as willing.
We created a new ratecard "R2" for a new provider/or provider update, so we have new "buying rates"!
As we defined already in "R1" our selling rates, we would like to be able to reuse that quickly on "R2" and save the time of reconfiguring all.
On retail in most cases, we keep always the same Selling values but we update our buying accordingly to changes from your provider.
This tool should help us create new ratecard and importing some data from an other ratecard.
# Select the ratecard u want to merge together
R1 <<-->> R2
Define search criteria if only some rates (not all) have to be updated !!!
Define the fields that will be update : Destination name, minimum duration, billing increment, selling rate
use as key-update the Prefix (ie, 32472)
** UPDATE on R1 (fields) WHERE R1.prefix = R2.prefix AND R1.starttime = R2.starttime AND R1.endtime = R2.endtime
#### TODO : MENU TOP
********************************************************************
The menu is getting really too long, we may try to find a way to reduce huge page we produce each time.
an other design with an horizontal bar may do the trick and again hidded menu!
%%%% DEPRECIATE FOR NOW
#### TODO : add call-limit (check if asterisk work with this parameter on RealTime)
********************************************************************
Add call-limit on sip/iax parameters
### STORAGE & DISCLOSURE
********************************************************************
If you are a proper telecom company, in most countries, those details are classified. So, you have to be careful about
their storage and disclosure.
One thing is that for customers, resellers and some ACL admins, I try to hide the last 3 digits of the call.
Other is that logging in /tmp etc. should *not* contain the full call details.
It is easier to only have the full details in the database, and then be careful about not letting the db
data in public.
#### FEATURE : CUSTOMER SERVICES FRIENDLY
********************************************************************
A Customer Dashboard - showing services, payments etc.
#### TODO : TRANSLATION - CANCEL, ANSWERED, CONGESTION
********************************************************************
I am puting all the a2customer and a2billing in correct portuguese grammar and i need the help.
I need to know the file or where I can change the status of the call from english to portuguese?
Explaining: When a customer log in in the a2customer control panel and click in historic call the customer see
the status of the call, if was CANCEL, ANSWERED, CONGESTION...
#### UPDATE : MAIL TEMPLATE TAG HTML - Add a plaintext versions
********************************************************************
Shopping details is as below.
Item Name <b>balance</b>
Item ID <b>8711503777</b>
Amount <b>1 USD</b>
Payment Method <b>paypal</b>
Status <b></b>
#### TRUNK REPORTING PAGE - DASH BOARD
********************************************************************
A screen page where you can see the call stats Expl. ASR, ALOC, CIC from each trunk on one web page.
#### FEATURE : USE ADODB CACHING IN THE FRAMEWORK
********************************************************************
Use adoDB caching in the framework
many part can be improve, most of all the part when we bound to a view to other table
for each field we run a little query. Caching here will save a lot!
for instance if you put the sql debug on Class.Table, you will see that on all the view
there is lot lot of query performed cause for all the LIE action made on view
a query is perform so if you view 20 records on a page u will have all the sql query of the page more 20 sql select for the LIE to find back some information
the sample of card
$HD_Form -> AddViewElement(gettext("Call Plan"), "tariff", "10%", "center", "sort", "15", "lie", "cc_tariffgroup", "tariffgroupname", "id='%id'", "%1");
you have a LIE here to see the tariffgroup name so if you view lot of card, you will do a lot of sql query
#### NEW TASK - NEW button style []
********************************************************************
Replace all the big button on view by a cute icons.
#### FEATURE : BILLING ON VOIP CALL - DID VOIP CALL
********************************************************************
add billing for voip/call
#### FEATURE : AGI
********************************************************************
Showing Balance on Softphone....
#### LOAD BALANCING ON TRUNK
********************************************************************
Laod balancing not role over or fail over but load balancing. Expl.
If you have 3 GSM gtwy of 90 port each, we want to send one call to the first gtwy
then the second call to the next gtwy and then the next call to the next gtwy.
#### BUG : FAILOVER
********************************************************************
http://forum.asterisk2billing.org/viewtopic.php?t=2243
Consider 2 trunks configured like this:
#1: trunkprefix=8888 removeprefix=0 failover=trunk #2
#2: trunkprefix=8889 removeprefix=0 failover=-1/none
When dialing 0123456789 the call is presented to trunk #1 as it should be:
888812345678
If the call fails over each of the successive attempts will add the correct prefix, but not remove the desired digits:
88890123456789
#### BUG : SIGNUP
********************************************************************
http://forum.asterisk2billing.org/viewtopic.php?p=7406#7406
we shouldn't deactivate magic_quotes_gpc at all.
#### TODO : CallerID prefix for DIDs
********************************************************************
to have a CallerID prefix for DIDs, so that you might want to allocate the same DID do different persons, depending on the caller id
#### MAILTYPE : EPAYMENT GATEWAY SECURITY
********************************************************************
Can you add a Mailtype to Epayment Gateway Security Verification Failed so that it can be edited?
#### CUSTOMER : IAX / SIP Info
********************************************************************
user interface ability to set up the codec, etc..
#### IAX / SIP Info on signup
********************************************************************
then we could say in the customer signup email -
IAX details : Username = $card_gen, Password = $password CID = $cardalias
Thank you for registering with Call-Labs
Please credit your account by paying via the customer interface at http://myaccount.call-labs.com/
To log into your account please use your email address or card-alias ($cardalias) as your username and your password ($password) to login.
Configure your VoIP phone with the following settings.
Host / SIP proxy = voip.call-labs.com
Account Number = $card_gen
Password = $password
CallerID = $cardalias
Kind regards,
The Call Labs Team
#### GMT : REPORT & INVOICING
********************************************************************
Suppot GMT : report & invoicing
#### CallerID Name
********************************************************************
Support callerID name for authentication
#### ACL : Access Control List
********************************************************************
try to improve for a complex ACL,
for each pages / Section
Access Right like Edit ; Delete ; Add
#### WEB SYSTEM TO AUTOMATE UPDATE OF RATECARD
********************************************************************
Web system to automate update of ratecard
changed rates : the 15th -> 00:00 and the 1st -> 00:00
GMT : 0
#### AUTO CREATE CARD
********************************************************************
Creating an Account from the Caller ID
there is no setting for currency, so despite the fact that I had set the base currency to Euro, it created an account in USD.
Maybe the account should be setup in the Base currency by default ?
#### MISC
********************************************************************
1. Voice over ring tone.
how to simulate: Set up multiaccess on the user account, answer=no (in a2billing.conf).
sometimes u can hear (durring the other party phone rings) a voice with "and then pres pound key" over the ring tone.
2. Can not call users alias with 9+alias , again answer=no in a2billing.conf
3. Soft Phone dont work.
#### UPDATE STATUS IN PAYPAL AND MONEY BOOKERS
********************************************************************
We should have the way to manage the Pending transactions !!!
There is a interface Provideded by paypal and Money bookers to get status of pending transactions
so that later on admin can update the status of transactions which were pending by quering the Epayment Gateway
so that if any Payment is Pending, the Admin can check the Status of Transaction
this will actually query the epayment gateway to provide the status of transaction
we will need to build the admin interface to see the transactions that are pending
so that admin can click on update button to update the status
#### FEATURE IN VIEW FRAMEWORK TO SHOW A BUTTON ACCORDING TO THE VALUE OF ONE OF THE FIELD
********************************************************************
what will happend when a invoice is paid
we should not show the pay invoice button then
is there anything in framework that support like this?
#### FEATURES : CALLBACK dont bill 1st if not connected
********************************************************************
add a parameter to not bill 1st if not connected
callback_bill_1stleg_ifcall_notconnected = YES / NO
#### Check voice one
********************************************************************
SIP JAVA Phone
#### INVOICE IMPROVE SENDING
********************************************************************
when you send invoices, there is no "to pay" field
they might paid just a part of last invoice
so a "current balance to pay" would be probably usefull
maybe they had $50 in january and $30 in february and they only paid $20 in february,
so in march invoice, they have $20 but they need to pay $20 + $50 + $30 - $20
#### DID CRONT : MAIL
********************************************************************
$mail_user_content.="BALANCE REMAINING ".$mydids[5]-$mydids[3]."\n\n";
$mail_user_content.="A automaticly taking away of :".$mydids[3]." has been carry out of your acount \n\n";
$mail_user_content.="Monthly Fixrate for DID :".$mydids[0]."\n\n";
$mail_user=true;
$mail_user_subject="DID notification";
use mail template
(maybe after the release :D not urgent)
#### Misc : spacer
********************************************************************
we have : pixel.gif ; spacer.gif ; spacer.jpg
#### IMPORT FEATURE WITH INTERVAL & RANGE
********************************************************************
Morten Isaksen <misak _at misak.dk>
http://misak.dk/download/a2billing/CC_ratecard_import_analyse.php.diff
#### BUGS
********************************************************************
1. The notify user (send_reminder) when min_credit_2call is reached doesn't seem to work. I have made the changes in a2billing.conf but still no email is sent to user, how do i get this working?
2. Is it possible to have the reminder sent at a differnt value than the min_credit_2call?
Reason for this is, I would like a reminder to be sent when a user has £x credit left in their account but the user should still be able to use the account with the current balance. At the moment the only way to achieve this is to set the min_credit_2call=0 (this way the user gets to use every penny in their account) but by this time i think the reminder that is being sent when credit=0 is too late.
#### OnLine Payment
********************************************************************
Checkout Google
#### BUG : DID BILLING
********************************************************************
bug DID billing
we create a DID with no monthly cost for instance free or just dialout cost!!
When the use take the DID from the customer interface, it still have to pay for it
we dont check the billingtype of DID
#### BUG : DID (not urgent)
********************************************************************
I Create a Card when I dont have any DID Group
and I Simply Go and Create DID Group
and Create a Destination and Bind it with a Card
Go to the Client Side You will see the Destination in the Card
but when you will go to edit the Destination you will see the DIDGroup List is Not Loaded
#### RIGHT MANAGEMENT
********************************************************************
when u use this : "Add DID" and we assign a DID to a card
a check should be proceed, if the DID don't belong to the user's DID group then it should warn the user/admin
######## CREDIT RESERVE - SIMULTANEOUS ACCESS
********************************************************************
Wouldn't this mean on simultaneous access, callers could go negative in balance if subsequent calls were made while balance still exists?
http://forum.a2billing.net/viewtopic.php?t=1759&highlight=
Does the same account allow for simultaneous calls?
Yes. Here's how it works: Say you have a balance of ten (10) dollars. When your first call comes in, two hours worth of credit is temporarily frozen. So, if you are calling a destination that costs 2 cents a minute, that means $2.40 (2 cents/min x 120 minutes) has been frozen in your account. This leaves $7.60 available for another simultaneous call. When that second call comes in, more of your balance is frozen. You can keep making simultaneous calls so long as your effective balance is above zero. When calls are completed, the balance that was frozen is released and once again available for use. If you have a low balance, there's no sense in letting many simultaneous calls go through, only to have them all disconnect at the same time when your balance hits zero (what most carriers do).
#### DIVERS
********************************************************************
Add new tables for reseller and callshop
#### FEATURE : OPTIMIZE AGI TO USE PL/SQL functions for all important functions
******************************************************************************
... not for now
#### FEATURE : ADD RANGE CARDNUMBER IN CARDGENERATOR
********************************************************************
let's the user define a range of cardnumber (ie: 45000-46000)
+ option to check if there is a cards already between this range (interval limit 10000)
#### FEATURE : SIGN-UP for tracking...
********************************************************************
working out the source of a signup so that comission can be paid.
a link to the signup be created that enters the source of the link against
the customer, e.g. an agent name or website address?
#### FEATURE
********************************************************************
thoughts to adding timezone to cc_card ? It's great that we've got language and currency so they can view items in their local currency. Why not have option for timezone so the CDR's are listed in their local times instead of where the switch is located?
I borrowed this idea from SER. I can get you their database table they use if you like. It makes it easy for user instead of asking for +/- GMT, has items such as:
#### FEATURE
********************************************************************
Marcel
- invoices: keep an end of the month balance and send automatically invoices at the end of the month using an email template and attaching a html invoice report; fields in the template would include name, last month balance, current month payments, current month per minute charges, DIDs and other charges, etc.
- payment: send payment emails to customers when "Add Payment" is used; send an email out of a template saying something like "thank you for payment of XXX made on YYYY...."; maybe the ability to display the payment history on the customer web site to see if they paid the bill or not
"Add Payment" do not refill the account, you have to do refill manually.
- Adding a feature there to make an auto refill
#### FEATURE
********************************************************************
some info report
http://www.vbulletin.com/forum/showthread.php?threadid=3477
#### FEATURE
********************************************************************
ADD REPORTING PAGE TO VIEW :
- 20 users making the more call
- 20 more call destination
20 might be a parameters
we need to see the total time and sell made by this clause group
etc...
#### NOTE
********************************************************************
Note to areski – should we be able to define international access prefixes? 00 UK & Europe,
011 USA , but 0099 for South Africa. See http://kropla.com/dialcode.htm IDD column
Note to Areski – why have free as an option, surely if I wanted free, I would set fixrate to 0?
#### NEW TASK
********************************************************************
Yep - having a separate figure for VAT would be useful
for VAT returns
however - UK VAT laws say that if a call originates outside of the EU, then no VAT is required on the call
however if a call starts within the EU, the VAT is payable
#### NEW TASK []
********************************************************************
Card company can set default language and customer can change 1. English 2. Dutch, 3. French etc.
make it more easily customizable
#### Improvement []
********************************************************************
There are problems with multiple calls if the credit is running low.
The system should secure a certain amount from the credit once the
user is logged in.
#### []
********************************************************************
//// IMPORTANT
Ben Pintilie <ben@energyradio.co.uk>
Going to offer professional recording :D
- rework on the IVR text
#### []
********************************************************************
e.) at the form of adding/changing SIP/IAX user there should be a possibilty to erase some parameters. like if there isn't any entry (example in canreinvite) that this also don't will be printed to the sip-config. Beause some parameter should be better to define in general without any possibility of overwriting
#### []
********************************************************************
d) different SIP/IAX files for each administrator/account- so with this there would be a possibility for a better differnece of two persons which handle the system and don't overwrite any manual config or/and a better usefull possibility for special definitions for the caller if he want to change like the "callerid" or anything else
#### []
********************************************************************
Petite question: je suis entrain de mettre en place des routes et ai
trouvé un truc que tu pourrais incorporer d'origine: un TRUNK nommé
NotAllowed (exemple), ProvideIP=NoProvider. Dans les scripts, lorsque tu
rencontres ce peer, soit tu ne fais rien et envois le message - le
numéro composé n'est pas disponible - ce qui est le cas actuellement
parceque * ne trouve pas ce host et renvoit un code erreur a A2Billing,
soit tu permets d'appeller une extension de type 100@default ou
Local/default/200 ou ... qui permettrait de personnaliser l'annonce/le
traitement.
Pourquoi je pense à ca? Prenons la FR comme ex: les routes vers les
numéros 8xx. sont compliquées: soit c'est gratuit (Freebox et consors)
soit c'est ultra-payant :-( Si je dois autoriser les règles une à une,
ca se complique. Avec ce système, j'interdis (donc TRUNK=NotAllowed) la
destination 338 puis je n'ouvre que les routes 338x que je veux ;-)
#### CURRENCY BY RATECARD
********************************************************************
Rates : it should be possible to enter rates in different currencies for each ratecard.
I have 3 providers : a danish who list prices in DKK, a english who lists prices in EUR, and a US who list prices in USD.
#### DID : answer with voice on unassigned did.
********************************************************************
Needed DID improvement :
;audio played when receiving call on DID with no assigned destination
did_not_assigned_snd=
#### []
********************************************************************
- CUSTOM ALL THE MESSAGE FROM WEB
- CALLSHOP
- RESELLERS MODULE
http://www.voipswitch.com/reselleapplication.htm
- C MODULE (NON_AGI BASED) OR AEL
- WHOLESALES (http://admin.coreswitch.com)
#### []
********************************************************************
- Create a web base installation like many php projects do . ( no hurry at all ).
/////////////////////////////////////////////////////
WIKI TO HAVE + SEVERAL A2B ON THE SAME BOX
------------------------------------------------------------------
Yes, you can program in a2billing.conf several configurations but only
to set different behaviour for the "agi" not for the rest of the
system.
Well in your case if you want to make coexist 2+ a2billing platforms
on the same box,
you will have to trick a little bit. There is a file call
Class.A2Billing.php in each components (web, agi, web-cust) and at the
beginning of it there is the definition to select the conf files
define('AST_CONFIG_DIR', '/etc/asterisk/');
...
define('DEFAULT_A2BILLING_CONFIG', AST_CONFIG_DIR . '/a2billing.conf');
so you can create a new db
duplicate the web interface in other directory and all files for the agi and
for instance copy those last in /var/lib/asterisk/agi-bin/namecustomer/
change the file
/var/lib/asterisk/agi-bin/namecustomer/libs_a2billing/Class.A2Billing.php
with for instance
define('DEFAULT_A2BILLING_CONFIG', AST_CONFIG_DIR .
'/a2billing.namecustomer.conf');
etc...
/////////////////////////////////////////////////////