VoicetradingInvoicer - Invoicing Tool for Voicetrading
To facilitate billing the users of my Voicetrading account for what calls they have made, I spent several days writing a billing tool to create invoices.
If someone else has similiar needs, maybe he/she may find this of use so I am hereby releasing it to the world
Sourcecode (C#) is included, License is GPLv3.
- new button "Create PDF", prints directly to a printer with the exact name "FreePDF"
- it's now possible to create yearly reports instead of monthly
- fixed printing problems when the country list on the first page got excessively long
- possibly other changes I have made during the last months (I don't remember)
- Small change at the Login Parser, since VT now shows a refresh HTML page before showing the main website.
- "Customers" are now saved as cleartext file. Conversion of existing, binary "Customers" is done automatically when closing the Customers window.
- Main window now freely scalable and maximizable
- Possibility to change the sorting of the data back to the original way it is sorted
- "Destinations" are now saved as Cleartext file. Conversion of existing destinations is done automatically when closing the Destinations window.
- Several details made more consistent, program now 100% english instead of a mixture of english and german
- More comprehensive list of 'Destinations now included
- Adapted to changes on the Voicetrading Webseite
- Several small things finalized and improved
- new print functionality with analysis and statistics
- Local cache files of Voicetrading billing data are now saved as Cleartext and no longer as binary
v184.108.40.206 Initial public release
- Feature: Callback & Callthrough recognition Support
- Feature: Use of wildcards (*) for customer numbers
Not done yet:
- Better handling of "Destinations" (= Country prefixes), maybe with some clever way to share or get destination information over the internet
- Support for vouchers and transfers and other obscure things Voicetrading might support
Since my own needs have been fulfilled now, I cannot promise that I will be able to invest significant amounts of time into new features that are requested. I will however make a good effort of fixing bugs if someone reports them.
There is no "Manual" regarding the usage of VTinvoicer, however, here are some tips to get you started:
The general goal of designing the program has been to make it self-explanatory - at least for someone who has some computer experience and knows basic GUI ideas. I would hope that I have at least to some degree succeeded in this. If you think otherwise, please complain and point out what is unclear so I can improve it!
To get started using it, you should first enter your Voicetrading login/password in the "Edit Voicetrading l/p" Screen. You should now be able to "Login" and Fetch Data for individual months. The buttons "Edit Customers" is used to seperate the costs incurred into different customers (or "accounts" or "cost centres" if within the same company), while the "Edit Destination" button allows you to define Country Codes and Area Codes to automatically group your call costs by called country / region.
Please enter customers (accounts) with their complete CallerIDs, inclusing area code, for example: 498912345678 for a CallerID consisting of 49 (Germany) 89 (Munich) 12345678 (the local number). You also have the option of setting a markup fee in percent, in case you want to earn some money
In addition to the possibility of specifying CallerIDs, you can also specify outgoing numbers called that will be automagically billed to the customer you entered them for. This feature is mainly used for call forwarding, where the forwarded call is done with the same CallerID that it had when coming into the Asterisk (telephone) system. In those cases the "customer" will have made a call without using one of his own CallerIDs and he would not be billed. By entering for example the mobile-phone numbers of call-forward targets in this area, you will be able to correctly map those calls to those who are responsible for it. Remember, that all calls are first matched by CallerID, and only if no customer/account matches, the outgoing number will be used to determine who should pay for the call.
General Information: What you do in "Edit Destinations" will NOT affect how much a customer/account is billed - it will only affect the way the bill is displayed and is very nice for analyzing on what kind of calls you spent all that money on.
With that said, the general idea of "Edtit Destinations" is: Enter Country Name and Country Code - for example "Germany" and "49" or "United States" and "1", and then proceed with adding "Area Codes", which may be different states within the country or target numbers that are billed differently. For example, adding an area code "242" to the country "United States" and describing it as "The Bahamas" might be a good idea. In the same way you could add a filter for calls to mobile phones in Germany, by creating area codes "15" "16" "17" and describing them as "mobile" or "cellular".
some general technical information you might want to know about
- Very important: Make sure that you have a recent version of the .NET runtime installed. Version 2.0 will NOT suffice !
- Overview of the basic directory structure in %APPDATA%\VTinvoicer\
- VTusername-YEAR-Month.cache.tsv Call data retrieved from Voicetrading for the month in TAB-Separated-Values Format
- VTusername-customers.config Configuration data, the configured customers for the account in cleartext format
- VTaccount.cfg Basic Voicetrading account configuration file, contains l/p (binary format)
- VTdestinations.config Configuration file for call destinations stored (cleartext format)
%APPDATA% can be found found in
=> Windows VISTA / Windows 7: C:\Users\(yourusername)\AppData\Roaming\VTinvoicer
=> Windows XP/Server2003: C:\Documents and Settings\(yourusername)\Application Data\VTinvoicer
A sample "VTdestinations.config" which contains many country prefixes is included in the package. To use it, copy the file to the appropriate directory (see paths above) while the program is not running.
If you have any comments, feature requests or questions feel free to ask.