ISampleManagementProvider
Dialing providers should implement the Get and Return methods of ISampleManagementProvider. Dialing providers should delegate the work of retrieving and returning the sample record to Get and Return to the selected sample management provider. There are examples of this in the sample code.
Dialing providers can return not implemented for the other methods and properties. The session engine will then delegate these to the selected ISampleManagementProvider.
Methods
Method
|
Implementation
|
Load
|
Not implemented for dialing providers
|
Add
|
Not implemented for dialing providers
|
Remove
|
Not implemented for dialing providers
|
Authenticate
|
Not implemented for dialing providers
|
Get
|
|
Query
|
Not implemented (reserved for future use)
|
Return
|
|
Update
|
Not implemented for dialing providers
|
SetScript
|
Not implemented for dialing providers
|
GetScript
|
Not implemented for dialing providers
|
ParseScript
|
Not implemented for dialing providers
|
RunScriptFunction
|
Not implemented for dialing providers
|
Properties
Property
|
Implementation
|
ReturnCodes
|
Not implemented for dialing providers
|
Queues
|
Not implemented for dialing providers
|
AuthenticationFields
|
Not implemented for dialing providers
|
See also
Get
Syntax
Get(SampleManagementName As String, PropertiesXml As String, SampleFieldsXml As String, Optional QuotaEngine as Variant) As SampleManagementResultXml
Type
Method
Parameters
SampleManagementName
The name of the sample management object.
PropertiesXml
The project, interview, interviewer, and station properties as SampleManagementXml
SampleFieldsXml
Sample fields to be used to retrieve a specific record. The sample management script will always return with AutoDial=0 when retrieving a specific contact so the dialer does not need any special handling for this case.
QuotaEngine
Optional. A QuotaEngine for the project. The QuotaEngine is used by the sample management script to pend, complete, and rollback quotas for the project. The dialing provider should not need to interact with the QuotaEngine.
Return value
SampleManagementResultXml
Notes that the SampleRecordXml provided as part of the SampleManagementResultXml from the selected sample management’s Get must be returned in its entirety from the dialing provider’s implementation of ISampleManagementProvider.Get. The session engine uses the information in the SampleRecordXml to reconnect to the correct quota engine.
Description
This description assumes group dialing and an implementation where the predictive algorithm is implemented by the dialer.
Setup the interviewer qualifications.
Write an idle time record to the history table.
Make sure the remote extension is still connected if this is a remote connection.
Initialize the ActivityStartTime for the wait time history record.
Get a record for preview or extension dial.
Preview or extension dial the record if necessary.
If connected, write the connect history record. Then write the wait time history record and return.
Add the interviewer to the waiting interviewers table or a similar structure that can be used for synchronization.
Make the interviewer available to the group.
Block waiting for a connected respondent (returns ResultCode=”100”, smSuccess), the auto dial timeout interval to pass (returns ResultCode=”106”, smAutoDialTimeout), or sample to run out (returns ResultCode=”110”, smNoRecords), or other error as described in the ProviderResultCodes.
When signaled, remove the interviewer from group dialing if not already removed by the connect action.
Write the wait time history record.
Return the sample record.
Asynchronously, handle requests for numbers from the dialer:
Update the UserID to “__AutoDial” to indicate group dial.
Use the selected sample management provider’s Get method to retrieve one or more numbers for group dial by properly setting the GroupDial InterviewProperty.
Pass the numbers to the dialer for group dial setting parameters based on sample fields and interview properties as appropriate. The following fields might be of interest if the default sample management script has been used.
Asynchronously, handle numbers returned from the dialer:
1 Update the ActivityStartTime to provide the correct duration.
2 Map the call outcome to a UNICOM Intelligence Interviewer return code.
3 Set DialerCallOutcome InterviewProperty in the XML to indicate the dialer call outcome.
4 If not connected, use the specific sample management provider’s Return to return the record with the return code.
5 If connected, pass the SampleManagementResultXml returned from the specific sample management provider’s Get method to the waiting interviewer and signal.
The dialing provider must hold the SampleManagementResultXml for records returned from the specific sample management provider’s Get method in memory so that it can be passed back as the return from the dialing provider Get. This is very important to ensure that the session engine can retrieve the proper record and associated QuotaEngine. The UNICOM Intelligence Dialer dialing provider handles this by hooking a unique event object for every call. The SampleManagementResultXml is then stored with that unique event object.
Sample fields
PhoneNumber
The phone number to dial. The InternationalAccessCode from the dialer configuration file should replace an initial + character in the phone number. This provides support for dialers in different countries by setting the InternationalAccessCode differently for each country.
RequiresManualDial
This sample field can be set to True if the record should be manually dialed. The sample management script will set AutoDial=0 for these records.
PreviousQueue
The record is currently in the ACTIVE Queue. If the PreviousQueue is APPOINTMENT or RECALL, then the record should be called as close to the AppointmentTime or RecallTime as possible.
AppointmentTime/ RecallTime
Scheduled appointment or recall time. The sample management script will not pass back the record unless this time is approaching.
TimeZone
All times in the sample record are in UTC. The TimeZone field can be used to turn these times into respondent time.
TryCount/ AppointmentTryCount
The number of times the record has been tried before and after making an appointment.
NoAnswerCount
The number of no answer returns for the record.
ConnectCount
The number of connect returns for the record.
CallOutcome
The last return code stored for the record. This is the Interviewer Server return code mapped from the dialer call outcome.
DayPart
A string indicating the number of tries made in each day part for the record. The TryCount/ AppointmentTryCount hold redundant information on the number of tries.
__DAYPARTNAME
Temporary field indicating the day part for which the record was retrieved.
ExpirationTime
The expiration time for the record. The record will not be retrieved from sample management after its expiration time.
CallerID
Caller id to send as part of the call. Overrides interview property, project property and anything set on dialer. See interview property description for definition of values.
Test
Indicates if this is a test interview.
InternalDialerFlags
Freeform string that can be used to store whatever your dialer requires.
See also
Return
Syntax
Return(SampleManagementName As String, SampleRecordXml As String, ReturnCodeXml As String, PropertiesXml As String, Optional QuotaEngine as Variant) As SampleManagementResultXml
Type
Method
Parameters
SampleManagementName
The name of the sample management object.
SampleRecordXml
The sample record to return as XML.
ReturnCodeXml
The return code as XML.
PropertiesXml
The project, interview, interviewer, and station properties as SampleManagementXml.
QuotaEngine
Optional. A QuotaEngine for the project.
Return value
SampleManagementResultXml
Description
This method is called when the interviewer selects a return code for a connected or manually dialed call. This description assumes group dialing and an implementation where the predictive algorithm is implemented by the dialer.
1 Hang up if not a timeout or shutdown and connected. A timeout occurs if the interviewer stays on the same page for a long period of time. Timeouts cause the interview objects to be unloaded to save resources. Avoid hang up on shutdown in case the shutdown is caused by an application pool shutdown. The interview might fail over to a new session engine so we do not want to hangup the call with the respondent.
2 Send the return code to the dialer if necessary for dialer specific reports.
3 Call the specific sample management provider’s Return method to return the sample record.
See also