Developer Documentation Library > 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.
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
Interviewing