Developer Documentation Library > Dialer SDK > Overview > Implementation details > Dialing provider API > IDialingProvider
 
IDialingProvider
Methods
GetDialer
GetActivityReport
SignOn
SignOff
DialCallForExtension
Hangup
GetCallStatus
RunAudioOperation
StartMonitoring
StopMonitoring
SetPerfEventsHandler
Destructor
Properties
SampleProviders
DPMAgent
See also
_Dialer and _ExtensionName properties
Dialing provider API
GetDialer
Syntax
GetDialer(DialerName As String, GetInactiveDialers As Boolean) As Variant
Type
Method
Parameters
DialerName
The name of the dialer to retrieve.
GetInactiveDialers
If set to True, return the dialer object even if inactive.
Return Value
Return a scriptable dialer object that can be used from an interview script. Return not implemented if your dialing provider does not provide a scriptable dialer object.
Description
The returned dialer object is referenced as _Dialer and the extension name for the current interview is referenced using _ExtensionName. See _Dialer and _ExtensionName properties for more information.
For information about how IVR is implemented by the UNICOM Intelligence Dialer, see Interactive Voice Response interviews.
See also
IDialingProvider
GetActivityReport
Syntax
GetActivityReport(ReportName As String, PropertiesXml As String) As ActivityReportXml
Type
Method
Parameters
ReportName
The name of the required activity report.
PropertiesXml
Report properties used to filter the activity report.
Return value
ActivityReportXml
Report XML as specified in GetActivityReport.
See GetActivityReport.
Description
The dialing provider is responsible for creating the DialingActivity report and can throw an error if a different report is requested. The method must create the report XML.
See also
IDialingProvider
SignOn
Syntax
SignOn(SampleManagementName As String, PropertiesXml As String) As SampleManagementResultXml
Type
Method
Parameters
SampleManagementName
The name of the sample management DPM object used to access sample management parameters for the project.
PropertiesXml
The project, interview, interviewer, and station properties as SampleManagementXml.
Return value
SampleManagementResultXml
Description
1 Create or start project (if necessary).
2 Sign the interviewer on to the extension and project, including connecting a remote interviewer or supervisor.
Generally the interviewer is added to a group for dialing separately to the SignOn, as the dialing provider might want to dial some calls for the particular interviewer before adding the interviewer to the group. If the dialer supports a recovery process, the dialing provider might want to initiate the recovery process before recreating the process. This could include returning records that have become “stuck” on the dialer so that the records are not stuck in the ACTIVE queue.
Remarks
The session engine will call SignOn again without signing off if something about the interviewer changes, for example interviewer qualifications.
See also
IDialingProvider
SignOff
Syntax
SignOff(SampleManagementName As String, PropertiesXml As String) As SampleManagementResultXml
Type
Method
Parameters
SampleManagementName
The name of the sample management DPM object used to access sample management parameters for the project.
PropertiesXml
The project, interview, interviewer, and station properties as SampleManagementXml.
Return Value
SampleManagementResultXml
Description
1 Remove the interviewer from dialing groups if not already removed. Phone Participants cannot handle connects at this point.
2 Disconnect the extension including the remote extension if this is a remote interviewer or supervisor.
When interviewer properties are changed, the dialing provider is checked to determine if the interface IDialingProvider2 is supported. If it is supported, the session engine will call IDialingProvider2.UpdateSession. If it is not supported, IDialingProvider SignOff will be called.
See also
IDialingProvider
DialCallForExtension
Syntax
DialCallForExtension(SampleManagementName As String, PropertiesXml As String, SampleRecordXml As String) As SampleManagementResultXml
Type
Method
Parameters
SampleManagementName
The name of the sample management DPM object used to access sample management parameters for the project.
PropertiesXml
The project, interview, interviewer, and station properties as SampleManagementXml.
SampleRecordXml
The sample record to dial as XML.
Return Value
SampleManagementResultXml – The ResultCode in the sample management result XML is smSuccess (100) if connected or terminated. In this case, the CallOutcome should be set as well.
Description
Dial a call for a particular extension as specified in the PropertiesXml. Audio call progress should be available to the interviewer. If not connected, the call outcome should be returned as the CallOutcome in the SampleManagementResultXml. However this is only a hint for the interviewer, and the interviewer will select the actual return code to be used to return the record. The record will be returned with a call to ISampleManagementProvider.Return.
See ISampleManagementProvider.Return.
See also
IDialingProvider
Hangup
Syntax
Hangup(SampleManagementName As String, StationPropertiesXml As String) As SampleManagementResultXml
Type
Method
Parameters
SampleManagementName
The name of the sample management DPM object used to access sample management parameters for the project.
StationPropertiesXml
The station properties as XML.
Return Value
SampleManagementResultXml
Description
Hangs up the extension. The method only needs to be called for connected calls.
See also
IDialingProvider
GetCallStatus
Syntax
GetCallStatus(SampleManagementName As String, StationPropertiesXml As String, LastCallStatus As Long, StatusChangeTimeout As Long) As Long
Type
Method
Parameters
SampleManagementName
The name of the sample management DPM object used to access sample management parameters for the project.
StationPropertiesXml
The station properties as XML.
LastCallStatus
The last call status supplied so that the method can block until the status changes.
StatusChangeTimeout
The maximum time in seconds to wait for the status to change. Setting StatusChangeTimeout to 0 effectively returns the current status. When the InAsyncMode setting in the Phone Participants' web.config file is set to false, the StatusChangeTimeout parameter is passed as 0, otherwise the parameter is passed as 30 (seconds). For example:
<add key="InAsyncMode" value="true"/>
Return value
Current status
-1 if a call is in progress, which means that the command to dial has been sent to the dialer but the result (connected or terminated) has not yet been returned.
0 if a call is connected
A dialer call outcome if the call has been terminated. The dialer call outcomes should match the return codes referenced in Call outcome mapping.
Description
This method is used to detect changes in call status for an extension. By default, the method is polled every second, but it can be changed via the CheckCallConnectionStatusInterval setting in the Phone Participants' web.config file. For example:
<add key="CheckCallConnectionStatusInterval" value="1000"/>
Value is an integer that represents the interval (in milliseconds) between checks on the state of a dialer call connection. The setting only applies to projects that use a dialer. The minimum value 200; the maximum value 5000. The default value is 1000.
See also
IDialingProvider
RunAudioOperation
Syntax
RunAudioOperation(SampleManagementName As String, StationPropertiesXml As String, Operation As AudioOperation, FileName As String, ExtendedParameters As String) As AudioOperationResultXml
Type
Method
Parameters
SampleManagementName
The name of the sample management DPM object used to access sample management parameters for the project.
StationPropertiesXml
The station properties as XML.
Operation
The audio operation to run; aoPlayAudio, aoStopAudio, aoStartRecording, aoStopRecording, aoPlayDTMF.
FileName
The name of the file to play or record. For DTMF playback, this is a string of DTMF tones to play. The dial pad can send digits 123456789*#.
ExtendedParameters
Extended parameters to pass to the dialer for the audio operation. Reserved for future use.
Return value
AudioOperationResultXml
Description
Depending on the Operation value, start or stop an audio playback, start or stop recording, or play a DTMF string.
It is expected that multiple audio operations are possible at one time. If your dialer does not support multiple audio operations, return aoAlreadyActive and document the limitation in your supplemental documentation.
Remarks
UNICOM Intelligence Interviewer has conventions for file names that are documented in the UNICOM Intelligence Developer Documentation Library and used within the system so it is important that Interviewer Server be able to define the FileName for recording.
See also
IDialingProvider
StartMonitoring
Syntax
StartMonitoring(SampleManagementName As String, StationPropertiesXml As String, StationToMonitorPropertiesXml As String, ExtendedParameters As String) As AudioOperationResultXml
Type
Method
Parameters
SampleManagementName
For station to monitor.
StationToMonitorPropertiesXml
The station to monitor properties as XML.
StationPropertiesXml
The station properties as XML.
ExtendedParameters
Extended parameters to pass to the dialer for the audio operation. Reserved for future use.
Return value
AudioOperationResultXml
Description
Start monitoring the specified extension. If the station is already monitoring an extension, switch to the new extension.
See also
IDialingProvider
StopMonitoring
Syntax
StopMonitoring(SampleManagementName As String, StationPropertiesXml As String) As AudioOperationResult
Type
Method
Parameters
SampleManagementName
For station being monitored.
StationPropertiesXml
The station properties as XML.
Return value
AudioOperationResultXml
Description
Stop monitoring on this extension.
See also
IDialingProvider
SetPerfEventsHandler
Syntax
SetPerfEventsHandler(PerfEvents As IDialingPerfEvents)
Type
Method
Parameters
PerfEvents
An IDialingPerfEvents object to handle events from the dialer.
Return value
N/A
Description
If a PerfEvents object has been supplied, signal the object when an event occurs. Currently the only event defined is OnDialerError. Signaling this event will increment the dialer error count displayed in Dialer Administration.
See also
IDialingProvider
Destructor
Syntax
Destructor
Type
Destructor
Parameters
N/A
Return value
N/A
Description
Called on session engine shutdown.
Typically the session engine will try to clean up before shutting down by signing off all interviewers. The session engine will only call the destructor without cleaning up first if there is an emergency. Therefore, if the destructor is called without cleaning up, the dialing provider should only clean up what can be cleaned up quickly and without event handling. As mentioned in Fail over, it might be useful to support a recovery process that occurs during SignOn and supports returning records so they are not stuck in the ACTIVE queue.
See also
IDialingProvider
SampleProviders
Syntax
SampleProviders As ISampleManagementProviders
Type
Property (read/write)
Parameters
N/A
Description
A collection of ISampleManagementProvider objects used by the dialing provider to get and return the sample management record.
See also
IDialingProvider
DPMAgent
Syntax
DPMAgent As Variant
Type
Property (read/write)
Parameters
N/A
Description
The DPM Agent object to be used to retrieve properties.
Remarks
Set by the session engine to support easy access to DPM properties.
See also
IDialingProvider
_Dialer and _ExtensionName properties
The returned dialer object is referenced as _Dialer and the extension name for the current interview is referenced using _ExtensionName. The _Dialer property provides access to a specific dialer object model, depending on the dialer in use for the interview. The _ExtensionName property indexes object model collection to obtain an extension object.
Example
QTransfer "Thanks for your help, I need to transfer your call to another interviewer for further discussion. Is that ok?"
categorical [1..1]
{
Yes "Yes",
No "No"
};

QTransferred "Please wait for the call to be transferred then choose Yes if the transfer occurred and No if there was an error"
categorical [1..1]
{
Yes "Yes, transfer occurred",
No "No, there was an error"
};
In the following example, a PRO-T-S third party dialer is being used. The PRO-T-S dialer object model includes an InterviewerExtensions object (other third party dialers might use different object models). The example uses the generic _Dialer and _ExtensionName intrinsics to access functionality specific to the PRO-T-S dialer.
QTransfer.Ask()
If (QTransfer = {Yes}) Then
' Access the dialer specific Extension object model
' and send the dialer specific command
_Dialer.InterviewerExtensions[_ExtensionName].SendUserInformation("FH: 9000T" + TransferPhoneNumber + DTMF)

QTransferred.Ask()
' Etc...


End If
The PRO-T-S dialer object model includes a SendUserInformation method on the extension object that can be used to send specific commands.
FH is a Flash Hook for PRO-T-S
9000T causes a transfer
TransferPhoneNumber is the phone number from which to transfer
DTMF to send in order to finish the transfer
See also
IDialingProvider