Pages

Friday, 15 August 2014

Blog moved to new hosted site [http://lakshmikanth.azurewebsites.net]

Thanks for visiting my blog.

I migrated this blog to self hosted site at www.lakshmikanth.com which has got lot more features and request you to visit www.lakshmikanth.com for updates.

Once again, thanks for visiting my blog.

Monday, 10 February 2014

Purge log records–excluding audit level logging

 

Some time back, I wrote blog to delete log records older than 15 days from Genesys log database (here) From our support team, we had request to delete log records older than 15 days but want to retain audit level logging for 90 days.

To achieve this, add category filter in the purge query as below

-- To delete attribute records which doesn't have parent record
delete from G_LOG_ATTRS 
where LRID not in (select G_LOG_MESSAGES.ID from G_LOG_MESSAGES)
    
-- To delete log attribute records older than 90 days excluding audit level logging
delete from G_LOG_ATTRS where LRID in 
(select G_LOG_MESSAGES.ID from G_LOG_MESSAGES where TIMEGENERATED < DATEADD(DAY, -90, GETDATE())and CATEGORY = 0)
    
-- To delete log records older than 90 days excluding 90 days
delete from G_LOG_MESSAGES 
where TIMEGENERATED < DATEADD(DAY, -90, GETDATE())
and CATEGORY = 0

Monday, 25 November 2013

How to you configure ADDP between SCS and LCA ?

In our environment, we started experiencing false disconnects and failovers of Genesys components. From analysis, I found that due to increased network activity from other projects, we are experiencing temporary delays and have to reconfigure timeout settings.

Although ADDP settings between LCA and SCS was available in previous versions, Genesys made it official from 8.0 onwards.

To configure ADDP, follow the steps below

  • In Genesys Administrator—Host object > Options tab > Advanced View (Annex)
  • In Configuration Manager—Host object > Properties dialog box > Annex tab
  • Configure section 'addp'
  • Under this section, configure option 'addp-timeout' with value greater than 10 (recommended). This value is used by Solution Control Server for ADDP timeout. If SCS doesn't receive messages within this interval, it sends polling message and waits for response for the same interval. It interprets lack of response as loss of connection
  • Under the same section ('addp'), configure option 'addp-remote-timeout' with value greater than 0. This value is used by LCA for ADDP timeout and passed by SCS after the connection is established. If LCA doesn't receive message from SCS within this interval, it sends polling message and waits for response for the same interval. It interprets lack of response as loss of connection. I recommend setting this value as 'addp-timeout' + 5. 
  • configure option 'addp-trace' to both to enable tracing at both endpoints
Note: If this value is set to 0, LCA will not use ADDP. 

Wednesday, 20 November 2013

Zipper– Log Archiver tool

 

Zipper is log archiving utility that compresses and archives application log files. I developed it to use it to archive Genesys application logs but can be used for other application logs, as well.

Why we need zipper utility?


Have you ever heard these conversations from your support team?

‘We don’t have log files for this particular time frame’

‘Log files rolled over. Have to wait for next occurrence’

Even though, both engineer and customer know that there is an issue, they can’t do anything due to lack of log files. Also, you can compress log file to 90% of its original size i.e) you can store 9 times more than your current configuration. This led me to develop tool on my own to scan for log files on predefined intervals, compress and store it in different folder.

Design Considerations


Initially, I designed to watch log file directory for changes to start archiving activity but decided against it as there is no need to have this application running (& utilizing system resources) for log archiving. Now, zipper can be configured in windows scheduled tasks so that user can configure to schedule it as per their requirements.

You can download and install Zipper from here.

How to configure?


Zipper can be configured to scan log files in multiple directories and easily configured using any text editor. To configure, follow the steps below

  • Open ‘zipper.exe.config’ from installation directory in any text editor
  • Go to section ‘zipper’ as shown in screenshot below

image

image name – Unique identifier for each directory
image sourcedirectory – Directory path where log files will be available. Zipper application will scan this directory for files
image targetdirectory – Directory path where log files will be compressed and stored by zipper application
image filepattern – Used to define file extensions. For Genesys logs, use “*.log”
image deleteoriginal – Setting this option to ‘true’ will delete log file once it is compressed and archived. ‘false’ will keep original file in the source directory

I am looking to expand functionality by adding scheduling functionality within the application and will release it in next version. For any feedback, feel free to comment me and will try to add it.

Download zipper.setup

Monday, 11 November 2013

How to send email notification using CCPulse+?

 

  • Create threshold using CCPulse+ threshold wizard
  • Download 'vbSendEmail.dll' from http://www.freevbcode.com/ShowCode.Asp?ID=109 and copy it in CCPulse+ folder (typically, 'GCTI\CCPulse+')
  • Using command prompt, navigate to CCPulse+ folder and register dll using the following command
regsvr32 vbSendMail.dll
  • Create action script as below
   1: Set poSendMail = CreateObject("vbSendMail.clsSendMail")
   2: poSendMail.SMTPHost = "<your smtp server here>"
   3: poSendMail.From = "<from Address>"
   4: poSendMail.FromDisplayName = "<From>"
   5: poSendMail.Recipient = "<To Address>"
   6: poSendMail.RecipientDisplayName = "<To Name>"
   7: poSendMail.ReplyToAddress = "<Reply Address>"
   8: poSendMail.Subject = "CCPulse Notification"
   9: poSendMail.Attachment = ""
  10: poSendMail.Message = "<your message>"
  11: poSendMail.Send
  12: Set poSendMail = Nothing

Friday, 8 November 2013

Agent Dashboard - CCPulse Lite !!

In my previous project, customer would like to have thin client application - minimized version of CCPulse - for agents and supervisors to view current queue status and agent state. This was required to minimize queue time especially while doing internal transfers and improve customer experience.

Using dashboard application, agent can view queue status and agent status ('Presence' or 'Search' tab) before initiating transfer and without any doubt, improved customer experience immensely.

So, I developed application using ASP.NET, WCF and Genesys Platform SDK and really happy about it. Had few challenges in supporting different browser versions and security policies within the organisation but it went well at the end.

You can see the demo of the application below and it is actually hosted in Windows Azure with Genesys Stat Server simulator

Note : It is working version and you can actually select different themes and tabs. Have fun :-)

Tool to find default routed calls

In our environment, I found that everyday we were having small percentage of calls getting default routed. But how do you find these calls, identify issues and provide better customer service?

My search for existing tool was in vain and decided to develop it on my own (Genesys Platform SDK makes it easy to develop it too). What I want from this tool is

  • To visualize call summary for each route point – Entered, Diverted, Abandoned & Default Routed
  • See live calls for each route point – Time, Conn ID, ANI are must
  • Generate report for each call result – filter by route point

RPMonitor Screenshot

Advantages

  • Identify and solve routing issues
  • Proactively address performance bottlenecks – Database Timeout, Web Service timeout etc..
  • Identify which routing points are used. Having worked with many customers, I observed many of them are not used in production environment and afraid to remove it. This will help to provide data and boost confidence to take correct action
  • Oh yeah, saves lot of time in troubleshooting