Posted by blakshmikanth on October 26, 2009
What happens if the agent has personal callback in Campaign A and moved to campaign B…? Interesting question from the customer..
Tested and found that OCS fails with Agent Callback error in this scenario
What can we do now?
Fortunately, got workaround solution using treatments..
- Configured treatment for Agent Callback error and assigned to Group
My customer is happy with this work around solution..if you have any other solution, let us know..
Posted in Dialer (OCS), Genesys, How to | Tagged: Callback, Genesys, Genesys outbound, OCS | Leave a Comment »
Posted by blakshmikanth on October 26, 2009
Reference: http://www.dialogic.com/support/helpweb/dxall/iw1365.aspx
Issue overview:
The AutoCPA tool allows the testing and tuning of various call progress parameters outside of a production environment by using a set of recordings that represent a real site. This type of information may be useful when troubleshooting call progress analysis issues, for example.
The AutoCPA tool performs call progress analysis (CPA) using the dx_dial API method with two voice resources (one voice resource for playing the file and the other for performing CPA) and recorded PCM files. The tool does not require any network resources and can be configured for various test scenarios. The tool can be loaded with multiple recorded PCM files and logs detection results directly to a command window and output text file for analysis.
Recordings:
Users of the AutoCPA tool must gather recordings themselves for testing – the AutoCPA tool does not make the recordings itself. Recordings are normally gathered from another system in PCM 8K. The recordings should commence when the application starts call progress analysis and should end when the call has completed such that all the audio is captured.
Alternatively, the Dialogic® SC Record tool can be used to record ALL the call activity on a particular voice channel for a certain amount of time. The user must then separate the calls into individual files using an audio editor. Note all recordings must have the PCM extension – otherwise the AutoCPA tool will not recognise the files. A link to SC Record utility can be found here.
Once completed, the PCM recordings can then be moved into the PCM directory of the AutoCPA tool (or where specified in the config.inf file – PCMdir field)
Configuration:
The AutoCPA configuration (where applicable) is done through config.inf file, which is loaded upon initialization. Not all the parameters in the config.ini file are common between Dialogic® DM3 series Media Boards and Dialogic® JCT series Media Boards; for more information, visit the programming library documentation. The settings include:
• General config: PCM directory, log output, voice resources.
• DX_CAP Struct Settings
• CPA Qualification Templates (JCT Media Boards only – configuration of DM3 Media Boards is done manually through the protocol configuration file)
• Global Tone Definitions (user and pre-defined)
The following settings are required to run the AutoCPA tool – all remaining settings will be set to their default values if commented out.
PCMdir = PCM # Directory where PCM recorded files are stored
LogFile = Results.txt # Filename to log output
PlayDev = dxxxB1C1 # Voice device used for playing recorded PCM file
CallpDev = dxxxB1C2 # Voice device used for call progress
Usage and output:
Once the recordings have been gathered and the configuration file has been saved, run the AutoCPA tool in a command prompt or double-click the file – no command line arguments are needed.
Once the tool has processed the PCM recordings in the specified PCM directory, the results will be written to the Results.txt file (or the location specified in the config.inf file – LogFile field). The results log file will contain the detected result for each recording in the following format:
[Recording directory] \ [recorded filename] * [detection result] * [detection time]
For example, the detection result: PCM\test.pcm * CON_PVD * 6.360 means: test.pcm was detected as a Positive Voice Detection (PVD) at 6.360 seconds into the file. The detection time can be useful, for example, to diagnose mis-detection issues that may have been caused by background noise.
What are the problem types that AutoCPAcan be used for?
- Mis-detections and tuning while using the DX method of CPA
- DTMF mis-detections and tuning
- Tone Definitions mis-detections and tuning
Product list:
Dialogic® DMV Media Boards
Dialogic® JCT Media Boards
Dialogic® Host Media Processing (HMP) Software for Windows®
GLOSSARY OF ACRONYMS / TERMS
CPA – Call Progress Analysis
PVD – Positive Voice Detection
PAMD – Positive Answering Machine Detection
Posted in Dialer (OCS), Dialogic | Tagged: AutoCPA, Call Progress Analysis, CPA, Dialogic | Leave a Comment »
Posted by blakshmikanth on October 26, 2009
Summary:
This technote provides instructions for modifying the Positive Answering Machine Detection (PAMD) and Positive Voice Detection (PVD) qualification template parameters on Dialogic® Springware, DM3 and Host Media Processing (HMP)-based boards in seeking higher successful PAMD and PVD rates.
Overview:
Call Progress Analysis (CPA) is the process used to automatically detect whether an answering machine or live voice answered a call. Dialogic® products have the ability to detect these conditions with audio streams that can come over a Public Switched Telephone Network (PSTN) connection or IP connection. Positive Answering Machine Detection (PAMD) and Positive Voice Detection (PVD) are classifications of the Call Progress Analysis feature that enable the application to determine whether a call has been answered by an answering machine or a live person.
The original PAMD and PVD algorithms take into account variables such as the length of the greeting and the background noise level. The current business and home environments have significantly shifted from analog to digital / IP phones so that the original algorithms no longer produce satisfactory results. This technote provides instructions for modifying the PAMD and PVD qualification template parameters on Dialogic® Springware, DM3 and Host Media Processing (HMP)-boards to help accomplish higher successful PAMD and PVD rates. The same procedure can be followed for Windows® and Linux service releases as well as the dx_dial or GlobalCall method of initiating Call Progress.
Qualification Templates:
The Call Progress Qualification Templates are a set of parameter definitions that control voice and answering machine detection. The same parameters are present in Dialogic® product lines including Springware, DM3, HMP-based boards and control detections regardless of using the DX or GC method. The Qualification Templates are broken down into two sections: PVD and PAMD. Tables 1 and 2 below contain all the parameters for both PVD and PAMD sections as well as the default and recommended values for each parameter. (Note: default values may change with new Service Updates. Always check System Release Update Guide for more information).
Modifying Qualification Templates Dialogic Springware:
When using a Dialogic® Springware board, PVD and PAMD qualification template modifications are only available via an undocumented API and can be modified without restarting the Dialogic service. In addition, qualification template settings are reset to the defaults each time the Dialogic service is restarted. Thus, it is required that any modifications be done upon application initialization.
There are two undocumented functions that can be used to view and modify the PVD and PAMD qualification template parameters: dx_setqualtmplate and dx_getqualtmplate. To set the parameter values of the PVD and PAMD templates a data structure needs to be created with the values from Tables 1 and 2 above. Pass each of the qualification data structures to the dx_setqualtmplate function with the voice board device and template ID. NOTE: The dx_setqualtmplate and dx_getqualtmplate functions are both undocumented API’s and should be used at your own risk – Dialogic may change or remove the usage of these API’s without written notice.
tn_qlt.pvd_qual.qminsnr = qminsnr;
tn_qlt.pvd_qual.qmaxsnr = qmaxsnr;
tn_qlt.pvd_qual.maxpk = maxpk;
tn_qlt.pvd_qual.maxring = maxring;
tn_qlt.pvd_qual.ringthres = ringthres;
tn_qlt.pvd_qual.pvdwin = pvdwin;
tn_qlt.pvd_qual.pvdthresh = pvdthresh;
tn_qlt.pvd_qual.pvdrblow = pvdrblow;
tn_qlt.pvd_qual.pvdrbhig = pvdrbhig;
tn_qlt.amd_qual.maxansiz = maxansiz;
tn_qlt.amd_qual.maxans2 = maxans2;
tn_qlt.amd_qual.maxans3 = maxans3;
tn_qlt.amd_qual.lohiss = lohiss;
tn_qlt.amd_qual.hihiss = hihiss;
tn_qlt.amd_qual.bhparm = bhparm;
tn_qlt.amd_qual.cvthr1 = cvthr1;
tn_qlt.amd_qual.cvthr2 = cvthr2;
tn_qlt.amd_qual.maxcvth = maxcvth;
tn_qlt.amd_qual.nmaxbrod = nmaxbrod;
tn_qlt.amd_qual.nmaxerg = nmaxerg;
tn_qlt.amd_qual.maxsil = maxsil;
tn_qlt.amd_qual.voice_thres = voice_thres;
tn_qlt.amd_qual.sil_thres = sil_thres;
tn_qlt.amd_qual.bandf_low = bandf_low;
tn_qlt.amd_qual.bandf_high = bandf_high;
dx_setqualtmplate(dev, qual_template, &tn_qlt)
dx_getqualtmplate(dev, qual_template, &tn_qlt)
where…
dev – voice board device handle (dxxxB1)
qual_template – qualification template ID- PVD (5) or PAMD (11)
tn_qlt – pointer to the qualification template data structure
Please see attached QUAL.C source code for complete usage.
DM3:
When using a Dialogic® DM3 board, all PVD and PAMD qualification template modifications are ONLY available via config files and can NOT be modified without restarting the Dialogic® service. The following steps will be used to modify DM3 qualification templates:
- As a precaution, save a backup copy of the fcd, pcd and config files which you will be editing
- Scroll down to the bottom of the .config file to the [sigDet] section that begins with “!GENERIC QUAL TEMPLATE – For R4 User Defined Tones. Note: There are several [sigDet] sections in the .config file so be sure to find the correct one.
- Add "init iNNN” immediately below the [sigDet] line where iNNN is the following: Voice Channels iNNN
E1 – 60 Voice Channels i60
E1 – 120 Voice Channels i120
T1 – 48 Voice Channels i48
T1 – 96 Voice Channels I96
- Scroll down to the bottom of the [sigDet] section, and add “DeletePvd 128193”. The number represents the default PVD qualification ID defined for DM3 boards.
- On the next line, add the new PVD qualification template parameters followed by "CreatePvd".
- On the next line, add “DeletePamd 106561”. The number represents the default PAMD qualification ID defined for Dialogic® DM3 boards.
- On the next line, add the new PAMD qualification template parameters followed by "CreatePamd".
[sigDet]
init i96
!Delete the default PVD qualification template
DeletePvd 128193
!User defined Pvd template.
PvdDesc signalId 128193
PvdDesc signalLabel 0000
PvdDesc minSnr 50
PvdDesc maxSnr 600
PvdDesc maxPk 2
PvdDesc maxRing 5
PvdDesc ringThresh 10000
PvdDesc PvdWin 8
PvdDesc PvdVthresh 5000
PvdDesc PvdRbLow 380
PvdDesc PvdRbHigh 510
CreatePvd
!Delete the default PAMD qualification template
DeletePamd 106561
!User defined PAMD template.
PamdDesc signalId 106561
PamdDesc signalLabel 0000
PamdDesc minRing 190
PamdDesc mask 1
PamdDesc maxAnsiz1 159
PamdDesc maxAnsiz2 159
PamdDesc maxAnsiz3 159
PamdDesc loHiss 22
PamdDesc hiHiss 16
PamdDesc bhParm 5
PamdDesc cvThresh1 80
PamdDesc cvThresh2 165
PamdDesc maxCvThresh 390
PamdDesc nMaxBroad 2
PamdDesc nMaxErg 65
PamdDesc maxSilence 45
PamdDesc voiceThresh 25
PamdDesc silenceThresh 5000
PamdDesc rjFbandLow 0
PamdDesc rjFbandHigh 0
CreatePamd
- Save changes to the .config file and exit text editor.
- Using a text editor, open the .pcd file corresponding to the .config file you just modified.
- Scroll down to the [COMP sigdet] section and change the InitOption value from YES to NO. The section should be revised as follows:
[COMP sigdet]
{
Attribute :std_ComponentType:0×07
NumInstances :96
StartInstanceNum :1
ConfigOption :YES
InitOption :NO <———– Change from YES to NO
DependentComp :waveAnalyser
}
Note: NumInstances will vary depending on the board in use. In this example, the value reflects a T1 board with 96 channels.
- Save your changes to the .pcd file and run the fcdgen utility to create an fcd file:
fcdgen filename.config
- Restart DCM for changes to take effect
Please see attached DM3 Config File for complete template changes.
Host Media Processing (HMP):
When using Dialogic® HMP-based boards (i.e., Dialogic® based on or otherwise incorporating Dialogic® HMP software), all PVD and PAMD qualification template modifications are ONLY available via config files and can NOT be modified without restarting the Dialogic® service. The following steps will be used to modify HMP qualification templates:
Note: 4r4v4e4c4s4f4i_hib_pur pcd/fcd/config file will be used as an example in this procedure. Your pcd/fcd/config file names likely will change based on license and system release used.
- As a precaution, save a backup copy of the fcd, pcd and config files which you will be editing
- Open the Host’s PCD file (4r4v4e4c4s4f4i_hib_pur.pcd) and search for "COMP sigdet"
- Once you’ve found this section change the InitOption from YES to NO
- Also, while here note the NumInstances, you will need to reference this in the config file.
[COMP sigdet]
{
Attribute :std_ComponentType:0×07
NumInstances :4 <————-Note this value
StartInstanceNum :1
ConfigOption :YES
InitOption :NO <———– Change from YES to NO
DependentComp :waveAnalyser
}
- Save and exit the PCD file and open the hosts config file (4r4v4e4c4s4f4i_hib_pur.config)
- Search for the "[sigDet]" section of the config file – if the section does not exist add it at the bottom of the config file
- Add "init iNNN” immediately below the [sigDet] line where iNNN is the NumInstances noted in the pcd file
- On the next line add “DeletePvd 128193”. The number represents the default PVD qualification ID defined for HMP.
- On the next line, add the new PVD qualification template parameters followed by "CreatePvd".
- On the next line, add “DeletePamd 106561”. The number represents the default PAMD qualification ID defined for HMP.
- On the next line, add the new PAMD qualification template parameters followed by "CreatePamd".
[sigDet]
init i4
!Delete the default PVD qualification template
DeletePvd 128193
!User defined Pvd template.
PvdDesc signalId 128193
PvdDesc signalLabel 0000
PvdDesc minSnr 50
PvdDesc maxSnr 600
PvdDesc maxPk 2
PvdDesc maxRing 5
PvdDesc ringThresh 10000
PvdDesc PvdWin 8
PvdDesc PvdVthresh 5000
PvdDesc PvdRbLow 380
PvdDesc PvdRbHigh 510
CreatePvd
!Delete the default PAMD qualification template
DeletePamd 106561
!User defined PAMD template.
PamdDesc signalId 106561
PamdDesc signalLabel 0000
PamdDesc minRing 190
PamdDesc mask 1
PamdDesc maxAnsiz1 159
PamdDesc maxAnsiz2 159
PamdDesc maxAnsiz3 159
PamdDesc loHiss 22
PamdDesc hiHiss 16
PamdDesc bhParm 5
PamdDesc cvThresh1 80
PamdDesc cvThresh2 165
PamdDesc maxCvThresh 390
PamdDesc nMaxBroad 2
PamdDesc nMaxErg 65
PamdDesc maxSilence 45
PamdDesc voiceThresh 25
PamdDesc silenceThresh 5000
PamdDesc rjFbandLow 0
PamdDesc rjFbandHigh 0
CreatePamd
- Save and exit the config file and run the fcdgen utiltiy to create an fcd file: fcdgen 4r4v4e4c4s4f4i_hib_pur.config
- Restart the Dialogic HMP services.
Please see attached config file HMP Config File for completed template changes.
Related Documentation:
It is also recommended to review the application note: Call Progress Analysis: Global Call API Usage and Protocol Configuration
Glossary of Acronyms and Terms:
Global Call CPA — Global Call API function calls perform CPA using an attached voice device and report CPA results via the GCEV_MEDIADETECTED and GCEV_DISCONNECTED events.
Voice API CPA — The Voice API dx_dial() function performs CPA using a voice resource directly and reports results via the TDX_CALLP event.
Qualification template — Definitions used by the PAMD and PVD algorithms in detecting voice detection
Posted in Dialer (OCS), Dialogic | Tagged: Call Progress Analysis, CPA, Dialogic, OCS | Leave a Comment »
Posted by blakshmikanth on October 12, 2009
When I was preparing design document using templates, I found that having line number was useful, especially for review.
Struggled a bit to set this using Office 2007, used Microsoft help to get these details…:-)
- On the Page Layout tab, in the Page Setup group, click Line Numbers.

Note If your document is divided into sections and you want to add line numbers to the entire document, you first need to select the document. Click Select in the Editing group on the Home tab, and then click Select All. Or press CTRL+A.
- Do one of the following:
- To number consecutively throughout the document, click Continuous.
- To start with number 1 on each page, click Restart Each Page.
- To start with number 1 after each section break, click Restart Each Section.
Remove line numbers
You can remove line numbers from the entire document, from a section, or from a paragraph.
- Click in the document, or click in the section or paragraph from which you want to remove line numbers. If you want to remove line numbers from multiple sections, select the sections.
- On the Page Layout tab, in the Page Setup group, click Line Numbers.

- Do one of the following:
- To remove line numbers from the entire document or section, click None.
- To remove line numbers from a single paragraph, click Suppress for Current Paragraph.
Reference: http://office.microsoft.com/en-us/word/HP012292791033.aspx
Posted in How to, Resources | Tagged: Microsoft Word, Office 2007 | Leave a Comment »
Posted by blakshmikanth on September 23, 2009
| Call Result |
Enumeration |
Description |
| Abandoned |
21 |
|
| Agent CallBack Error |
47 |
|
| All Trunks Busy |
10 |
|
| Answer |
33 |
|
| Answering Machine Detected |
9 |
|
| Bridged |
31 |
|
| Busy |
6 |
|
| Call Drop Error |
42 |
|
| Cancel Record |
52 |
|
| Cleared |
19 |
|
| Conferenced |
2 |
|
| Consult |
24 |
|
| Converse-On |
30 |
|
| Covered |
29 |
|
| Deafened |
49 |
|
| Dial Error |
41 |
|
| Do Not Call |
51 |
|
| Dropped |
26 |
|
| Dropped on No Answer |
27 |
|
| Fax Detected |
17 |
|
| Forwarded |
23 |
|
| General Error |
3 |
|
| Group Call Back Error |
48 |
Generated by OCS internally when a call record is rescheduled according to a “Campaign Callback” request from the desktop application; however, OCS cannot find an available agent to receive the callback record.
|
| Held |
50 |
|
| No Answer |
7 |
Ring without answer at destination. |
| No Dial Tone |
35 |
|
| No Established Detected |
38 |
|
| No Port Available |
44 |
|
| No Progress |
36 |
|
| No Ring Back Tone |
37 |
|
| NU Tone |
34 |
|
| Ok |
0 |
Call result is unset; that is, the call record has not been dialed.
|
| Overflowed |
20 |
|
| Pager Detected |
39 |
|
| PickedUp |
25 |
|
| Queue Full |
18 |
|
| Redirected |
22 |
|
| RemoteRelease |
5 |
|
| Silence |
32 |
|
| SIT Detected |
8 |
|
| SIT IC(Intercept) |
13 |
|
| SIT Invalid Num |
11 |
|
| SIT NC (No Circuit) |
15 |
|
| SIT RO (Reorder) |
16 |
|
| SIT Unknown Call State |
14 |
|
| SIT VC (Vacant Code) |
12 |
|
| Stale |
46 |
Call result is marked as Stale in the following scenario: 1. The following timer has expired: stale_clean_timeout 2. OCS marks the call result as Stale if an outbound call was transferred from: • a queue to a DN which is either not registered for OCS or does not have a logged in agent. • an agent in an outbound campaign to a DN which is not registered for OCS.
|
| Switch Error |
43 |
|
| System Error |
4 |
|
| Transfer Error |
45 |
|
| Transferred |
1 |
|
| Unknown Call Result |
28 |
Default. All records should be set to this call result before starting a campaign.
|
| Wrong Number |
53 |
Intended person cannot be reached at this number. This call result is sent by the desktop application and is not detected by the dialer
|
| Wrong Party |
40 |
Call is answered but by a wrong party; this call result is sent by the desktop application and not detected by the dialer.
|
Posted in Uncategorized | Leave a Comment »
Posted by blakshmikanth on September 21, 2009
The Primary/Backup Config Server configuration is absolutely transparent for all client applications. When a client connects to Primary Config Server, it requests information if there is a Backup instance configured. If there is, the client (here IVR Driver) gets all necessary attributes, like Host and Port. When the Primary config server fails the client will be trying to reconnect to Primary, then to Backup, until succeeds.
Actually, the same rule could be applied for Primary/Backup pairs of any Genesys servers – (they are transparent for their clients)
The bottom line is that as long as one config server of the pri/back pair is up and running there will be no problem getting the IVR Driver up and connected. If it cannot connect to either one, then there will be a problem. Otherwise it will be fine. Also, once it starts running you can take both config servers down and have no issues…it is just on start-up where it is key to get the config parameters.
Note: Got this info for Genesys support and really helped me to talk to Nortel IVR Engineers..
Posted in Genesys, How to, IVR, Uncategorized | Tagged: Genesys, HA, IVR, Nortel | Leave a Comment »
Posted by blakshmikanth on September 18, 2009
VB6 Snippet to delete old log files
Private Sub deleteOldFiles()
Dim sFileName As String
Dim sFileSplit() As String
Dim sFileSpec As String
Dim sDir As String
Dim iCount As Integer
Dim iCtr As Integer
Dim dCompDate As Date
Dim dFileDate As Date
On Error GoTo errHandler
sFileSpec = App.Path & "\logs\*.log"
sFileName = Dir(sFileSpec)
dCompDate = Format(Now, "mm/dd/yyyy")
Do
If sFileName = "" Then Exit Do
If InStr(sFileSpec, "\") > 0 Then
sFileSplit = Split(sFileSpec, "\")
iCount = UBound(sFileSplit) – 1
For iCtr = 0 To iCount
sDir = sDir & sFileSplit(iCtr) & "\"
Next
sFileName = sDir & sFileName
End If
dFileDate = Format(FileDateTime(sFileName), "mm/dd/yyyy")
If DateDiff("d", dFileDate, dCompDate) >= 3 Then
‘Get File Attributes
If GetAttr(sFileName) = 33 Then
SetAttr sFileName, 32
End If
Kill sFileName
End If
sFileName = Dir
sDir = ""
Loop
Exit Sub
errHandler:
MsgBox Err.Number & ":" & Err.Description
End Sub
Posted in How to | Tagged: Logging, Visual Basic 6 | Leave a Comment »
Posted by blakshmikanth on September 18, 2009
Function to write log file using Visual Basic 6
Private Sub writeLog(strMessage As String)
Dim hFile As Long
Dim sFolder As String
Dim sFile As String
Dim sDestination As String
Dim sLog As String
On Error GoTo errHandler
hFile = FreeFile()
sFolder = App.Path & "\logs"
sFile = sFolder & "\Softphone.log"
sLog = Format(Now(), "yyyy-mm-dd HH:nn:ss") & "." & Right(Format(Timer(), "0.000"), 3)
sLog = sLog & vbTab & strMessage
If lLineNumber > 60000 Then ‘Approx 5 MB
lLineNumber = 1
sDestination = sFolder & "\Softphone_" & Format(Now(), "yyyymmdd_HHnnss") & ".log"
FileCopy sFile, sDestination
Kill sFile
Else
lLineNumber = lLineNumber + 1
End If
Open sFile For Append As #hFile
Print #hFile, sLog
Close hFile
Exit Sub
errHandler:
If Err.Number = 76 Then ‘If folder not exists, create it
MkDir sFolder
Resume
End If
MsgBox Err.Number & ":" & Err.Description
End Sub
Posted in How to | Tagged: Logging, Visual Basic 6 | Leave a Comment »
Posted by blakshmikanth on September 11, 2009
To load strategies in extension, you need to configure strategy details manually for DN. Let URS_01 is our UR Server, 5001 is our DN and we would like to run our strategy ‘Sample’ on ‘ringing’ event. Here are the details for the same
- Open DN 5001 and go to ‘Annex’ Tab
- Create a section named ‘URS_01′ (same as UR Server name)
- Create options ‘event_arrive’ with value as ‘ringing’
- Create option ’strategy’ with value as ’sample’ (name of the strategy)
- Create option ’strategy0×65′ with value as ’sample’ (name of the strategy)
Simple..isn’t it
Posted in Uncategorized | Leave a Comment »
Posted by blakshmikanth on September 11, 2009
Select VQ in target block with timeout of 0 and a dummy place selected for routing.
Will get a peg on the VQ and the call will go out of the red port.
Posted in Genesys, Routing | Tagged: Routing, Virtual Queue | Leave a Comment »