Monday, August 29, 2005

astGUIclient release 1.1.6

We've been developing and testing a lot lately and it's time again for another release. In this release we have finished the VICIDIAL-web-client and are releasing it as beta in this release just because we know that there will be a lot of little bugs found over the next few weeks. We have had it in production for a week now and the agents and managers all really like it.

New Screenshots:
Agent Login screen
Agent Paused
3-Way Call and Recording

Also, in this release we've modified the system performance stat logging somewhat to include user,system and idle cup percentages and we've added them to the server performance web page and graph.

Another change is the streamlining of a lot of the server scripted code, adding new code to be compliant with the new Asterisk 1.2 release coming out soon and the addition of debug output options on most of them to aid troubleshooting of systems.

Here's the changelog:
1.1.6 - Nineteenth public release - 2005-08-29
- streamlined many of the server apps and added command-line debug capability
- finished the vicidial web-client and tested in prduction
- modified server-side scripts to function with Asterisk CVS_HEAD(soon to be 1.2)
- modified server performance logging and graphing, added user/system proc %
UPGRADE NOTES:
* if upgrading from 1.1.5 you need to:
- download the new version from the project website
- unzip the zip file into the /home/cron/astguiclient directory
- and either:
+ copy the web pages and all server apps to their proper locations manually
+ or run the install_server_files.pl script to put all items in their
default places
(make sure AST_SERVER_conf.pl and dbconnect.php files are config'd properly)
- perl/TK clients are unchanged from 1.1.5
- make sure you check the astguiclient admin.php server parameters
- make the agi-VDADtransfer.agi changes in extensions.conf (mentioned in SCRATCH_INSTALL doc)
* if upgrading from 1.1.5 run the upgrade_1.1.6.sql script in MySQL
(\. /home/cron/astguiclient/upgrade_1.1.6.sql)

Thursday, August 25, 2005

Asterisk 1.2 compatibility and the vicidial web beta

Due to the changes that have been coming fast and loose to the Asterisk CVS_HEAD(soon to be Release 1.2) We've been working to make astGUIclient and VICIDIAL compatible with the Command and Manager API changes that they've been making. Aside from annoying formatting changes, there are some good changes being made that will allow for a few little features to be added to the suite including call durations on astGUIclient live calls. We're still working on compatibility testing with the new test versions of the server scripts(which you can find in the experimental downloads folder), but we do plan on a new release for next week if we get time to test all of the changes we've been making.

On the VICIDIAL-web-client side of things, we've now put it in production on a few live stations taking calls and the agents like the new version a lot. We've already made several little changes thanks to their feedback and even though they are running on lower memory linux workstations, the memory usage stays around 22MB for Firefox consistently across a whole 6-hour shift of usage and the processor load is significantly reduced compared to the Perl/Tk client. Also, they seem to like the pretty colors and buttons of the new web GUI. I guess they were tired of the old grey Perl/Tk client.

Another little small addition we will add to the VICIDIAL-web-client for the next release is the ability to configure phone logins(in the astguiclient admin.php section) that will call external numbers for the agents. This means much easier setup for agents that work from home because the server can call their home number and put them in the meetme room right when they log in to the web-client.

We still welcome more testers of the VICIDIAL-web client. Installation instructions here.

Local channel resolution delay fix

Recently I was testing an experimental version of the Sangoma Quad T1 card drivers and I ran into a delay in the Local/ channel name resolution that several SIP trunk users had described to me in the past few weeks that I had been unable to duplicate until now.

It seems that under certain circumstances a call placed through a Local/ channel, like VICIDIAL does for auto-dial calls, the channel can have it's Answer signal register before the Masquerading of the channel is complete resulting in the connected live line appearing to be a Local/ channel instead of the proper SIP, IAX or Zap channel that it actually is.

The easy workaround for this in all cases is just to give the channel more time to resolve. I found that simply putting another priority step entry for the agi transfer script in the exten of the extentions.conf file the Local channel was able to resolve itself in the few milliseconds between priority 2 and 3. Then I threw in another step just to pick up the very few that had not resolved by the 3rd priority and added a 1 second sleep to those and I now had better than 99.9% resolution of Local channel calls placed through VICIDIAL.

Here's what you have to change in your extensions.conf file:

BEFORE:
; VICIDIAL_auto_dialer transfer scripts:
exten => 8365,1,AGI(call_log.agi,${EXTEN})
exten => 8365,2,AGI(agi-VDADtransfer.agi,${EXTEN})
exten => 8365,3,Hangup
exten => 8366,1,AGI(call_log.agi,${EXTEN})
exten => 8366,2,AGI(agi-VDADtransferSURVEY.agi,${EXTEN})
exten => 8366,3,Hangup

AFTER:
; VICIDIAL_auto_dialer transfer scripts:
exten => 8365,1,AGI(call_log.agi,${EXTEN})
exten => 8365,2,AGI(agi-VDADtransfer.agi,${EXTEN})
exten => 8365,3,AGI(agi-VDADtransfer.agi,${EXTEN})
exten => 8365,4,AGI(agi-VDADtransfer.agi,${EXTEN})
exten => 8365,5,Hangup
exten => 8366,1,AGI(call_log.agi,${EXTEN})
exten => 8366,2,AGI(agi-VDADtransferSURVEY.agi,${EXTEN})
exten => 8366,3,AGI(agi-VDADtransferSURVEY.agi,${EXTEN})
exten => 8366,4,AGI(agi-VDADtransferSURVEY.agi,${EXTEN})
exten => 8366,5,Hangup


And you can download the altered AGI scripts from the project site:
http://astguiclient.sourceforge.net/experimental_code/agi-VDADtransfer.agi
http://astguiclient.sourceforge.net/experimental_code/agi-VDADtransferSURVEY.agi

and put them in your /var/lib/asterisk/agi-bin directory.

Then you must do 'extensions reload' from Asterisk CLI or just restart.


Let me know if you have any success or failure with this fix.

Thursday, August 18, 2005

VICIDIAL web-client fully functional beta 0.0.28 release

Well we think we've finished it, at least good enough for a beta. VICIDIAL web-client is now fully functional with inbound and auto-predictive dialing and has almost all of the functions of the Perl/Tk client(only prettier and much easier to set up), and it does some functions better than the Tk app.

We've tested it a little bit in production and it worked great. Now we need to have others out there test it and find those bugs that we couldn't.

The vicidial web-app(beta 0.0.28) [vicidial.php] just needs to have it's folder installed on a web server with PHP and MySQL access to your astguiclient database.

We use a combination of PHP scripts, Javascript and XMLHTTPRequest(also referred to as AJAX). This allows for the main page to only be loaded once while data is still being updated at a regular interval through the use of other PHP pages being loaded in the background. Another good thing about how XMLHTTPRequest works is that it is non-blocking, meaning that if one process fails or is hung up it won't usually cause a failure or lockup of the whole application which is essential for this kind of application.

We tried this technology about a year ago but found browser support lacking, but after Firefox 1.0 came out and we did some stress tests, it passed with flying colors. We have been able to have both the vicidial and astguiclient web apps up and running on Firefox for over week without crashing. Sadly the same can not be said of any Internet Explorer browser because of Microsoft's choice to use ActiveX to do it's implememtation of XMLHTTPRequest. Because of ActiveX's horrible garbage collection, the memory will leak until either the iexplore.exe process is ended or about 3 hours of running and then it will just crash on it's own. This is a known bug in IE and Microsoft has no plans to fix it. So keep in mind that while our client apps do work with IE 5.0+ they will crash after a few hours.


The screenshot hasn't changed from the previous release:
http://astguiclient.sf.net/screenshots/vdc-web_alpha_0.0.22.gif

Installation instructions:
- you must be running astGUIclient version 1.1.5
- first go to the experimental downloads section of the project site:
http://astguiclient.sourceforge.net/experimental_code/
and download the following file:
- agc_update_0.1.5-2.zip - (unzip on your web server and edit config the dbconnect.php)

Monday, August 15, 2005

vicidial web-version alpha 0.0.22 release

We've fixed a couple bugs in the VICIDIAL web-client alpha and have
added some more features.

The vicidial web-app(alpha 0.0.22) only allows manual dialing(campaign
dial_level of 0) but has all other functions available now. We have
just added all of the 3-way calling functions and the buttons to go
with the transfer functions.

Inbound call receiving and predictive dialing still are not programmed yet.

Here's a screenshot:
http://astguiclient.sf.net/screenshots/vdc-web_alpha_0.0.22.gif

Installation instructions:
- you must be running astGUIclient version 1.1.5
- first go to the experimental downloads section of the project site:
http://astguiclient.sourceforge.net/experimental_code/
and download the following file:
- agc_update_0.1.5-1.zip - (unzip on your web server and edit config
the dbconnect.php)

Friday, August 12, 2005

astGUIclient release 1.1.5

Time for another release of astGUIclient. This release has a lot of agc web-client bug fixes and enhancements as well as the most recent vicidial-web alpha. Another feature of this release is the ability to change server parameters from the web admin pages and the ability to limit the number of outgoing VICIDIAL auto-dialer calls per server.

Download from the project website:
http://astguiclient.sourceforge.net/

Here is the expanded changelog:
1.1.5 - Eighteenth public release - 2005-08-12
- fixed new Local channel bugs caused by changes in Asterisk 1.0.8 and 1.0.9:
      -There is now a patch available to fix the Local channel issues on 8/9 it is in
      the experimental code section of the project code updates
- moved many server variables to the database, editable through astguiclient admin.php:
      - requires less effort to change variables
      - VDauto_dial now reloads vars every 25 seconds
- added ability to limit number of outbound trunks used by VICIDIAL auto dialer:
      - allows for better lead usage as a safeguard for overzealous room managers
- many small changes and bug fixes to the astguiclient web client:
      - removed HTTP authentication
      - added vicidial.php to same folder, unified some functions
      - fixed several bugs
- added alpha vicidial web-client (click-to-dial only):
      - full click-to-dial functionality except for 3-way-calling
      - channel validation and display
UPGRADE NOTES:
* if upgrading from 1.1.4 you need to:
- download the new version from the project website
- unzip the zip file into the /home/cron/astguiclient directory
- and either:
+ copy the web pages and all server apps to their proper locations manually
+ or run the install_server_files.pl script to put all items in their
default places
- VICIDIAL perl/TK client is unchanged from 1.1.4
- make sure you check the astguiclient admin.php server parameters
* if upgrading from 1.1.4 run the upgrade_1.1.5.sql script in MySQL
(\. /home/cron/astguiclient/upgrade_1.1.5.sql)

Friday, August 05, 2005

agc web client update 0.1.3 and vdc alpha 0.0.20 released

We've fixed several bugs in the astGUIclient web-client and have added some more features to the alpha vicidial-web-client.

The vicidial web-app(alpha 0.0.20) only allows manual dialing(campaign dial_level of 0) but has recording, parking, time synchronization, web form, conference channels viewing, closer/blind transferring, DTMF sending, live call indication, channel live validation and some pretty new buttons that also go grey when functions are unavailable.

Three-way-calling and predictive dialing still are not programmed yet.

Here's a screenshot

Our plans for the VICIDIAL web client are to have it finished by the end of the month. We will be tackling the 3-way-calling functions next, then we will implement predictive dialing and finally inbound calls. At that point it should be ready for production level tests(even though we have actually done some limited production level test with the current code so make sure it would function properly on RedHat Linux 9.0 with Mozilla and it worked just fine)

We hope to have others out there currently using VICIDIAL to try out the new web-client and give us feedback. That will help us to make the final release something that won't need a patch 2 days after initital release.

Installation instructions:
- you must be running astGUIclient version 1.1.4
- first go to the experimental downloads section of the project site:
http://astguiclient.sourceforge.net/experimental_code/
and download the following files:
- agc_update_0.1.3.zip - (unzip on your web server and edit config the dbconnect.php)
- upgrade_1.1.5.sql - run this query on your asterisk database
- /astguiclient_web/admin.phps - copy as the astguiclient admin.php page on your web server
- go to the admin.php asterisk web page and view your asterisk server details, modify the asterisk version field for the version of Asterisk you are running and click submit.

Wednesday, August 03, 2005

Recording skipping woes

For the last several months we have been dealing with small skips in audio recordings on our big recording Asterisk server. This is a P4 3.2GHz server with 2GB of Ram and has had several refittings with different drives/processors/motherboards over the last 6 months trying to fix the ast_channel_walk_locked WARNINGS that signify that a recording skip has taken place. This server has 7 T1s going into it and has two Digium TE405P cards and has on average 20 recordings concurrently with peaks no higher than 50. We have done recording like this in the past with no problems but when we added the second quad T1 card the recording skips started happening.

We have tried IDE, SCSI, SATA drives with no change over time and we have tried 3 different motherboards that didn't help either. I resolved to fix this without resorting to buying one of those lovely-but-obscenely-expensive solid-state hard drives($6000 for 8GB) so I did some research and talked to several people who have systems with many T1s and do a lot of recording. I ended up putting together a system with a SCSI 320 RAID card and two 15K drives along with two Sangoma a104 Quad T1 cards (because they use interrupts more efficiently than Digium cards). I did a lot of stress testing and haven't seen any skips so far in it's first day of operating, but only time will tell. I'll post again in another couple weeks to let you know if the skips have come back.

Welcome to our Blog!

We've pondered starting a blog for some time to give a little more insight into what we the main developers of the astGUIclient/VICIDIAL suite go through on a weekly basis in terms of operating, developing, testing and breaking our systems, so here it is.

We hope to post at least once a week to give you updates on our experiences and to let you know what we are working on.