Dialer SDK > UNICOM Intelligence Interviewer - Server Admin architecture > Interviewing > Requesting a contact
 
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.
The SignOn method is used to initialize the project and sign the interviewer onto the extension and project. This includes connecting the interviewer if the interviewer is defined as remote. See Remote interviewers/supervisors for more information on remote interviewers.
Phone Participants then calls ISessionEngine.GetNewSampleRecord, which calls IDialingProvider.Get. The Get method will block until the interviewer is connected to a record. See Group dialing for a description of how the QSamp dialing provider handles this input.
The first responsibility of the Get function is to write a sample history record indicating the interviewer’s idle time. The history table will be discussed in more detail in the reporting section. Refer to History table for more information about the HistoryTable. Monitoring and reporting on autodialer projects describes the use of the sample management tables (including the HistoryTable) in reports, and provides a diagram with detailed information about how HistoryTable records should be written to provide proper input for Phone Reports.
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, allowing 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 may 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.
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.
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. Once the respondent is 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
Interviewing