
To see the latest change please refer to : 
http://www.asterisk2billing.org/cgi-bin/trac.cgi/log/trunk


========================================================================

...

...


2009-05-14 - Belaid Arezqui <areski@gmail.com>
	Menu fix for IE
	order prefix on ratecard - clean rates search (only support mysql5)

2009-05-13 - Belaid Arezqui <areski@gmail.com>
	Update Mailer to work with new PHPMailer and improve to support gmail
	Update PHPMailer V5.0.0
	Ticket #517: root has no rights for refills in if (has_rights (ACXMODIFY_REFILLS)) statement
	correct brazil dial prefix
	remove mysql cluster script file and add INFO
	fix on edit card to not update the cardtype on edition
	Ticket #504 : Cannot add or edit rates

2009-05-13 - Belaid Rachid <rachid.belaid@gmail.com>
	Correct Ticket #493 : no check of parameter on the generate customer For the admin UI

2009-05-12 - Belaid Arezqui <areski@gmail.com>
	correct Mass Mail TO list
	fix display of payment option
	fix payment on customer panel
	fix massmail : blank page if account # is upper than few thousands, memory limit
	CSS correction to improve display on long text menu section

2009-05-12 - Belaid Rachid <rachid.belaid@gmail.com>
	Ticket #511 Load template for mass mail

2009-05-11 - Belaid Arezqui <areski@gmail.com>
	Ticket #504 : Cannot add or edit rates
	Ticket #505 : retrieve rates back from LCR
	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) 
	set all extra charge to 0 by default + change in AGI debug for extra charge
	bug on add refill and add payment due to new ACL
	fix export on admin & agent
	bug on edit customer for admin with ACL
	add lastms in sip realtime
	improve on search call-plan LCR

2009-05-11 - Belaid Rachid <rachid.belaid@gmail.com>
	Ticket 490 : there wasn't nothing to do a search on the ticket.
	Ticket #477 : error of display on the VOIP configs page
	Ticket #475 : There was nothing to inform the admin user that there was already a search filter apply on thelist of cards

2009-05-09 - Belaid Arezqui <areski@gmail.com>
	Ticket #496 : Voice Prompt cent playing twice
	Ticket #504: Cannot add or edit rates

2009-05-08 - Belaid Arezqui <areski@gmail.com>
	add extensions_a2billing.conf

2009-05-08 - Belaid Rachid <rachid.belaid@gmail.com>
	Authorize payment online of invoices

2009-05-07 - Belaid Rachid <rachid.belaid@gmail.com>
	Correct the amount to pay of an invoice
	correct the vat format
	fill the vat with the vat of the customer
	Authorize a customer to see only this receipt
	Correct Bug about the SPEED DIAL filter

2009-05-06 - Belaid Rachid <rachid.belaid@gmail.com>
	Correct Ticket #473 : Some bugs in the rates browsing
	Correct Ticket #481 : the display of the customers' history faild
	Correct Ticket #483 : Too much modification are saved in the log status
	Correct Ticket #491 : Error on the call reporting page

2009-04-29 - Belaid Arezqui <areski@gmail.com>
	update doc for AGI

2009-04-27 - Belaid Arezqui <areski@gmail.com>
	localization : add Spanish for customer UI
	add PQP for Agent and Customer
	use mysql in conf file by default

2009-04-26 - Belaid Arezqui <areski@gmail.com>
	Add : PHP Quick Profiler

2009-04-21 - Belaid Rachid <rachid.belaid@gmail.com>
	Correct Ticket #484: log status are not deleted when you delete a customer
	Correct Ticket #478: Generate Customers : we can modify the initial balance and no refills are created.. and an other display mistake.
	Correct Css in the simulator page to center the result
	Change the enough_credit_to_call function to handle the postpaid type.
	Conserve credit limit in variable of A2billing class
	Display  the free time information in the in the simulator

2009-04-20 - Belaid Rachid <rachid.belaid@gmail.com>
	Correction use properly the package in every case in the test to know if a customer have enough credit 
	Add a filter in framework to order the result in the multi select
	Init call plan with a default value for the package. 
	Correct Ticket #442 about the packages : now we can use the free minute even if we have not enough credit to call

2009-04-18 - Belaid Arezqui <areski@gmail.com>
	Correct Css mistake to align properly
	fix notice error on display_ratecard api

2009-04-17 - Belaid Rachid <rachid.belaid@gmail.com>
	Correct money format for the receipt ; Correct update of receipt item ; Add check on paramater and show alert for the the receipt
	Corrected Ticket #459 : impossible to disable captcha
	Correct Ticket #463 : Can't delete card in admin UI
	Correct Ticket #464 : SIP & IAX were not created on the signup
	
2009-04-17 - Belaid Arezqui <areski@gmail.com>
	fix charges on cront
	fix bug on sanitize

2009-04-15 - Belaid Rachid <rachid.belaid@gmail.com>
	Correct framework to do search insensitive to the case
	Authorize to edit date in refill and payment if you have the right
	New module to generate Signup URL with a simple key in the db.
	Delete the old with a secret to crypt some info.
	Correct filter search in admin ui
	Add Search criteria for refills and paymens

2009-04-15 - Belaid Arezqui <areski@gmail.com>
	add feature : Demo mode
	New Error Page.
	Refactor Smarty Template to use an header

2009-04-13 - Belaid Rachid <rachid.belaid@gmail.com> 
	Delete inused Tpl
	Correct Ticket 454 :  the VAT registry number was not showed  
	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
	Correct display: Show summary table only if you have card in your system
	Correct the default value of VAT : Ticket 451

2009-04-09 - Belaid Rachid <rachid.belaid@gmail.com>
	Adapt the Agent UI in the New Style
	Create a new layout canvas compatible with Safari, Firefox and Fucking IE
	Adapt some composant for the new layout

2009-04-09 - Belaid Arezqui <areski@gmail.com>
	internazionalization : add shell script to create & generate PO/MO
	internazionalization : add flag and file to prepare romanian langague
	add missing logo for plugnpay

2009-04-08 - Belaid Arezqui <areski@gmail.com>
	fix on signup : activatedbyuser
	internazionalization : update for Customer & Admin panel 
	
2009-04-08 - Belaid Rachid <rachid.belaid@gmail.com>
	correct: redirect after adding a rate

2009-04-07 - Steve Dommett <steve@st4vs.net>
	The UNIQUE contraint on the email template table ''must'' have been incorrect as it referenced an auto-incrementing column.  I think 
	this makes more sense.  The fix for Pgsql v1.4.0 schema will come later,  as part of a much larger patch.
	Also fixed an unnecessary column type conversion for Pgsql 1.3.4-1.4.0 upgrade.
	Include a link to the AGPL 3 license from within the Admin UI

2009-04-06 - Belaid Rachid <rachid.belaid@gmail.com> 
	Correct menu template 
	Add an Icon for the change password link menu
	Convert some help msg in the new style
	Acknowledge Digium's trademark.

2009-04-01 - Steve Dommett <steve@st4vs.net>
	Postgres compatibility fix:  for aggregate expressions,  like count(*) or sum(*),   ORDER BY makes little sense
	as a maximum of one row can be returned.
	
2009-04-01 - Belaid Arezqui <areski@gmail.com>
	customer Localization : Romanian languages
	Feature : Add option & ACL to delete CDR
	Add SQL script for postgresql 1.4 Database creation
	rebuild & merge all the PO & MO for the customer interface

2009-03-31 - Steve Dommett <steve@st4vs.net>
	Fix MySQL schema triggers
	More bug fixes to the MySQL schema installation.
	Add 'text/x-csv' to the permitted MIME-types

2009-03-31 - Belaid Rachid <rachid.belaid@gmail.com> 
	Authorise an agent to edit this personal information

2009-03-31 - Belaid Arezqui <areski@gmail.com>
	Admin ui - PO & MO update : Spanish language
	Admin ui - PO & MO update : Brazilian language
	Customer ui - PO & MO update : Romanian language
	Agent ui - PO & MO update : English language

2009-03-30 - Belaid Rachid <rachid.belaid@gmail.com>
	Correct display of captcha
	Add right to delete notification because the box is shared between all admin
	Add default value for the Support module to use it the first time
	Add an notification after a ticket added by a customer or an agent

2009-03-30 - Belaid Arezqui <areski@gmail.com>
	Ticket #429 : pnl report enhance
	customer ui - PO update : English
	update doc for Gettext + remove sort on ticket

2009-03-28 - Steve Dommett <steve@st4vs.net> 
	misc of english correction + little fixes 
	Spelling fix, and synch Postgres schema

2009-03-27- Belaid Rachid <rachid.belaid@gmail.com>
	Change SIP/IAX buddies to use notification module

2009-03-27 - Belaid Arezqui <areski@gmail.com>
	Improve structure

2009-03-27 - Alberto Escudero-Pascual <aep@it46.se>
	admin UI and Smarty Documentation
	Adding a README file, expected to be the entry point of people to the code
	change of header template document
	Login-Forget password documentation
	Epayment module documentation
	WSDL code for callback in Documentation
	Dial Status Documentation
	Import Rates Documentation
	DID billing documentation
	Invoicing documentation 
	Autodialer IVR interaction tip
	Document for 1.3.4 for Ratecard API - needs changes for 1.4
	Adding more documentation and templates for txt documents
	Adding alarm info to documentation
	The Ultime PDF Installation Guide to a2billing 1.4 :-) 1.0

2009-03-26 - Belaid Arezqui <areski@gmail.com> - Alberto Escudero-Pascual <aep@it46.se>
	* restructure files, tree, review existing doc
	* delete not used files

2009-03-25 - Belaid Arezqui <areski@gmail.com>
	* Update English Gettext : PO & MO files

2009-03-24
	* Fresh new schema for v1.4.0 - Alberto Escudero-Pascual <aep@it46.se>
	* Review of ACL right - Belaid Rachid <rachid.belaid@gmail.com>
	* Small spelling fix,  and synch Postgres schema - Steve Dommett <steve@st4vs.net>

2009-03-23 - Belaid Rachid <rachid.belaid@gmail.com>
	* Better Handler for the DB connection
	* Correct View on the List of Log
		Add an info page for the security
		Put on false the edition

2009-03-19
	* Add Info view for a Refill and Payment in Agent UI - Belaid Rachid <rachid.belaid@gmail.com>
	* change A2Billing logo
	* Add new rights for Admin ACL to
		Edit / Delete a Refill
		Edit / Delete a Payment
		Edit / Delete a Customer - Belaid Rachid <rachid.belaid@gmail.com>
	

2009-03-18 - Belaid Rachid <rachid.belaid@gmail.com>
	* Add commission the commission in agent UI
		Correct some bugs in admin UI about commission
		add a new function in misc to link directly an id with the card number or agent name

2009-03-17 - Alberto Escudero-Pascual <aep@it46.se>
	* Fixing all those section numbers.... 18 menus
	* This is a first proposal for a new GUI rearrangement.
		- Trying to keep actions as one word to easy localization
		- Rearrange the order of the GUI in hierarchical order
		- Separate Agents from Admins
		- Promote Support and Call Reports to higher parts of the UI
		- Wording consistency
		- Some changes might have considerations with the ACX permission system
		- Section indexes need to be fixed
		- Billing Submenu still not changed until is frozen

2009-03-16
	* add links in admin UI to see Agent transaction - Belaid Rachid <rachid.belaid@gmail.com>
	* Adding line for Debian based asterisk installation - Alberto Escudero-Pascual <aep@it46.se>
	* Accepting the : as separator breaks complex CSV import. Accepting only ; as separator - Alberto Escudero-Pascual <aep@it46.se>
	
2009-03-15 - Alberto Escudero-Pascual <aep@it46.se>
	* Fixed access control in Agent UI. Card History should be under $ACX_CALL_REPORT if statement. 
	* The $A2B -> credit was overwritten by callingcard_ivr_authenticate_light() and not using the form balance.
		Included the possibility to choose between account current balance or manual input of balance via form
	* Added Notification Help and wiki link
	* Cleaning up notification admin UI, added help link and cleanup links to Global Config

2009-03-14
	* Correct payment for an agent - Belaid Rachid <rachid.belaid@gmail.com>
	* bug on voucher IVR : set to used - Belaid Arezqui <areski@gmail.com>
	* ticket #399: Selecting 5 Vouchers in admin interface creates only 1 - Belaid Arezqui <areski@gmail.com>

2009-03-13
	* remove redundant SIGNUP CONFIRMED - Belaid Arezqui <areski@gmail.com>
	* add credit on ratecard simulator - Belaid Arezqui <areski@gmail.com>
	* Synch Postgres schema - Steve Dommett <steve@st4vs.net>

2009-03-12 - Belaid Arezqui <areski@gmail.com>
	* add symb link for sounds directory 
	* cc_sip_buddies_empty view for OpenSips

2009-03-11
	* New Batch of billing - Belaid Rachid <rachid.belaid@gmail.com>
	* fix for asterisk realtime : add regserver - Belaid Arezqui <areski@gmail.com>

2009-03-11 - Steve Dommett <steve@st4vs.net>
	* More code removal due to MytoPg,  plus it now handles DATE_FORMAT().  Also fixed another Postgres-related error:
  		column "cc_logrefill.date" must appear in the GROUP BY clause or be used in an aggregate function 
  
2009-03-10 - Belaid Rachid <rachid.belaid@gmail.com>
	Correct the money situation of the system to use invoices

2009-03-09 - Steve Dommett <steve@st4vs.net>
	* add of ORM for Postgresql support : MytoPG
	* Synch Postgres schema up to MySQL

2009-03-08 - Belaid Arezqui <areski@gmail.com>
	* Voip account for agent, instead of IAX/SIP Friends

2009-03-04 - Belaid Arezqui <areski@gmail.com>
	* Move config file to /etc/a2billing.conf
	* add RPM for A2billing callback Daemon
	* Change money situation of customer to use invoices
	* add link for Asterisk GUI

2009-03-03 - Belaid Rachid <rachid.belaid@gmail.com>
	* Change the rules for the billing process.. 
		Add a new object in the process : Receipt
		Receipt is only an information for users like a summary of costs charged during the last month

2009-02-25 - Belaid Rachid <rachid.belaid@gmail.com>
	* Refactor the batch of did billing use to generate reminder invoice
	* Refactor generate invoice ref number

2009-02-24 - Belaid Rachid <rachid.belaid@gmail.com>
	* Refactor framework to avoid a redirection and display a correct message when the system faild to add a record.
	* replace Destination by Phonenumber on Call-history Customer UI
	* DB update : All password will be change to 'changepassword'

2009-02-23 - Belaid Arezqui <areski@gmail.com>
	* Dial Balance reservation - Credit to reserve from the balance when a call is made.

2009-02-19
	* Add commission for agent - Belaid Rachid <rachid.belaid@gmail.com>
	* correct in invoice , the payment item adding - Belaid Rachid <rachid.belaid@gmail.com>
	* Create a invoice after a payment - Belaid Rachid <rachid.belaid@gmail.com>
	* config file : add RotatingFileHandler - Belaid Arezqui <areski@gmail.com>

2009-02-17 
	* Ticket #367 : speed Dial working with USE_DNID - Belaid Arezqui <areski@gmail.com>
	* serial functionality - Alexander merkulov <arheops@gmail.com>

2009-02-09 - Belaid Rachid <rachid.belaid@gmail.com>
	* Add preview on the next billing invoice with detailled calls ... 
	  link the paid status with the payment's type of the customer
	* Detailled invoice for billing
	* Generate correct invoice when you bill one customer

2009-01-10 - Steve Dommett <steve@st4vs.net>
	* Give an example of how to update to the new-style destination lookup table when your trunks perform rewrites.
		Fix the regex to match multiple digits,  rather than just a single one.
		Add a query to update the CDRs to new-style destination lookups too.  ( fixes #326 )

2009-01-09 - Steve Dommett <steve@st4vs.net>
	* Small Postgres fixes
	* Bring the Postgres schema in line with the one for MySQL
	* Update UK prefixes,  and flag possible problem with MySQL schema

2009-01-02 - Belaid Arezqui <areski@gmail.com>
	* Fix : A2billing 1.4 web gui doesnt work with internet-Explorer 7.0

2008-12-29 - Belaid Arezqui <areski@gmail.com>
	* Add new payment method : plugnPay

2008-12-18 - Belaid Rachid <rachid.belaid@gmail.com>
	* new invoice module

2008-12-18 - Belaid Arezqui <areski@gmail.com>
	* Clean javascript function from header

2008-12-15 - Belaid Arezqui <areski@gmail.com>
	* fix for DID call insert CDR

2008-12-11 - Alexander merkulov <arheops@gmail.com>
	* DB reconnect After Dial command 

2008-12-10
	* update postgresql script - Belaid Rachid <rachid.belaid@gmail.com>
	* Fix for SPLITABLE FIELD - Belaid Arezqui <areski@gmail.com>

2008-12-09 - Belaid Arezqui <areski@gmail.com>
	* update Mysql Cluster schema - Belaid Rachid <rachid.belaid@gmail.com>

2008-12-08 - Belaid Arezqui <areski@gmail.com>
	* Add files for Spanish Translation on the Admin inteface

2008-12-03 - Belaid Rachid <rachid.belaid@gmail.com>
	* create a dashboard to replace the actual home page :
		will list the some main information :
		nb users,
		invoices pending,
		support ticket open,
		amount of CDR in the system
		the sell, buy, profit of the current day
		the sell, buy, profit of the current month

2008-12-04 - Belaid Arezqui <areski@gmail.com>
	* Customer UI: Remove BLANK PAGE after customer changes password
	
2008-12-03 - Belaid Rachid <rachid.belaid@gmail.com>
	* Create refill and payment for agent
	* Add right for SIP/IAX features in agent section 
	* Correct Import
	* Correct bug about adding agent

2008-12-01 - Belaid Arezqui <areski@gmail.com>
	* move signup to customer UI

2008-11-27 - Belaid Rachid <rachid.belaid@gmail.com>
	* Improvement support module

2008-11-24 - Belaid Rachid <rachid.belaid@gmail.com>
	* Forbidden delete of the DEFAULT group
	* Add feature in Framework to forbid to delete some record

2008-11-21 - Belaid Rachid <rachid.belaid@gmail.com>
	* enhancement for automatic rate update base on the prefix table
	* Generate SIGNUP Agent
	
2008-11-20 - Belaid Arezqui <areski@gmail.com>
	* CDR optimization : Use new table with prefix to store the destination,
	remove text destination from CDR.

2008-11-16
	* generate card : add custom number
	* billing parameter announce_time_correction

2008-11-12
	* New verbosity and logging system
	0 = FATAL; 1 = ERROR; WARN = 2 ; INFO = 3 ; DEBUG = 4

2008-11-10
	* add filter on DID & DID destination
	* Cleaning of admin UI + replace card by account
	* add IAX trunking parameter

2008-11-08
	* remove callback field from cc_card : no used
	* remove predictive Dialer
	
2008-11-07
	* Update Agent UI, update of icons
	
2008-11-05
	* Create refill when you add payment

2008-11-03
	* add PNL report
	* add restriction on the phone number the customer is allowed to call

2008-10-31
	* Correct bugs after refactor of cc_call

2008-10-28
	* fix USE_REALTIME setting
	* better layout with IE
	* add Customer Group 
	* Add the management of the web customer interface in the customer group
	* Add Customer INFO page 
	* Add Last 10 call in the customer info page
	
2008-10-23
	* add DNID report
	* Refactor Recurring Service to be more logical. Now you choose in the service what s group  that you apply to this service
	
2008-10-21
	* add pid management process for the cront auto dialer
	* IVR russian language fixes
	
2008-10-10
	* disconenctcharge time condition 

2008-10-03
	* Auto dialer : New system for auto dialing 

2008-09-26
	* feature to cutomize the IVR to play sound files for the cents for a specific currency
	
2008-09-18
	* add Asterisk Info

2008-09-17
	* remove unsupported Design template
	* correct limit behaviours for adding callerid in customer section
	* 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 

2008-09-16
	* add PHPConfig, interface to edit asterisk configuration files (sip.conf, iax.conf, etc..)
	* add phpSysInfo : interface to monitor the local server
	* add phpInfo : page to retrieve php information
		
2008-09-19
	* New Features : 
		-Update Batch for Recurring Service
		-Refactor Framework to add a link on the view , for exemple, adding record
		exemple: modify customer to add link to create new customer

2008-09-18
	* New Features : 	
		-Refactor Recurring Service

	*Change:-Add default value pour select in framework for adding
		-And choose Individual access like default access
		

	*Bug: 	- Convert the list of notification's limit in customer currency
		- Correct Card groups

2008-09-17
	* New Features :
		-Add search by card id for the card history's

	*Bug : 	- correct limit behaviours for adding callerid in customer section
		-conflict between free package , low balance and charge
		description: if you have connect or disconnect charge and you don't have enough credit to call but you have free minutes
		- correct bad forward on blank page when you try to importe rate with no enough parameter
		- Status log page : popup for the card selection didn't work
2008-09-16
	* New Features : 
		- Change the behaviours of the "not enough credit" to handle the free package and precision
	      	- Link to customer account on customer info page
	*Bug : 	- Correct import and constant
		- add sound for the Ivr to say cent when you have only one 'cent'
		
2008-09-15
	optimization CDR : remove no needed fields, refactor existing ones.

2008-09-03
	* New Features : Script to fill db
	
2008-08-29
	*Bug : - correct bug about simulator when you want you use free package	

2008-08-26

	* New Features : 
		- Define 0* like redial number
	* Bug :
		- Correct the dynamic menu for the IVR

2008-08-25
	* New Features : 
		- Option to disable seconds annoucement
		- Add Sell Rates and Buy Rates CDR result
		- Manage charge of the paypal fee (customer or admin)
2008-08-21
	* New Features : 
		- Dynamic Menu language in the IVR.
		- Handle ru, es , fr , en
		- New sound for the menu (ru,es,fr,en)

2008-08-19 -  Belaid Rachid <rachid.belaid@gmail.com>	
	* New Features : 
		- Add in CDR search engine buy rate and sell rate.
		- Add in Brows Rates result: RATECARD
		- Add PAYMENT BUTTON to list callerid
		- Search CDR's using time

2008-08-13 -  Belaid Rachid <rachid.belaid@gmail.com>	
	* New Features : 
		- Info Bouton/Link in list by the framework
		- New Icon for Edit, Pay, Delete, Info
		- Info page for the card

2008-08-06 - Belaid Rachid <rachid.belaid@gmail.com>	
	* New Features :Change arround rules about initblock and billingblock (BUY/SELL)

2008-08-05 - Belaid Rachid <rachid.belaid@gmail.com>

	* New Features :
		- Search by first use date in card list
		- Add payment action in card list with a automatic refill of the balance.
		- Remove old refill process
		- Disable Balance edit

2008-07-31 - Belaid Rachid <rachid.belaid@gmail.com>

	correct bug:  remove search by caller id
	
	* New Features :
		- add new special character in filter of card
		- add the features update password for the admins

2008-07-30 - Belaid Rachid <rachid.belaid@gmail.com>

	correct bug: 
		(bug) adding SIP/IAX FRIENDS when a customer is created
		(bug) see the SIP FRIENDS list
		(bug) edition/delette SIP/IAX FRIENDS
		(bug) delete customer feature

2008-07-29 - Belaid Rachid <rachid.belaid@gmail.com>

	*New Features :
		- Add new fields for the cards
		- New fields about company for the customers
		- Add search criteria by caller id for the cards

	Correct the bug : adding customer


2008-07-28 - Belaid Rachid <rachid.belaid@gmail.com>

	Correct bug :  
		(bug) Now you can define the password when you create the admin
		 (bug) refill don't work.
		And you don't do a other refill , if you refresh the screen

	* New Features :
 		- Filter special characters in the search of card number.
		- Add criterias for the search by terminate cause for calls logs

2008-07-25 - Belaid Rachid <rachid.belaid@gmail.com>

	*New Features :
		- encoded password in DB for the administrator.
		- No view on the admin pwd.
		- search by dnid for the CDR

	Correct : reinit root user with 'myroot' password (encoded now)


2008-07-24 - Belaid Rachid <rachid.belaid@gmail.com>

	*New Features :
	- to switch the Callplan from a customer, new parameter : callplan_deck_minute_threshold 
	- Filter for incompleted calls and congestionned calls
	- trim for the search by card number
	- add trim for the filter prefix card number

2008-07-10 - Belaid Rachid <rachid.belaid@gmail.com>
	*New Features : add description for the REFILL and PAYMENT  for the ADMIN and AGENT
	
2008-07-10 - Belaid Rachid <rachid.belaid@gmail.com>
	*correct currency behaviour with MONEYBOOKER

2008-07-09 - Belaid Rachid <rachid.belaid@gmail.com>
	*Add grace times in rate

2008-07-09 - Belaid Rachid <rachid.belaid@gmail.com>
	*correct currency behaviour with PAYPAL
	
2008-07-06 - Belaid Rachid <rachid.belaid@gmail.com>
	*New Feature new free packages system

2008-06-26 - Belaid Rachid <rachid.belaid@gmail.com>
	*Correct bug : correct rules for the language russian

2008-06-23 - Belaid Rachid <rachid.belaid@gmail.com>
	*Correct bug :Refill an payment popup was disabled

2008-06-13 - 2008-06-23  Belaid Rachid <rachid.belaid@gmail.com>

	*New Feature : Agent's UI of A2Billing.
	
2008-06-12 - Belaid Rachid <rachid.belaid@gmail.com>
	
	Correct bug in Card simulator	

2008-06-05 - Belaid Rachid <rachid.belaid@gmail.com>


	Refactoring : Constants List (Customer Part)

	
28 May 2008 - Belaid Rachid <rachid.belaid@gmail.com>

	* New Feature : add support of Russian language

26 May 2008	- Steve Dommett <steve@st4vs.net>

	* BUG: emails from DID billing cron job didn't include the generated body (#226)

26 May 2008 - Belaid Rachid <rachid.belaid@gmail.com>

	* BUG: Precision around rating... with the smalls rates

22 May 2008

	* start agent interface - Belaid Arezqui <areski@gmail.com>

	* Add audio files for Russian - Belaid Arezqui <areski@gmail.com>

	* add notification date tag in cc_card to send a notification every X days - Belaid Rachid


20 May 2008	- Belaid Rachid

	* New feature for Balance threshold notification


14 May 2008	- Belaid Arezqui <areski@gmail.com>

	* Fix on Ratecard APIs - display right number of page and remove current page on link Letter


13 May 2008	- Belaid Arezqui <areski@gmail.com>

	* correct the search by letter for the api display_ratecard
	* fixes for support module


#### Regular expressions dialprefixes for ratecards
********************************************************************
You can use now a mix of Asterisk and POSIX regular expression syntax to match rates, eg
_447[7-9]XXXXXXXX	matches UK mobile numbers
_X{0,3}(112|999|911)	matches any 0-3 digits followed by a common emergency number
_XXX			matches any 3 digit numbers
_NX.			match numbers starting with 2-9, followed by at least one more digit
You can use more '_' (anywhere in the string) to pad the length, and therefore increase the match priority.


#### no answer on followme
********************************************************************
a2billing.php|2|did: file:Class.A2Billing.php - line:952 - [A2Billing] DID call friend: FOLLOWME=2 (cardnumber:7909954270|destination:5995815170|tariff:21)

make a new voice promoted to replace the one called prepaid-noanswerand make a new one called prepaid-callfollowme

prepaid-callfollowme :
"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"

"la persona a la que ustede llamo no se encuentra disponible, porfavor espere on momento el servicio sigueme enrutara su llamada"

"La personne que vous essayez de contacter n est pas disponible, restez en ligne pendant que notre service fait suivre votre appel"


#### TODO : ARCHIVE CDRs & Cards
********************************************************************
We will create cc_call_archive && cc_card_archive
table with the same structure cc_call where id will be primary key.
So we can build a cront application that will weekly, retrieve all the CDRs
older than X months move them to cc_call_archive and then
explain the Database and rebuild index so that it start to be fast again.
X Month will be in parameter in config

Think to better solution maybe !?
+
** WEB INTERFACE **

Maybe a web interface similar at the massmail Archive, with 2 options for customer and CDR
so we should be able to make a selection of the USER and move them to the archive table
same for the CDR cc_call


#### EXPORT RATECARD
********************************************************************
Add all field on the export csv


#### TODO : function do_field
********************************************************************
function do_field($sql,$fld,$dbfld){

This function is defined in many places, need to create in misc.php
and remove it from other page where it s used (mainly in report section)


#### TODO : Detach Selling ratecard from Buying ratecard - DEPRECIATED
********************************************************************
- you need to update the selling prices multiple times
- you cannot really remove the sorter matching prefixes as you do right now, since one provider can have more granularity than other


#### MASS MAIL FEATURE
********************************************************************
option to let send an email to all the a2billing user
- check how is it done on phpBB
if we have several thousand of mail to send this can be an issue with normal php scripts
maybe a daemon is needed

* We should be able to define the search Criteria as in View Card in order to preselect
only some customer to which u want to run the massmail


#### BUG : REMOVING A CALLPLAN
********************************************************************
When removing a CallPlan, the card assigned are removed as well...


#### TRUNK CHANGE : UPDATE DAEMON TO USE THE DB CONF
********************************************************************
read conf from the DB

	my $manager_host = $cfg->val('global', 'manager_host');
	my $manager_username = $cfg->val('global', 'manager_username');
	my $manager_secret = $cfg->val('global', 'manager_secret');


#### TODO : CRITERIA CALLPLAN
********************************************************************
I added Callplan on CDR report, see revision 303, we need to add the same on the 3 pages :
(Section Call Report)
# Calls Compare
# Monthly Traffic
# Daily Load

If graph we need to pass the parameter there too.


#### TODO : CRITERIA RATECARD ID
********************************************************************
Same as for the CallPlan but now for the ratecard ID, normally already same in CDR :
(Section Call Report)
# CDR report
# Calls Compare
# Monthly Traffic
# Daily Load

If graph we need to pass the parameter there too.



#### TODO : MOVE CAPTCHA Directory to signup directory
********************************************************************
lib/captcha
due to htaccess in lib/ it s an issue on most installation, as the pictures is not accessable
so move 	A2Billing_UI/lib/captcha
to 			A2Billing_UI/signup/captcha


#### TODO : BATCH UPDATE  FOR TAG ; ROUNDING CALLTIME ; ROUNDING THRESHOLD ; ADDITIONAL BLOCK CHARGE ; ADDITIONAL BLOCK CHARGE TIME
********************************************************************
Batch update for
TAG ; ROUNDING CALLTIME ; ROUNDING THRESHOLD ; ADDITIONAL BLOCK CHARGE ; ADDITIONAL BLOCK CHARGE TIME


#### IMPORT : ROUNDING CALLTIME ; ROUNDING THRESHOLD ; ADDITIONAL BLOCK CHARGE ; ADDITIONAL BLOCK CHARGE TIME
********************************************************************
Add ROUNDING CALLTIME ; ROUNDING THRESHOLD ; ADDITIONAL BLOCK CHARGE ; ADDITIONAL BLOCK CHARGE TIME
on the import ratecard tool


#### TODO : TAG IN RATECARD
********************************************************************
We need a tag field into the ratecard!
this allow us to tag and filter some rates from a ratecard.
For instance, if we want to tag all the proper line prefix, so that we can then
apply batch update only for them.

We can add a new field in cc_ratecard for this :
ALTER TABLE cc_ratecad ADD COLUMN tag CHAR(50);
- We should add a reseach by tag on "Browse Rates".


** ADD TAG IN THE IMPORT RATECARD **



#### ADDITIONAL CHARGES ON REALTIME BILLING
********************************************************************
1) Rouding calltime

	We will need 2 new fields in the ratecard to define this,

	- rounding_calltime will define the new calltime that will be assigned to this call, for instance 360 (6 minutes)
	- rounding_threshold that will define the amount in seconds from which the rounding calltime will apply
	for instance 300 (5 minutes)

	** take note that if the call last 7 minutes if the rounding_calltime is less than the current
		calltime we dont round down the calltime

	Example :
	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
	now the ratecard will be configure with  rounding_calltime = 360 - 6min
	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
	and so it will round the call to the new calltime, rounding_calltime = 360
	so my call will be rated to 0.6$ instead of 0.5


2) Additional Block charge

	This is an additional charge that will be apply according to the duration of the call and
	the amount of "time block" inside the the calltime.
	We will need 2 new fields in the ratecard to define this,
	- additional_block_charge that will define the charge amount, ie 0.50 cents
	- additional_block_charge_time that will define the amount of seconds from which we have to apply this
	  new charge, we will count the amount of time this block of time can be contain inside
	  the calltime and apply the charge accordingly to this.
	Example, additional_block_charge_time = 300 (5 minutes) if the call last 360 seconds, the
	additional_block_charge_time is contains 1 time so we apply this charge once.
	If the call last now 660 seconds (11 minutes), the additional_block_charge_time (5min) is contains
	2 time so we will apply this charge 2 time too (2 time 0.50 cents)


* add real_sessiontime in cc_call


#### FEATURE : CUSTOMER SERVICES FRIENDLY
********************************************************************

1. Make the customer account number a link everywhere that it is displayed,
so that if you see a customer number, you click on it, and it takes you to the customer details screen.

2. Within the customer accounts screen, have a link to click to bring up to
the login screen A2BCustomer_UI - but without the requirement to fill again the user's name and password.

3. A notes field against the customer - simply a free text field.

4. A customer history, would include date stamped notes added by the
Customer services, and may even display an element of the automatic history already displayed on the system.


#### FIX : Web service - status log dont work, check Activation_Card
********************************************************************
Web service - status log dont work, check Activation_Card


#### FIX : ADODB cache dir
********************************************************************
Put the adodb cache in /tmp , too


#### CHECK : Check AGI use the Status
********************************************************************
in AGI Class.A2Billing, function authentication,
when we check card is valid or not, we still use cc_card.activated
we need to replace this by cc_card.status



#### TODO : GENERATE VOUCHER & GENERATE CARD
********************************************************************
In the generate option, the tag value is set to a random ID : 1181897201
this allow us to see exactly after the generation those that has been created!
If someone really use the tag feature to classify his voucher, this can be bit annoying!
we need to give the option to define the tag to a specific value or to use the random number.

We can add a new field in cc_card for this :
ALTER TABLE cc_card ADD COLUMN tag CHAR(50);
We should add a reseach by tag too on View card.


#### GENERAL : replace activated by status
********************************************************************
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.


#### BILLING : ADD VIEW AND SEARCH ON TABLE cc_epayment_log
********************************************************************
ADD VIEW AND SEARCH ON TABLE cc_epayment_log
status -> 0 : New ; 1 : proceed ; 2 ; in process



#### CHECK BACKUP & RESTORE FEATURE
********************************************************************
user posted that is broken.



#### UPDATE CSS Menu : menu.css
********************************************************************
With some translation the text in the menu overpass the size of the cell.
changing has below the height change the design we need to wrap the text and make it
fit according to the amount of text.

 #nav ul li span,#nav ul li a {
      padding: 2px 18px 2px 20px;
      font-size: 10px;
-       height : 11px;
 }


### DB CONFIG - SHOW WRONG
********************************************************************
CLICK ON ALL ->
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

should use
LEFT JOIN



#### FEATURE : ADD CSV EXPORT ON THE CDR REPORT
********************************************************************
Add CSV & XML Export on the cdr report
- look how it s done on the customer list


#### FEATURE : play rate
********************************************************************
a2billing.php|1: file:Class.A2Billing.php - line:763 - TIMEOUT::> 1016  : minutes=16 - seconds=56
AGI Tx >> 200 result=1
AGI Rx << SAY NUMBER 285 ""
    -- Playing 'digits/2' (language 'en')
    -- Playing 'digits/hundred' (language 'en')
    -- Playing 'digits/80' (language 'en')
    -- Playing 'digits/5' (language 'en')
AGI Tx >> 200 result=0
AGI Rx << STREAM FILE cents-per-minute ""

create a mode to choose if we play in cents or in unit
2 dollars and 85 cents per minutes



#### TODO : CUSTOMER UI
********************************************************************
A2BCustomer_UI/userinfo.php
suggest that the only Logo's (paypal, Moneybooker, Authorize.net) displayed on the customer interface
are the payment methods that are enabled.

patch for trunk and branches/1.3


#### A2Billing_UI/Public/index.php
********************************************************************
on the login page & signup, there is a log enable :
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','')

remove this for page where user is not login too

#### FEATURE - GMT SUPPORT
********************************************************************
- we need a parameter to define the server_GMT
- when creating a customer we need to have it as default on GMT+0
	* for signup module it can be managed with a right definition in the sql
- CustomerUI : call-history.php on customer dont have any GMT support on it


#### FEATURE - DB CONFIGURATION
********************************************************************

- if the field is readonly : find a way maybe with css to change the backgroup color of the field like grey color

- comments when u edit : "Insert the Group Name",  stuff like that when u edit -> this section is to provide a real information

- dropdown value : As we have many Variables like Card_Type which can have 2 Values like postpaid & Prepaid,
   Our System will automatically show a Dropdown List to provide customer to select from it...

- we need a drop down for the group in list configuration

- remove the Text Area  and will make it simple Paragraph.. i will add a new type in the Framework
  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

- we want to define a concept of heritage for the AGI-Conf1, 2, 3
using a general one agi-conf-base and we will only redefine the changes in agi-conf1, 2, etc...
The web interface need to allow us to redefine only the parameter we want.

- Change the name of list config groups to List Global Config



We should get something like this at the end :

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.

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.

4. Beneath "List Global Config" we need a button call Add AGI-CONF -
this simply creates a standard agi-conf and calls it agi-conf2 (or 3 or 4 depending on how many have been created)
We will see the parameter from AGI-Conf-Base and be able to redefine and save the changes

The new agi-conf-X can then be accessed via "List Global Config"
this will do a SELECT of the AGI-Conf-Base and show the parameter that has been created

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.


#### BUG : choose language
********************************************************************
problem on calling card language selection. once select 1 or 2 or 3 in the language selection IVR, it dropped rightaway.
it was good on my original version.


#### move a2billing.conf in DB
********************************************************************
move a2billing.conf in DB


#### multi-langague on email template
********************************************************************
multiple email templates based on location signup
ie, if some one is from india, they will recieve their email in indian language



#### BUG []
********************************************************************

Line 382 in a2billing.php has:
				   if (substr($A2B->CallerID,0,1)=='0'){
					   $A2B ->dnid = $A2B ->destination =
$caller_areacode.substr($A2B->CallerID,1);
				   }else{
					   $A2B ->dnid = $A2B ->destination =
$caller_areacode.$A2B->CallerID;
				   }
				   $agi->verbose('line:'.__LINE__.' - '.'[destination:
- '.$A2B->destination.']');

[a2billing-cid-callback]
exten => _X.,1,DeadAGI(a2billing.php|1|cid-callback|34) ;last
parameter is the callback area code
exten => _X.,2,Hangup

As u see the last parameter is the area code and from instance :
if I am in Belgium and use a local DID for callback but my server are
in UK, the system will probably not know that it needs to call me back
over the prefix 32, that's why is needed.
So in this case my cell number 0473510969, a2b will be call me as 32473510969.
That s the meaning of the remaining zero and it makes sense to set a parameter
for the leading zero if you are
already in the local country.


********************************************************************
						V1.3
********************************************************************


#### BUG : CallBack
********************************************************************
DIVIDE THE AMOUNT OF CREDIT BY 2 IN ORDER TO AVOID NEGATIVE BALANCE IF THE USER USE ALL HIS CREDIT


#### BUG : Customer UI
********************************************************************
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?
http://forum.asterisk2billing.org/viewtopic.php?t=2250


#### MISC
********************************************************************
- Change qualify to 7 chars :
	db change mysql :
		ALTER TABLE cc_iax_buddies CHANGE qualify qualify char(7);
		ALTER TABLE cc_sip_buddies CHANGE qualify qualify char(7);
	db change psql :
		ALTER TABLE cc_iax_buddies ALTER COLUMN qualify TYPE char(7);
		ALTER TABLE cc_sip_buddies ALTER COLUMN qualify TYPE char(7);

- Correction on alarm spelling
- Add export rates csv & xml
- BUG : wrong audio file prepaid-enter-pin-number.gsm
- BUG : peer sip iax qualify & nat & sip/iax info on Customer UI display
- UPDATE : scrollbar on textarea
- UPDATE : naming on batch update
- UPDATE : Help files
- UPDATE : remove paypal section from conf files
- UPDATE : Display ratecard 100% wide
- BUG : Reporting


#### NEW LOGO ON MAIN PAGE
********************************************************************


#### MOVE THIS IN CONF FILE
********************************************************************
	and this the a2billing-callback-daemon:

	####### ASTERISK MANAGER ######
	my $manager_host = "localhost";
	my $manager_username = "myasterisk";
	my $manager_secret = "mycode";

use a2billing.conf
[global]
; MANAGER CONNECTION PARAMETERS
manager_host = localhost
manager_username = myasterisk
manager_secret = mycode


#### FILE USED ?
********************************************************************
trunk/A2BCustomer_UI/lib/epayment/includes/PP_header.php
trunk/A2Billing_UI/lib/epayment/includes/PP_header.php

To remove :
trunk/A2Billing_UI/signup/PP_footer.php
trunk/A2Billing_UI/signup/PP_header.php

#### BUG : IAX / SIP friends
********************************************************************
I have the BLANK PAGE when I click to generate the iax friend
it happens on the first user in the system


#### BUG : IE Customer UI
********************************************************************
the menu is very bad on Internet Explorer in client interface
you can view just half of the menu


#### CALLBACK : INTRO MESSAGE
********************************************************************
Play an intro message on CallBack


#### Building a logging / tracking system on the web interface
********************************************************************
Building a logging / tracking system on the web interface


#### FEATURE : IVR - OPTION NO VOICE
********************************************************************
Create an option on the AGI to remove Audio

; Play audio - this will disable all stream file but not the Get Data
; for wholesale ensure that the authentication works and than number_try = 1
play_audio = YES


#### REMOVE OLD PAYPAL
********************************************************************
A2Billing_UI/paypal
A2B_entity_paypal.php?atmenu=paypal&stitle=PaypalTransaction&form_action=list&section=2
FG_var_paypal


#### SIGNUP : IF SIP/IAX Created reload asterik
********************************************************************
After the public signup , get Asterisk to do a reload, as when a new card is created,
asterisk is not reloaded, and therefore the SIP/IAX friend cannot register.

I added new parameter to handle this :
; Define if you want to reload Asterisk when a SIP / IAX Friend is created at signup time
reload_asterisk_if_sipiax_created = no



#### CHANGE : INVOICE ADD MORE INFO
********************************************************************
A2BCustomer_UI/A2B_entity_call_details.php
add : Calls by Destination ; Calls by Date ; TOTAL ; VAT
like we have in A2BCustomer_UI/A2B_entity_invoice_detail.php?section=4&invoice_type=1


#### CHANGE : PAYMENT MODULE
********************************************************************
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
This will be the right process otherwise we cannot remove this conflict
Userinfo => Just Pay Now Button..no amount
Checkout_payment => Select Payment gateway
Checkout_amount => Enter the amount ,,, Currecny will be shown to him
checkout_confirmation =>

$arr_purchase_amount = split(":", EPAYMENT_PURCHASE_AMOUNT);
if (!is_array($arr_purchase_amount)) $arr_purchase_amount[0]=10;

foreach($arr_purchase_amount as $value){

#### INVOICE FIX
********************************************************************
fix on A2Billing_UI/Public/invoices_customer.php ->  false cardnumber
# Error page : Blank page with "No User found"
need design good error pages !!
Golden rule : never show a white page with an error message.


#### FIX : REFILL BASE CURRENCY
********************************************************************
A2BCustomer_UI/userinfo.php
# when we are changing the base currency -> on the userinfo it is shown to purchage 20 $
the amount to refill should be show in the base currency and the next page should refill accordingly


#### FIX : HIDE DIV ON "List Customer" & "Browse Rates"
********************************************************************
Jquery - HIDE DIV ON "List Customer" & "Browse Rates"

## USE CC_COUNTRY TO SELECT THE COUNTRY : ON SIGNUP & EDIT CUSTOMER
********************************************************************
We will use cc_country table to select the country on signup module and also when
we edit customer info. The value store in cc_card->country will be the cc_country->countrycode

#### BUG
********************************************************************
yes the authorize is always in USD as it s only for US peoples.
So the amount received by Authorize is in USD, we need configure it convert from
USD -> base currency before making the insert.
if the base currency is in EURO it wont work correctly now

#### PROMOTE : CALL-LABS
********************************************************************
Promote : call-labs on a2billing trunk


#### EPAYMENT : MULTI CURRENCY MANAGEMENT
********************************************************************
handle mc_currency with paypal & mb_currency with moneybookers
in order to secure the currency of the transactions

#### UPDATE : IMPORT MODULE
********************************************************************
When I import, I get a page which allows me to check the data is being
imported properly. There is no way to accept that import without selecting
the csv files again.

#### BUGS
********************************************************************
1# One more thing - if the SIP/IAX friend is created via "Create SIP Friend" button,
then the defaults are not filled in, such as the context.

2#
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.

#### FEATURES : EDIT SOME CUSTOMER INFORMATION ON CUSTOMERUI
********************************************************************
A2BCustomer_UI/userinfo.php
add a button below "Country" -> "edit my personal informations"
we should be able to edit some of the data, not all, base on our framework.
Ensure that customer cannot edit an other cardid

#### CONSOLIDATE THE GETTEXT FILES
********************************************************************
Consolidate the gettext files for customer and admin interface
regenerate all PO & MO files

#### ADD referial ID : Admin & customer (conf)
********************************************************************
https://www.moneybookers.com/app/?rid=811621
https://www.paypal.com/es/mrb/pal=PGSJEXAEXKTBU


#### BUG
********************************************************************
http://forum.asterisk2billing.org/viewtopic.php?t=1927


#### FEATURE CUSTOMER UI : SIP/IAX INFO & partial edit
********************************************************************
What about link under account Info.

VoIP settings
          o List SIP
          o List IAX

Put the User name and password under each link from the appropriate table.

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.


User info Profile user can see any data for SIP registrations his device like sip-login an sip-password (locked to change)

#### E-PAYMENT MODULE
********************************************************************
Modified: trunk/A2BCustomer_UI/checkout_payment.php

# customers_id -> feed with the card ID

# http://locals.com/checkout_process.php?sess_id=8g34831kbhdimm790mt5heh0u5&transactionID=6
Secure that

# ADD a random number MDP
on $key = securitykey(EPAYMENT_TRANSACTION_KEY, $time_stamp."^".$transaction_no[0][0]."^".$amount."^".$_SESSION["card_id"]);

# Check security on MD5 HMAC
but we need a secret code on moneybooker side / paypal / etc---

// Calculate and return fingerprint
// Use when you need control on the HTML output
function CalculateFP ($loginid, $txnkey, $amount, $sequence, $tstamp, $currency = "") {
  return ($this->hmac ($txnkey, $loginid . "^" . $sequence . "^" . $tstamp . "^" . $amount . "^" . $currency));
}
that will work only stored on provider side


#### FEATURES : CALLBACK APIs
********************************************************************
1# Queue a callback request from an API : HTTP / WSDL
- it will return the uniqueID generate for the callback request
an API could generate a callback http://apiurl/callback-exec.php?listparameter=values&uniqueid=324234
return an ID to identify the callback request

2# API to check the status of the callback : webservice
- check the status of a generated callback

So an API will return result of a callback http://apiurl/callback-status.php?id=123453
id is the ID returned by
reply : Pending ; Success ; Error, etc ...


#### WEB-CALLBACK
********************************************************************
if the 2 leg is not connected, we need to bill the 1st


#### SIGNUP SELECT TARIFFGROUP
********************************************************************
"
; ID Tariffgroup to use, check the ID in the tariffgroup list - WebUI
tariff = 1
"
-> need to be changed to ->

; ID CallPlan to sign the customers
; or define a list of ID to let himselect select the callplan
; check the ID in the callplan list - WebUI
callplan = 1, 2, 3
"

SO "IN CASE OF MULTIPLE CALLPLAN", a new Dropdown menu will appear on the signup form.
with the list of Callplan associate here to the list of ID
(name of the callplab will appear, not the number 1, 2, 3)

Security, ensure at the sign-up time that the value send by the form is include in
it to avoid the possibility from the customer to signup under an other tariffgroup



#### MoneyBooker bug
********************************************************************
http://myaccount.call-labs.com/checkout_process.php?sess_id=58u4ckvmu0e0eedn9k872v1od4
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


#### BUG
********************************************************************
You have 1 dependent records.
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 ?


#### check files
********************************************************************
A2BCustomer_UI/lib/epayment/includes/methods/*

define action url from conf file
A2BCustomer_UI/lib/epayment/methods/moneybookers.php


#### SHIFT LEFT : DEFINES.PHP
********************************************************************
SHIFT LEFT : DEFINES.PHP


#### FEATURE : NEW CALLBACK SYSTEM
********************************************************************
rebuild of the callback system, we are using a spool system in DB and a perl Daemon to initiate the callback.
it brings flexibility and a way to track the callback request, their status, etc...
So we have a spool system, all request are stored and handled by a perl daemon that will take care of dispatching
them through several asterisk server.
There is also an API also for this to generate the callback.
/api/api_spool_callback.php
this could be use by any third application/platform to generate callback request.

#### INVOICES
********************************************************************
View Invoices
	# show cardnumber
	# Status appears to be empty for the invoice I had previously why ?
	# if I click on Sent the sent date is not update
	# Enter the cardnumber: -> this is the Card ID

	# Click on Details -> it will be good to see the Start date and the End Date there
	# Details ->
		the Charges is not converted at all if I have a charge of 100 in EUR and my base currency is in usd
		it will show 100 usd the amount is not converted
		there is function in Misc.php for this
	# Details -> the amount dont fit with what I have on the invoice page !!
	# Details -> keeping some options like in invoices.php
		- RESULT :  	 Minutes - Second
		- EXPORT FORMAT :  	 See Invoice in HTML  or Export PDF
		- CURRENCY : selection
	# Details -> Status :   	   	 Connected      DisConnected
		only show Status : [the appropiated image ] Connected or DisConnected

Create Invoices
	# For card number: -> From card ID:
	# When you create the invoice we need an option to choose if we send or not directly the mail
	# INVOICE STATUS
		UNPAID
		SENT-UNPAID
		SENT-PAID
		PAID

	# A2B_entity_create_invoice.php no footer


Invoice_Customer
	# Menu dont use _ -> Invoice Customer

	# Error page : Blank with "No User found"
	Can we design good error pages !!

	# if there is no calls and no charge, only the logo appear :
		there is nothing telling u that the invoice is empty!!

	# show the covert start date

	# keeping some options like in invoices.php
		- RESULT :  	 Minutes - Second
		- EXPORT FORMAT :  	 See Invoice in HTML  or Export PDF
		- CURRENCY : selection

CUSTOMER
	# A2BCustomer_UI/invoices_customer.php
		- if there is no calls and no charge, only the logo appear :
		there is nothing telling u that the invoice is empty!!
		- show the covert start date
	# List of invoices
		customer should be able to see his own history of invoices with their status
		Status should be different here, only pay or unpay



#### FEATURE : REVIEW NEW DID MANAGEMENT
********************************************************************
Reservation and release
* To check

######## CURRENCY MANAGEMENT IN CRONT SERVICE
********************************************************************
Currency management in cront service


#### VOUCHER
********************************************************************
if you want to refill you card with a voucher please dial...
and its not understandable


#### Review Audio
********************************************************************
Send mail to Vincent for Spanish recording

#### DID CRONT - currency cc_charge
********************************************************************
1#  add currency
	a2billing_bill_diduse.php


#### JQUERY SLIDE
********************************************************************
Menu with Jquery


#### NAMING
********************************************************************
REPLACE SIGNUP IN THE LEFT MENU -> MISC
replace also SIGNUP  in ACL

TARIFFGROUP -> CALL PLAN
	TARIFFGROUPNAME -> NAME
	Change in edit card, signup & AGI


#### JQUERY SLIDE
********************************************************************
help.php


#### Misc : FORMAT
********************************************************************
To tidy up the box for filtering, can you either reduce the font size or use symbols only, e.g. >  ;   >=  ; <=


#### Misc : INVOICE
********************************************************************
1#
	http://trac.a2billing.net/cgi-bin/trac.cgi/changeset/981
	we need to have all this way

2#
	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."

	it doesnt looks pretty, the description column is very small

	problem on :
	A2B_entity_invoice_billedmail.php
	A2B_entity_invoice_detail.php
	...

3#
	if you click on payment button when u have few payment
	then u click on the "sort button" or to display [10] [50] [100] it fails or show up the menu!!!


4#
	images on
	<img src="<?php echo Images_Path;?>/asterisk01.jpg" align="middle">

	I added a new parameter on a2billing.conf,
	; 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/)
	invoice_image = asterisk01.jpg

	we will handle this that way

5#
	A2B_entity_invoice_billedmail.php?section=2&id=8&cardid=12&action=sendinvoice&exporttype=html
	some images dont exist
	Public/templates/default/images/spacer.jpg

6#
	A2B_entity_invoice_billedmail.php
	this need to use mailtemplate
	$email_from = "admin@a2billing.org";
	$email_subject = "A2Billing Invoice";
	$email_message = "Dear Customer<br><br>\n\n Attached is the Invoice.\n\n <br><br>Sincerely<br>\n\nAdministrator A2Billing";


7#
	Refactoring this HUGE mess.
	We have tons of pages to show up almost the same report
	Find a centralized way to make it clean and compress


8#
	A2B_entity_invoice_billedmail.php
	we still have the understandable stuff at the end :
	Status :
    Connected      Disconnected

	do the same as : A2B_entity_invoice_detail.php


#### TO FIX
********************************************************************
to check the patch I made here :
http://trac.a2billing.net/cgi-bin/trac.cgi/changeset/955

and try to reproduce this all all the invoices pages
this compress and make the code cleaner.

do this work for all the files :
A2B_entity_invoice_billedmail.php
A2B_entity_invoice_detail.php
A2B_entity_invoice_list.php
A2B_entity_invoices.php
A2B_entity_invoices_unbilled.php
A2B_entity_invoice_unbilledmail.php

#### MISC
********************************************************************
* Customer -> Call Details : add criteria - Answered call

#### FORMAT
********************************************************************
Rates -> Browse Rates
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


#### ADD SCROLLBAR ON ALL POPUP
********************************************************************
scrollbars=1 in the window.open
Check Rev 977


#### WRITE DOCUMENTATION: API SHOW RATECARD ->
********************************************************************
WRITE FULL DOCUMENTATION FOR :
trunk/A2Billing_UI/api/display_ratecard.php



#### WRITE DOCUMENTATION: ALARM SYSTEM
********************************************************************
WRITE DOCUMENTATION: ALARM SYSTEM


#### FEATURE : NEW INVOICING SYSTEM
********************************************************************
you will see, I dont describe here


#### FEATURE : jump_voucher_if_min_credit
********************************************************************
When the user credit are below the minimum credit to call min_credit
we might have an option to decide if we jump directly to the voucher IVR menu instead of just disconecting

option in a2billing.conf
jump_voucher_if_min_credit = yes or no


#### MANAGE MULTI LENGHT CARD NUMBER
********************************************************************
New parameter :
[global]
; len_cardnumber is removed
; interval for the length of the cardnumber (number of digits),
; ie: 10-15 (cardnumber authorised 10, 11, 12, 13, 14, 15) ; 10,12,14 (cardnumber authorised 10, 12, 14)
interval_len_cardnumber = 10-15


We will support more than 1 lenght for the cardnumber.
Admin Web interface :
- Create customer :
	Add a drop-down button in the top page (below the help) to select the lenght for the card creation
	-> if the drop-down is selected the page will refresh with the new value for the card lenght
	by default we will use the minimum value of interval_len_cardnumber
- Generate Customer :
	Add a point 13) as a drop-down button, select the card lenght but no refresh needed here
- AGI

#### EXEC_SETLANGUAGE
********************************************************************
function exec_setlanguage($language='en')
{
  return $this->exec('SetLanguage', $language);
}


#### UPDATE a2billing_invoice_cront
********************************************************************
* use the conf parameter : invoice_system -> invoiceday
* add cc_charge
* invoice_history


#### BUG CAPTCHA
********************************************************************
please have a look also at the captcha
if u use caps letters, it wont work, all the pics are shows with caps

#### HOURLY ALARM
********************************************************************
add in the alarm system an hourly check


#### bug CallerID
********************************************************************
CID not working  when  ANSWER_CALL=NO
iv changed back to ANSER_CALL=YES , AND WORKS


#### missing text put text in Gettext
********************************************************************
CC_phonelist_import_analyse.php
CC_ratecard_import_analyse.php
CC_card_import_analyse.php

also some more are missing on those files (check the javascript):
CC_card_import.php
CC_phonelist_import.php
CC_ratecard_import.php


#### ADD INVOICE DAY
********************************************************************


#### SAVE PAYMENT OPTION
********************************************************************
when go on edit paypal/moneybooker and click on Update
I dont get any confirmation that the option has been saved


#### PAYMENT OPTION
********************************************************************
put some help on the top

#### IMPORT RATECARD
********************************************************************
ADD option to define if we want to import the price in cents or in units


#### BAD ERROR MESSAGE
********************************************************************
when u import a csv file and the size is bigger the 500 k for example u get the error  file not found
the error message its not defined correctly


#### FEATURE
********************************************************************
REPORTING AND SUPPORT ALARMS :


	* ALOC (average length of call): Too low or too high.
	* ASR (answer seize ratio): Too low or too high.

	maybe if possible :
	* CIC (Consecutive Incomplete Calls): Too many.

We already have ALOC under the name of ACD in the page "CDR REPORT", we just need a new column for ASR and
rename ACD -> ALOC


ASR = Answer Seizure Ratio
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.


For "Consecutive Incomplete Calls", we might find a way to display this I open to your suggestion. maybe a report as follow :
Date ; total nb fails ; max of number fail calls succesively ; rate of fails (%)



For the alarm let's build a new table and a new page in CRONT SERVICE.
We need the user to be able to define different kind of alarm, for instance if I want
to monitor a specific trunk and not all
We can have in the table something like :
- period (daily ; monday-sunday ; 01 - 31)
- typealarm (asr, aloc, callfail)
- trunk (all or the ID of the trunk)
- etc...



#### FEATURE : PACKAGES SYSTEM - FREE MINUTES
********************************************************************
Situation :
We need to support a new relation call "FREE MINUTE" under kind of package according to the destination.
We have an example : http://www.blueface.ie/
There is several kind of packages :
- Unlimited UK/Ireland where they can call as much as they want to this destination and pay for the rest.
- 300 minutes free over 20 destinations + unlimited on Uk for instance
- 300 minutes free over 20 destinations
- pay as you go, standard

We have to add in A2Billing this relation... For the unlimited calls we already have the routes at 0 cost.
now we might need to assign the X free minutes relation over YZ destinations.


- 300 minutes free over 20 destinations + unlimited on Uk for instance
the relation unlimited is already defined in the rate-engine through the route with cost=0

we need to add new table :
table cc_package to define the type package & min free.
CREATE TABLE cc_package_offer (
    id bigserial NOT NULL,
    creationdate timestamp without time zone DEFAULT now(),
    label text NOT NULL,
    packagetype int NOT NULL,
	billingtype int NOT NULL,
	startday int NOT NULL,
	freeminutes int NOT NULL
);
-- packagetype : Free minute + Unlimited ; Free minute ; Unlimited ; Normal
-- billingtype : Monthly ; Weekly
-- startday : according to billingtype ; if monthly value 1-31 ; if Weekly value 1-7 (Monday to Sunday)
I guess a field in cc_tariffgroup which will define the relation with cc_package_offer
and a field in cc_ratecard to define if the rate will take advantage of the package offer (part of X min free)

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)
and by user/card, Customer have to have the offer for each time period (since the creation date).
Table cc_card_package (id_card, id_package_offer, time_used(secondes) )

CREATE TABLE cc_card_package_offer (
    id 					bigserial NOT NULL,
	id_cc_card 			bigint NOT NULL.
	id_cc_package_offer bigint NOT NULL,
    date_consumption 	timestamp without time zone DEFAULT now(),
	used_secondes 		bigint NOT NULL
);
CREATE INDEX ind_cc_card_package_offer_id_card ON cc_card_package_offer USING btree (id_cc_card);
CREATE INDEX ind_cc_card_package_offer_id_package_offer ON cc_card_package_offer USING btree (id_package_offer);
CREATE INDEX ind_cc_card_package_offer_date_consumption ON cc_card_package_offer USING btree (date_consumption);

ALTER TABLE cc_tariffgroup 	ADD COLUMN id_cc_package_offer BIGINT NOT NULL DEFAULT 0;
ALTER TABLE cc_ratecard 	ADD COLUMN freeminute_package_offer INT NOT NULL DEFAULT 0;


Other Billing difficulty :
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...


CREATE TABLE cc_subscription_fee (
    id 				BIGSERIAL NOT NULL,
    label 			TEXT NOT NULL,
	fee 			NUMERIC(12,4) NOT NULL,
	currency 		CHARACTER VARYING(3) DEFAULT 'USD'::character varying,
	status 			INTEGER NOT NULL DEFAULT 0,
    numberofrun 	INTEGER NOT NULL DEFAULT 0,
    datecreate 		timestamp(0) without time zone DEFAULT now(),
    datelastrun 	timestamp(0) without time zone DEFAULT now(),
    emailreport 	TEXT,
    totalcredit 	DOUBLE PRECISION NOT NULL DEFAULT 0,
    totalcardperform INTEGER NOT NULL DEFAULT 0
);
ALTER TABLE ONLY cc_subscription_fee
ADD CONSTRAINT cc_subscription_fee_pkey PRIMARY KEY (id);


ALTER TABLE cc_charge 	ADD COLUMN currency 				CHARACTER VARYING(3) DEFAULT 'USD'::CHARACTER VARYING;
ALTER TABLE cc_charge 	ADD COLUMN id_cc_subscription_fee 	BIGINT DEFAULT 0;


CREATE INDEX ind_cc_charge_id_cc_card				ON cc_charge USING btree (id_cc_card);
CREATE INDEX ind_cc_charge_id_cc_subscription_fee 	ON cc_charge USING btree (id_cc_subscription_fee);
CREATE INDEX ind_cc_charge_creationdate 			ON cc_charge USING btree (creationdate);


-- INSTEAD USE CC_CHARGE
--	CREATE TABLE cc_subscription_fee_card (
--	    id 						BIGSERIAL NOT NULL,
--	    id_cc_card 				BIGINT NOT NULL,
--		id_cc_subscription_fee 	BIGINT NOT NULL,
--	    datefee 				TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT now(),
--	    fee 					NUMERIC(12,4) NOT NULL,
--		fee_converted			NUMERIC(12,4) NOT NULL,
--		currency 				CHARACTER VARYING(3) DEFAULT 'USD'::CHARACTER VARYING
--	);
--	ALTER TABLE ONLY cc_subscription_fee_card
--	ADD CONSTRAINT cc_subscription_fee_card_pkey PRIMARY KEY (id);

--	CREATE INDEX ind_cc_subscription_fee_card_id_card ON cc_subscription_fee_card USING btree (id_card);
--	CREATE INDEX ind_cc_subscription_fee_card_id_cc_subscription_fee ON cc_subscription_fee_card USING btree (id_cc_subscription_fee);
--	CREATE INDEX ind_cc_subscription_fee_card_datefee ON cc_subscription_fee_card USING btree (datefee);



--- MENU ---
PACKAGE OFFER
	* List package Offer
	* Add package Offer
	* details by card

SERVICE
	* List subscription service
	* Add subscription service




?? ADD CC_SUBSCRIPTION_FEE & CC_CHARGE CHANGES IN MYSQL SCHEMAS

MISSING :
- AGI
	http://trac.a2billing.net/cgi-bin/trac.cgi/changeset/789

	IF PACKAGE IN THE TARIFFGROUP
		0#	add freetimetocall_package_offer in select ratecard

		1# 	Get info from the package
			- billingtype ; startday ; freetimetocall
		2#
			According to billingtype (monthly 0 ; weekly 1)
			if (monthly){
				if (startday > last day of the month) startday = last day of the month;
				if (startday <= 0 ) startday = 1;
				dateclause >= year-month-startday
			}else{// weekly
				startday = startday % 7 (modulo)
				if (currentdayofweek < startday) currentdayofweek++7
				diffday = currentdayofweek - startday (current lundi 1 - mercredi 3 = 5)
				dateclause >=
				# mysql -> SELECT DATE_SUB('2003-07-13 00:00:00', INTERVAL 14 DAY);
				# mysql -> SELECT DATE_SUB(NOW(), INTERVAL 14 DAY);
				# psql  -> SELECT (date('2003-07-13 00:00:00') - interval '14 day');
				# psql  -> SELECT (now() - interval '14 day');
			}
			SELECT  sum(used_secondes) AS used_secondes
			FROM cc_card_package_offer
			WHERE (date_consumption) >= ('2007-02-01') AND id_cc_card = '%%%%%%%%%%%' AND id_cc_package_offer = '%%%%%%%%%%%'
			AND DATE_CLAUSE

			init freetimetocall_used
			freetimetocall_left = freetimetocall - freetimetocall_used

			### MAKE CALL ###
			CHECK IF THE RATE HAVE "freetimetocall_package_offer" = Yes

			if (Yes && (TimeofCAll >0) && (freetimetocall_left > 0)){

					if (freetimetocall_left >= TIMEOFCALL) freetimetocall_used = TIMEOFCALL;
					else freetimetocall_used = freetimetocall_left;

					TIMEOFCALL = TIMEOFCALL - freetimetocall_used
					Before calculated the cost
					TIMEOFCALL = TIMEOFCALL + freetimetocall_used

					Add table cc_card_package_offer (...freetimetocall_used)
					add cc_call <- id_card_package_offer
			}

- CRONT
	- BROWSE ALL THE CUSTOMER THAT HAVE A SUBSCRIPTION FEE ENABLE
		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
	- Support multi currency
	- Add a charge for this user
		INSERT INTO cc_charge (id_cc_card, amount, chargetype, description) values ('1', '120', '3', 'description here...')
	- Decrement his balance

- ADD SELECT subscription fee on card
ALTER TABLE cc_card ADD COLUMN id_subscription_fee INTEGER;


#### DOCUMENTATION : SMARTY & NEW DID MANAGEMENT
********************************************************************
- How smarty works and how to customize the design of a2billing with smarty and css.
  little guide about how to do it!
- Doc/DID_Billing.info to continue : make a detailed explanation of how to configure and use
  the DID billing explain a real case when we need to sell DIDs through A2Billing


#### STYLE
********************************************************************
LIST CUSTOMER -> Define specific criteria to search for cards created.
Search engine style should be the same as we have over CDR Report

http://trac.a2billing.net/cgi-bin/trac.cgi/changeset/895
this patch make a couples of fixes & changes on the CDR Report (such as text size, position, names, colors...)


#### CAPTCHA
********************************************************************
Try to add some captcha into the Sign-Up Form

http://www.nogajski.de/horst/php/captcha/index.php?download=yes&id=1234

** Add parameter in a2billing.conf to enable captcha


#### SIGN-UP LINK ON CUSTOMER UI
********************************************************************

put a link on the Customer sign in page.
"To sign up click here" where "here" links to  A2Billing_UI/signup

use of the new parameter in a2billing.conf

[webcustomerui]

; url of the signup page to show up on the sign in page (if empty no link will show up)
signup_page_url = "http://localhost/~areski/svn/a2billing/trunk/A2Billing_UI/signup/"


#### NEW MODE VOUCHER
********************************************************************
add a mode voucher to just let the refill

check also for :
; When the user credit are below the minimum credit to call min_credit
; jump directly to the voucher IVR menu  (values: YES - NO)
jump_voucher_if_min_credit = NO


#### SIGNUP MODULE
********************************************************************
the design is broken probably due to smarty template


#### NEW TASK
********************************************************************
When removing a Card -> Check if SIP/IAX has been created if yes ask for confirmation.
1# we can add an id_card in the buddy table
2# we can add an id_sip id_iax in the cc_card table
find the best solution


#### REPORT IMPROVE PRESENTATION
********************************************************************
commit :
http://trac.a2billing.net/cgi-bin/trac.cgi/changeset/895
this patch make a couples of fixes & changes on the CDR Report (such as text size, position, names, colors...)

We need to make those same changes over the other report page :
# Invoices
# Calls Compare
# Monthly Traffic
# Daily Load
# Report

and also on the customer interface.


#### BUGS & CHECKS : DIVERS
********************************************************************
[FIXED]
1) Bug on edit entity (framework) keep transfered value in case of errors RegEx

2) Reduce big space in top pages :
			A2B_entity_def_ratecard.php?atmenu=ratecard&stitle=RateCard&section=3
			CC_ratecard_import.php?atmenu=ratecard&stitle=RateCard&section=3

			Good high :
			A2B_entity_card.php?atmenu=card&stitle=Customers_Card&section=1


2) LIST CARDNUMBER -> REFILL : ARANGE FORMAT OF REFILL - remove the ugly red border
3) EDIT TARIFFGROUP -> add ratecard : reduce the border
4) Security check on update tariffgroup : not create code on tmp
%% ??

#### MISC
********************************************************************
- Selection of the month -> replace by -> Month select ...
- 1.Call Report – CDR Report – for appearances sake, can you make the font and size
the same for Show: Answered Calls etc in the options section. As per the rest of this form ?
- see more bug from Joe's report

#### CHECK DESIGN ERROR WITH IE (INTERNET EXPLORER)
********************************************************************
- licence at the bottom is broken
- anything else we find, etc...


#### IE ISSUES
********************************************************************
A user can face following issues in the client side Website.

1) Login Page: Click Here Text is very Small.
2) Main Problem at the Pages is Menu. Left Side Menu is Half Displayed. and + Expand functionality is not working for DID.
3) Userinfo.php: Text Font is very bad. Huge font are displayed. 2) Page layout is disturbed.
4) Layout is disturbed on all pages
5) Layout of the Footer is not ok.
6) Change password page layout: Page has much white space under the header.
7) Add Caller ID Page is containing different text fonts.



######## ACTIVATED TO CHECK ON CID ROUTING
********************************************************************
CREATE TABLE cc_outbound_cid_list (
    id 					BIGSERIAL NOT NULL,
	outbound_cid_group	NOT NULL,
	cid					TEXT NOT NULL,
    activated 			CHAR(1)	DEFAULT 't' NOT NULL,
    creationdate 		TIMESTAMP(0) without time zone DEFAULT now()
);
ALTER TABLE ONLY cc_outbound_cid_list
ADD CONSTRAINT cc_outbound_cid_list_pkey PRIMARY KEY (id);

We have 	activated 		CHAR(1) DEFAULT 't' NOT NULL,
We should always use the following type
activated INTEGER NOT NULL DEFAULT 0,
(0 false ; 1 True)

Update webinterface and AGI accordingly


######## CID GROUP DELETE
********************************************************************
when u delete a group of CID, it may remove all the CID inside that group


#### UPDATE ACL : RIGHT MANAGEMENT
********************************************************************
A2Billing_UI/Public/A2B_entity_user.php?form_action=ask-add&atmenu=user&groupID=1&stitle=ACL+Admin+management&section=10

Add new list of rights for the new options in the menu
for instance add a new option for callback.
Edit all the page of the callback and modify the access restriction to
fit with the new right.

MODIFY ACX_RATECARD with the new right
if (! has_rights (ACX_RATECARD)){
	   Header ("HTTP/1.0 401 Unauthorized");
	   Header ("Location: PP_error.php?c=accessdenied");
	   die();
}

#### UPDATE THE FORMAT OF THE SCRIPT : REARRANGE
********************************************************************
DataBase/mysql/Mysql-3.x_4.x/a2billing-mysql-schema-MYSQL.3.X-4.X_v1.2.4.sql
DataBase/mysql/Mysql-5.x/a2billing-mysql-schema-MYSQL.5.X-v1.2.4.sql
DataBase/psql/a2billing-pgsql-schema-v1.2.4.sql

This :

	CREATE TABLE cc_service_report (
		id bigserial NOT NULL,
		cc_service_id bigserial NOT NULL,
		daterun timestamp(0) without time zone DEFAULT now(),
		totalcardperform integer,
		totalcredit double precision
	);
	ALTER TABLE ONLY cc_service_report
	ADD CONSTRAINT cc_service_report_pkey PRIMARY KEY (id);

will become :

	CREATE TABLE cc_service_report (
		id 					BIGSERIAL NOT NULL,
		cc_service_id 		BIGSERIAL NOT NULL,
		daterun 			TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NOW(),
		totalcardperform 	INTEGER,
		totalcredit 		DOUBLE PRECISION
	);
	ALTER TABLE ONLY cc_service_report
	ADD CONSTRAINT cc_service_report_pkey PRIMARY KEY (id);


######## CURRENCY MANAGEMENT IN CRONT SUBSCRIPTION FEE
********************************************************************
Currency management in cront subscription fee


#### MIGRATE NEW VERSION OF ADODB
********************************************************************
started by Angel


#### FEATURE : ADD ALL EPAYMENT METHOD TO THE VERSION
********************************************************************
Authorize, moneybooker, etc...


######## Misc BUGS
********************************************************************
A2BCustomer_UI/invoices.php?section=4
- click on search, left menu dissapear

A2BCustomer_UI/A2B_entity_call_details.php?section=4
- Javascript popup debug : "I am in a function"
- click on search, left menu disappear

A2BCustomer_UI/A2B_entity_unbilled_summary.php?section=4
- 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

A2BCustomer_UI/A2B_entity_billed_summary.php?section=4
- 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

A2B_entity_card_multi.php?stitle=Card&section=1
- Dont work at all, neither for range creation or standard generation cards


#### FEATURE : ENSURE MENU STAY OPTION IN THE LAST SELECTED SECTION
********************************************************************
Ensure menu stay option in the last selected section : use session for this
Keep a different format for the last select submenu


#### BUGS : TEST AGI 1.2 & 1.4
********************************************************************
Test AGI for 1.2. and 1.4 and check warning and fix it

#### REMOVE cc_subscription_fee_card we use cc_charge instead
********************************************************************
REMOVE cc_subscription_fee_card we use cc_charge instead



#### FEATURE : ROTATION CALLERID IN OUTBOUND CALLS
********************************************************************
Situation: if I want to put a Asterisk box in Romania with a Digium board to terminate Romanian traffic.
But the Romanian PTT will deny all calls if they don't have a Romanian CID. we need a way you can make some
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.

NEED : Little modification to do in the AGI and on the Admin UI.
We will have to define the group of CallerID according to the destination and so we need a new field in
cc_ratecard -> outbound_cid_group


and 2 new tables :
cc_outbound_cid_group
(id, label, datecreated, blabla...)
cc_outbound_cid_list
(id, outbound_cid_group, cid, datecreated, blabla...)

cc_outbound_cid_group is the group info that will be associate to the destination : destination (cc_ratecard)

In the AGI : if the system found cc_outbound_cid_group defined when running the outbound call, it will take randomly
a CID number in this group and it will be defined before the outbound call.


In the admin site, there is a bit of work also, but basically it will use the standard function from the framework.
OUTBOUND CID
- Create Group
- List Group
- Add OUTBOUND CID
- List OUTBOUND CID

later :
- Import OUTBOUND CID

#### FEATURE : API SHOW RATECARD
********************************************************************
http://domain/a2billing/api/display_ratecard.php?security_key&ratecardid&css_url&
nb_display_lines&filter&field_to_display=sellingrate|buyrate|etc...&column_name=sellingrate|buyrate|etc...
&browse_style= page number or Letter (A, B, C)
& prefix_select = 32 (only prefix start by 32)
& url_page = http://mysite.com/rates.php

The idea it s to have something very flexible so that users could get
something like this
http://www.voip.com/voip_international.aspx
well more or less :D

I guess we can reuse some page from the customer interface to show ratecard and
transform this to an API and something more flexible on design
well the idea it s to keep something flexible so that anybody can display what
they want from the ratecard.




#### BUG
********************************************************************
22 Aug 2006
 subject: voucher list in web customer problem with Firefox 	Reply with quote
I've the last version of A2Billing and I've Firefox.
In the web Customer page i can't see the dialog box to insert the voucher, here:
http://...../A2B_entity_voucher.php?form_action=list
All OK with Internet Explorer.
Can you test in your Firefox Browser?



#### ADD
********************************************************************
Add Cardalias in the search engine -> list customers

In Invoice option as in Call Report to show only the answered calls
(Customer & Admin)



#### []
********************************************************************
Automatic DID Billing
Cront to find the DID used and bill then accordingly

#### NEW TASK []
********************************************************************
Smarty - template management


#### [Done]
********************************************************************
Add VAT in customer invoice

#### [Done]
********************************************************************
NEW FRAMEWORK NEED TO CREATE SIP/IAX FRIENDS WHEN CREATING CARDS


#### [done]
********************************************************************
We need also the option when creating rate to create multi entries
ie:
	Define the destination prefix. ie, 44 for UK proper. You can use 'defaultprefix' to setup a rate
	by default for the destination for which you dont want to provide a specific rate.
	IF YOU ADD A RATE AND NOT AN EDIT => You can also define several in the same time and range, as below:
	32484-32487 -> this would insert 32484, 32485, 32486, 32487
	32476,32477,32478 separate by comma


#### [Done]
********************************************************************
BUG on new framework when you edit a def ratecard.

#### []
********************************************************************
Importation tools for the cards


#### []
********************************************************************
Add report by voip-provider
see the selling traffic and the buying traffic, be able to see how much I
earn for each voip-provider (difference from the selling rate and the buyrate)















********************************************************************
						V1.2.3
********************************************************************


#### NEW TASK []
********************************************************************
margin is (revenue - carrier cost)/revenue
markup is revenue - carrier cost)/carrier cost
the above gives a %
$50 revenue $25 carrier cost
Profit = $25
MArgin = 50%
Markup = 100%

#### UPDATE []
********************************************************************
 sip/iax secret need to be only numeric for some voip client (Kiax) or hardphone


#### NEW TASK []
********************************************************************
	language support : add flag on Admin


#### NEW TASK []
********************************************************************
import example (rates, card, DID) -> centralize in 1 file

#### UPDATE
********************************************************************
	ON CUSTOM INTERFACE
	Generate a new PO and merge it will the current transalation

#### FIXED
********************************************************************
Admin : voucher  -> Export CSV  : Broken
I just cant export the customer list to xml or csv just got a
ERROR CSV EXPORT
but nothing about the error in the apache logs.
didnt modified the fields, its as it comes configured.
->>> CHECK ALL THE CSV & XML export


#### NEW TASK []
********************************************************************
	Forget password option
		Case 1
			WE Create a User From Signup module and he dont get email
			Solution 1
				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
		Case 2
			if the user is Already Signup ,, and Forgot Password
			Solution :
				We should have the forgot password link on the User Side
		Case 3
			if the User is Disabled by the Admin... or Disable By Default as he didnt activated account
				Now the place comes where we have to create a differentiation
				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
				and 2nd is the Again Active = f when administrator Blocks some User



#### NEW TASK []
********************************************************************
Added provider/trunk filtering in call reports.
Thx Marcel :D


#### NEW TASK []
********************************************************************
You can afterward check that I created CC_card_import.php... CC_card_import_analyse.php
make later on a tool as the import ratecard but for cards
So peoples would like to import card, name, firstname, address, cardnumber, cardalias, webuipass, etc...



#### TO FIX
********************************************************************
 BUG in CUSTOMER DID
 Select Country -> Duplicate in the DID list (select Virtual Phonenumber)

#### TO ADD
********************************************************************
FILTER PREFIX on the define ratecard
handy to have it back

#### TO ADD
********************************************************************
Email confirmation on signup module

#### NEW TASK []
********************************************************************
multi langague for Admin,

#### TO FIX []
********************************************************************
	if (!isset($_SESSION["language"]))
    {
        $_SESSION["language"]='english';
    }
	else if (isset($language))
    {
        $_SESSION["language"] = $language;
    }

	this is working with register_globals = off
	but if On it doesnt
	We need a solution that work with both



#### NEW TASK DID []
********************************************************************
DID insert : support range and interval
Also a little import tool as the one for the Ratecard


#### NEW TASK []
********************************************************************
/Form Class have an issue due to the images path
on A2Billing_UI the path for the images is ../Images
and on A2BCustomer_UI the path for the images is ./images

we need the path to be a DEFINE in the defines.php in order
to user the same Form Class on the both interface (Customer & Admin)



#### NEW TASK []
********************************************************************
On Calls Compare (call-comp.php)
the graphs show the variantion according to the amount of calls.
We need now Sells, Buyings and also Earnings

Same on Monthly Traffic
-> We need now Sells, Buyings and also Earnings



#### NEW TASK []
********************************************************************
Customer Interface : move all to the new framework
A2BCustomer_UI/ratecard.php
A2BCustomer_UI/did.php
A2BCustomer_UI/voucher.php


#### NEW TASK []
********************************************************************
customer should be allow to change password. That should be in customer interface.


#### []
********************************************************************
Report on the earnings
define the buy rate into the cc_call table to know how much
we have to pay for this call made
add in cc_call : buyrate, buycost

	-- Add Buying cost into the reporting

	POSTGRESQL
		ALTER TABLE cc_call ADD COLUMN buyrate numeric(12,4);
		ALTER TABLE cc_call ALTER COLUMN buyrate SET DEFAULT 0;

		ALTER TABLE cc_call ADD COLUMN buycost numeric(12,4);
		ALTER TABLE cc_call ALTER COLUMN buycost SET DEFAULT 0;

	MYSQL
		ALTER TABLE cc_call ADD COLUMN buyrate decimal(15,5);
		ALTER TABLE cc_call ALTER COLUMN buyrate SET DEFAULT 0;

		ALTER TABLE cc_call ADD COLUMN buycost decimal(15,5);
		ALTER TABLE cc_call ALTER COLUMN buycost SET DEFAULT 0;


 use in the AGI : from cc_ratecard,	buyrate	buyrateinitblock	buyrateincrement


#### NEW TASK []
********************************************************************
When Card "pre-selection" is made on A2B_entity_card.php
we need to add a feature to remove the pre-selected cards.


#### ADD
********************************************************************
AUTO REFILL FEATURE


	-- inital balance : it would be used by the cron in order to refill automatically each month
	ALTER TABLE cc_card ADD COLUMN initialbalance numeric(12,4);
	ALTER TABLE cc_card ALTER COLUMN initialbalance SET DEFAULT 0;
	UPDATE cc_card SET initialbalance = '0';

	-- invoiceday : day of the month when the customer invoice need to be created
	ALTER TABLE cc_card ADD COLUMN invoiceday integer;
	ALTER TABLE cc_card ALTER COLUMN invoiceday SET DEFAULT 1;
	UPDATE cc_card SET invoiceday = '1';

	-- autorefill : define if the automatic refill will be permorfed on this card
	ALTER TABLE cc_card ADD COLUMN autorefill integer;
	ALTER TABLE cc_card ALTER COLUMN autorefill SET DEFAULT 0;
	UPDATE cc_card SET autorefill = '0';

	-- Auto Refill Report Table
	CREATE TABLE cc_autorefill_report (
		id bigserial NOT NULL,
		daterun timestamp(0) without time zone DEFAULT now(),
		totalcardperform integer,
		totalcredit double precision
	);
	ALTER TABLE ONLY cc_autorefill_report
	ADD CONSTRAINT cc_autorefill_report_pkey PRIMARY KEY (id);


	create new Cront a2billing_autorefill.php












********************************************************************
						V1.2.2
********************************************************************

#### []
********************************************************************
migrate ADD callerID and Speeddial from Customer interface to the
new framework



#### NEW TASK []
********************************************************************
When removing a ratecard -> Remove all the rate belonging to
When removing a trunk -> Check if rate are using it if yes ask for confirmation.
When removing a tarriffgroup -> Check if Card are using it if yes ask for confirmation.
When removing a DIDgroup -> Check if Card are using it if yes ask for confirmation.

#### BUG []
********************************************************************
(11:33:55) Vahan: have a look at A2BCustomer_UI/add caller id / delete
(11:34:07) Vahan: there is no delete button, it says 'Caller ID' only without button background :)



#### BUG [fixed]
********************************************************************
Paypal update the card correctly















********************************************************************
						V1.2.1
********************************************************************


#### []
********************************************************************
Use gettext in the future ftm only user interface



#### NEW TASK [Done]
********************************************************************
In my opinion, may be "RUN SERVICE" could be one option; when we "Generate customers"
RUN SERVICE : Yes No
This could be helpful to enable run service for those cards in bulk, When we generate customers.


#### BUG V1.2 [fixed]
********************************************************************
POPUP
http://localhost/~areski/svn/a2billing/trunk/A2Billing_UI/Public/CC_entity_sim_ratecard.php?atmenu=ratecard&stitle=Ratecard+Simulator


#### NEW TASK [Done]
********************************************************************
In my opinion: if its there also
FILTER input field for "View money situation" & "View Payment".


#### BUG V1.2 [Fixed]
********************************************************************

Customer bal is $2.5912
It says $2.5912 is the balance instead of $2.59
It seems to be a matter of some calculation that is not being rounded to 2 decmal places.


#### NEW
********************************************************************
UPDATE I18n TO GETTEXT ON CUSTOMER INTERFACE AND ADMIN


#### CHANGE FRAMEWORK
********************************************************************
signup module



********************************************************************
						V1.2
********************************************************************



#### BUG [Done]
********************************************************************
when i delete an acount....they  seting are stil in the list iax or sip
oh true
we need to regenerate the conf files



#### BUG [fixed]
********************************************************************
create IAX friends
secret = carnumber ?? might be webui


#### BUG [Fixed]
********************************************************************
DID - customer interface show up more number that what it might


#### BUG [was not a bug]
********************************************************************
Launched AGI Script /var/lib/asterisk/agi-bin/a2billing.php
  a2billing.php|1|did: line:59 - IDCONFIG : 1
  a2billing.php|1|did:
  a2billing.php|1|did: line:68 - MODE : did
  ....
 (34650XXXXX|30|HL(3600000:61000:30000))
 ...

 DID call seems to not assign the trunk value on the callout


#### BUG [Fixed]
********************************************************************
Webphone doesnt work anymore



#### BUG [fixed]
********************************************************************
export vouchers...is exporting the accounts


#### BUG [Fixed]
********************************************************************
iv increase it to 17 digits.. but still doing voishers with 15 digits


#### BUG [Fixed]
********************************************************************
- CALLERID LIST -
FILTER ON CALLERID :
CALLERID 	CARDNUMBER 	ACTIVATED 	ACTION
		Active 	  Edit this CallerID   Delete this CallerID
5905868969 	5905868969 	Active 	  Edit this CallerID   Delete this CallerID

caller id list
when i click on card button..... i get this
Not Found

The requested URL /ksys/A2Billing_UI/Public/A2B_entity_card was not found on this server.
Apache/2.0.54 (Fedora) Server at 213.246.61.95 Port 80


#### BUG [Fixed]
********************************************************************
when i click list sip friends///
select a card number....aply filter..is tellin me that : THERE IS NO IAX FRIEND CREATED!

but im the list sip friend no list iax friend :)
 - IAX FRIEND LIST -
FILTER ON NAME :
NAME 	ACCOUNTCODE 	CALLERID 	CONTEXT 	DEFAULTIP 	DTMFMODE 	ACTION
6829162082 	6829162082 	6829162082 	a2billing
 instead or showing me the sip friend after i aply the filter is showing me the IAX friend


#### [Done]
********************************************************************
Fix Money Situation

#### [Done]
********************************************************************
Tag php short mode : Off


#### [Done]
********************************************************************
//// IMPORTANT
More meangingful error message on the AGI section
 APPLY_RULES DESTINATION ::> 1815
 a2billing.php: RESFINDRATE::> 0

#### [DONE]
********************************************************************
//// IMPORTANT
Hardcoded
additional_a2billing_sip.conf & additional_a2billing_iax.conf

#### [done]
*******************************************************************
//// IMPORTANT
* signup autocreates SIP/IAX additional_a2billing_SIP/IAX.conf



#### [Done]
*******************************************************************
* List available rates in Customer UI.
* JIAX integration in  Customer UI.
* use the useralias in the sip/iax calls


#### [done-guess]
********************************************************************

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.

#### [done]
********************************************************************

6.) BUG - SIP/IAX allow codec problem

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.

So there is missing a simple FOREACH in the module where it will be printed out


#### [done]
********************************************************************

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" ;-(

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  ;-)

DROP TABLE IF EXISTS `templatemail`;
CREATE TABLE `templatemail` (
  `mailtype` varchar(50) default NULL,
  `fromemail` varchar(70) default NULL,
  `fromname` varchar(70) default NULL,
  `subject` varchar(70) default NULL,
  `messagetext` longtext,
  `messagehtml` longtext
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

#### [done]
********************************************************************
//// IMPORTANT
Update currency table
Use Yahoo, check the script php for this
Store currency in the Database


#### [Update-local-text-files]
********************************************************************

DOCUMENTATION

from your web site

cp -rf libs_a2billing /var/lib/asterisk/agi-bin/.
should be
cp -rf libs_a2billing/* /var/lib/asterisk/agi-bin/.
or u will miss 2 files in the folder

likewise from your website
cp  sounds/en/* /var/lib/asterisk/sounds/.
can be
cp  sounds/en/* /var/lib/asterisk/sounds/. < yes.txt
if u want to automate in a script


#### [done]
********************************************************************


 - Leaking in documentation that AGI needs php as cgi ( so people with only mod_phpX won't able to make it work ),
   well at least in some systems php command line comes with cgi package or in a separate package php4-cli.

#### [done]
********************************************************************

 - Leaking in documentation a2billing needs php-pcntl ( in debian is not in official repository ).

#### [done]
********************************************************************

 - Use a unique file to store all the path and setting , so we avoid to changes values from files where
   are hardcoded :

   i.ex in defines.php there's :

   include ("/etc/asterisk/rates.inc");

   Maybe a good solution is to move those variable to a2billing.conf file, that can be fixed because it's
   already defined -> buddyfilepath.

   Also can be checked asterisk.conf because there are placed path for asterisk locations.

   ( Others files with hardcoded data -> CC_upload.php , a2billing.php , Class.A2Billing.php , etc ... ).

#### [done]
********************************************************************
//// IMPORTANT
 - Files inside [astetcdir] have to be writeables by apache user ( nobody or apache or www-data , etc ... ).
   ( not need to be set 777 )

#### [done]
********************************************************************
//// IMPORTANT
 - Directories sounds and mohmp3 ( [astvarlibdir]/sounds/a2billing [astvarlibdir]/mohmp3 ) have to be
   writeable by apache user ( not need to be set 777 ) .


#### [done]
********************************************************************

 - CC_entity_car_refill.php ( if no cardnumber is added and you try or you try to refill a non existing
   user no error message just a 0 is written in left top of the page.

#### [not-valid]
********************************************************************

 - allow field from table cc_sip_buddies is filled with "g729ulawalawgsm" ( change that input field with
   a drop box ). Moreover from CC_entity_edit_friend.php ( allows to insert a new user with only the name field ).

#### [no-valid]
********************************************************************

 - If duplitated entry CC_entity_edit_friend.php :

   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')
MySQL Error: 1062 (Duplicate entry 'pepito' for key 2)


#### [done]
********************************************************************

 - In CC_entity_friend.php , if the users listed are only sip and you click over "Generate additional_a2billing_iax.conf" page blank
   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
   type of user.

#### [not-valid] -> It should be done at starting , and maybe also in login screen.
********************************************************************

 - CC_entity_friend.php should check if additional files exist and are writeable otherwise warm the user.

#### [done]
********************************************************************

 -  [error] PHP Warning:  Invalid argument supplied for foreach() in /usr/local/www/data-dist/a2billing/Public/CC_entity_card_refill.php on line 144.

#### [not-valid]
********************************************************************
//// IMPORTANT

 - mysql -u root mya2billing < update-PredictiveDialer-mysql-schema-v1.0.sql
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

 That is in the creation of :

 CREATE TABLE cc_campaign (
    id INT NOT NULL AUTO_INCREMENT,
    campaign_name CHAR(50) NOT NULL,
    creationdate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    startingdate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    expirationdate TIMESTAMP,
    description MEDIUMTEXT,
    id_trunk INT DEFAULT 0,
    secondusedreal INT DEFAULT 0,
    nb_callmade INT DEFAULT 0,
    enable INT DEFAULT 0 NOT NULL,
    PRIMARY KEY (id),
    UNIQUE cons_phonelistname (campaign_name)
);

 Reference : http://dev.mysql.com/doc/refman/4.1/en/error-messages-server.html

 Solution : maybe creationdate , should be change and when the campaign is create from web , use
	    to mysql query the CURRENT_TIMESTAMP value.

#### [done]
********************************************************************


 - a2billing-mysql-createdb-user-v1.0.0.sql could be too "friendly" maybe change to be more restrictive.

#### [done]
*******************************************************************
//// IMPORTANT
 - DID in Customer UI doesn't work properly , seems that only for mysql-3.x_4.x due a sql subqueries .

#### [done]
*******************************************************************
//// IMPORTANT
 - Create tools for backup/restore database.


#### [Done]
********************************************************************
Export csv for the card

 1# Solve the issue that the csv files opened with Excel remove leading 0
    Use the 'format the number to force it as a string

#### [done]
********************************************************************
//// IMPORTANT
Generate customers -> check box to choose to generate the IAX/SIP
friends too


#### [done]
********************************************************************
//// IMPORTANT
"Customer Creation" -> check box to choose to generate the IAX/SIP
friends too

When a Customer is deleted if he was created as sip/iax friend that is not
detele from asterisk additionals-* files.

#### [done]
********************************************************************
//// IMPORTANT
move the currency select from defines.php to a specific file

#### [done]
********************************************************************
Export csv for the card

2# Customize the field to export, perhaps use a parameter in a2billing.conf
   to define the different field to export
      ;; card_export_field_list = creationdate, username, credit, lastname,
      firstname


#### [done]
********************************************************************
popup simulate ratecard - bug




#### [Done]
********************************************************************
//// IMPORTANT
Make a Advanced-user features into the a2billing.conf to let the user
1.1. on the "trunks" screen  shouldn't there be a "delete" as well as "edit"
1.2. on the "Administrator" screen  shouldn't there be a "delete" as well as "edit"
also we can make a div that will hide by default the cycle into the rateengine




#### [Done]
********************************************************************
//// IMPORTANT
SUGGESTED RENAME

CYCLE -> call it time c

time charge is a duration not a charge, it should be called initial block




STEPCHARGE C
When entering in the cycle 'C', define the amount to charge for the
entrance.
CHARGE C
When entering in the cycle 'C', define the rate to apply.
TIMECHARGE C
Define the duration of the cycle 'C'.
BILLING BLOCK C
Define the duration of each billing block to apply the rate 'CHARGE C'.


timecharge c - define the duration of the cycle
quite obviously IF IT IS A DURATION IT IS NOT A CHARGE SO DO NOT CALL IT
"TIMECHARGEC"
terribly confusing can u see that ?

stepcharge c
u mean the "bong charge for this cycle" or "connection charge for this
cycle"  (bong charge or connection charge is better term than "entrance"
- this is not a stage)

charge c
i would add in my definition "the rate to apply to block c"

BUYING RATE
BUYRATE INIT BLOCK
define the minimum time that your provider buy for (ie 30 secs)
BUYRATE BILLING BLOCK
Define the billing increment (billing block) to the provider apply.
RATEINITIAL
MIN DURATION
This allow you to define the minimum time to bill the caller (ie 30 secs)
BILLING BLOCK
Define the duration of each billing block to apply globaly (if not cycle
are defined).


POETS AND PROGRAMMERS SHOULD USE SYMMETRIC FORM !!!!!!!!!!!!

if block refers to duration or time use the words duration or time EVERY
where u use the term block

if buying rate refers to the block rate then it should say so the term
buy rate without adjective is meaningless

EITHER HAVE A BLACK LINE ACROSS SCREEN TO SEPARATE BUY FROM SELL
OR prefix buy_ and sell_ to the field names
do u c how confusing this is ?

besides none of the grammar is right and some of it is painful to read

 >>>define the minimum time that your provider buy for (ie 30 secs)
 >>>provider buys not buy

 >>>This allow you to define the minimum time to bill the caller (ie 30
secs)
 >>>this allows not allow

 >>>Define the duration of each billing block to apply globaly (if not
cycle are defined).
 >>>this is painful to read....it should say (if cycle is not defined)

#### [done]
*******************************************************************
//// IMPORTANT
 - Fix window.open width , needs to show the whole table .



#### [Done]
********************************************************************
//// IMPORTANT
Callback 1st leg billing


#### [Done]
********************************************************************
1. webui password auto-generation

#### [done-but-only selfsigned]
******************************************************************

Fix the iax webphone , sign with our own certificate.

