Requesting a contact
When an interviewer requests the first contact, the session engine caches the project and sample management objects and calls IDialingProvider.SignOn. UNICOM Intelligence Interviewer does not have the concept of starting or stopping a project. If your dialer has this capability, the project should be started when the session engine signs on the first interviewer using IDialingProvider.SignOn.
Signing on
The
SignOn method initializes the project, and then signs the interviewer onto the extension and project. This includes connecting the interviewer if the interviewer is defined as remote. For more information on remote interviewers, see
Remote interviewers/supervisors .
Phone Participants then calls
ISessionEngine.GetNewSampleRecord, which calls
IDialingProvider.Get. The
Get method will block until the interviewer is connected to a record. For information of how the
QSamp dialing provider handles this input, see
Group dialing.
Sample history record
The first responsibility of the
Get function is to write a sample history record indicating the interviewer’s idle time. For more information about the history table, see
History table. For more information about using the sample management tables (including the
HistoryTable), see
Monitoring and reporting on autodialer projects.
Support for preview and interviewer specific dialing
Implementation of the
Get method for a group dialing provider should provide support for preview and interviewer specific dialing. The UNICOM Intelligence Dialer provides this support by retrieving a record for extension dialing before making the interviewer available to the group. Call
SampleManagementProvider.Get with the
UserId set to the interviewer login and
GroupDial=0 to retrieve this type of record. If the sample management script retrieves a record that must be previewed, it returns the record with the
AutoDial SampleField or
InterviewerProperty set to 0. A record returned with
AutoDial set to 0 should be returned without dialing, so that the interviewer to preview the record. For more information about Preview, see
Preview and manual dial.
If the record is not a preview record, it might have been returned for a specific interviewer and should be extension dialed. If the record connects, then Get can return with the record details. If the extension dialed record does not connect, then the interviewer can be added to the group and records retrieved for group dialing. Get must block and wait for connect before returning the connected record's details.
This generally means a separate thread that retrieves records from the SampleManagementProvider (possibly based on messages from the dialer) dials records for the group, returns records that have not been connected using ISampleManagement.Return, and signals the original thread to wake up when a respondent is connected for the particular interviewer.
Dailer call outcomes and return codes
For every record that is returned,
ISampleManagement.Return is responsible for mapping the dialer call outcome to a sample return code and then writing a record, with the appropriate return code, to the sample history table. Your installation kit should setup a call outcome to return the code mapping collection in DPM, as described in
Call outcome mapping, to support this conversion.
When a call is connected, the Dialing Provider must write a Call_Connect history record. The dialing provider must also write an Interviewer_Wait record, that indicates how long the interviewer has been waiting.
Extension dialing
When extension dialing, records can be retrieved, dialed, and returned on the main Get thread since only one record is in use for each interviewer at a time. A second thread is still required for dialers that provide events rather than blocking calls for dialing. After the respondent has been connected and Get returns, Phone Participants displays the sample information and introductory text that allows the interviewer to introduce the survey and persuade the respondent.
See also