TELEVANTAGE DEVELOPER`S GUIDE

Transcription

TELEVANTAGE DEVELOPER`S GUIDE
c
TELEVANTAGE DEVELOPER ’S GUIDE
TELEVANTAGE 8
COPYRIGHT
© 2008 Vertical Communications, Inc. All rights reserved. This manual and the software described in it are copyrighted
with all rights reserved. No part of this publication may be reproduced, transmitted, transcribed, stored in a retrieval
system or translated into any language in any form by any means without the written permission of Vertical
Communications, Inc.
Portions © 1999, Microsoft Corporation. All rights reserved.
TRADEMARKS
Vertical Communications and the Vertical Communications logo and combinations thereof are trademarks of Vertical
Communications, Inc. TeleVantage and the TeleVantage logo are registered trademarks of Vertical Communications,
Inc. Microsoft, Windows, and Windows NT are registered trademarks of Microsoft Corporation. SQL Server is a
trademark of Microsoft Corporation. Adobe and Acrobat are registered trademarks of Adobe Systems Incorporated.
Dialogic is a registered trademark of Dialogic Corporation. Other brand names, company names and product names are
trademarks or registered trademarks of their respective companies.
LIMITED WARRANTY ON SOFTWARE
Vertical warrants that (a) the Software will perform substantially in accordance with the accompanying written materials
for a period of (30) days from the date of receipt. Any implied warranties on the Software is limited to thirty (30) days.
Some states/jurisdictions do not allow limitations on duration of an implied warranty, so the above information may not
apply to you.
CUSTOMER REMEDIES: Vertical’s and its suppliers’ entire liability and your exclusive remedy shall be, at Vertical’s
option, either (a) return of the price paid, or (b) repair or replacement of the Software that does not meet Vertical’s
Limited Warranty and which is returned to Vertical with a copy of your receipt. This Limited Warranty is void if failure
of the Software has resulted from accident, abuse, or misapplication. Any replacement Software will be warranted for
the remainder of the original warranty period or thirty (30) days, whichever is longer.
VERTICAL AND ITS SUPPLIERS DISCLAIM ALL OTHER WARRANTIES, REPRESENTATIONS, PROMISES
AND GUARANTEES, EXPRESS OR IMPLIED, STATUTORY OR OTHERWISE, ON THE SOFTWARE, MEDIA,
DOCUMENTATION OR RELATED TECHNICAL SUPPORT INCLUDING, WITHOUT LIMITATION, THE
IMPLIED WARRANTIES OF MERCHANTABILITY, PERFORMANCE AND FITNESS FOR A PARTICULAR
PURPOSE. Vertical WILL NOT BE LIABLE FOR ANY BUG, ERROR, OMISSION, DEFECT, DEFICIENCY OR
NONCONFORMITY IN ANY SOFTWARE. AS A RESULT, THE SOFTWARE AND DOCUMENTATION IS
LICENSED “AS IS”, AND THE PURCHASER ASSUMES THE ENTIRE RISK AS TO ITS QUALITY AND
PERFORMANCE.
IN NO EVENT WILL VERTICAL OR ITS SUPPLIERS BE LIABLE FOR INDIRECT, SPECIAL, INCIDENTAL,
CONTINGENT, CONSEQUENTIAL OR SIMILAR DAMAGES OF ANY KIND RESULTING FROM ANY
DEFECT IN THE SOFTWARE OR DOCUMENTATION, INCLUDING, WITHOUT LIMITATION, ANY LOST
PROFITS OR SAVINGS, DAMAGES FROM BUSINESS INTERRUPTION, LOSS OF OR TO DATA, COMPUTER
PROGRAMS, BUSINESS, DOWNTIME, GOODWILL, DAMAGE TO OR REPLACEMENT OF EQUIPMENT OR
PROPERTY, OR ANY COSTS OF RECOVERING, REPROGRAMMING OR REPRODUCING ANY PROGRAM
OR DATA USED IN CONJUNCTION WITH THE PRODUCTS, EVEN IF Vertical, ITS SUPPLIERS OR ANYONE
ELSE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. YOU AGREE THAT Vertical’S AND
ITS SUPPLIERS’ LIABILITY ARISING OUT OF CONTRACT, NEGLIGENCE, STRICT LIABILITY IN TORT OR
WARRANTY SHALL NOT EXCEED THE AMOUNT PAID BY YOU FOR THIS PRODUCT. ANY WRITTEN OR
ORAL INFORMATION OR ADVICE GIVEN BY Vertical DEALERS, DISTRIBUTORS, AGENTS OR
EMPLOYEES WILL IN NO WAY INCREASE THE SCOPE OF THIS WARRANTY, NOR MAY YOU RELY ON
ANY SUCH WRITTEN OR ORAL COMMUNICATION. Some jurisdictions do not allow the limitation or exclusion
of implied warranties or liability for incidental or consequential damages, and some jurisdictions have special statutory
consumer protection provisions which may supersede this limitation, so the above limitation or exclusion may not apply
to you. This warranty gives you specific legal rights, and you may also have other rights which vary from jurisdiction
to jurisdiction.
Vertical Communications, Inc.
1-877-VERTICAL
www.vertical.com
#98-0000 Edition 8 January 2008
TABLE OF CONTENTS
Chapter 1. Introduction
About the TeleVantage SDK........................................................................................................................1-2
Technical Support for the TeleVantage SDK...............................................................................................1-2
Development tools and terms ......................................................................................................................1-3
Installing the SDK APIs................................................................................................................................1-3
Installing the Device Status API and IVR Plug-in API................................................................................1-3
Installing the Client API and Add-in API.....................................................................................................1-3
Installing custom applications that use TeleVantage APIs ..........................................................................1-4
Checking the TeleVantage Version Number .............................................................................................1-4
Chapter 2. The Client API
About the TeleVantage Client API ...............................................................................................................2-2
Client API object structures .........................................................................................................................2-2
Connecting to the Client API........................................................................................................................2-3
Structure of a session ..................................................................................................................................2-4
The System object .......................................................................................................................................2-5
The User object ...........................................................................................................................................2-6
How folders are used...................................................................................................................................2-7
The Folder object........................................................................................................................................2-8
Default Folder structure..............................................................................................................................2-9
Other object structures ..............................................................................................................................2-10
Agent objects............................................................................................................................................2-11
Call objects ...............................................................................................................................................2-12
CallHistory objects....................................................................................................................................2-12
CallRule objects........................................................................................................................................2-13
Contact objects.........................................................................................................................................2-13
Dialing Service objects .............................................................................................................................2-14
Greeting objects .......................................................................................................................................2-15
Message objects ......................................................................................................................................2-15
Notification objects ...................................................................................................................................2-16
PersonalStatus objects.............................................................................................................................2-16
RoutingList objects ...................................................................................................................................2-17
Schedule objects ......................................................................................................................................2-18
Shortcut objects........................................................................................................................................2-18
Station objects ..........................................................................................................................................2-19
StationFeature objects .............................................................................................................................2-19
Workgroup objects ...................................................................................................................................2-20
Starting a new Client API project in Visual Basic.......................................................................................2-20
Programming tips and examples ...............................................................................................................2-21
Chapter 3. The Add-In API
About the TeleVantage Add-In API..............................................................................................................3-2
How Add-Ins work........................................................................................................................................3-2
Add-In API Reference..................................................................................................................................3-5
Chapter 4. The IVR Plug-in API
About the TeleVantage IVR Plug-in API ......................................................................................................4-2
Using a 3rd party IVR toolkit with the IVR Plug-in API...............................................................................4-2
IVR Plug-in API component and sample applications ...............................................................................4-2
How the IVR Plug-in components work .......................................................................................................4-3
Monitoring standard and custom call data .................................................................................................4-3
IVR Plug-in licensing ..................................................................................................................................4-4
Registering and configuring IVR Plug-ins ..................................................................................................4-4
Using the Customer ID IVR Plug-in .............................................................................................................4-6
Managing the Customer ID database ........................................................................................................4-7
Working with the Customer ID sample code..............................................................................................4-8
Running an IVR Plug-in that has a GUI .....................................................................................................4-8
Debugging IVR Plug-ins in Visual Basic ....................................................................................................4-8
IVR Plug-in API quick reference ..................................................................................................................4-9
Chapter 5. The Device Status API
About the TeleVantage Device Status API ..................................................................................................5-2
How the Device Status components work ...................................................................................................5-2
Using the Device Status components..........................................................................................................5-3
Sample Device Status Application .............................................................................................................5-4
Required runtime files ................................................................................................................................5-4
Device Status API quick reference ..............................................................................................................5-5
Chapter 6. Using In-band Signaling
About in-band signaling with TeleVantage ..................................................................................................6-2
TeleVantage telephone commands .............................................................................................................6-3
Call handling menu.....................................................................................................................................6-3
Quick call menu ..........................................................................................................................................6-4
Voice mail/Account menu commands........................................................................................................6-5
Quick commands for call center agents.....................................................................................................6-6
Chapter 7. The TeleVantage TAPI Service Provider
About the TeleVantage TAPI Service Provider............................................................................................7-2
TeleVantage TAPI Service Provider capabilities .........................................................................................7-2
Supported TAPI functions ..........................................................................................................................7-2
Supported bearer modes ...........................................................................................................................7-3
Call states...................................................................................................................................................7-3
Exported TSP functions..............................................................................................................................7-3
TAPI and TeleVantage custom call data .....................................................................................................7-3
Appendix A. IVR Plug-in API Reference
Overview..................................................................................................................................................... A-2
PluginApplication interface ......................................................................................................................... A-2
CallOffering method (PluginApplication interface) .................................................................................... A-2
CallPlaced method (PluginApplication interface)...................................................................................... A-2
CallTerminated method (PluginApplication interface)............................................................................... A-3
PluginCaller interface.................................................................................................................................. A-3
AssociateCalledCallerID method (PluginCaller interface) ........................................................................ A-4
AssociateCalledExtension method (PluginCaller interface) ..................................................................... A-5
AssociateCallerID method (PluginCaller interface)................................................................................... A-5
AssociateExtension method (PluginCaller interface)................................................................................ A-6
............................................................................AssociateExtensionEx method (PluginCaller interface)A-6
CallDone method (PluginCaller interface)................................................................................................. A-7
Delete method (PluginCaller interface) ..................................................................................................... A-8
DeviceName property (PluginCaller interface).......................................................................................... A-8
Exists method (PluginCaller interface)...................................................................................................... A-8
Get method (PluginCaller interface).......................................................................................................... A-9
GetDevice method (PluginCaller interface)............................................................................................. A-11
GetMedia method (PluginCaller interface).............................................................................................. A-11
GetXmitTimeslot method (PluginCaller interface)................................................................................... A-12
Listen method (PluginCaller interface).................................................................................................... A-12
Ping method (PluginCaller interface) ...................................................................................................... A-12
PlugInComments property (PluginCaller interface) ................................................................................ A-13
PlugInDID property (PluginCaller interface)............................................................................................ A-13
PlugInExtension property (PluginCaller interface) .................................................................................. A-13
PlugInName property (PluginCaller interface) ........................................................................................ A-14
PlugInVariable property (PluginCaller interface)..................................................................................... A-14
ReleaseDevice method (PluginCaller interface) ..................................................................................... A-14
Set method (PluginCaller interface) ........................................................................................................ A-14
SetStatus method (PluginCaller interface).............................................................................................. A-16
PluginCallee interface............................................................................................................................... A-16
Exists method (PluginCallee interface) ................................................................................................... A-16
Get method (PluginCallee interface)....................................................................................................... A-17
PluginServer interface .............................................................................................................................. A-18
PlaceCall method (PluginServer interface) ............................................................................................. A-18
PluginMedia interface ............................................................................................................................... A-20
Dial method (PluginMedia interface)....................................................................................................... A-20
FlushDigitBuffer method (PluginMedia interface) ................................................................................... A-21
GetCallProgress method (PluginMedia interface) .................................................................................. A-21
GetDigits method (PluginMedia interface) .............................................................................................. A-22
GetXmitTimeslot method (PluginMedia interface) .................................................................................. A-23
Listen method (PluginMedia interface) ................................................................................................... A-23
PlayFile method (PluginMedia interface) ................................................................................................ A-24
PlayString method (PluginMedia interface)............................................................................................. A-25
PlayTone method (PluginMedia interface).............................................................................................. A-28
RecordFile method (PluginMedia interface)............................................................................................ A-29
SetRate method (PluginMedia interface) ................................................................................................ A-30
SetVolume method (PluginMedia interface) ........................................................................................... A-30
Stop method (PluginMedia interface)...................................................................................................... A-30
PluginApplicationOutbound interface........................................................................................................ A-31
PluginOutOfBandCallProgressEvents interface ....................................................................................... A-31
CallProgressIndication method (PluginOutOfBandCallProgressEvents interface) ................................ A-31
PluginOutOfBandCallProgressMonitor interface ...................................................................................... A-32
GetDisconnectReason method (PluginOutOfBandCallProgressEvents interface ................................. A-33
MonitorCallProgress method (PluginMedia interface) ............................................................................ A-33
WaitForAudio method (PluginMedia interface) ....................................................................................... A-34
Appendix B. Migrating Older IVR Plug-in Applications
Overview..................................................................................................................................................... B-2
IVRPlugInNotify2 interface.......................................................................................................................... B-2
CallOffering method (IVRPlugInNotify2 interface) .................................................................................... B-2
CallPlaced method (IVRPlugInNotify2 interface) ...................................................................................... B-3
CallTerminated method (IVRPlugInNotify2 interface)............................................................................... B-4
IVRPlugIn2 object ....................................................................................................................................... B-4
CallDone method (IVRPlugIn2 object) ...................................................................................................... B-5
GetCustomPartyData method (IVRPlugIn2 object) .................................................................................. B-5
GetPartyData method (IVRPlugIn2 object)............................................................................................... B-6
GetXmitTimeslot method (IVRPlugIn2 object) .......................................................................................... B-7
Listen method (IVRPlugIn2 object) ........................................................................................................... B-7
Ping method (IVRPlugIn2 object).............................................................................................................. B-7
PlaceCall method (IVRPlugIn2 object)...................................................................................................... B-8
Register method (IVRPlugIn2 object) ....................................................................................................... B-9
SetCustomPartyData method (IVRPlugIn2 object)................................................................................. B-10
SetPartyData method (IVRPlugIn2 object) ............................................................................................. B-10
SetStatus method (IVRPlugIn2 object) ................................................................................................... B-11
Extension Property (IVRPlugIn2 object) ................................................................................................ B-11
DID Property (IVRPlugIn2 object) ........................................................................................................... B-11
Name Property (IVRPlugIn2 object)........................................................................................................ B-12
Comments Property (IVRPlugIn2 object)................................................................................................ B-12
CustomVariableName Property (IVRPlugIn2 object).............................................................................. B-12
CustomVariableValue Property (IVRPlugIn2 object) .............................................................................. B-12
................................................................................................................................................................. B-12
Appendix C. Device Status API Reference
Overview..................................................................................................................................................... C-2
Server object............................................................................................................................................... C-2
Connect method (Server object) ............................................................................................................... C-2
Disconnect method (Server object)........................................................................................................... C-2
Devices Property (Server object) .............................................................................................................. C-2
DeviceStateChanged Event (Server object) ............................................................................................. C-3
Device object .............................................................................................................................................. C-3
Refresh method (Device object)................................................................................................................ C-3
AssignedExtensions Property (Device object).......................................................................................... C-3
Class Property (Device object).................................................................................................................. C-3
ConnectedDevices Property (Device object) ............................................................................................ C-3
CurrentExtension Property (Device object)............................................................................................... C-4
DefaultExtension Property (Device object) ............................................................................................... C-4
HookState Property (Device object).......................................................................................................... C-4
Name Property (Device object) ................................................................................................................. C-4
Number Property (Device object).............................................................................................................. C-4
Status Property (Device object) ................................................................................................................ C-5
Extension object ......................................................................................................................................... C-6
Refresh method (Extension object)........................................................................................................... C-6
ACDDoNotDisturb Property (Extension object) ........................................................................................ C-6
DoNotDisturb Property (Extension object) ................................................................................................ C-6
Extension Property (Extension object)...................................................................................................... C-6
FirstName Property (Extension object) ..................................................................................................... C-7
LastName Property (Extension object) ..................................................................................................... C-7
Party object................................................................................................................................................. C-7
CallerIDName Property (Party object) ...................................................................................................... C-7
CallerIDNumber Property (Party object) ................................................................................................... C-7
CallerIDNumberType Property (Party object) ........................................................................................... C-7
FirstName Property (Party object)............................................................................................................. C-7
LastName Property (Party object)............................................................................................................. C-7
Appendix D. Client API Object Reference
Addresses object ........................................................................................................................................ D-4
Address object ............................................................................................................................................ D-4
Agent object................................................................................................................................................ D-5
Agents object .............................................................................................................................................. D-6
AgentStat object ......................................................................................................................................... D-6
AudioClip object.......................................................................................................................................... D-7
Call object ................................................................................................................................................... D-8
CallActivity object...................................................................................................................................... D-11
CallActivityHistory object .......................................................................................................................... D-11
CallHistory object...................................................................................................................................... D-12
CallRule object.......................................................................................................................................... D-13
Column object........................................................................................................................................... D-13
Columns object ......................................................................................................................................... D-14
Contact object........................................................................................................................................... D-14
Error object ............................................................................................................................................... D-15
Field object ............................................................................................................................................... D-15
Fields object.............................................................................................................................................. D-16
Folder object ............................................................................................................................................. D-16
Folders object ........................................................................................................................................... D-17
Greeting object ......................................................................................................................................... D-18
IAssociate object....................................................................................................................................... D-18
ICOMSecurity object................................................................................................................................. D-19
IDialingService object ............................................................................................................................... D-19
IItem object ............................................................................................................................................... D-19
InternetService object ............................................................................................................................... D-20
IPhoneService object................................................................................................................................ D-21
Items object .............................................................................................................................................. D-21
Locale object............................................................................................................................................. D-22
IWindowsSecurity object........................................................................................................................... D-22
LocaleCodes object .................................................................................................................................. D-23
LogonAddressInfo object .......................................................................................................................... D-23
Message object......................................................................................................................................... D-23
LocaleCode object .................................................................................................................................... D-23
NotifyScheduleItem object ........................................................................................................................ D-25
NotifyScheduleItems object ...................................................................................................................... D-25
Notification object ..................................................................................................................................... D-25
Parties object ............................................................................................................................................ D-26
Party object............................................................................................................................................... D-26
PartyHistories object................................................................................................................................. D-27
PartyHistory object.................................................................................................................................... D-27
Permission object ..................................................................................................................................... D-28
Permissions object.................................................................................................................................... D-28
PersonalStatus object............................................................................................................................... D-29
PhoneGatewayService object................................................................................................................... D-30
QueueByPeriodStat object ....................................................................................................................... D-31
PhoneService object................................................................................................................................. D-31
QueueByShiftStat object........................................................................................................................... D-32
QueueStat object ...................................................................................................................................... D-33
Recipients object ...................................................................................................................................... D-34
Role object................................................................................................................................................ D-34
RoutingList object ..................................................................................................................................... D-35
Roles object .............................................................................................................................................. D-35
RoutingListAction object ........................................................................................................................... D-36
RoutingListActions object ......................................................................................................................... D-36
RoutingListFinalAction object ................................................................................................................... D-37
RoutingService object............................................................................................................................... D-37
Schedule object ........................................................................................................................................ D-38
ScheduledDate object............................................................................................................................... D-38
ScheduledDates object............................................................................................................................. D-38
ScheduledDay object................................................................................................................................ D-39
ScheduledDays object .............................................................................................................................. D-39
Schedules object ...................................................................................................................................... D-40
Session object .......................................................................................................................................... D-40
Shortcut object.......................................................................................................................................... D-47
ShortcutGroup object................................................................................................................................ D-47
ShortcutGroups object .............................................................................................................................. D-47
Shortcuts object ........................................................................................................................................ D-48
SIPAccounts object................................................................................................................................... D-49
SIPAccount object .................................................................................................................................... D-49
SIPServer object....................................................................................................................................... D-50
SIPPhoneGatewayService object............................................................................................................. D-50
SIPServers object ..................................................................................................................................... D-51
SIPService object ..................................................................................................................................... D-51
SIPSpan object ......................................................................................................................................... D-52
SIPSpans object ....................................................................................................................................... D-52
SIPSwitchGatewayService object............................................................................................................. D-52
SkillDefinition object.................................................................................................................................. D-53
SkillDefinitions object................................................................................................................................ D-53
Station object ............................................................................................................................................ D-54
StationButton object.................................................................................................................................. D-55
StationButtons object................................................................................................................................ D-55
StationFeatures object.............................................................................................................................. D-56
StationParameter object ........................................................................................................................... D-56
StationFeature object................................................................................................................................ D-56
StationType object .................................................................................................................................... D-57
StationTypes object .................................................................................................................................. D-57
StationParameters object ......................................................................................................................... D-57
SwitchService object................................................................................................................................. D-58
SwitchGatewayService object .................................................................................................................. D-58
System object ........................................................................................................................................... D-59
SystemSetting object ................................................................................................................................ D-60
SystemSettings object .............................................................................................................................. D-60
SystemTarget object................................................................................................................................. D-61
User object................................................................................................................................................ D-62
View object ............................................................................................................................................... D-64
Views object.............................................................................................................................................. D-65
Workgroup object...................................................................................................................................... D-65
WorkgroupMember object ........................................................................................................................ D-66
WorkgroupMembers object....................................................................................................................... D-66
Appendix E. Client API Enumerations
TVAddressCategory .................................................................................................................................. E-1
TVAddressError ......................................................................................................................................... E-1
TVAddressFieldValidation ......................................................................................................................... E-1
TVAddressPhoneComponent .................................................................................................................... E-2
TVAddressSubType................................................................................................................................... E-2
TVAddressType ......................................................................................................................................... E-2
TVAddressUsageType............................................................................................................................... E-2
TVAgentStatisticInterval ............................................................................................................................ E-3
TVAgentStatus........................................................................................................................................... E-3
TVApplicationType..................................................................................................................................... E-3
TVAssociatedPersonType ......................................................................................................................... E-3
TVAudioDeviceType .................................................................................................................................. E-3
TVAudioState............................................................................................................................................. E-3
TVAudioStateChangeReason.................................................................................................................... E-4
TVAudioType ............................................................................................................................................. E-4
TVAudioVOXFormat .................................................................................................................................. E-4
TVCallAnnounceType................................................................................................................................ E-4
TVCallDeclineMode ................................................................................................................................... E-4
TVCallDirection.......................................................................................................................................... E-4
TVCallerIDFormat...................................................................................................................................... E-4
TVCallFeature............................................................................................................................................ E-5
TVCallFieldValidation ................................................................................................................................ E-5
TVCallGrabAndHoldAudioType ................................................................................................................. E-5
TVCallHistoryError..................................................................................................................................... E-6
TVCallHistoryFieldValidation ..................................................................................................................... E-6
TVCallHistoryResult................................................................................................................................... E-6
TVCallRecordFormat ................................................................................................................................. E-6
TVCallRecordStatus .................................................................................................................................. E-6
TVCallRuleCallerTypeCondition ................................................................................................................ E-6
TVCallRuleError......................................................................................................................................... E-7
TVCallRuleFieldValidation ......................................................................................................................... E-7
TVCallRuleRingOverride ........................................................................................................................... E-7
TVCallRuleScheduleType.......................................................................................................................... E-7
TVCallType ................................................................................................................................................ E-7
TVColumnsError ........................................................................................................................................ E-7
TVContactAssociateFlags ......................................................................................................................... E-8
TVContactError.......................................................................................................................................... E-8
TVContactFieldValidation .......................................................................................................................... E-8
TVDefaultFolders....................................................................................................................................... E-9
TVDeleteMode........................................................................................................................................... E-9
TVDeviceHookState .................................................................................................................................. E-9
TVDirectorySearchMode ........................................................................................................................... E-9
TVError .................................................................................................................................................... E-10
TVExportFormatType .............................................................................................................................. E-13
TVExportType.......................................................................................................................................... E-13
TVExtensionDialByNameAction .............................................................................................................. E-13
TVFieldDataType..................................................................................................................................... E-13
TVFilterOperator ...................................................................................................................................... E-14
TVFinalActionError .................................................................................................................................. E-14
TVFolderError .......................................................................................................................................... E-14
TVFolderFieldValidation .......................................................................................................................... E-14
TVFoldersError ........................................................................................................................................ E-14
TVGreetingError ...................................................................................................................................... E-14
TVGreetingFieldValidation....................................................................................................................... E-14
TVImportContactField.............................................................................................................................. E-15
TVImportHeaderPosition ......................................................................................................................... E-15
TVImportOptions...................................................................................................................................... E-15
TVInterface .............................................................................................................................................. E-16
TVItemChangedBy .................................................................................................................................. E-16
TVItemStatus ........................................................................................................................................... E-16
TVLicenseStatus...................................................................................................................................... E-16
TVLicenseType........................................................................................................................................ E-16
TVLocaleCallerIDFormat ......................................................................................................................... E-16
TVLocaleDateTimeFormat....................................................................................................................... E-17
TVLocalePictureFormat ........................................................................................................................... E-17
TVLogCallsLevel...................................................................................................................................... E-17
TVMessageAssociatedPersonType......................................................................................................... E-17
TVMessageError...................................................................................................................................... E-17
TVMessageFieldValidation ...................................................................................................................... E-17
TVMessageStatus ................................................................................................................................... E-18
TVMessageType...................................................................................................................................... E-18
TVNameFormat ....................................................................................................................................... E-18
TVNotificationError .................................................................................................................................. E-18
TVNotificationFieldValidation................................................................................................................... E-18
TVNotificationLevel.................................................................................................................................. E-18
TVNotificationMessageAction.................................................................................................................. E-18
TVNotificationType .................................................................................................................................. E-18
TVObjectClass......................................................................................................................................... E-19
TVObjectDialingServiceClass.................................................................................................................. E-20
TVObjectItemClass.................................................................................................................................. E-21
TVOutboundCallerIDName...................................................................................................................... E-21
TVOutboundCallerIDPresentation ........................................................................................................... E-21
TVPartyDirection...................................................................................................................................... E-21
TVPartyFeature ....................................................................................................................................... E-22
TVPartyHistoryResult .............................................................................................................................. E-22
TVPartyRole ............................................................................................................................................ E-22
TVPartyStatus.......................................................................................................................................... E-23
TVPermissionAccessLevel ...................................................................................................................... E-23
TVPermissionType .................................................................................................................................. E-23
TVPersonalStatusCallForwarding............................................................................................................ E-23
TVPersonalStatusError............................................................................................................................ E-24
TVPersonalStatusFieldValidation ............................................................................................................ E-24
TVPersonalStatusType............................................................................................................................ E-24
TVPhoneType.......................................................................................................................................... E-24
TVRecipientError ..................................................................................................................................... E-24
TVRegistryDataType ............................................................................................................................... E-24
TVRegistryLocation ................................................................................................................................. E-25
TVRoutingListActionError ........................................................................................................................ E-25
TVRoutingListActionType ........................................................................................................................ E-25
TVRoutingListError .................................................................................................................................. E-25
TVRoutingListFieldValidation................................................................................................................... E-25
TVRoutingListFinalActionType ................................................................................................................ E-25
TVRoutingListPlayGreetingType ............................................................................................................. E-26
TVRoutingListPromptCallerType ............................................................................................................. E-26
TVScheduledDaysWeekday .................................................................................................................... E-26
TVScheduleItemFieldValidation............................................................................................................... E-26
TVScheduleItemType .............................................................................................................................. E-26
TVSchedulesError ................................................................................................................................... E-26
TVSearchType......................................................................................................................................... E-26
TVServerConnectionLevel....................................................................................................................... E-26
TVServerStatus ....................................................................................................................................... E-27
TVSessionStatus ..................................................................................................................................... E-27
TVSessionValidateLogonResult .............................................................................................................. E-27
TVShortcutError....................................................................................................................................... E-27
TVShortcutFieldValidation ....................................................................................................................... E-27
TVShortcutGroupFieldValidation ............................................................................................................. E-27
TVShortcutGroupIconType ...................................................................................................................... E-27
TVSIPAccountError ................................................................................................................................. E-28
TVSIPAccountFieldValidation.................................................................................................................. E-28
TVSIPAccountType ................................................................................................................................. E-28
TVSIPServerAddressFormat ................................................................................................................... E-28
TVSortOrder ............................................................................................................................................ E-28
TVSpecialUsers ....................................................................................................................................... E-28
TVStationAnalogPhoneType ................................................................................................................... E-28
TVStationButtonFieldValidation ............................................................................................................... E-28
TVStationError ......................................................................................................................................... E-29
TVStationExternalPhoneDestination ....................................................................................................... E-29
TVStationFeatureParameterType............................................................................................................ E-29
TVStationFieldValidation ......................................................................................................................... E-29
TVStationIdentificationOptions ................................................................................................................ E-29
TVStationPadCharacter........................................................................................................................... E-30
TVStationPadExtension........................................................................................................................... E-30
TVStationPhoneFeatures ........................................................................................................................ E-30
TVStationTransferMode........................................................................................................................... E-30
TVStationUsage....................................................................................................................................... E-30
TVStoreHistoryType ................................................................................................................................ E-30
TVSystemTargetAvailability..................................................................................................................... E-31
TVSystemTargetCallForwardingType...................................................................................................... E-31
TVSystemTargetError.............................................................................................................................. E-31
TVSystemTargetFeature ......................................................................................................................... E-31
TVSystemTargetType.............................................................................................................................. E-31
TVUserAccountCodeBehavior................................................................................................................. E-31
TVUserAnnounceCallBehavior ................................................................................................................ E-31
TVUserCallWaiting .................................................................................................................................. E-32
TVUserCategory ...................................................................................................................................... E-32
TVUserDefaultContactAction................................................................................................................... E-32
TVUserEmptyDeletedBehavior................................................................................................................ E-32
TVUserError............................................................................................................................................. E-32
TVUserExternalCallTypes ....................................................................................................................... E-32
TVUserFieldValidation ............................................................................................................................. E-33
TVUserInboundCallBehavior ................................................................................................................... E-33
TVUserMessageOrder............................................................................................................................. E-33
TVUserNameFormat................................................................................................................................ E-33
TVUserOutboundCallBehavior ................................................................................................................ E-34
TVUserPromptCallerForName................................................................................................................. E-34
TVUserRemotePhoneType...................................................................................................................... E-34
TVUserRingPattern.................................................................................................................................. E-34
TVUserSendDigitsBehavior ..................................................................................................................... E-34
TVUserStrataRingPattern ........................................................................................................................ E-34
TVViewError ............................................................................................................................................ E-35
TVViewFieldValidation............................................................................................................................. E-35
TVWindowsFirewallScope ....................................................................................................................... E-35
TVWorkgroupErrors................................................................................................................................. E-35
TVWorkgroupFieldValidation ................................................................................................................... E-35
TVWorkgroupMembersError.................................................................................................................... E-35
TVWorkgroupRoutingType ...................................................................................................................... E-35
CHAPTER 1
CHAPTER 1
INTRODUCTION
CHAPTER CONTENTS
About the TeleVantage SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-2
Technical Support for the TeleVantage SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-2
Development tools and terms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-3
Installing the SDK APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-3
Installing custom applications that use TeleVantage APIs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-4
TELEVANTAGE DEVELOPER ’S GUIDE
About the TeleVantage SDK ________________________________________
The TeleVantage Software Development Kit (SDK) is a collection of COM-based components and interfaces that can
be incorporated into your custom applications. See the following chapters for detailed descriptions of the TeleVantage
SDK application programming interfaces (APIs):
Q
Chapter 2, “The Client API”, describes the API used by TeleVantage ViewPoint for all its communication
with the TeleVantage Server and database. The Client API is a set of software components that gives custom
applications the ability to access all functions found in the TeleVantage ViewPoint. This chapter also provides
an example of a simple program that uses the API to retrieve and display information from the TeleVantage
Server.
Q
Chapter 3,“The Add-In API” , describes the API used by custom applications to extend TeleVantage
ViewPoint with enhanced functionality. These applications, called Add-Ins, are loaded by TeleVantage
Viewpoint and extend it with new menus, tool bar options, and automatic processing of calls and other data. The
Add-In API also exposes a reference to the Client API so an Add-In can easily manage and change data for the
currently logged in ViewPoint user.
Q
Chapter 4, “The IVR Plug-in API”, describes features that tightly integrate a custom application with the
TeleVantage Server to perform basic call handling or voice processing tasks such as order entry, customer
service, e-mail readers, and so forth. The application (called an IVR Plug-in) is a “virtual extension” on the
TeleVantage Server. The IVR Plug-in can be dialed from a phone or auto attendant, called from an Internet
trunk, or have calls forwarded or transferred to it, just like a regular extension assigned to a user.
Q
Chapter 5, “The Device Status API”, describes features that your application can use to monitor the status
of all devices on the TeleVantage Server. For example, it could monitor current users on the system, obtain the
name of a user currently logged in at a station, or identify the trunk to which a station is connected. The
application could generate custom reports concerning the calls handled by TeleVantage.
In some cases, the TeleVantage SDK may not be the simplest way to implement a specific function. See the following
chapter for some alternatives:
Q
Chapter 6, “Using In-band Signaling”, discusses methods for extending TeleVantage using in-band
signaling.
Technical Support for the TeleVantage SDK
Using your web browser you can access the TeleVantage SDK webboard at http://webboard.Vertical.com/~SDK to
ask TeleVantage programming questions, learn how others did similar programming tasks, download sample projects,
and check for any updates to this documentation. You can receive feedback from the entire TeleVantage
community—users, TeleVantage consultants, VARs, and Vertical developers. The TeleVantage SDK webboard can
only be used to post TeleVantage questions regarding software development with the TeleVantage SDK. TeleVantage
questions that do not involve software development and the TeleVantage SDK should be directed to your TeleVantage
provider.
Important: The TeleVantage SDK webboard is unofficially moderated by Vertical employees. That is, Vertical will
attempt to answer most questions within a 24 hour period, but Vertical can not guarantee that all questions will be
answered. Vertical also can not guarantee the quality of the answers from any non-Vertical conference participants.
CHAPTER 1. INTRODUCTION
1-2
TELEVANTAGE DEVELOPER ’S GUIDE
Development tools and terms ______________________________________
Extensions to TeleVantage can be developed using most COM-compliant Windows programming tools, such as Visual
Basic, Visual C++, Delphi, and so forth. The following terms will be used frequently in this guide:
Q
COM (Component Object Model) is an object-oriented programming convention that allows different software
components to work together as a single application, even when each component is written without any internal
information about the others. The TeleVantage Client API is a collection of COM-based components.
Q
A component is a COM programming structure containing code and data that can be accessed only through a
specific set of methods and properties. A component consists of a class and one or more interfaces, defined as
follows:
Q
A class is the program code that determines what the component can do. The class implements a
component’s methods and properties.
Q
An interface defines the set of class methods and properties that can be accessed by an application
containing the component.
Q
An object is an instance of a class within a running program. For example, the buttons in a program’s graphical
interface could be objects created as instances of a button class.
Q
A module is a .DLL or .EXE file containing one or more components.
Q
Type libraries contain descriptions of component interfaces and properties, which can be viewed with object
browsers such as the one included in Visual Basic. Type libraries can be part of a module, or they can be separate
files with a .TLB extension.
Q
An API (Application Programming Interface) is a package of components, type libraries, and other tools that
provide your application with a relatively simple way to access some of the functionality in complex software
such as TeleVantage.
Installing the SDK APIs____________________________________________
Installing the Device Status API and IVR Plug-in API
The IVR Plug-in API is automatically installed on your TeleVantage Server, but if you do not have a test server for
development, you can still install the IVR Plug-in API on any other PC. The TeleVantage SDK installation installs the
Device Status API, IVR Plug-in API, and sample applications to the directory you specify. The Device Status API
requires that the PC also have TeleVantage ViewPoint, Administrator or Device Monitor installed. While you can
develop IVR Plug-in applications on any PC, you can only test and run them on a TeleVantage Server. Note that
installing the SDK on your TeleVantage Server may require a restart of the TeleVantage Server, so you should only
perform an installation at a time when you can shut the Server down without interrupting users.
To install the TeleVantage SDK
1.
Run the TVSDK.exe program located in \Server on the TeleVantage Master CD.
2.
Follow the instructions in the TeleVantage SDK Setup window.
Installing the Client API and Add-in API
When you install TeleVantage ViewPoint, the Client API and Add-in API are installed automatically. Your
development environment must then be configured to use the API. This process is described for Visual Basic in “Starting
a new Client API project in Visual Basic” on page 2-20. If you are not using Visual Basic, see your environment’s
documentation for instructions on adding COM components or type libraries.
When you write your TeleVantage Add-In's installer program, you may need to check for a particular version of
TeleVantage to be installed if using the Client API, Device API or IVR Plug-in API.
CHAPTER 1. INTRODUCTION
1-3
TELEVANTAGE DEVELOPER ’S GUIDE
Installing custom applications that use TeleVantage APIs
Custom IVR Plug-ins must be installed on the TeleVantage Server and must be manually registered using the
TeleVantage Administrator. Applications that use the Client API, Add-In API, Device Status API or TAPI must have
run the TeleVantage Workstation Application installer, as described in Installing TeleVantage.
Checking the TeleVantage Version Number
When you install any application that uses the TeleVantage APIs, you should check to make sure your application is not
installed on a TeleVantage system using an older version of the corresponding API. API backward compatibility is
maintained for newer versions of TeleVantage. The version number of all TeleVantage components is stored in the
Windows registry under the “Version” key in the following registry locations:
For the TeleVantage Server (IVR Plug-In API)
HKLM\Software\Artisoft\TeleVantage\Server\Setup
For TeleVantage ViewPoint (Client API, Add-In API, TAPI and Device Status API)
HKLM\Software\Artisoft\TeleVantage\Client\Setup
CHAPTER 1. INTRODUCTION
1-4
CHAPTER 2
CHAPTER 2
THE CLIENT API
CHAPTER CONTENTS
About the TeleVantage Client API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-2
Client API object structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-2
Connecting to the Client API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-3
Structure of a session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-4
The System object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-5
The User object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-6
How folders are used . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-7
Other object structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-10
Starting a new Client API project in Visual Basic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-20
Programming tips and examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-21
TELEVANTAGE DEVELOPER ’S GUIDE
About the TeleVantage Client API
The Client API contains the core objects used to create TeleVantage ViewPoint, and makes it possible for your
application to do anything that ViewPoint can do. To develop your application, you can use any development
environment that uses standard Windows COM components, for example Visual Basic, Visual Basic for Applications
(VBA), VBScript, JavaScript, C++, C#, Delphi, and so forth. Using the Client API you can create stand alone
applications, extend existing applications such as Outlook, Goldmine, Seibel, and Onyx. By using the Add-In API with
the Client API you can even extend TeleVantage ViewPoint itself with additional functionality. See “The Add-In API”
for more information.
The following lists some ideas of possible example Client API applications. Using the Client API you can also embed
this example functionality in other applications:
Q
Your own custom ViewPoint GUI. Your application could do everything TeleVantage ViewPoint does and
display it in a different way, or you could choose a subset of ViewPoint functions that fit your specialized needs.
Q
A specialized operator's console designed to maximize an operator’s ability to supervise the phone system.
Q
A GUI representing a TeleVantage phone, that looks and operates just like a real phone.
Q
An application to display a list of people who are currently available to answer calls.
Q
A small application to change your greeting every day, for friends, or for everyone.
Q
An application that performs wake up calls or reminder calls at scheduled times.
Q
A call tracking application that sends you notification of every call made and makes it easy to track calls in a
way that fits your specialized needs.
Q
An application to synchronize your TeleVantage contacts with contact databases.
Q
A small utility that resides in the system tray and that allows you to change you TeleVantage personal status.
Q
A small, lightweight, skinable call monitor that resides in the system tray.
Client API object structures ________________________________________
Objects in the Client API are all members of logical groups or object structures. This chapter summarizes the structure
and function of these groups.
The following sections describe the following top-level Client API object structures:
Q
Session. See “Structure of a session” on page 2-4.
Q
System. See “The System object” on page 2-5.
Q
User. See “The User object” on page 2-6.
Q
Folder. See “How folders are used” on page 2-7.
Some of the other major object structures used by the Client API are described in “Other object structures” starting on
page 2-10. For a complete reference, see Appendix D.
CHAPTER 2. THE CLIENT API
2-2
TELEVANTAGE DEVELOPER ’S GUIDE
Key to object group diagrams
The discussion of each group is accompanied by a diagram that uses the following conventions:
Connecting to the Client API _______________________________________
You connect to the Client API on a per-user basis by logging in with a valid user name and password. To be able to view
information belonging to more than one user, do either of the following:
Q
Use sharing to view the other user’s voice mailbox, Call Log, Call Monitor, and so forth. For information about
sharing, see Using TeleVantage.
Q
Log on to the Client API multiple times by creating multiple Session objects. You must provide a valid user
name and password for each session. You cannot bypass entering a password when logging on to the Client API.
If your Client API application will be running as a Windows service
If your Client API application will be running as a Windows service, the service must log on using a domain or local
account that is a member of the local Administrators group. You cannot use the LocalSystem account, because this
account does not have adequate networking privileges.
To assign a logon account to a Windows service:
1.
Right-click My Computer, and then click Manage.
2.
Expand Services and Applications and then click Services.
3.
Locate your service and double-click it to open its Properties dialog box.
4.
On the Log On tab, select This account.
5.
Enter the account name and password to use, and confirm the password.Click OK to save your changes.
CHAPTER 2. THE CLIENT API
2-3
TELEVANTAGE DEVELOPER ’S GUIDE
Structure of a session_____________________________________________
The Session object is the root of the Client API. It contains methods for logging on and off a TeleVantage Server, and
its properties include System and User objects. When the Session logs on to a Server, the System and User objects are
automatically populated with information about the current system and the Session’s user profile.
All other information is accessed from the Session’s Folders object. By default, the Folders object contains three Folder
objects that cannot be deleted, and these Folder objects have a default Folder structure that is discussed in detail starting
on page 2-9.
This structure uses the following objects:
Q
Session object (see page D-40).
Q
Folders object (see page D-17). A collection of Folder objects. See “Folder types” on page 2-10 for a
description of the various folder types.
Q
System object (see page D-59). Represents the system as a whole. See “The System object” on page 2-5 for a
detailed description of System object structure.
Q
User object (see page D-62). Represents the currently logged in end user. See “The User object” on page 2-6
for a detailed description of User object structure.
CHAPTER 2. THE CLIENT API
2-4
TELEVANTAGE DEVELOPER ’S GUIDE
The System object _______________________________________________
The System object represents the system as a whole. It serves as the main interface between the Client API and the
Server. It contains all system-wide settings and licenses, and handles all operations that affect the system as a whole.
Operations performed through the System object will affect the entire system. Typically, only Administrator operations
will use the System object.
The System object has the structure shown below:
This structure uses the following objects:
Q
LocaleCodes object (see page D-23). A collection of LocaleCode objects. Used only by the System object.
Q
LocaleCode object (see page D-23). Contains a locale code identifying a TeleVantage language locale setting.
Q
Schedules object (see page D-40). A collection of Schedule objects. Used only by the System object.
Q
Schedule object (see page D-38). Contains a record of the times when pager and e-mail message notifications
should be sent. See “Schedule objects” on page 2-18 for a detailed description of Schedule object structure.
Q
PhoneService object (see page D-31). A dialing service object containing information for dialing a number
over a standard phone line. See “Dialing Service objects” on page 2-14 for a list of all dialing service objects.
Q
InternetService object (see page D-20). A dialing service object containing information for dialing a number
over the Internet. See “Dialing Service objects” on page 2-14 for a list of all dialing service objects.
Q
StationTypes object (see page D-57). A collection of StationType objects. Used only by the System object.
Q
StationType object (see page D-57). Contains a list of features used by a specific type of feature phone.
Q
StationFeatures object (see page D-56). A collection of StationFeature objects. Used only by the StationType
object.
Q
StationFeature object (see page D-56). Provides access to feature assigned to a StationButton object. See
“StationFeature objects” on page 2-19 for a detailed description of StationFeature object structure.
CHAPTER 2. THE CLIENT API
2-5
TELEVANTAGE DEVELOPER ’S GUIDE
The User object __________________________________________________
The Session’s User object represents the currently logged in end user. Depending on Permission settings, a Session User
may have permission to modify its own settings, but may still be restricted from reading or modifying the settings of
other Users. Two variations of User have been introduced to resolve this conflict — Normal and Current. The difference
between the two variations lies in how properties are read and written, and how methods are executed. Both User
variations may be in use in any given instance of a Session object. The Session will always have a Current User object.
There also may be Folders farther down in the Session structure that contain Normal Users.
The User object has the structure shown below:
This structure uses the following objects:
Q
Addresses object (see page D-4). A collection of Address objects.
Q
Address object (see page D-4). Contains address information.
Q
Agents object (see page D-6). A collection of Agent objects. Used only by the User object.
Q
Agent object (see page D-5). Provides access to Call Center agent. See “Agent objects” on page 2-11 for a
detailed description of Agent object structure.
Q
Schedule object (see page D-38). Contains a record of the times when pager and e-mail message notifications
should be sent. See “Schedule objects” on page 2-18 for a detailed description of Schedule object structure.
Q
SystemTarget object (see page D-61).
CHAPTER 2. THE CLIENT API
2-6
TELEVANTAGE DEVELOPER ’S GUIDE
Q
Notification object (see page D-25). Contains address and schedule information for sending pager or e-mail
message notifications to the user. See “Notification objects” on page 2-16 for a detailed description of
Notification object structure. Used only by the User object.
Q
AudioClip object (see page D-7). Used to create or manipulate an audio file.
Q
PersonalStatus object (see page D-29). Contains a record of a personal status, as displayed in ViewPoint’s
Personal Status view. See “PersonalStatus objects” on page 2-16for a detailed description of PersonalStatus
object structure.
Q
Permissions object (see page D-28). A collection of Permission objects. The Agent and User objects use this
collection to define permissions granted to a specific agent or user. A Folder object contains a collection of the
permissions required to access the folder.
Q
Permission object (see page D-28). Contains a record of a permission needed for a specific feature.
Q
LocaleCode object (see page D-23). Contains a locale code identifying a TeleVantage language locale setting.
Q
Station object (see page D-54). Contains configuration information about a station. See “Station objects” on
page 2-19 for a detailed description of Station object structure.
How folders are used _____________________________________________
The Client API’s Folder structure corresponds to the structure displayed by TeleVantage ViewPoint. For example, the
following illustration shows ViewPoint’s Call Monitor folder.
You can see all ViewPoint (and Client API) folders on the left side of the ViewPoint window.
Selecting any folder on the left displays items of a particular type, in this case calls. The Client API encapsulates these
folders using a tree-like Folder object structure.
CHAPTER 2. THE CLIENT API
2-7
TELEVANTAGE DEVELOPER ’S GUIDE
The Folder object
A Folder object contains the following collections of objects:
Q
Folders. Each Folder object contains a Folders collection object, which in turn can contain more Folder objects.
Messages and contacts can contain as many levels as you wish.
Q
Items. A collection of some specific type of object. For example, the Greetings folder in the example above
would contain a set of Greeting objects. Each Greeting object would contain all of the information required for
a specific greeting. For a list of Folder types, see “Folder types” on page 2-10.
Q
Views, Columns, and Fields. These collections provide you with information that you can use if you want to
duplicate some of the predefined views used by TeleVantage ViewPoint. Your program’s user interface does not
need to use these collections.
Q
Permissions. A collection of Permission objects that specify how this Folder can be accessed.
CHAPTER 2. THE CLIENT API
2-8
TELEVANTAGE DEVELOPER ’S GUIDE
Default Folder structure
The Folder objects diagrammed below are always present after a Session object logs on to a Server. They are system
defaults, and they cannot be deleted. Note that some of these folders may not be present due to User permissions set by
the Administrator.
CHAPTER 2. THE CLIENT API
2-9
TELEVANTAGE DEVELOPER ’S GUIDE
Folder types
To access a default folder, you call the Session object’s GetDefaultFolder method with the appropriate folder constant
as the parameter. For example:
Set AgentFolder = Session.GetDefaultFolder(tvFolderAgents)
Valid default folder constants are specified in the enumeration “TVDefaultFolders” on page E-9. The following default
folders are available:
Folder name
Folder constant
Object collected (object structure description)
Agents
tvFolderAgents
Agent object (see page 2-11)
Agent Statistics
tvFolderAgentStats
AgentStat object
History
tvFolderCallHistory
CallHistory object (see page 2-12)
Call Rules
tvFolderCallRules
CallRule object (see page 2-13)
Calls
tvFolderCalls
Call object (see page 2-12)
Contacts
tvFolderContacts
Contact object (see page 2-13)
Current User
tvFolderCurrentUser
Empty root-level folder. Only used to access a user’s
personal folders.
Deleted
tvFolderDeleted
Message object that has been deleted by the user.
Greetings
tvFolderGreetings
Greeting object (see page 2-15)
Message
tvFolderMessages
Message object (see page 2-15)
Personal Status
tvFolderPersonalStatus
PersonalStatus object (see page 2-16)
Queue Statistics
tvFolderQueueStats
QueueStat object
Routing Lists
tvFolderRoutingLists
RoutingList object (see page 2-17)
Services
tvFolderServices
all “Dialing Service” objects (see page 2-14)
System Targets
tvFolderSystemTarget
Users
tvFolderUsers
User object (see page 2-6)
Workgroups
tvFolderWorkgroups
Workgroup object (see page 2-20)
Other object structures____________________________________________
Previous sections in this chapter describe the following top-level Client API object structures:
Q
Session. (“Structure of a session” on page 2-4)
Q
System. (“The System object” on page 2-5)
Q
User. (“The User object” on page 2-6)
Q
Folder. (“How folders are used” on page 2-7)
This section discusses some of the other major object structures used by the Client API. Most of these structures have
their own Folder type (as described in “Folder types” on page 2-10). The following structures are described:
Q
Agent object (see page 2-11). Provides access to Call Center agent. Used only in the User object structure.
Q
Call object (see page 2-12). Provides access to a call and methods to manipulate the call, including real time
information as the call changes state, just like it is displayed in the TeleVantage ViewPoint Call Monitor view.
Created by the Session object when a call is received or placed.
CHAPTER 2. THE CLIENT API
2-10
TELEVANTAGE DEVELOPER ’S GUIDE
Q
Q
CallHistory object (see page 2-12). Provides access to call history details for when a call has been completed
or disconnected, just like what is displayed in the ViewPoint Call Log view.
CallRule object (see page 2-13). Provides access to a call rule, similar to what is displayed in the ViewPoint
Call Rules view.
Q
Contact object (see page 2-13). Provides access to a contact, similar to what is displayed in the ViewPoint
Contacts view.
Q
Dialing Service objects (see page 2-14). Contains information about the dialing services defined for the
system.
Q
Greeting object (see page 2-15). Provides access to a greeting, similar to what is displayed in the ViewPoint
Greetings view. Used in the CallRule, PersonalStatus, and RoutingList object structures.
Q
Message object (see page 2-15). Describes a voice message and related information.
Q
Notification object (see page 2-16). Describes address and schedule information for sending pager or e-mail
message notifications to the user. Used only in the User object.
Q
PersonalStatus object (see page 2-16). Describes a record of a personal status, as displayed in the ViewPoint
Personal Status view. Used in the CallRule and User objects.
Q
RoutingList object (see page 2-17). Provides access to a routing list, similar to what is displayed in the
ViewPoint Routing Lists view. Used in the CallRule and PersonalStatus objects.
Q
Q
Schedule object (see page 2-18). Describes a record of the times when pager and e-mail message notifications
should be sent. Used in the CallRule, Notification, System, and User object structures.
Shortcut object (see page 2-18). Describes information that can be used to locate and access a specific Folder
object.
Q
Station object (see page 2-19). Describes configuration information about a station. Used in the Session and
User objects.
Q
StationFeature object (see page 2-19). Describes access to feature assigned to a StationButton object. Used in
the Station and System object structures.
Q
Workgroup object (see page 2-20). Describes access to workgroup, similar to what is displayed in the
ViewPoint Workgroups view.
For a complete reference, see Appendix D.
Agent objects
Agent objects contain information about a Call Center agent.
Agent objects can be collected in an Agents object or in a folder of type tvFolderAgents. This structure uses the
following objects:
Q
Agent object (see page D-5).
Q
Agents object (see page D-6). A collection of Agent objects. Used only by the User object.
Q
Permission object (see page D-28). Contains a record of a permission needed to access a specific folder.
Permission objects can be collected in a Permissions object. Used only by the Permissions object.
CHAPTER 2. THE CLIENT API
2-11
TELEVANTAGE DEVELOPER ’S GUIDE
Q
Permissions object (see page D-28). A collection of Permission objects. The Agent and User objects use this
collection to define permissions granted to a specific agent or user. A Folder object contains a collection of the
permissions required to access the folder.
Call objects
Provides access to a call’s real-time status and methods to manipulate the call, as displayed in the ViewPoint Call
Monitor view. Created by the Session object when a call is received.
Call objects can be collected in a folder of type tvFolderCalls. This structure uses the following objects:
Q
Call object (see page D-8).
Q
Address object (see page D-4). Contains address information for a contact.
Q
Party object (see page D-26). Contains information about one of the parties involved in a call, such as the
caller, the recipient, a member of a conference, and so forth. Party objects can be collected in a Parties object.
Q
Parties object (see page D-26). A collection of Party objects.
CallHistory objects
Provides access to call, similar to what is displayed in the ViewPoint Call Log view.
CallHistory objects can be collected in a folder of type tvFolderHistory. This structure uses the following objects:
Q
CallHistory object (see page D-12).
Q
PartyHistory object (see page D-27). Contains information concerning one party in a call.
Q
PartyHistories object (see page D-27). A collection of PartyHistory objects. Used only by the CallHistory
object.
CHAPTER 2. THE CLIENT API
2-12
TELEVANTAGE DEVELOPER ’S GUIDE
CallRule objects
Provides access to call rule, similar to what is displayed in the ViewPoint Call Rules view.
CallRule objects can be collected in a folder of type tvFolderCallRules. This structure uses the following objects:
Q
CallRule object (see page D-13).
Q
Greeting object (see page D-18). Provides access to a greeting, similar to what is displayed in the ViewPoint
Greetings view. See “Greeting objects” on page 2-15 for a detailed description of Greeting object structure.
Q
PersonalStatus object (see page D-29). Contains a record of a personal status, as displayed in ViewPoint
Personal Status view. See “PersonalStatus objects” on page 2-16 for a detailed description of PersonalStatus
object structure.
Q
RoutingList object (see page D-35). Provides access to a routing list, similar to what is displayed in ViewPoint
Routing Lists view. See “RoutingList objects” on page 2-17 for a detailed description of RoutingList object
structure.
Q
Schedule object (see page D-38). Contains a record of the times when pager and e-mail message notifications
should be sent. See “Schedule objects” on page 2-18 for a detailed description of Schedule object structure.
Contact objects
Contains information about contacts, similar to what is displayed in the ViewPoint Contacts view. Used by the Address
object and the Call, CallHistory, and Message object structures.
CHAPTER 2. THE CLIENT API
2-13
TELEVANTAGE DEVELOPER ’S GUIDE
Contact objects can be collected in a folder of type tvFolderContacts or in a set of WorkgroupMembers objects (see
“Workgroup objects” on page 2-20 for a detailed description of Workgroup object structure). This structure uses the
following objects:
Q
Contact object (see page D-14).
Q
Addresses object (see page D-4). A collection of Address objects.
Q
Address object (see page D-4). Contains address information for a contact.
Q
LocaleCode object (see page D-23). Contains a locale code identifying a TeleVantage language locale setting.
Q
AudioClip object (see page D-7). Used to create or manipulate an audio file.
Dialing Service objects
Dialing service objects contain information about the dialing services defined for a user. See “Dialing Service types” in
Administering TeleVantage for a detailed description of each service.
Dialing Service objects are collected in a Folder of type tvFolderServices. This structure uses the following objects:
Q
InternetService object (see page D-20). A dialing service object containing information for dialing a number
over the Internet.
Q
PhoneGatewayService object (see page D-30). A dialing service object containing information for dialing a
number over an IP Gateway.
Q
PhoneService object (see page D-31). A dialing service object containing information for dialing a number
over a standard phone line.
Q
RoutingService object (see page D-37). Contains information used to select the dialing service based on the
number dialed.
Q
SwitchGatewayService object (see page D-58). A dialing service object containing information for dialing a
number over an IP Gateway that connects to a remote Server and then dials the number from that Server.
Q
Q
SwitchService object (see page D-58). A dialing service object containing information for dialing a Centrex or
PBX extension or other custom numbers over analog and digital trunks that may be connected to external
switches.
IDialingService object (see page D-19). A generic interface used to communicate with any of the dialing
service objects.
Q
IPhoneService object (see page D-21). A generic interface used to communicate with PhoneService,
PhoneGatewayService, and RoutingService objects.
CHAPTER 2. THE CLIENT API
2-14
TELEVANTAGE DEVELOPER ’S GUIDE
Greeting objects
Provides access to a greeting, similar to what is displayed in ViewPoint Greetings view. Used by the CallRule,
PersonalStatus, RoutingList object structures.
Greeting objects can be collected in a folder of type tvFolderGreetings. This structure uses the following objects:
Q
Greeting object (see page D-18).
Q
AudioClip object (see page D-7). Used to create or manipulate an audio file.
Message objects
Contains a voice message and related information. Used in the CallHistory object structure.
Message objects can be collected in a folder of type tvFolderMessages. This structure uses the following objects:
Q
Message object (see page D-23).
Q
Recipients object (see page D-34). Collection object containing a list of Contact and Workgroup items.
Q
AudioClip object (see page D-7). Used to create or manipulate an audio file.
Q
Address object (see page D-4). Contains address information for a contact.
CHAPTER 2. THE CLIENT API
2-15
TELEVANTAGE DEVELOPER ’S GUIDE
Notification objects
Contains address and schedule information for sending pager or e-mail message notifications to the user. Used only in
the User object.
Notification objects are used by the User and Queue objects, but are not collected by any collection object or default
Folder type. This structure uses the following objects:
Q
Notification object (see page D-25).
Q
Address object (see page D-4). Contains address information for a contact.
Q
NotifyScheduleItems object (see page D-25). A collection of NotifyScheduleItem objects. Used only by the
Notification object.
Q
NotifyScheduleItem object (see page D-25). Contains a record of when pager or e-mail notifications should be
sent. Used only by the NotifyScheduleItems object.
Q
Schedule object (see page D-38). Contains a record of the times when pager and e-mail message notifications
should be sent. See “Schedule objects” on page 2-18 for a detailed description of Schedule object structure.
PersonalStatus objects
Contains a record of a personal status, as displayed in the ViewPoint Personal Status view. Used by the CallRule and
User objects.
CHAPTER 2. THE CLIENT API
2-16
TELEVANTAGE DEVELOPER ’S GUIDE
PersonalStatus objects can be collected in a folder of type tvFolderPersonalStatus. This structure uses the following
objects:
Q
PersonalStatus object (see page D-29).
Q
Address object (see page D-4). Contains address information for a contact.
Q
Greeting object (see page D-18). Provides access to greeting, similar to what is displayed in the ViewPoint
Greetings view. See “Greeting objects” on page 2-15 for a detailed description of Greeting object structure.
Q
RoutingList object (see page D-35). Provides access to routing list, similar to what is displayed in the
ViewPoint Routing Lists view. See “RoutingList objects” on page 2-17 for a detailed description of RoutingList
object structure.
Q
AudioClip object (see page D-7). Used to create or manipulate an audio file.
RoutingList objects
Provides access to a routing list, similar to what is displayed in the ViewPoint Routing Lists view. Used by the CallRule
and PersonalStatus objects.
RoutingList objects can be collected in a folder of type tvFolderRoutingLists. This structure uses the following objects:
Q
RoutingList object (see page D-35).
Q
RoutingListActions object (see page D-36). A collection of RoutingListAction objects.
Q
RoutingListAction object (see page D-36). Contains a record of a single routing list action.
Q
RoutingListFinalAction object (see page D-37). Contains a record of the final action in a routing list.
Q
Address object (see page D-4). Contains address information for a contact.
Q
Greeting object (see page D-18). Provides access to greeting, similar to what is displayed in the ViewPoint
Greetings view. See “Greeting objects” on page 2-15 for a detailed description of Greeting object structure.
CHAPTER 2. THE CLIENT API
2-17
TELEVANTAGE DEVELOPER ’S GUIDE
Schedule objects
Contains a record of the times when pager and e-mail message notifications should be sent. Used by the CallRule,
NotifyScheduleItem, and User objects.
Schedule objects can be collected in the Schedules object. Schedule objects do not have a default Folder type. This
structure uses the following objects:
Q
Schedule object (see page D-38).
Q
Schedules object (see page D-40). A collection of Schedule objects. Used only by the System object.
Q
ScheduledDates object (see page D-38). A collection of ScheduledDate objects.
Q
ScheduledDate object (see page D-38). Contains a record of a date and time when pager and e-mail message
notifications should be sent.
Q
ScheduledDays object (see page D-39). A collection of ScheduledDay objects.
Q
ScheduledDay object (see page D-39). Contains a record of times on specific days of the week when pager and
e-mail message notifications should be sent.
Shortcut objects
Contains information that can be used to locate and access a specific Folder object. Used by the Session objects.
Shortcut objects can be collected in the Shortcuts object. This structure uses the following objects:
Q
Shortcut object (see page D-47).
Q
Shortcuts object (see page D-48). A collection of Shortcut objects.
Q
ShortcutGroup object (see page D-47). Provides access to a group of shortcuts, for example, the General and
Advanced shortcut groups displayed in the ViewPoint view bar. ShortcutGroup objects can be collected in the
ShortcutGroups object.
Q
ShortcutGroups object (see page D-47). A collection of ShortcutGroup objects.
CHAPTER 2. THE CLIENT API
2-18
TELEVANTAGE DEVELOPER ’S GUIDE
Station objects
Contains configuration information about a station. Used by the Session and User objects.
Station objects do not have a default Folder type. This structure uses the following objects:
Q
Station object (see page D-54).
Q
StationButtons object (see page D-55). A collection of StationButton objects.
Q
StationButton object (see page D-55). Provides access to specialized button on a feature phone.
Q
Address object (see page D-4). Contains address information for a contact.
Q
SystemTarget object (see page D-61).
Q
StationFeature object (see page D-56). Provides access to feature assigned to a StationButton object. See
“StationFeature objects” on page 2-19 for a detailed description of StationFeature object structure.
StationFeature objects
Provides access to feature assigned to a StationButton object.
StationFeature objects are used by the User object and are collected in the StationFeatures object (which is used only in
the System object). StationFeature objects do not have a default Folder type. This structure uses the following objects:
Q
Q
StationFeature object (see page D-56).
StationFeatures object (see page D-56). A collection of StationFeature objects. Used only by the StationType
object in the System object structure.
Q
StationParameters object (see page D-57). A collection of StationParameter objects.
Q
StationParameter object (see page D-56). Contains a parameter required by a StationFeature object.
CHAPTER 2. THE CLIENT API
2-19
TELEVANTAGE DEVELOPER ’S GUIDE
Workgroup objects
Provides access to a workgroup, similar to what is displayed in the ViewPoint Workgroups view.
Workgroup objects can be collected in a folder of type tvFolderWorkgroups, or in a set of WorkgroupMember objects.
Each Workgroup object contains a WorkgroupMembers collection. The WorkgroupMember objects in a
WorkgroupMembers collection can contain either Contact objects or Workgroup objects. This structure uses the
following objects:
Q
Workgroup object (see page D-65).
Q
WorkgroupMembers object (see page D-66). A collection of WorkgroupMember objects.
Q
WorkgroupMember object (see page D-66). Contains either a Contact object or a Workgroup object.
Q
Contact object (see page D-14). Contains information about contacts, similar to what is displayed in the
ViewPoint Contacts view. See “Contact objects” on page 2-13 for a detailed description of Contact object
structure.
Starting a new Client API project in Visual Basic _______________________
The following procedure creates a Visual Basic project and adds the Client API to it. At that point you can start
developing your own Client API application.
To start a new Client API project
1.
CHAPTER 2. THE CLIENT API
Start Visual Basic and open a new Standard EXE project.
2-20
TELEVANTAGE DEVELOPER ’S GUIDE
2.
In the VB main menu, choose Project > References. In the References window, select the checkbox for
TeleVantage 8.0 Object Library.
Programming tips and examples____________________________________
This section contains tips and examples that demonstrate how to perform some common tasks via the TeleVantage
Client API.
Q
“How do I log in and start a new session with various phones?” See page 2-22.
Q
“How do I get events for any item?” See page 2-23.
Q
“How do I export a list of voice messages?” See page 2-23.
Q
“How do I create a TeleVantage contact?” See page 2-23.
Q
“How do I create a TeleVantage user?” See page 2-24.
Q
“How do I create a call?” See page 2-25.
Q
“How do I answer an incoming call?” See page 2-26.
Q
“How do I hold and retrieve a call?” See page 2-27.
Q
“How do I identify who owns a call?” See page 2-27.
Q
“How do I find who is assigned to extension 102?” See page 2-28.
Q
“How do I locate a dialing service by its access code?” See page 2-28.
Q
“How do I find a specific Call object” See page 2-28.
Q
“How do I check the availability of a user (extension)?” See page 2-29.
Q
“How do I check the status of a user?” See page 2-29.
Q
“How do I check the status of a call center agent?” See page 2-29.
Q
“How do I sign a call center agent in and out?” See page 2-30.
Q
“How do I record conversations between call center agents and external callers?” See page 2-31.
Q
“How do I check the status of an ACD workgroup agent?” See page 2-31.
Q
“How do I change personal status?” See page 2-32.
Q
“How do I store data with a party in a call?” See page 2-33.
CHAPTER 2. THE CLIENT API
2-21
TELEVANTAGE DEVELOPER ’S GUIDE
How do I log in and start a new session with various phones?
Typical log on
Dim oSession As TeleVantage.Session
Set oSession = New TeleVantage.Session
' Log on to the TeleVantage Server.
' "32402" is a unique number used to identify the application using this Session object.
oSession.Logon "Server_Name", "Joe User", "****", 2, tvApplicationTypeClient, "32402", , False
Logging on to another user’s station (hot desking)
Dim oSession As TeleVantage.Session
Dim eStationUsage As TeleVantage.TVStationUsage
Set oSession = New TeleVantage.Session
'
'
'
'
'
Set eStationUsage to tvStationUsageVisitor, to place and answer calls as the current user
associated with Station 4
Set eStationUsage to tvStationUsageOwner, to place and answer calls as Joe User on Station 4
Set eStationUsage to tvStationUsageOwnerAndForwardCalls, to place and answer calls as Joe User
on Station 4, and forward Joe User's calls to Station 4
eStationUsage = tvStationUsageOwner
' Log on to the TeleVantage Server.
' "32402" is a unique number used to identify the application using this Session object.
oSession.Logon "Server_Name", "Joe User", "****", 4, tvApplicationTypeClient, "32402", , False,
eStationUsage
Logging on to a remote number
Dim oSession As TeleVantage.Session
Dim tLogonAddressInfo As TeleVantage.TVLogonAddressInfo
Set oSession = New TeleVantage.Session
' The AccessCode specifies which dialing service to use. "" will use the default
' dialing service for the address type specified.
tLogonAddressInfo.AccessCode = ""
' The AddressType specifies the type of remote number. Only tvAddressTypePhoneNumber,
' tvAddressTypeIP, and tvAddressTypeCustom are valid
tLogonAddressInfo.AddressType = tvAddressTypePhoneNumber
tLogonAddressInfo.StationUsage = tvStationUsageOwner
tLogonAddressInfo.Value = "6175551234"
' Log on to the TeleVantage Server.
' "32402" is a unique number used to identify the application using this Session object.
oSession.Logon_v6 "Server_Name", "Joe User", "****", tLogonAddressInfo, tvApplicationTypeClient,
"32402", , False
CHAPTER 2. THE CLIENT API
2-22
TELEVANTAGE DEVELOPER ’S GUIDE
How do I get events for any item?
This code is specific for calls, but you can do the same with call history (new call log entries) voice messages or any
other item in any type of folder that you want to get events.
Dim oCallFolder As TeleVantage.Folder
Dim oCallItems As TeleVantage.Items
' Assuming oSession was created and is already logged-in as shown earlier
' Get the default folder of the desired type of item (in this case calls)
Set oCallFolder = oSession.GetDefaultFolder(tvFolderCalls)
' Get the items collection from the folder to register for events for this type of item
' (in this case calls)
Set oCallItems = oCallFolder.Items
How do I export a list of voice messages?
The following sample code exports a list of voice messages and then plays one over the phone via the API.
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
oAudioClip As TeleVantage.AudioClip
oFile As Object
oFileSystemObject As Object
oMessage As TeleVantage.Message
oMessageFolder As TeleVantage.Folder
oMessageView As TeleVantage.View
sExportString As String
sMessageID As String
' Assuming oSession was created and is already logged-in
' Get the Messages Folder.
Set oMessageFolder = oSession.GetDefaultFolder(tvFolderMessages)
' Get the Messages View and export (as XML) the column data.
Set oMessageView = oMessageFolder.Views.Item(1)
sExportString = oMessageView.Export(tvExportTypeData)
' Write the exported data to an XML file.
Set oFileSystemObject = CreateObject("Scripting.FileSystemObject")
Set oFile = oFileSystemObject.CreateTextFile(App.Path & "\" & "MessageData.xml", True)
oFile.write sExportString
oFile.Close
' Assuming we parsed the XML file for the object ID of a message (and stored it 'in sMessageID)
' Get the actual message object from the system and play it over the handset.
Set oMessage = oSession.GetItem(sMessageID)
Set oAudioClip = oMessage.AudioClip
oAudioClip.DeviceType = tvAudioDevicePhone
oAudioClip.Play
How do I create a TeleVantage contact?
' This sample code creates a TeleVantage contact.
Dim oAddress As Address
Dim oContact As Contact
Dim oContactsFolder As Folder
CHAPTER 2. THE CLIENT API
2-23
TELEVANTAGE DEVELOPER ’S GUIDE
' Assuming oSession was created and is already logged-in
' Get the Contacts Folder.
Set oContactsFolder = oSession.GetDefaultFolder(tvFolderContacts)
' Create a new Contact object.
Set oContact = oContactsFolder.Items.Add(tvClassContact)
' Set the Contact properties.
oContact.FirstName = "Jim"
oContact.LastName = "Williams"
oContact.PIN = "123"
' Add a new Address object to the Contact.
Set oAddress = oContact.Addresses.Add()
' Set the Address properties for the new Contact.
oAddress.AddressType = tvAddressTypePhoneNumber
oAddress.Category = tvAddressCategoryHome
oAddress.Description = "Jim's home number"
oAddress.Value = "6175551234"
' Make sure the address uses the dialing rules defined in the Dialing Service
oAddress.AddressSubType = tvAddressSubTypeUseRules
oAddress.Default = True ' This will make this the default address for this contact
' Call the Validate method so that all assigned fields can be checked.
oAddress.Validate True
' Save the new Contact.
oContact.Save
How do I create a TeleVantage user?
' This sample code creates a user.
Dim
Dim
Dim
Dim
Set
oAddress As TeleVantage.Address
oSession As TeleVantage.Session
oUser As TeleVantage.User
oUsersFolder As TeleVantage.Folder
oSession = New TeleVantage.Session
' Log on to the TeleVantage Server as a user that has privileges to create users on the Server.
' "32402" is a unique number used to identify the application using this Session object.
oSession.Logon "Server_Name", "Admin", "100", 2, tvApplicationTypeClient, "32402", , False
' Get the Users Folder.
Set oUsersFolder = oSession.GetDefaultFolder(tvFolderUsers)
' Create a new User object.
Set oUser = oUsersFolder.Items.Add(tvClassUser)
' Set the User properties.
oUser.FirstName = "Joe"
oUser.LastName = "Smith"
oUser.Extension = "117"
oUser.Company = "Joe's Stuff, Inc."
oUser.VoiceTitle.Import "c:\voice titles\JoeVoiceTitle.wav"
CHAPTER 2. THE CLIENT API
2-24
TELEVANTAGE DEVELOPER ’S GUIDE
' Add a new Address object to the User.
Set oAddress = oUser.Addresses.Add()
' Set the Address properties for the new User.
oAddress.AddressType = tvAddressTypeStation
oAddress.Category = tvAddressCategoryNone
oAddress.Description = "Address for Joe Smith"
oAddress.Value = 2 'station 2
oAddress.Default = True 'this will make station 2 Joe's default address
' Call the Validate method so that all assigned fields can be checked for correctness.
oAddress.Validate True
' Save the new User.
oUser.Save
How do I create a call?
Creating a personal call to a user
' This sample code creates a call to a user.
Dim
Dim
Dim
Dim
oAddress As TeleVantage.Address
oCall As TeleVantage.Call
oSystemTargetFolder As TeleVantage.Folder
oTarget As TeleVantage.SystemTarget ' System Targets are items that appear in the extension view
' Assuming oSession was created and is already logged-in
' Get the user's ID and set the address type to tvAddressTypeUser.
Set oSystemTargetFolder = oSession.GetDefaultFolder(tvFolderSystemTarget)
Set oTarget = oSystemTargetFolder.Items("Sally Jones", tvSearchKey)
Set oAddress = oSession.CreateAddress(oTarget.ID, tvAddressTypeUser)
' Start the call. The station used in the Logon method of this session should ring.
Set oCall = oSession.CreateCall(oAddress)
Creating a personal call to an external number
' This sample code creates a call to an external number.
Dim oAddress As TeleVantage.Address
Dim oCall As TeleVantage.Call
' Assuming oSession was created and is already logged-in
' Create an Address object that contains the information necessary to make a call.
Set oAddress = oSession.CreateAddress("617-555-1212", tvAddressTypePhoneNumber, _
tvAddressSubTypeUseRules, oSession.System.DefaultPhoneService)
' Start the call. The station used in the Logon method of this session should ring.
Set oCall = oSession.CreateCall(oAddress)
CHAPTER 2. THE CLIENT API
2-25
TELEVANTAGE DEVELOPER ’S GUIDE
Creating a queue call '
' This sample code creates a queue call to an external number.
Dim oAddress As TeleVantage.Address
Dim oCall As TeleVantage.Call
' Assuming oSession was created and is already logged-in
' Create an Address object that contains the information necessary to make a call.
Set oAddress = oSession.CreateAddress("617-555-1212", tvAddressTypePhoneNumber, _
tvAddressSubTypeUseRules, oSession.System.DefaultPhoneService)
' Start the call. The station used in the Logon method of this session should ring.
Set oCall = oSession.CreateCallAs(oAddress, oSession.User.Agents.Item(1).QueueID)
How do I answer an incoming call?
’ This sample code answers an incoming call.
’ Global Variables
Private
Private
Private
Private
WithEvents oSession As Session
sCurrentCallID As String
bCurrentlyInACall As Boolean
oCurrentCall As TeleVantage.Call
Private Sub RegisterForCallEvents()
' This MUST be executed before you will get call events.
Dim oCallFolder As TeleVantage.Folder
Dim oCallItems As TeleVantage.Items
' Assuming oSession was created and is already logged-in
' Get the default folder of the desired type of item (in this case calls)
Set oCallFolder = oSession.GetDefaultFolder(tvFolderCalls)
' Get the items collection from the folder to register for events for this type of item (again in this
case calls)
Set oCallItems = oCallFolder.Items
End Sub
Private Sub oSession_CallStatusChange(ByVal ID As String, ByVal Status As TeleVantage.TVPartyStatus, ByVal OldStatus As TeleVantage.TVPartyStatus)
'
'
'
'
'
'
We get this event anytime the status of any Call object changes.
The value of ID is a unique identifier for each instance of a Call object.
We can use OldStatus and Status to see what the actual transition was.
For example, you could check to see if a particular call went from Ringing to Active.
In this very basic example, we will answer a call only if its status is "Ringing" and
ignore any other incoming calls until the first one hangs up.
CHAPTER 2. THE CLIENT API
2-26
TELEVANTAGE DEVELOPER ’S GUIDE
' Helpful debug statements
Debug.Print
Debug.Print
Debug.Print
Debug.Print
"START oSession_CallStatusChange"
"Call: " & ID
"Old Status: " & OldStatus
"New Status: " & Status
' Since this event can be raised for any number of concurrent calls, check the unique ID to make sure
' we are dealing with the same Call object. Ignore any other call objects for the time being.
If (sCurrentCallID <> ID) Then
Debug.Print "New Call!"
sCurrentCallID = ID
' Get the actual Call object based on the ID.
Set oCurrentCall = oSession.GetItem(sCurrentCallID)
Else
Debug.Print "Existing Call!"
End If
' Make sure that
' 1) the caller did not hang up between the beginning of this event and now, and
' 2) we are not currently in a call.
If (oCurrentCall.Status <> tvPartyStatusDisconnected) And (Not bCurrentlyInACall) Then
' Answer the call if the status of the Call object is "Ringing".
If (oCurrentCall.Status = tvPartyStatusRinging) Then
oCurrentCall.Answer
bCurrentlyInACall = True ' Ignore any other incoming calls for now
End If
End If
' If the call we are in gets disconnected, clear out the ID variable and
' set bProcessingCall to False so we can process the next call.
If (bCurrentlyInACall) And (oCurrentCall.Status = tvPartyStatusDisconnected) Then
sCurrentCallID = ""
bCurrentlyInACall = False ' Now we can allow another incoming call
End If
Debug.Print "END oSession_CallStatusChange"
End Sub
How do I hold and retrieve a call?
Call.Hold puts a call on hold. Call.Answer will take it back (see “Call object” on page D-8).
How do I identify who owns a call?
Call.OwnerParty identifies who owns a call. This is useful when looking at a shared Call Monitor or a call center queue
to identify which user TeleVantage is targeting for the call (by ringing that user’s phone) or which user has answered.
CHAPTER 2. THE CLIENT API
2-27
TELEVANTAGE DEVELOPER ’S GUIDE
How do I find who is assigned to extension 102?
Dim oTarget As TeleVantage.SystemTarget
Dim oTargetFolder As TeleVantage.Folder
' Assuming oSession was created and is already logged-in
Set oTargetFolder = oSession.GetDefaultFolder(tvFolderSystemTarget)
' Get the name of the SystemTarget with an extension of "102"
For Each oTarget In oTargetFolder.Items
If (oTarget.Extension = "102") Then
sName = oTarget.Name
Exit For
End If
Next
How do I locate a dialing service by its access code?
The Service folder contains information on all dialing services. You can look at the AccessCode property of each service.
’ This sample code loops through the Service folder and matches the AccessCode.
Dim oServiceFolder As Folder
Set oServiceFolder = oSession.GetDefaultFolder(tvFolderServices)
For Each oService In oServiceFolder.Items
If (oService.AccessCode = "9") Then
Exit For
End If
Next
How do I find a specific Call object
When dealing with inbound calls, you can use the Session ItemAdd, ItemChange, ItemRemove, or CallStatusChange
events to get the ID of each call. You can then pass the ID to Session.GetItem(), which will return the Call object. To
determine which folder the call is in, use Call.Parent.
The can be multiple call folders. In ViewPoint, each call folder maps to the tabs at the bottom of the Call Monitor
window (though there is no “all calls” folder in the Client API). For example, Queue calls that haven't yet been routed
to your logged-in user would be in the Queue's call folder. If you know which folder you want to work with, you can
loop through the calls in that folder, as shown in the following example.
’ This sample code loops through a Calls folder so we can work with a specific call.
Set fCall = oSession.GetDefaultFolder(tvFolderCalls)
For Each oCall In fCall.Items
’ <do something with the call>
Next
CHAPTER 2. THE CLIENT API
2-28
TELEVANTAGE DEVELOPER ’S GUIDE
How do I check the availability of a user (extension)?
' This sample code determines the availability of a user (extension).
Dim eAvailability As TeleVantage.TVSystemTargetAvailability
Dim oTarget As TeleVantage.SystemTarget
Dim oTargetFolder As TeleVantage.Folder
' Assuming oSession was created and is already logged-in
' Get the user from the system target’s folder
Set oTargetFolder = oSession.GetDefaultFolder(tvFolderSystemTarget)
Set oTarget = oTargetFolder.Items.Item("Jane User", tvSearchKey)
eAvailability = oTarget.Availability
How do I check the status of a user?
To check the personal status of the currently signed in user, check Session.User.LastAppliedStatus. To check other
users' statuses, you need read permission to the User folder. Loop through the folder until you find the appropriate user
and check the User.LastAppliedStatus.
How do I check the status of a call center agent?
This code sample can also be used to find a call center agent given a user name and queue name.
Dim
Dim
Dim
Dim
Dim
Dim
Dim
oAgentStat As TeleVantage.AgentStat
oFolder As TeleVantage.Folder
oTargetQueue As TeleVantage.SystemTarget
oTargetUser As TeleVantage.SystemTarget
eStatus As TeleVantage.TVAgentStatus
sQueueID As String
sUserID As String
' Assuming oSession was created and is already logged-in
Set oFolder = oSession.GetDefaultFolder(tvFolderSystemTarget)
' Get the SystemTarget object for the Queue.
Set oTargetQueue = oFolder.Items("Queue 1", tvSearchKey)
' Get the ID of the Queue, we must strip the first character off to get the Queue ID.
sQueueID = Mid$(oTargetQueue.ID, 2)
' Get the SystemTarget object for the Queue.
Set oTargetUser = oFolder.Items("Jane Agent", tvSearchKey)
' Get the ID of the User, we must strip the first character off to get the User ID.
sUserID = Mid$(oTargetUser.ID, 2)
Set oFolder = oSession.GetDefaultFolder(tvFolderAgentStats)
CHAPTER 2. THE CLIENT API
2-29
TELEVANTAGE DEVELOPER ’S GUIDE
' Find the AgentStat object for the agent, by matching QueueID and UserID.
For Each oAgentStat In oFolder.Items
If (oAgentStat.QueueID = sQueueID And oAgentStat.UserID = sUserID) Then
' Get the status of the agent.
eStatus = oAgentStat.Status
Exit For
End If
How do I sign a call center agent in and out?
Dim
Dim
Dim
Dim
Dim
Dim
Dim
oAgentStat As TeleVantage.AgentStat
oFolder As TeleVantage.Folder
oTargetQueue As TeleVantage.SystemTarget
oTargetUser As TeleVantage.SystemTarget
eStatus As TeleVantage.TVAgentStatus
sQueueID As String
sUserID As String
' Assuming oSession was created and is already logged-in
Set oFolder = oSession.GetDefaultFolder(tvFolderSystemTarget)
' Get the SystemTarget object for the Queue.
Set oTargetQueue = oFolder.Items("Queue 1", tvSearchKey)
' Get the ID of the Queue, we must strip the first character off to get the Queue ID.
sQueueID = Mid$(oTargetQueue.ID, 2)
' Get the SystemTarget object for the Queue.
Set oTargetUser = oFolder.Items("Jane Agent", tvSearchKey)
' Get the ID of the User, we must strip the first character off to get the User ID.
sUserID = Mid$(oTargetUser.ID, 2)
Set oFolder = oSession.GetDefaultFolder(tvFolderAgentStats)
' Find the AgentStat object for the agent, by matching QueueID and UserID.
For Each oAgentStat In oFolder.Items
If (oAgentStat.QueueID = sQueueID And oAgentStat.UserID = sUserID) Then
CHAPTER 2. THE CLIENT API
2-30
TELEVANTAGE DEVELOPER ’S GUIDE
' If the agent is an observer (i.e. not signed in), sign them in, otherwise sign them out.
If (oAgentStat.Observer) Then
Call oAgentStat.SignIn
Else
Call oAgentStat.SignOut
End If
Exit For
End If
Next
How do I record conversations between call center agents and external callers?
Call.RecordStart, Call.RecordStop, Call.RecordPause, and Call.RecordResume allow you to record both queue
and non-queue calls.
In the following example, Target specifies which user's inbox to which the recording will be sent. The time stamp and
name of the person who did the recording are included as well. All recordings are sent to the user’s inbox; you cannot
send recordings to a different folder. If you do not modify the default TimeOut parameter, the recording will not stop
until some outside event occurs such as a RecordStop. TermDigits allows you to specify a key (for example, #) that
stops the recording when the key is pressed on the keypad.
RecordStart(Target, [Format], [TimeOut], [TermDigits], [Beep])
Target as SystemTarget object.
Format as TVCallRecordFormat. Optional. Default value is 3 (tvCallRecordFormatPCM8K).
TimeOut as Long. Optional. Default value is -1.
TermDigits as String. Optional. Default value is "".
Beep as Boolean. Optional. Default value is 0 (false).
RecordStop()
Note: This example uses the default call recording format tvCallRecordFormatPCM8K. If you use a different call
recording format, playback of the recording from ViewPoint or converting the recording to a .WAV file in order to forward
it via e-mail it will not work. You can use one of the non-default call recording formats if your application manages playback
itself.
How do I check the status of an ACD workgroup agent?
If you are interested in the status of an ACD workgroup agent, check to see if the user is a member of the appropriate
workgroup, and check the User.ACDDoNotDisturb property.
CHAPTER 2. THE CLIENT API
2-31
TELEVANTAGE DEVELOPER ’S GUIDE
How do I change personal status?
This example shows how to change personal status via the API. One way to use this technique is to integrate this code
with a program written using the Microsoft Outlook API that monitors scheduled events in Outlook. Whenever a
scheduled meeting starts, the program automatically changes personal status to “In a Meeting”. When the meeting
completes, the program then changes personal status back to “Available”.
’ This sample code changes Personal Status to "In a Meeting"
Private WithEvents oSession As Session
Private Sub Command1_Click()
’ Session and User object variables
Dim oSession As New Session
Dim oUser As User
’ Variables to hold the collection of Personal Status objects for user
Dim oPersonalStatusFolder As Folder
Dim oPersonalStatus As TeleVantage.PersonalStatus
’ Log on to the TeleVantage Server.
’ “32402” is a unique number used to identify the application using this Session object.
oSession.Logon "Server_Name", "Joe Smith", "****", 2, tvApplicationTypeClient, "32402", , False
’ Get the User object
Set oUser = oSession.User
’ Get the Personal Status Folder
Set oPersonalStatusFolder = oSession.GetDefaultFolder(tvFolderPersonalStatus)
’ Look at each Personal status object in the folder until we find "*In A Meeting"
’ Note that the Name field of statuses are prefixed with "*"
For Each oPersonalStatus In oPersonalStatusFolder.Items
If oPersonalStatus.Name = "*In A Meeting" Then
’ Use the ApplyStatus method with our "*In A Meeting" Personal status object
oUser.ApplyStatus oPersonalStatus
End If
Next
’ Destroy objects and log off Server
Set oUser = Nothing
Set oPersonalStatusFolder = Nothing
Set oPersonalStatus = Nothing
oSession.LogOff
End Sub
CHAPTER 2. THE CLIENT API
2-32
TELEVANTAGE DEVELOPER ’S GUIDE
How do I store data with a party in a call?
Call.SetCustomData/Party.SetCustomData allow for custom data storage on a party in the call. For a conference call,
Call.SetCustomData is a shortcut to store the custom data on the owner party, and in a 2 party call it is a shortcut to
store the custom data on the “other” party in the call.
Once the custom data has been set, it can be retrieved using Call.CustomData/Party.CustomData. For a conference
call, Call.CustomData is a shortcut to get the custom data from the owner party, and in a 2 party call it is a shortcut to
get the custom data from the “other” party in the call. Also note that data will not be immediately available after being
set until the next Change event is received for the call.
Storing custom data:
Dim oCall As TeleVantage.Call
Dim oParty As TeleVantage.Party
Dim oCallFolder As TeleVantage.Folder
' Assuming oSession was created and is already logged-in
Set oCallFolder = oSession.GetDefaultFolder(tvFolderCalls)
' Assuming there is at least 1 call in this folder.
Set oCall = oCallFolder.Items(1)
' Set some custom data on the call.
' If this call is a 2 party call then data will be stored on the "other" party,
' otherwise it will be stored on the owner party.
oCall.SetCustomData "DataName 1", "DataValue 1"
' Set some custom data on the owner party in the call.
oCall.OwnerParty.SetCustomData "DataName 2", "DataValue 2"
Retrieving custom data:
Dim
Dim
Dim
Dim
Dim
oCall As TeleVantage.Call
oParty As TeleVantage.Party
oCallFolder As TeleVantage.Folder
sData1 As String
sData2 As String
' Assuming oSession was created and is already logged-in
Set oCallFolder = oSession.GetDefaultFolder(tvFolderCalls)
' Assuming there is at least 1 call in this folder.
Set oCall = oCallFolder.Items(1)
' Get our custom data from the call.
' If this call is a 2 party call then data will be retrieved from the "other" party,
' otherwise it will be retrieved from the owner party.
sData1 = oCall.CustomData("DataName 1")
' Get our custom data from the owner party in the call.
sData2 = oCall.OwnerParty.CustomData("DataName 2")
CHAPTER 2. THE CLIENT API
2-33
CHAPTER 3
CHAPTER 3
THE ADD-IN API
CHAPTER CONTENTS
About the TeleVantage Add-In API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-2
How Add-Ins work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-2
Add-In API Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-5
TELEVANTAGE DEVELOPER ’S GUIDE
About the TeleVantage Add-In API___________________________________
The Add-In application programming interface (API) allows you to develop custom applications that extend
TeleVantage ViewPoint with enhanced functionality. These applications, called Add-Ins, are loaded by TeleVantage
ViewPoint and extend it with new menus, toolbar options, and automatic processing of calls and other data. The Add-In
API also exposes a reference to ViewPoint’s Session object so an Add-In can easily manage and change data for the
currently logged in ViewPoint user using the Client API. For more information on the Client API, see Chapter 2.
For example, using the Add-In API you can extend ViewPoint so:
Q
users can right click on a Contact or extension number and click an Instant message or E-mail menu choice to
send the contact or user an instant message or E-mail message using any available instant messaging or E-mail
APIs.
Q
whenever a TeleVantage contact calls a user, the contact’s picture is displayed.
Q
users can click on a custom toolbar icon to launch another Windows application.
Q
agents can click to have their supervisor coach them in a difficult call
Q
users can click a menu choice to look up data on the caller in the Call Monitor, Call Log, or Voice Messages
view.
Q
users can click a custom “Export to Excel” menu on ViewPoint’s Tools menu to export the contents of the
current ViewPoint view to an Excel spreadsheet.
The Reverse Phone Number Lookup Sample Add-In
The TeleVantage SDK includes Visual Basic 6 source code for a sample Add-In called Reverse Phone Number Lookup.
This Add-In displays a web page (e.g. Google) to look up the phone number for a call, contact, voice message or call
log entry when a user right clicks on a ViewPoint item and selects the Reverse Phone Number Lookup menu choice.
The SDK installer (TVSDK.EXE) copies the source code to TVReversePhoneLookup.DLL to
the..\samples\addins\ReversePhoneLookup subdirectory. The fastest way to learn how to develop your own Add-In
is to open and browse through this ReversePhoneLookup commented sample source code, or modify it to suit your own
needs.
See Using TeleVantage for information on using the TeleVantage ViewPoint Add-In Manager and the compiled
Reverse Phone Number Lookup Add-In (TVReversePhoneLookup.DLL), which is automatically installed to the
Server’s \NetSetup directory.
How Add-Ins work________________________________________________
Overview
Add-Ins are software components you can develop that communicate with TVClient.exe, the executable for the
TeleVantage ViewPoint application. TVClient.exe exposes a COM object called TVClient which includes several
interfaces that make up the Add-In API. The primary TVCLient interface is IAddIn. The IAddIn interface must be
implemented in your application for it to be recognized by ViewPoint as an Add-In. The methods exposed by IAddIn
notify your Add-In application of changes in a ViewPoint session (e.g. when ViewPoint is loaded, when folders are
changed, when menus are clicked, etc.) The IAddIn interface also allows Add-Ins to effect a ViewPoint session by
adding new choices on ViewPoint menus, right click menus, or toolbar buttons, as well as change text on the ViewPoint
status bar and more. Most importantly, the IAddIn interface provides a reference to the Client API Session object used
by the user logged into ViewPoint so Add-Ins can get notification of all call and Server data, and receive the same events
that ViewPoint receives. This allows Add-Ins to do anything a Client API application can do, without the need to log in
or consume additional memory since they share the ViewPoint Session object. Unlike regular Client API applications,
Add-Ins have the advantage of knowing exactly what the user is doing in ViewPoint. Add-Ins are the most integrated
way to add functionality to ViewPoint.
CHAPTER 3. THE ADD-IN API
3-2
TELEVANTAGE DEVELOPER ’S GUIDE
Installing Add-Ins with the ViewPoint Add-In Manager
When a user attempts to add a new Add-In using the Add-In Manager, ViewPoint opens a dialog to browse for Add-Ins
located in the \NetSetup folder of the TeleVantage Server. Once the Add-In is selected, ViewPoint copies the Add-In
file to the user’s PC and registers it.
In this way, Add-Ins that require only one file (the compiled Add-In DLL or EXE) to locally exist on the TeleVantage
ViewPoint PC can be distributed without any installation program. If you want your single file Add-In to be accessible
by every TeleVantage User, all you need to do is copy the file to the Server’s NetSetup directory and inform the users
to select it via the Add-In manager.
Add-Ins that require multiple files to be installed on the users PC must be installed using an installation program you
develop yourself, which you can also copy to the \NetSetup folder for them to run using Windows Explorer.
Once an Add-In is added by the Add-In manager ViewPoint loads the Add-In software component into memory. Once
added, the Add-In is automatically loaded every time ViewPoint is started until expressly removed or disabled using the
Add-In manager. Using the Add-In Manager to disable or remove the Add-In causes the Add-In to be terminated as
described below.
Add-In Initialization
As soon as ViewPoint loads an Add-In, the IAddIn.Initialize method is invoked which will cause your Add-In’s class
to initialize -- assuming you have implemented the IAddIn interface in your Add-In application. The IAddIn.Initialize
method passes to your application a reference to the same Session and Application object ViewPoint is using, allowing
you to immediately get at the same data ViewPoint has access to. There is no need to log on to the Client API to obtain
a Session object, since the user has already logged into ViewPoint (and hence the Client API) before the Add-In was
loaded.
Once initialized, the IAddIn.GetAddInInfo method is invoked to allow your Add-In to describe itself to the Add-In
manager so the user can understand its purpose and set up any custom Add-In properties (e.g. options) you provide. You
can set the Add-In’s display name, Author, Description, Version, and indicate if there are any custom Add-In properties
that can be set by the user. If there are Add-In properties the user can click the Add-In Manager’s Options button to
display the properties. Clicking options will invoke the IAddIn_ShowProperties method so your Add-In can display
a form where the user can specify the Add-In options. Typically the results of these options should be persisted by your
Add-In in the Windows registry, file or a database you maintain.
Folder Changes
After the Add-In is initialized, the IAddIn_FolderChanged method is invoked which passes a reference to the currently
visible Folder, Pane and Explorer. An example ViewPoint Folder is the voice messages inbox. An example Pane is the
Call Monitor’s Extensions Pane (so you can see Extensions and calls at the same time). The ViewPoint application
window (the entire window you see when you start ViewPoint) is the main Explorer, and each time a user right-clicks
a folder and chooses “Open in a New Window” a new ViewPoint Explorer window is created, which can be separately
resized and minimized from the main ViewPoint explorer.
CHAPTER 3. THE ADD-IN API
3-3
TELEVANTAGE DEVELOPER ’S GUIDE
Armed with this information provided by the IAddIn_FolderChanged method your Add-In can do whatever processing
it needs on the active folder in the current Explorer. In addition, when the IAddIn_FolderChanged is invoked the Add-In
should store the active folder in a variable. Later when ViewPoint executes methods to add menu choices or toolbar
buttons (which can occur as late as when someone clicks a menu choice), you can refer to the active folder you stored
to quickly add the folder’s corresponding custom menu choices and toolbar buttons that are required by your Add-In
(see below).
Every time the user changes the active ViewPoint folder, or makes a pane visible or invisible, or opens a new Explorer,
the TVClient IAddIn_FolderChanged method is invoked for all Add-Ins loaded by ViewPoint.
Adding Custom Menu Choices and Toolbar Buttons
After the active folder changes, the IAddIn_AddCommand method is invoked to set up any custom toolbar buttons at
the end of the active folder’s toolbar. By changing the values passed in by the IAddIn_AddCommand method you can
optionally specify the toolbar button’s caption, tool-tip, and picture. You also can indicate if you want to keep adding
additional buttons to the toolbar or not.
In addition, the IAddIn_AddCommand method is invoked whenever a user selects ViewPoint’s Tools or Actions menu.
The Actions menu is the one that changes contents to match the current folder, e.g. for the Call Monitor, the Actions
menu has menu choices to take calls, transfer, conference, etc. The IAddIn_AddCommand method is also invoked
whenever a user right clicks on the empty space in a folder’s view (the Add menu) or right clicks on an item in a folder’s
view (the Edit menu). Just like toolbar buttons, by changing the values passed in by the IAddIn_AddCommand method
you can optionally specify a new menu choice’s caption, tool-tip, picture and also if it is checked or not or enabled. You
also can indicate if you want to keep adding additional menus to the pull-down or pop up menu or not. You can of course
also add separators to toolbars or menu choices. You can also add keyboard short cuts to the toolbar.
For every toolbar button or menu choice you add, the IAddIn_AddCommand method provides unique CommandID so
you later can identify which button or menu is clicked and respond appropriately (see below). Even if you add the same
command to different ViewPoint explorer windows or folders, you will have a different CommandID for each menu
choice.
If you want, you can enabled, disable, and remove menu choices every time a menu is clicked since ViewPoint menus
are built on the fly as the menu is displayed. You can’t remove toolbar buttons from a folder until the folder is changed.
Responding to Users Clicking Custom Menus and Toolbar Buttons
When the user clicks an Add-In’s custom toolbar button or menu choice, the IAddIn_CommandClicked method is
invoked providing the CommandID to identify which command was clicked, and also provides the selected item in the
view. If multiple items were selected the Add-In can access those items as well. Armed with all of this information an
Add-In can query the Client API’s Session object and the rest of the Client API to get complete details on the selected
item(s). For example you could obtain the name of the selected user in the Extensions view, or the selected contact’s
business phone number. Then with that information you could send it to someone as an instant message or E-mail using
various other APIs.
Add-In Termination
The IAddIn_Disposing method is invoked to let you know your Add-In will be unloaded by user request. The method
also lets you know the reason your Add-In is being unloaded. Add-Ins can be unloaded by the Add-In Manager,
ViewPoint shutting down, or when Windows shuts down.
If unloading at this time is not appropriate (e.g. your Add-In is performing a database update) you are given the
opportunity to Cancel unloading which will also cancel whatever operation caused the unloading in the first place.
Immediately before your Add-In is unloaded, the IAddIn_Disposed method is invoked allowing you to perform any
final clean up (close database connections, etc.) before the Add-In is unloaded.
Other Add-In Capabilities
Add-Ins have additional capabilities. For more information, see the Reverse Phone Number Lookup sample Add-In, the
Add-In reference below, the Client API, and browse the TVClient object and its IAddIn interface as exposed by
TVClient.EXE in any object browser (press F2 in Visual Basic if the SDK’s sample Reverse Phone Number Lookup
project is loaded).
CHAPTER 3. THE ADD-IN API
3-4
TELEVANTAGE DEVELOPER ’S GUIDE
Add-In API Reference _____________________________________________
The Add-In API is a COM object called TVClient that is exposed by a reference to TVClient.EXE, which is the
TeleVantage ViewPoint application. From Visual Basic add the “TeleVantage 8.0 Client” as a reference for the project.
The Add-In library is contained in the ViewPoint application itself, tvclient.exe. To develop an Add-In the
application must implement a reference to the IAddIn Interface. For example in Visual Basic, you would specify the
following line of code in your AddIn class:
Implements TVClient.IAddIn
IAddIn Interface
Initialize Method
Sub Initialize(Application As Application, Session As Session)
This method is called immediately after an Add-In is created - ViewPoint passes an Application object with information
about ViewPoint and the Client API session object it is using.
GetAddInInfo Method
Function GetAddInInfo() As AddInInfo
This method is called whenever information about an Add-In is required. The Add-In should fill in and return the
AddInInfo structure with the following data:
Name, Author, Description, HasProperties, AddInVersion, Version, Major, Minor, Build
The HasProperties value is a boolean that determines whether the Add-In has a options page which tells the Add-In
manager dialog whether or not to enable the options button.
The AddInVersion value specifies which version of ViewPoint Add-In model the Add-In was written against - this
should be set to 1 since this is the first version. Later versions of ViewPoint can use this value to know which callbacks
should be fired.
FolderChanged Method
Sub FolderChanged(ExplorerKey As String, Pane As Pane, FolderID As String)
This method is called whenever a folder changes in either the main or secondary client pane. The FolderID will be blank
if there is no folder - for example if the secondary pane is turned off.
The ExplorerKey specifies which explorer instance (ViewPoint window - generally only one unless someone uses “open
in a new window”) and the Pane (PaneNone, PanePrimary or PaneSecondary).
SelectionChanged Method
Sub SelectionChanged(ExplorerKey As String, Pane As Pane, SelectedID As String, MultipleSelection As
Boolean)
This method is called whenever the selection changes. The ExplorerKey and Pane tell you which explorer and pane had
the change. The SelectedID will be blank if there is no selection - otherwise it will be the ID of the main selected item.
If there is more than one selected item the MultipleSelection parameter will be set to true.
AddCommand Method
Sub AddCommand(ExplorerKey As String, Pane As Pane, Location As CommandLocation, CommandNumber As
Long, ID As Long, Caption As String, ToolTip As String, Picture As StdPicture, Enabled As Boolean,
Checked As Boolean, AddAnotherCommand As Boolean, ShortCut as String)
This method is called whenever a menu or toolbar is created. A menu is created whenever an item is right clicked or
whenever a menu is dropped down from the menu bar. The toolbar is created whenever there is a folder switch.
CHAPTER 3. THE ADD-IN API
3-5
TELEVANTAGE DEVELOPER ’S GUIDE
The Location parameter tells you where the commands are to be added - the options are:
CommandLocationActionsMenu, CommandLocationContextMenuNew (Right click menu in a blank area of the grid),
CommandLocationContextMenuOpen (Right click menu for a selected item), CommandLocationToolbar and
CommandLocationToolsMenu.
This method is called repeatedly per Add-In as long as the AddAnotherCommand value is set to true. When an Add-In
is done adding commands for a menu it should be set to false.
The CommandNumber value indicates which command is being added - 1 for the first, 2 for the second, etc. so an
Add-In can figure out which command it needs to add.
If the Add-In returns a blank Caption that means no command should be added, a dash “-” will add a separator, and
anything else will add that as a caption.
If ShortCut is specified and the Location parameter is set to Tools menu, then the corresponding keyboard shortcut will
cause the command to trigger. Note that ShortCuts cannot be added to other CommandLocations (like menus) since
menus are built on the fly when the menu is clicked. Toolbars are loaded when the folder changes which allows them
to be used as short cuts. You can use “Alt”, “Control” and “Shift” in the string to specify the <Alt>, <Control> and
<Shift> keys respectively. You must spell out the words “Control” and “Shift”. The shortcut must be specified in Alt,
Control, Shift order. Entering “Control+Alt+N” will generate an error. There cannot by any spaces within the string.
CommandClicked Method
Sub CommandClicked(ID As Long, SelectedID As String, MultipleSelection As Boolean)
This method is called whenever a command has been clicked. The ID from the previous AddCommand is supplied along
with selection parameters that work the same as the SelectionChanged method.
ExplorerResized Method
Sub ExplorerResized(ExplorerKey As String)
This method is called whenever an explorer is resized, minimized, maximized, or restored.
Disposing Method
Sub Disposing(Reason As DisposeReason, Cancel As Boolean)
This method is called before an Add-In is unloaded - the reason values are:
DisposeReasonAddInDisabled, DisposeReasonAddInUnloaded, DisposeReasonClientClosing or
DisposeReasonWindowsShutdown
The Add-In has the ability to cancel the ViewPoint shutdown - if any Add-In wants to cancel, the shutdown will be
canceled.
Disposed Method
Sub Disposed()
This method is called immediately before the Add-In is unloaded. Any final clean up should be done here by your
Add-In.
ShowProperties Method
Sub ShowProperties()
This method is called whenever someone clicks on the Options button of the Add-In manager dialog. An Add-In should
then display its own options dialog.
CHAPTER 3. THE ADD-IN API
3-6
TELEVANTAGE DEVELOPER ’S GUIDE
Application object
The Application object exposes the following:
Name-The title of the application
Version-Major, minor, and build numbers
Session-ViewPoint's session object
Explorers-A object that manages the list of open explorers
Explorer object
Each Explorer object exposes the following:
Caption-Caption of the explorer window (read only)
CloseExplorer-Method to close the explorer
FolderID-ID of the current folder - blank if none (read only)
Height-Height of the explorer
hWnd-Window handle of the explorer (read only)
Key-The key of this explorer in the collection (read only)
Left-Left position of the explorer
SelectedItems-Collection of selected IDs for this explorer - you can specify which pane (read only)
StatusText-Set/Get the status bar text for the explorer - stays until something else changes it
Top-Top position of the explorer
Width-Width of the explorer
WindowState-Window state (tvMaximized, tvMinimized, tvNormalWindow) of the explorer
.
CHAPTER 3. THE ADD-IN API
3-7
CHAPTER 4
CHAPTER 4
THE IVR PLUG-IN API
CHAPTER CONTENTS
About the TeleVantage IVR Plug-in API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-2
How the IVR Plug-in components work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-3
Using the Customer ID IVR Plug-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-6
IVR Plug-in API quick reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-9
TELEVANTAGE DEVELOPER ’S GUIDE
About the TeleVantage IVR Plug-in API_______________________________
The IVR Plug-in API enables one or more custom IVR or call processing applications to run on the same PC as the
TeleVantage Server. These applications, called IVR Plug-ins, appear to Administrators and Users just like regular
TeleVantage extensions. IVR Plug-Ins can process incoming calls from trunks or stations, and also place outbound calls.
The TeleVantage IVR Plug-in API provides native support for basic IVR functions (Play, Record, Get Digits, Play Tone,
Play Numbers, Play Dollar Amounts, etc.) without requiring a 3rd-party IVR toolkit. You can use the IVR Plug-in API
to perform operations such as the following:
Q
Place calls to extensions or external numbers and perform basic call progress analysis
Q
Get notification of new calls from the TeleVantage Server
Q
Retrieve Caller ID, DID, or other call data
Q
Change or add standard or custom call data to the call
Q
Get digits from the caller or play digits
Q
Play or record audio prompts
Q
Speak numbers, dates, times, characters, ordinals, and money amounts in any language supported by the Server
Q
Perform database lookups
Q
Hang up or transfer the call back to any TeleVantage extension, auto attendant, voice mail box, or even another
IVR Plug-in.
IVR Plug-ins must be installed and run on the TeleVantage Server as they require the access to the TeleVantage Server’s
telephony hardware. They cannot connect be run on a non-TeleVantage Server PC networked to the TeleVantage
Server. You must register your IVR Plug-in and assign it an extension using the IVR Plug-in view in the TeleVantage
Administrator before it can be used.
Using a 3rd party IVR toolkit with the IVR Plug-in API
While the TeleVantage IVR Plug-in API provides the most common IVR functions, if you need to perform voice
recognition, speech synthesis, or PerfectCall™ call progress analysis you may want to use a voice processing toolkit
such as Dialogic NetMerge™ CT Application Development Environment (Dialogic NetMerge CT ADE.) As of this
printing, the TeleVantage IVR Plug-in API is tested to be compatible with Dialogic NetMerge CT ADE version 8.2 so
that CT ADE applications developed with the IVR Plug-in API can run on the TeleVantage Server and share the Server’s
telephony hardware resources.
Note: The IVR Plug-in API does not work with applications developed using the CT ADE Application Development
Language (ADL, formerly known as VOS.) If you wan to use Dialogic’s CT ADE with the IVR Plug-In API you must
use the CT ADE’s Application Development ActiveX* Objects (ADX, formerly known as Call Suite.)
IVR Plug-in API component and sample applications
The IVR Plug-in API is exposed to your applications through a TeleVantage software component. The library is
contained in tvivr.tlb, which is located in the \Program Files\Common Files\Vertical\TeleVantage directory when
you install the TeleVantage Server or the TeleVantage SDK. See “IVR Plug-in API quick reference” on page 4-9 for
more information.
Several sample IVR Plug-ins written in Visual Basic 6.0 are installed with the TeleVantage SDK including one written
in C# and VB.NET. Other samples are posted to http://webboard.Vertical.com/~SDK. The samples provided when
installing the TeleVantage SDK come in two versions: PlugInMedia samples that use the IVR Plug-in API’s built-in
voice processing capabilities and CT ADE samples that require the CT ADE ActiveX objects. By default, samples are
located in \Program Files\TeleVantage SDK\TeleVantage or \Program Files\TeleVantage
SDK\TeleVantage\CallSuite, respectively. You must have Visual Basic 6.0 to use the sample programs as is, or modify
them to meet your needs.
CHAPTER 4. THE IVR PLUG-IN API
4-2
TELEVANTAGE DEVELOPER ’S GUIDE
The following Visual Basic 6 samples are provided:
Q
First. . This small IVR Plug-in demonstrates the most basic layout and design of an IVR Plug-in. It answers a
call, plays a voice file, and then returns the caller to the active routing list.
Q
CustID. This IVR Plug-in demonstrates how to transfer customers to different agents automatically, based on
the customer’s area code obtained from their Caller ID or their customer record. It also includes a CustomerID
database manager to maintain the Customer and Agent database tables accessed by the CustomerID IVR Plug-in.
The program can be used to customize the customer and agent data for your location.
Q
OutBound. This sample includes two IVR Plug-ins (PlaceCall and ReceiveCall) that demonstrate how an IVR
Plug-in (PlaceCall) can place outbound calls that are handled by the ReceiveCall Plug-in. It then plays a voice
prompt, and then transfer the calls to a TeleVantage user.
Q
OrderStatus. This IVR Plug-in answers calls, prompts the caller for their 5 digit order number, searches a
Orders database for a matching record and then reads back the order status, e.g. Your order number [12345] was
shipped on [December 31, 2002] and totalled [$123.56]
How the IVR Plug-in components work ______________________________
IVR Plug-ins are, in Microsoft component object model (COM) terms, ActiveX EXEs, or that you can develop using
Visual Basic, Visual C++, Visual Studio .NET or any other Windows development tool that supports the COM
requirements of the IVR-plug in interface. Every time the extension of an IVR Plug-in extension is called the
TeleVantage Server creates a separate instance of the IVR Plug-in that runs in its own thread of execution (in COM
terms an apartment). IVR Plug-ins can then query standard call data such as Caller ID or DID and custom data such as
customer ID, and use the facilities provided by Visual Basic or Visual C++ perform any processing such database
queries or updates. IVR Plug-ins are network-independent so you do not need to know if the call originated on an IP,
T1, E1, analog trunk, or even a phone station. IVR Plug-ins can also update standard or custom call data. All call data
follows the call after the IVR Plug-in is finished and can be displayed in the TeleVantage Client’s Call Monitor, Call
Log and Voice Messages view if properly configured.
IVR Plug-ins can optionally perform voice processing tasks (e.g. Please enter your order number followed by the # key)
by borrowing a voice resource from the TeleVantage Server. Use the IVR Plug-in GetMedia method to obtain a Media
object to perform basic voice processing such as collecting touchtone digits, playing and recording voice files, speaking
numbers, money, dates/times, and playing tones. For advanced voice processing that exceed the Media object’s
capabilities such as voice recognition, speech synthesis, or faxing you must purchase a 3rd party telephony toolkit such
as Dialogic’s CT ADE or use the low level Dialogic C API. You then use the IVR-Plug-in GetDevice method to borrow
a voice resource from the TeleVantage Server so the 3rd party telephony toolkit can perform voice processing on the
call.
When the IVR Plug-in finishes processing the call, you use the IVR Plug-in CallDone method to hang up, transfer to
any extension or phone number, or send the call to any voice mail box.
If the caller hangs up before the IVR Plug-in finished processing the call, TeleVantage will notify the IVR Plug-in so it
can stop processing and perform any necessary clean up before the IVR Plug-in is terminated. If the IVR Plug-in
borrowed a voice resource the TeleVantage Server reclaims the resource at that time. Unresponsive IVR Plug-ins that
do not call any IVR Plug-in methods within a 4 minute period (configurable) are also terminated to reclaim voice
resources and memory.
Monitoring standard and custom call data
IVR Plug-ins have access to all basic call data such as Caller ID, and can change this call data while processing the call.
IVR Plug-ins can also set and change any custom call data you need such as social security number, customer ID,
address, and so on. All call data are attached to the party in the call, and if the party is transferred, the call data follows
them.
To display a list of all the custom call data associated with a call in the Client’s Call Monitor, Call Log or Voice
Messages view, click Tools > Columns for each view, and make sure the Custom Data column is displayed.
CHAPTER 4. THE IVR PLUG-IN API
4-3
TELEVANTAGE DEVELOPER ’S GUIDE
Additionally, the Call Monitor supports adding a unique custom column for each custom data field you want to view.
To see a custom column in the Call Monitor click Tools > Columns, then click Custom Columns. Add a custom
column with the same name as the key in your IVR Plug-in that you want to display.
Note: You cannot change custom call data from the Call Monitor, but you can from IVR Plug-ins, Auto Attendants,
Queues and various TeleVantage add-ons, including the Call Classifier.
IVR Plug-in licensing
IVR Plug-ins are licensed at runtime and count against your station licenses. Your system may be configured to support
an unlimited number of IVR Plug-ins, but each simultaneous call to an IVR Plug-in will consume one station license.
The station license will be released after the IVR Plug-in calls the CallDone method, or if TeleVantage terminates the
IVR Plug-in because it is unresponsive or the caller has hung up. Note if your IVR Plug-In is only using the PlugInServer
Interface (and no other IVR Plug-In interfaces at all) no station license is used.
For example, if you have a system with 16 station licenses, and 15 of those stations are assigned to users, you have one
free station license that can be applied to calling an IVR Plug-in. If one person makes a call to an IVR Plug-in, and a
second person makes a call to the same or a different IVR Plug-in, the second person will hear a message that the
extension is not available, an error will be logged to the TeleVantage Server’s Windows Event Log saying that the
station license count has been exceeded. Finally, the call to the IVR Plug-in will either be disconnected, or transferred
to the extension you specified in the IVR Plug-in’s definition in the Administrator.
Note: If you decide to use CallSuite or another voice processing toolkit in conjunction with an IVR Plug-in be aware that
third party toolkits often impose additional per port licensing fees beyond the station license requirement for any IVR
Pug-in. See your telephony toolkit’s documentation for details. The IVR Plug-In’s PlugInMedia interface performs basic
voice processing without requiring additional per-port fees beyond the usual station license requirement.
Reserving Station Licenses for IVR Plug-ins
You can reserve a pool of TeleVantage station licenses for IVR Plug-ins so you can know the exact number of
simultaneous calls to IVR Plug-Ins supported by your system. You cannot reserve more station licenses for a particular
IVR Plug-In, as reserved station licenses can be used by any IVR Plug-In installed on the Server. Reserved station
licenses can not be used by an Administrator when assigning station IDs to TeleVantage Users. To specify the number
of station licenses to reserve, select Tools > System Settings > Licenses > Reserved from the Administrator.
Registering and configuring IVR Plug-ins
Before you can use an IVR Plug-in you need to copy and register it on the TeleVantage Server and configure it using
the TeleVantage Administrator:
1.
If you have compiled your IVR Plug-in to an EXE (using Visual Basic or another tool) on the TeleVantage
Server, you can skip to step 3. Otherwise, copy the IVR Plug-in’s EXE (e.g. CustID.exe) to any directory on
the TeleVantage Server. If applicable, also copy any other files required by the IVR Plug-in such as supporting
software components or database files.
2.
To register your IVR Plug-in’s EXE, open a command prompt and change to the directory where you copied
the IVR Plug-in. Then, enter the following command:
{IVR Plug-in EXE name} /regserver
For example:
CustID.exe /regserver
CHAPTER 4. THE IVR PLUG-IN API
4-4
TELEVANTAGE DEVELOPER ’S GUIDE
3.
Using the TeleVantage Administrator, switch to the IVR Plug-ins view.
4.
Choose IVR Plug-Ins > New IVR Plug-In. The IVR Plug-in dialog box opens:
5.
Enter the following information:
Q
Name. Name of the IVR Plug-in, for example, “Customer ID”. This name appears in the Extensions list and
the Place Call and Transfer To dialog boxes in the TeleVantage Client.
Q
Extension. Extension assigned to the IVR Plug-in. Any available extension will work. See “Assigning an
Extension” in Administering TeleVantage for restrictions and recommendations when entering extensions.
See the Dial Plan view to see which extensions are available.
Q
DID number. When TeleVantage recognizes this number as the final digits on an inbound call, the caller is
automatically connected to this IVR plug-in, bypassing the main auto attendant. To assign multiple DID
numbers to an IVR Plug-in, separate each one with a comma (,).
Q
Program ID. The program ID of the IVR Plug-in application. For Visual Basic applications, the format is
“ActiveXname.Classname”, where ActiveXname is the name of the project (in Visual Basic 6.0 see Project
> Properties), and Classname is the name of the class that TeleVantage will instantiate. For example, the
TeleVantage Customer ID sample application’s program ID is CustID.Media1.
CHAPTER 4. THE IVR PLUG-IN API
4-5
TELEVANTAGE DEVELOPER ’S GUIDE
6.
To record a voice title for the IVR Plug-in, use the audio controls. The voice title is used in many call-screening
features, for example, when an auto attendant transfers a call. The audio controls and how to use them are
described in Administering TeleVantage.
7.
To eliminate startup time when the first call comes in for the IVR Plug-in, select the Start one instance when
the server is started checkbox.
Note: Startup time depends on the size and complexity of the IVR Plug-in. Most small applications start
quickly. If the application takes longer to start, select this option.
8.
If you want calls to this IVR Plug-in to be logged to a particular tenant or organization, check Organization
and select the desired organization from the drop-down list, or click
to create a new organization.
9.
Click Hang up or Transfer To to specify how TeleVantage will handle calls to this IVR Plug-in if there are not
enough station licenses for the IVR Plug-in, the Program ID is invalid, or there was a problem creating the IVR
Plug-in. If you select Transfer To, specify where TeleVantage should transfer the caller in the list of extensions.
10. To initialize a custom data variable each time the IVR Plug-in gets a call, select the Set custom data when
this IVR Plug-in is called checkbox. Select the Variable name from the drop-down list, or click
to create
a new variable. Enter the initial Variable value in the text box.
Note: .
11. Click OK to save the IVR Plug-in.
Using the Customer ID IVR Plug-in __________________________________
The IVR Plug-in API includes a sample IVR Plug-in named Customer ID, located in the \Program Files\TeleVantage
SDK\TeleVantage\CustID directory. The sample identifies customers via Caller ID and the transfers them to the agent
that handles their area code. The sample also attaches to the call some data about the caller that it retrieves from a
customer database so the agent is prepared for the call before they answer
Specifically the Customer ID IVR Plug-in checks to see if the Caller ID matches a record in a Microsoft Access customer
database, and if so searches an agent table for the agent that handles the caller's area code. It then attaches custom data
to the call for the customer’s city, state and customer ID before transferring the call to appropriate agent.
If there is no matching Caller ID, the Customer ID IVR Plug-in prompts the caller for a Social Security Number (SSN)
and matching Personal Identification Number (PIN). If the customer does not have a PIN, they are allowed to enter one.
Once identified the customer is handled just as if their Caller ID had been identified. If the sample cannot identify the
caller via Caller ID, or SSN/PIN, the call is transferred to the operator.
To run the Customer ID sample:
1.
Configure the Customer ID sample as described above in “Registering and configuring IVR Plug-ins” on
page 4-4.
2.
Make sure your Server has a user assigned to an extension number that is in the agent database. The sample
database already contains an entry for extension number 102. If necessary, you can use the sample database
manager to change the extension assignments and customer data in the database (see “Managing the Customer
ID database” on page 4-7).
3.
Start the TeleVantage Client for the user logged in and assigned to extension 102. To display all the custom
data in a single column in the Call Monitor view, choose View > Current View > Show Columns, and make
sure the Custom Data field is added to the list of columns that will be shown.
If you prefer to display each field in separate columns, using the TeleVantage Administrator select Tools >
Custom Data, click Add and specify a string variable called CustomerID, then repeat the process to add
another for City, and State. The custom column names are case sensitive, so be sure to enter them exactly as
shown. Then you can add those custom columns to the Call Monitor view by choosing View > Current View
> Show Columns, and add the Customer ID, City and State columns to the list of columns that will be shown.
CHAPTER 4. THE IVR PLUG-IN API
4-6
TELEVANTAGE DEVELOPER ’S GUIDE
4.
To call the sample IVR Plug-in application, call the extension you assigned to it in the previous steps. If you
hear the IVR Plug-in answer the call, skip to step 5.
If you do not hear it answer with an audio prompt, try the following:
Q
Check the Windows Event Log for any errors generated by the IVR Plug-in
Q
Check the Device Monitor for the station or trunk you are using to make the call, to view any custom
status messages that the IVR Plug-in is reporting.
Q
Make sure you have installed and configured the IVR Plug-in properly as previously described. A
common problem is entering the wrong Program ID.
5.
Since your call probably does not have a Caller ID that matches any customer record in the sample database,
you will be prompted to enter a valid social security number. The sample database already contains a customer
record with the social security number 000000000, which you can enter at the prompt.
6.
When prompted, press 5656, which is the customer’s four-digit PIN number.
7.
The call should be transferred to extension 102.
The Call Monitor for extension 102 should show the Customer ID, City and State for the customer, either in
the Custom Data column or the CustomerID, City, and State columns, depending how you configured your
Call Monitor in step 3.
8.
Manually transfer the call to another extension. The same custom data will appear in that user’s Call Monitor,
as long as their Call Monitor is also properly configured to view the custom data. The data also will follow the
call to the Call Log and the voice messages view if a message was left.
Managing the Customer ID database
To change or add records to the Customer ID sample IVR Plug-in database, including your own Caller ID numbers and
list of agents:
1.
Run CustIDAdmin.exe, located in the \Program Files\TeleVantage SDK\TeleVantage\CustID directory.
2.
Change any of the customer data in the Caller Information window.
3.
Change any of the agent extension and area code data in the Area Codes window.
CHAPTER 4. THE IVR PLUG-IN API
4-7
TELEVANTAGE DEVELOPER ’S GUIDE
Working with the Customer ID sample code
To modify, change or extend the sample application, you must have Microsoft’s Visual Basic 6.0 installed, preferably
with Service Pack 5 or higher. However, if you just want to view the sample code, Notepad or any text editor will work.
Q
With Visual Basic 6, open the CustID.VBP project located in the \Program Files\TeleVantage
SDK\TeleVantage\CustID directory. Modify the code as needed and compile the IVR Plug-in to change its
behavior.
The Customer ID database program can also be modified using Visual Basic 6 and opening the
CustIDAdmin.VBP project.
Q
Without Visual Basic 6, you can see the code and how it works by opening Media1.cls in any text editor such
as Notepad.Running an IVR Plug-in that has a GUI
Running an IVR Plug-in that has a GUI
The following steps are required for any IVR Plug-in that has a GUI:
1.
On the TeleVantage Server, go to the Windows Control Panel, and select Services. On some versions of
Windows, Services is located in the Administrative Tools group.
2.
Right-click the TeleVantage Server service and click Properties.
3.
On the Log On tab, select the Allow service to interact with desktop checkbox.
4.
Click OK to save your change.
Debugging IVR Plug-ins in Visual Basic
Visual Basic 6.0 cannot debug applications started by Windows services. Since TeleVantage is a Windows service that
starts your IVR Plug-in, you need to force TeleVantage to run as a standard executable before you can debug an IVR
Plug-in with Visual Basic. These procedures do not have to be performed for IVR Plug-ins written in Visual C++ or
other development tools that can debug applications started from Windows services.
To debug an IVR-Plug-in Visual Basic
1.
Perform the steps in “Running an IVR Plug-in that has a GUI” mentioned above.
2.
Stop the TeleVantage Server.
3.
To make the TeleVantage Server run as an executable rather than a Windows service, start the TeleVantage
Server using the /regserver option, for example:
C:\Program Files\TeleVantage Server>tvserver /regserver
4.
When TeleVantage is not run as a Windows service, the following debugging window appears:
Note: You cannot start the Server through the TeleVantage Device Monitor or Administrator when
TeleVantage is set up to run as a standard executable rather than a Windows service. However, you can still
run these applications to manage your TeleVantage Server.
CHAPTER 4. THE IVR PLUG-IN API
4-8
TELEVANTAGE DEVELOPER ’S GUIDE
5.
Open the IVR Plug-in’s Visual Basic project and put a break point wherever needed, for example on the line
after the CallOffering method.
6.
Start the Visual Basic debugger in any of the following ways:
7.
Q
Select Run > Start.
Q
Click Play on the toolbar.
Q
Press F5.
Call your IVR Plug-in’s extension. TeleVantage will launch your IVR Plug-in inside Visual Basic and allow
you to debug it at the line you set the breakpoint.
When you are finished debugging, shut down the TeleVantage Server by closing the TeleVantage Server’s debugging
window. To reconfigure TeleVantage as a Windows service, perform step 3 again but this time use the /service option,
for example:
C:\Program Files\TeleVantage Server>tvserver /service
Now TeleVantage Server will start as a normal Windows service.
IVR Plug-in API quick reference_____________________________________
This section provides a brief description of each method and property in the IVR Plug-in API. Page numbers refer to the
full “IVR Plug-in API Reference” in Appendix A.
Note: For backward compatibility, previous versions of the IVR Plug-in API are supported, and existing IVR Plug-in
applications will continue to run. See Appendix B for information on how to migrate TeleVantage 4.x and earlier IVR
Plug-in applications to use the current IVR Plug-in API.
PluginCaller interface
A-6
AssociateCalledCallerId
method
A-5
AssociateCalledExtensio Attempts to associate the caller’s called ID with a system target based on
n method
extension.
A-5
AssociateCallerId method Attempts to associate the Caller ID with a personal or public contact.
A-6
AssociateExtension
method
Attempts to associate the Caller ID with a system target based on
extension.
A-6
AssociateExtensionEx
method
Attempts to associate the Caller ID with a system target based on
extension and also allows the caller to be turned into an authenticated
user so they can be transferred into the voice mail account menu.
A-7
CallDone method
Returns control of the call to the Server with instructions on how it should
continue processing the call.
A-8
Delete method
Deletes the specified custom data property from the party in the call.
A-8
DeviceName property
The name of the allocated raw voice resource, if any.
A-8
Exists method
Returns true if the specified property exists.
A-9
Get method
Gets a standard or custom party attribute from the party in the call, for
example, ppCallerIDNumber or CustomerID
A-11
GetDevice method
Allocates a raw voice resource from the Server’s device pool so that you
can pass it to a third party voice processing toolkit.
A-11
GetMedia method
Allocates a voice resource and returns a PluginMedia object associated
with it.
CHAPTER 4. THE IVR PLUG-IN API
Attempts to associate the caller’s called ID with a personal or public
contact.
4-9
TELEVANTAGE DEVELOPER ’S GUIDE
A-12
GetXmitTimeslot method Returns the TDM bus transmit timeslot of the caller’s device.
A-12
Listen method
Performs a half duplex route of the media stream, such that the caller’s
device listens to the specified TDM bus timeslot.
A-12
Ping method
Calling this method tells the Server the IVR Plug-in is still running
properly. The Server will terminate IVR Plug-in's which fail to call this or
any PluginCaller method for a period of time.
A-13
PluginComments property The comments for the called IVR Plug-in as defined in the Administrator.
A-13
PluginDID property
A-13
PluginExtension property The extension of the called IVR Plug-in as defined in the Administrator
A-14
PluginName property
The name of the called IVR Plug-in as defined in the Administrator.
A-14
PluginVariable property
The custom data variable name of the called IVR Plug-in as defined in
the Administrator.
A-14
ReleaseDevice method
Returns a raw voice resource to the Server’s device pool.
A-14
Set method
Sets a custom or standard party attribute for the party in the call, for
example, CustomerID or ppAccountCode.
A-16
SetStatus method
Sets the status string displayed in the Device Monitor.
The DID number of the called IVR Plug-in as defined in the Administrator.
PluginCallee interface
A-16
Exists Method
Returns true if the specified Callee property exists
A-17
Get Method
Gets a standard or custom party attribute from the IVR Plug-in's party in the
call.
PluginApplication interface
A-2
CallOffering
Invoked when the IVR Plug-in’s extension is called and the call is offered to
the IVR Plug-in.
A-2
CallPlaced
Invoked to notify the IVR Plug-in when an outbound call has been dialed
using the PlaceCall method.
A-3
CallTerminated
Invoked when the Server wants to terminate the IVR Plug-in, for example
when the Server detects that the caller has hung up.
PluginServer interface
A-18
PlaceCall method
Allows the IVR Plug-in to make a call to an external number or extension.
PluginMedia interface
A-20
Dial method
Plays DTMF or MF digits.
A-21
FlushDigitBuffer
method
Returns all digits currently in the digit buffer, and leaves the digit buffer
empty.
A-21
GetCallProgress
method
Performs in-band call progress analysis.
A-22
GetDigits method
Returns a string of digits from the digit buffer based on various criteria
including number of digits, time outs and terminating digits.
A-23
GetXmitTimeslot
method
Returns the TDM bus transmit timeslot of the voice resource.
CHAPTER 4. THE IVR PLUG-IN API
4-10
TELEVANTAGE DEVELOPER ’S GUIDE
A-23
Listen method
Performs a half duplex route such that the voice resource listens to the
specified TDM bus timeslot.
A-24
PlayFile method
Plays a pre-recorded audio file.
A-25
PlayString method
Plays a voice string, which is a collection of one or more values played
smoothly together using various methods (money, date/time, number,
characters, or ordinals).
A-28
PlayTone method
Plays a pre-defined tone such as dial tone or a busy signal.
A-29
RecordFile method
Records a voice file.
A-30
SetRate method
Set audio rate for the next or current playback operation.
A-30
SetVolume method
Set audio volume for the next or current playback operation.
A-30
Stop method
Stops all voice activity.
PlugInApplicationOutbound interface
If this interface is implemented by the IVR Plug-In, the behavior of the PlaceCall and CallPlaced methods is changed
to provide more fine grain control for outbound dialing applications - especially useful for those that use ISDN lines and
need to monitor the ISDN call progress events.
PluginOutOfBandCallProgressEvents interface
A-31
CallProgressIndication Returns the current state (Alerting, Proceesing and Disconnected, etc.) of
Method
out of band call progress detection used on ISDN or Internet trunks.
PluginOutOfBandCallProgressMonitor interface
A-33
GetDisconnectReason Returns the disconnection reason for an unsuccessful call
Method
A-33
MonitorCallProgress
Method
A-34
WaitForAudio Method Waits the specified interval (in ms) for audio to be available in the call.
CHAPTER 4. THE IVR PLUG-IN API
Returns an interface to a PluginOutOfBandCallProgressEvents object for
receiving out-of-band call progress events
4-11
CHAPTER 5
CHAPTER 5
THE DEVICE STATUS API
CHAPTER CONTENTS
About the TeleVantage Device Status API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-2
How the Device Status components work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-2
Using the Device Status components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-3
Device Status API quick reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-5
TELEVANTAGE DEVELOPER ’S GUIDE
About the TeleVantage Device Status API_____________________________
The Device Status application programming interface (API) is a set of COM components that allow your application to
monitor the status of all devices (stations and trunks) on a TeleVantage Server. For example, you could perform any of
the following procedures:
Q
Monitor current users on the system
Q
Monitor the caller on every trunk or station including their caller ID
Q
Monitor which trunks or stations are connected, e.g. the callers in a conference call
Q
Obtain a current list of users permanently assigned to a station
Q
Obtain the name of a user currently logged in at a station
Q
Identify which trunk a phone line is connected to
The Device Status Sample project
The TVStatusviewer.vbp project is a useful Device Monitor application that uses the Device Status components and
three listview controls to display the status information described above.
How the Device Status components work ____________________________
Device information is organized in a simple hierarchy. In a program that uses the Device Status components, a Server
object maintains contact with a specified Server and contains a collection of Device objects representing all devices
on the Server. Each Device object in turn contains a collection of Extension objects representing all extensions
assigned to that device. Each Device object also stores a collection of the connected devices. The resulting hierarchy
might resemble the following diagram:
Server objects
At the top of the hierarchy is the Server object, which uses its Connect and Disconnect methods to control a connection
to a specified TeleVantage Server. Its DeviceStateChanged event is raised whenever the state of a device changes. The
Server object also contains the Devices property, which is a collection of Device objects representing all stations and
trunks on the specified Server.
CHAPTER 5. THE DEVICE STATUS API
5-2
TELEVANTAGE DEVELOPER ’S GUIDE
Device objects
Each Device object contains the following read-only properties:
Q
Class. station or trunk
Q
ConnectedDevices. A collection of all of the other device object that are connected in a live call with this device
(e.g. there will be one entry for a two party call, and 2 entries for a 3 party conference.)
Q
HookState. on-hook, off-hook, or unknown
Q
Name. name of the trunk, or blank if it's a station
Q
Number. positive for stations and negative for trunks
Q
Party. Contains a reference to a Party object which shows the active party’s name, and caller ID name and
number (if any). If there is no active Party, this is Null.
Q
Status. a number indicating the device's current activity
The Refresh method updates a Device object’s information.
The Device object also contains an Extension object for each extension assigned to the device.
Q
The AssignedExtensions property is a collection that contains one Extension object for each assigned
extension. The CurrentExtension property is an object representing the extension currently logged in to the
device.
Q
The DefaultExtension property is an object representing the device's default extension.
Extension objects
Each Extension object contains the following read-only properties:
Q
The DoNotDisturb and ACDDoNotDisturb properties indicate whether or not the extension is in a Do Not
Disturb state for regular or ACD calls.
Q
The Extension, FirstName, and LastName properties identify the name and extension number for the user on
this extension.
The Refresh method updates an Extension object’s information.
Party objects
Each Party object contains the following read-only properties:
Q
The CallerIDName, CallerIDNumber, and CallerIDNumberType properties display any caller ID information
for the active party, if any is present.
Q
The FirstName, and LastName properties identify the name and extension number for the user on this trunk or
station.
Using the Device Status components
To use the Device Status components:
1.
From Visual Basic add the “TeleVantage 8.0 Device Status Library” as a reference for the project. The Device
Status library is contained in TvStatus.dll.
2.
Create an instance of the Server component. Alternatively, Visual Basic’s CreateObject function could be used
to create the Server object.
CHAPTER 5. THE DEVICE STATUS API
5-3
TELEVANTAGE DEVELOPER ’S GUIDE
3.
Once the Server object is created, it needs to be initialized by calling the Connect method with the name of the
Server to connect to. If the Server machine is unavailable or the TeleVantage Server is not started, the Connect
method will fail and raise a trappable error.
At this point everything is initialized and ready to be used. The Server object's Devices collection contains a
Device object for each device on the system. Each Device object has a AssignedExtensions collection
containing an Extension object for each extension assigned to the device.
The device status information (hook state, status, and currently logged in user) will be updated automatically
as changes happen, and the DeviceStateChanged event will be raised immediately. Extension information
(which comes from the Server database) will only be updated when the device Refresh or extension Refresh
methods are called.
4.
To terminate the application, call the Disconnect method of the Server object, which will release all existing
Device Status objects. The Disconnect method will be called automatically if the Server object goes out of
scope while it is connected.
Sample Device Status Application
The TVStatusviewer.vbp project is a useful Device Monitor application that uses the Device Status components and
three listview controls to display the status information described above.
Required runtime files
The Device Status API has a number of dependencies that must be satisfied in order for it to run correctly:
Microsoft Visual Basic 6.0 Runtime:
msvbvm60.dll
asycfilt.dll
oleaut32.dll
stdole2.tlb
olepro32.dll
comcat.dll
Microsoft Active Data Objects (ADO):
Run the MDAC installer
TeleVantage Client API installed with TeleVantage ViewPoint:
The easiest way to get all of these components is to install the TeleVantage Administrator, ViewPoint, or TAPI Service
Provider on the machine in question.
CHAPTER 5. THE DEVICE STATUS API
5-4
TELEVANTAGE DEVELOPER ’S GUIDE
Device Status API quick reference __________________________________
This section provides a brief description of each method in the Device Status API. Page numbers refer to the full “Device
Status API Reference” in Appendix C.
Server object
C-2
Connect method
Connects to the specified Server and initializes the Server
object.
C-2
Disconnect method
Disconnects from the Server.
C-2
Devices property
Read only. Returns a collection of Device objects representing
all devices on the current Server.
C-3
DeviceStateChanged Raised whenever the state of the device changes.
event
Device object
C-3
Refresh method
Refreshes information about the extensions on the device.
C-3
AssignedExtensions
property
Read only. Returns a collection of Extension objects
representing all extensions assigned to this device.
C-3
Class property
Read only. Returns the device's class (station or trunk).
C-3
ConnectedDevices
property
Read only. Returns a collection of connected Devices if this
device is in a call or conference.
C-4
CurrentExtension
property
Read only. Returns the Extension object currently logged in to
the device.
C-4
DefaultExtension
property
Read only. Returns the Extension object that is the default for
the device.
C-4
HookState property
Read only. Returns the hook state of the device.
C-4
Name property
Read only. Returns the name of the device (blank for stations
and the trunk name for trunks).
C-4
Number property
Read only. Returns the number of the device (positive for
stations and negative for trunks).
C-5
Status property
Read only. Returns a status code indicating the device's
current activity.
Extension object
C-6
Refresh method
Refreshes information about this extension.
C-6
ACDDoNotDisturb
property
Read only. Returns a boolean value indicating whether or not
the extension is in ACD Do Not Disturb state.
C-6
DoNotDisturb property Read only. Returns a boolean value indicating whether or not
the extension is in Do Not Disturb state.
C-6
Extension property
Read only. Returns the extension number for this user.
C-7
FirstName property
Read only. Returns the first name of the user on this
extension.
C-7
LastName property
Read only. Returns the last name of the user on this extension.
CHAPTER 5. THE DEVICE STATUS API
5-5
TELEVANTAGE DEVELOPER ’S GUIDE
Party object
C-6
CallerIDName
property
Refreshes information about this extension.
C-6
CallerIDNumber
property
Read only. Returns a boolean value indicating whether or not
the extension is in ACD Do Not Disturb state.
C-6
CallerIDNumberType Read only. Returns a boolean value indicating whether or not
property
the extension is in Do Not Disturb state.
C-6
FirstName property
Read only. Returns the extension number for this user.
C-7
LastName property
Read only. Returns the first name of the user on this extension.
CHAPTER 5. THE DEVICE STATUS API
5-6
CHAPTER 6
CHAPTER 6
USING IN-BAND SIGNALING
CHAPTER CONTENTS
About in-band signaling with TeleVantage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-2
TeleVantage telephone commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-3
TELEVANTAGE DEVELOPER ’S GUIDE
About in-band signaling with TeleVantage ____________________________
In some cases, the TeleVantage SDK may not be the simplest way to implement extended functionality. If you just need
a simple way to make calls or perform call control on a PC networked to the TeleVantage Server, and your application
does not need to access digits or perform voice processing, you can use in-band signaling.
A human caller can send commands to any PBX, such as TeleVantage, by generating a flash (quickly pressing and
releasing the hang up button on a telephone handset cradle). This signals the PBX that special instructions will follow,
such as placing a call on hold or transferring a call to another extension. For example, a TeleVantage user would generate
a flash and then press 1 to transfer a call.
This method of sending instructions is called “in-band signaling” because it travels over the same channel that voice is
transmitted, in-band. Many telephony applications use this same method, communicating with PBX or Centrex systems
through flash hook commands.
Most PBXs use their own proprietary sets of flash hook commands. An application that uses in-band signaling will
usually provide you with a way to configure it for a specific set of flash hook commands, such as those used by
TeleVantage. For example, &3 (a flash followed by a 3) is the flash hook command that TeleVantage uses to disconnect
from a call, so you would configure the in-band signaling application to use &3 as its disconnect command. Other
commands are listed below in “TeleVantage telephone commands” on page 6-3.
IVR applications connected this way still have access to Caller ID and DID, if the station is configured appropriately.
Both options are set in the Administrator’s Users view, under the Phone tab.
This approach requires the IVR application to use dedicated voice board resources that can either be in the TeleVantage
Server or in a separate server. If the IVR application will be on the same TeleVantage Server, the voice board resources
must be dedicated to the IVR application, unlike IVR Plug-ins where voice resources are dynamically shared.
Regardless of whether the IVR application runs on the TeleVantage Server or a separate server, the voice board’s ports
must be connected to one or more TeleVantage stations. This requires a TeleVantage station license and MSI hardware
port to support a phone line for each TeleVantage station that is to be connected to the IVR application’s voice board’s
ports.
To dedicate the voice board resources to your IVR application’s needs, the Dialogic devices must be reserved (see
“Reserving Dialogic Devices” in Appendix J in Installing Dialogic Telephony Components). This allows an application
that is running on the same server to obtain full control over these devices.
CHAPTER 6. USING IN-BAND SIGNALING
6-2
TELEVANTAGE DEVELOPER ’S GUIDE
TeleVantage telephone commands __________________________________
The commands listed below can be used to send in-band signaling commands to the TeleVantage Server. It is useful to
try these commands manually before attempting to code them. See chapters 3 through 6 in Using TeleVantage for details.
Note: From within any Telephone Commands menu, you can press * to return to the higher level menu.
Call screening menu
If you have verbal call screening turned on, you are offered the following options when you answer an incoming call,
either by picking up the phone or pressing Flash after hearing the call waiting beep.
Call screening menu
1
Connect to the caller.
2
Send the caller to your voice mail.
3
Send the caller to voice mail and monitor the message being left. Press Flash 1 to pick up
the call in mid-message.
4
In call waiting situations, create a conference call with your current call and the new one.
Hang up
Send the caller to the next step on your routing list. Unless you have changed your routing
list, the next step is your voice mail, so hanging up is the same as pressing 2.
Call handling menu
As soon as you press Flash to put a call on hold, you will hear a context-sensitive menu of call handling options. The
caller does not hear these menu prompts. At any time while listening to the prompts, you can press Flash again to
reconnect to the caller.
Call Handling Commands
With a call on the line, press Flash, then...
1
Transfer the call
2
Send the call to voice mail
3
Disconnect from the call
4
Reconnect to the call
5
Create a conference call
6
Park the call
7
Silent hold (stops menu until next keypress)
8
Send a Flash to Centrex/PBX service beyond TeleVantage
#
Get a dial tone (start another call)
Flash
Reconnect to the call
CHAPTER 6. USING IN-BAND SIGNALING
6-3
TELEVANTAGE DEVELOPER ’S GUIDE
Quick call menu
When you press * from a dial tone, you are offered a menu of quick call commands for placing and answering calls. You
can also press * plus the command directly:
Quick call commands
*0
Hear your phone’s station ID and extension.
*10
Enable and disable hands-free answering.
*11
Enter an account code for the current call or the call you are about to dial.
*55
Hear real-time call center statistics for the queue of your choice.
*66
Redial the last call you placed.
*69
Dial the phone number of your last incoming call.
*70
Disable call waiting for the next call.
*91
Answer another ringing phone. Enter the extension of the phone to answer.
*92
Retrieve a parked call.
*93
Dial a TeleVantage user by name.
*95
Manage your calls on hold.
*96
Log off from remote session. Only available at a dial tone when logged in from a remote
phone.
*99
Answer another ringing phone within your workgroup. See *91 also.
CHAPTER 6. USING IN-BAND SIGNALING
6-4
TELEVANTAGE DEVELOPER ’S GUIDE
Voice mail/Account menu commands
The Voice Mail/Account menu lets you listen to your voice mail, send messages to other users' voice mail, and change
your TeleVantage account settings. You need to log in to access this menu.
To log in to a Voice Mail/Account menu, enter:
# <extension number> # <password> #
If the voice mailbox is almost full when you log in, you are given the option to empty your Deleted folder.
Summary of Voice Mail/Account Menu Commands
1
Voice messages (Inbox folder)
2
Voice messages (Saved folder)
1
2
3
41
42
43
5
6
7
8
9
#
3
Replay
Next message
Delete/Undelete message
Reply
Forward
Call back
Previous message
Save
Rewind
Undelete all
Fast Forward
Skip message preamble; skip rest of message
Send voice message
1 Send
2 Review
3 Re-record
4 Append
5 Mark Urgent
6 Mark Private
* Cancel
4
Manage greetings
1 Replay
2 Next greeting
3 Make active
4 Re-record
5 Revert
6 Record new greeting
7 Delete
5
Call forwarding
1 To this ext.
2 To internal
3 To external
4 Cancel forwarding
5 Query forwarding
6 Toggle standard call rules
CHAPTER 6. USING IN-BAND SIGNALING
6-5
TELEVANTAGE DEVELOPER ’S GUIDE
Summary of Voice Mail/Account Menu Commands
6
Account preferences
1 Do Not Disturb
2 Record voice title
3 Change password
7
Have TeleVantage hang up
#
Dial tone to start another call
Note: Option 7 is only available when logging in from an outside line.
Quick commands for call center agents
The following commands are available only for agents in a call center queue.
Quick call commands for call center agents
*14
Mark the identity of all subsequent outbound calls during your shift, to keep track of which outbound
calls are queue-related.
To mark all your subsequent outbound calls as being from the queue, press *14<queue’s
extension>#.
To mark all your subsequent outbound calls as being from yourself, press *14#.
*51
Sign in. The call center queues begin sending you calls. This command changes your personal
status to Available (Queue Only).
When you sign in with *51, only queue calls ring your phone. Non-queue calls are sent directly to
your voice mail. To have all your calls ring your phone, sign in by choosing the personal status
Available.
Note: To receive queue calls, you must be on call with a queue and you must be signed in. Your
TeleVantage system administrator can tell you the queues for which you are on call.
*52
Sign out. The call center queues stop sending you calls. This command changes your personal
status to Available (Non-Queue).
After you sign out, non-queue calls continue to ring your phone. To prevent all calls from ringing
your phone, use the Do Not Disturb personal status.
*53
Go on break. The call center queues stop sending you calls, but you are still considered to be
signed in for statistical purposes. This command changes your personal status to On Break.
While you are on break, non-queue calls continue to ring your phone.
*54
End wrap-up. This command terminates the wrap-up time that follows a queue call. During wrap-up
time the queue does not you send calls. Ending wrap-up makes you available to receive queue
calls again.
*55
Hear real-time call center statistics for a queue. To use *55, you must have been given permission
to do so by your TeleVantage system administrator.
CHAPTER 6. USING IN-BAND SIGNALING
6-6
CHAPTER 7
CHAPTER 7
THE TELEVANTAGE TAPI SERVICE PROVIDER
CHAPTER CONTENTS
About the TeleVantage TAPI Service Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-2
TeleVantage TAPI Service Provider capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-2
TAPI and TeleVantage custom call data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-3
TELEVANTAGE DEVELOPER ’S GUIDE
About the TeleVantage TAPI Service Provider _________________________
TAPI support makes it possible to integrate an existing TAPI application with the TeleVantage Server, and to use TAPI
to make calls or perform call control on a PC networked to the TeleVantage Server.
You can use the TeleVantage TAPI Service Provider (TSP) to integrate your custom TAPI applications with the
TeleVantage Server. Unlike IVR Plug-ins, which must run on the Server, TAPI applications run on any PC that has the
TeleVantage TSP installed and is networked to the Server.
You install the TSP by running the Setup program in the Netsetup folder on the TeleVantage Server. (See Installing
TeleVantage for details.) As part of the installation, the TeleVantage TAPI Configuration wizard prompts you to specify
which TeleVantage station the TSP will monitor for incoming calls. After the TSP is installed, you can change the
station at any time by choosing Start > Programs > Artisoft TeleVantage > TAPI Configuration. If you need to work
with the station ID programmatically, refer to the description of ..\Client\TSP\Logon in Appendix J in Installing
Dialogic Telephony Components.
Whenever a call is transferred to the station being monitored by the TeleVantage TSP, the TSP notifies the
TAPI-compatible applications of the call. Once your TAPI application gets the call, it can get Caller ID or DID, transfer
the call, put it on hold, park it, or hang up. TAPI applications can also place new calls, unpark calls, and set or get
TeleVantage custom data. See “TAPI and TeleVantage custom call data” on page 7-3 for more information.
TeleVantage TSP can be used to build custom screen pop, dialing and call control applications. For example, you could
pop up a window whenever an important caller rings. Or you could use the TSP to place calls from a database of
numbers.
TeleVantage TAPI Service Provider capabilities ________________________
This section is intended for experienced TAPI developers who want to integrate their TAPI applications with
TeleVantage. It assumes knowledge of Microsoft TAPI.
The TeleVantage TAPI Service Provider (TSP) is a TAPI 2.1-compliant TSP that provides basic and supplementary call
control services on any Windows 98, ME, NT, 2000, or XP computer. The TeleVantage Client does not need to be
installed on the computer.
The TSP does not expose programmable media services, which means that your TAPI application can not (among other
things) perform voice processing or collect digits from the caller. If your application needs media services, we
recommend that you use the IVR Plug-in interface.
The TSP requires, as a minimum, a running TeleVantage Server and a single TeleVantage MSI station. With this basic
setup it can provide most of its call control functionality. The TSP exposes a single line which represents the configured
TeleVantage station. It translates the various TAPI first person-call control requests (primarily TSPI_lineMakeCall) into
a format that the TeleVantage Server understands. To the TeleVantage Server, the TSP appears as a normal TeleVantage
Client. Call handling is therefore subject to the same dialing restrictions as the configured user.
Supported TAPI functions
The TSP supports the functions MakeCall, Dial, Drop, Hold, Unhold, SwapHold, Park, Supervised Transfer, and Blind
Transfer. The TSP supports MakeCall using basic dial strings in standard TAPI dialable address format. It does not
currently support IP addresses or any LINECALLPARAMS so if you need to call an IP address, call an extension that
is routed to an IP address instead.
In order for outbound dialing on trunks to work properly, the appropriate TAPI dialing prefixes must be configured for
the current Windows Telephony location. Each prefix must correspond to an access code for a TeleVantage Dialing
Service or the call attempt will fail. The TSP Configuration Wizard attempts to validate these prefixes against the Server
and warns of possible problems in this area.
CHAPTER 7. THE TELEVANTAGE TAPI SERVICE PROVIDER
7-2
TELEVANTAGE DEVELOPER ’S GUIDE
Supported bearer modes
The TSP reports support for LINEBEARERMODE_INTERACTIVEVOICE and
LINEBEARERMODE_DATAMODEM. Artisoft recommends that TAPI applications that open the TeleVantage line
use INTERACTIVEVOICE.
Call states
The TSP may report any of the following TAPI call states:
IDLE
OFFERING
ACCEPTED
DIALTONE
DIALING
RINGBACK
CONNECTED
BUSY
ONHOLD
ONHOLDPENDTRANSFER
PROCEEDING
DISCONNECTED
UNKNOWN
Exported TSP functions
The following list contains all TSPI_xxx functions exposed by the TeleVantage TSP to TAPI:
TSPI_lineAnswer
TSPI_lineBlindTransfer
TSPI_lineClose
TSPI_lineCloseCall
TSPI_lineCompleteTransfer
TSPI_lineConditionalMediaDetection
TSPI_lineDial
TSPI_lineDrop
TSPI_lineGetAddressCaps
TSPI_lineGetAddressStatus
TSPI_lineGetCallAddressID
TSPI_lineGetCallInfo
TSPI_lineGetCallStatus
TSPI_lineGetDevCaps
TSPI_lineGetID
TSPI_lineGetLineDevStatus
TSPI_lineGetNumAddressIDs
TSPI_lineHold
TSPI_lineMakeCall
TSPI_lineNegotiateTSPIVersion
TSPI_lineOpen
TSPI_linePark
TSPI_lineSetCallData
TSPI_lineSetDefaultMediaDetection
TSPI_lineSetStatusMessages
TSPI_lineSetupTransfer
TSPI_lineSwapHold
TSPI_lineUnhold
TSPI_lineUnpark
TSPI_providerConfig
TSPI_providerInit
TSPI_providerInstall
TSPI_providerRemove
TSPI_providerShutdown
TSPI_providerEnumDevices
TSPI_providerGenericDialogData
TSPI_providerUIIdentify
TUISPI_lineConfigDialog
TUISPI_providerConfig
TUISPI_providerInstall
TUISPI_providerRemove
TAPI and TeleVantage custom call data ______________________________
TeleVantage provides two COM interfaces to access TeleVantage custom call data: ITvTapiCustomData and
ITvCallProperties.
Note: Even though the TSP implements TSPI_lineGetCallInfo and TSPI_lineSetCallData, you should not use these
functions to access TeleVantage custom call data because they are used internally by the TSP. The ITvTapiCustomData
and ITvCallProperties interfaces that you should use are part of the TSP itself. You do not need to install any additional
components to support custom data through TAPI.
For example, in a Visual Basic TAPI application you would create a reference to the TeleVantage TAPI Type Library
C:\WINNT\SYSTEM32\TVCLIENT.TSP. Once you have a valid TAPI call handle, you can put and get custom data as
needed. Just like the IVR Plug-in custom data interface, this data is exposed to other TAPI clients if you transfer the call,
other IVR Plug-ins and also the Client’s Call Monitor if configured as described in “IVR Plug-ins and call data”.
CHAPTER 7. THE TELEVANTAGE TAPI SERVICE PROVIDER
7-3
Appendixes
APPENDIX A
APPENDIX A
IVR PLUG-IN API REFERENCE
CHAPTER CONTENTS
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-2
PluginApplication interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-2
PluginCaller interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-3
PluginCallee interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-16
PluginServer interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-18
PluginMedia interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-20
PluginApplicationOutbound interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-31
PluginOutOfBandCallProgressEvents interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-31
PluginOutOfBandCallProgressMonitor interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-32
TELEVANTAGE DEVELOPER ’S GUIDE
Overview _______________________________________________________
This appendix describes the interfaces, methods, properties, and events that make up the TeleVantage IVR Plug-in API.
For more information about using the IVR Plug-in API, see Chapter 4.
The IVR Plug-in API consists of the following interfaces:
Q
PluginApplication interface. See page A-2.
Q
PluginCaller interface. See page A-3.
Q
PluginCallee interface. See page A-16.
Q
PluginServer interface. See page A-18.
Q
PluginMedia interface. QSee page A-20.
Q
PluginApplicationOutbound Interface. See page A-31
Q
PluginOutOfBandCallProgressEvents interface. See page A-31
Q
PluginOutOfBandCallProgressMonitor interface. See page A-32
Note: For backward compatibility, previous versions of the IVR Plug-in API are supported, and existing IVR Plug-in
applications will continue to run. See Appendix B for information on how to migrate TeleVantage 4.x or earlier IVR Plug-in
applications to use the current IVR Plug-in API.
PluginApplication interface ________________________________________
The PluginApplication interface is the main entry point for an IVR Plug-In and consists of the following methods:
Q
Q
CallOffering method. Invoked when the call is offered to the Plug-in. See page A-2.
CallPlaced method. Invoked by the Server to notify the Plug-in when an outbound call has been dialed. See
page A-2.
Q
CallTerminated method. Invoked when TeleVantage wants to terminate the Plug-in, for example when
TeleVantage detects that the caller has hung up. See page A-3.
CallOffering method (PluginApplication interface)
Description
Invoked when the call is offered to the Plug-in.
Declaration
Inputs
Private Sub PluginApplication_CallOffering(Caller as PluginCaller)
Remarks
Argument
Description
Caller
A PlugInCaller object that contains the details of the party calling. See the
PlugInCaller object reference for more information.
Before CallOffering is invoked, TeleVantage creates an instance of the Plug-in's class via its
program ID. The program ID is specified in the Administrator's IVR Plug-ins view.
CallPlaced method (PluginApplication interface)
Description
Invoked by the Server to notify the Plug-in when an outbound call has been dialed.
Declaration
Inputs
Private Sub PluginApplication_CallPlaced(Caller as PluginCaller, CPType CallProgress)
Argument
Description
Caller
A PlugInCaller object that contains the details of the party calling. See
the PlugInCaller object reference for more information.
CallProgress
CPType value. See the CPType enumeration for more information.
APPENDIX A. IVR PLUG-IN API REFERENCE
A-2
TELEVANTAGE DEVELOPER ’S GUIDE
Remarks
TeleVantage does not do any call progress analysis before invoking this method. The number has
been dialed on the first available trunk specified by the access code in the PlaceCall method. See
also the PluginApplicationOutbound interface for additional ways to manage outbound calls that
are more applicable to ISDN lines.
It is the responsibility of the Plug-in to initiate call progress analysis if required using the
GetCallProgress method, the PluginOutOfBandCallProgressMonitor interface or a 3rd party
telephony toolkit. Refer to the ReceiveCall and PlaceCall Visual Basic sample projects in the
OutBoundCall directory.
To retrieve the PlaceCallInitialData as String
CallersCustomerID = mPlugInCaller.Get "TVIVRInitialData", "N/A"
mPlugInCaller.SetStatus "The Caller’s customer ID is " & CallersCustomerID
CallTerminated method (PluginApplication interface)
Description
Invoked when TeleVantage wants to terminate the Plug-in, for example when TeleVantage detects
that the caller has hung up.
Declaration
Remarks
Private Sub PluginApplication_CallTerminated()
This method is invoked when the caller hangs up or if the Plug-in becomes unresponsive for 4
minutes.
In this method you should make sure you stop any voice processing (e.g. if using the Media object
you should call the Stop method) and perform any necessary clean up. After CallTerminated is
invoked, TeleVantage removes its reference to the ActiveX EXE's class, which in Visual Basic will
then invoke the Class_Terminate subroutine.
CallTerminated is not invoked after the IVR Plug-In CallDone method.
PluginCaller interface _____________________________________________
The PluginCaller interface is provided by the CallOffering and CallPlaced methods in the PlugInApplication interface.
The PluginCaller interface consists of the following methods and properties:
Q
AssociateCalledCallerID method. Attempts to associate the called ID with a personal or public contact. See
page A-4.
Q
AssociateCalledExtension method. Attempts to associate the called ID with a system target based on
extension. See page A-5.
Q
AssociateCallerID method. Attempts to associate the Caller ID with a personal or public contact. See page A-5.
Q
AssociateExtension method. Attempts to associate the Caller ID with a system target based on extension. See
page A-6.
Q
AssociateExtensionEx method. Attempts to associate the Caller ID with a system target based on extension
and also allows authenticating the caller as a logged in User. See page A-6.
Q
CallDone method. Returns control of the call to the Server with instructions on how it should continue
processing the call. See page A-7.
Q
Delete method. Deletes the specified custom data property from the party in the call. See page A-8.
Q
DeviceName property. Returns the name of the allocated raw voice resource, if any. See page A-8.
Q
Exists method. Returns True if the specified custom data property exists on the party in the call. See page A-8.
Q
Get method. Gets a standard or custom party attribute from the party in the call, for example, CallerID or
CustomerID. See page A-9.
APPENDIX A. IVR PLUG-IN API REFERENCE
A-3
TELEVANTAGE DEVELOPER ’S GUIDE
Q
GetDevice method. Allocates a raw voice resource from the TeleVantage Server’s device pool so that you can
pass it to a third party voice processing toolkit. See page A-11.
Q
GetMedia method. Allocates a voice resource and returns a PluginMedia object associated with it. See page
A-11.
Q
GetXmitTimeslot method. Returns the TDM bus transmit timeslot of the caller’s device. See page A-12.
Q
Listen method. Performs a half duplex route of the media stream, such that the caller’s device listens to the
specified TDM bus timeslot. See page A-12.
Q
Ping method. Calling this method tells the Server the IVR Plug-in is still running properly. See page A-12.
Q
PlugInComments property. The comments for the called IVR Plug-in as defined in the Administrator. See page
A-13.
Q
PlugInDID property. The DID number of the called IVR Plug-in as defined in the Administrator. See page A-13.
Q
PlugInExtension property. The extension of the called IVR Plug-in as defined in the Administrator. See page
A-13.
Q
PlugInName property. The name of the called IVR Plug-in as defined in the Administrator. See page A-14.
Q
PlugInVariable property. The custom data variable name of the called IVR Plug-in as defined in the
Administrator. See page A-14.
Q
ReleaseDevice method. Returns a raw voice resource to the TeleVantage Server’s device pool. See page A-14.
Q
Set method. Sets a custom or standard party attribute for the party in the call, for example, CustomerID or
AccountCode. See page A-14.
Q
SetStatus method. Sets the status string displayed in the Device Monitor on the TeleVantage Server or in the
Administrator. See page A-16.
AssociateCalledCallerID method (PluginCaller interface)
Description
Attempts to associate the called ID with a personal or public contact.
Syntax
[Associated] = Object.AssociateCalledCallerID(CallerIdNumber, CallerIdName, ExtensionContext)
Arguments
Name
Data Type
Description
CallerIdNumber
String
Optional. The phone number of a TeleVantage contact you want
to associate with. If this argument is not specified you must
specify the CallerIDName argument. Default is “”.
CallerIdName
String
Optional. The name of a TeleVantage contact you want to
associate with. If this argument is not specified you must specify
the CallerIDNumber argument. Default is “”.
ExtensionContext
String
Optional. Leave blank to match against TeleVantage public
contacts or specify a user’s extension number to match against
the user’s TeleVantage contacts. Default is “”.
Returns
Associated
Boolean
Returns True if the method resulted in a matching contact and
the association completed successfully.
Remarks
When a call is created to an external number, the Server searches the user’s personal TeleVantage
contacts, and if a match is not found, the Server’s public contacts. This method allows an IVR Plug-in to
change that information to a TeleVantage personal or public contact based on Caller ID name or
number.
Example
APPENDIX A. IVR PLUG-IN API REFERENCE
A-4
TELEVANTAGE DEVELOPER ’S GUIDE
AssociateCalledExtension method (PluginCaller interface)
Description
Attempts to associate caller’s called ID with a system target based on extension.
Syntax
[Associated] = Object.AssociateCalledExtension(Extension)
Arguments
Name
Data Type
Description
Extension
String
The extension number of any system target that exists in the
TeleVantage Server.
Returns
Associated
String
Returns True if the extension specified was a valid system target
and the association completed successfully.
Remarks
When a call is created, the Server records the system target (User, Auto Attendant, Queue, IVR Plug-in,
etc.) that was initially called. This method allows an IVR Plug-in to change that information to a different
system target.
Example
AssociateCallerID method (PluginCaller interface)
Description
Attempts to associate the Caller with a personal or public contact.
Syntax
[Associated] = Object.AssociateCallerID(CallerIdNumber, CallerIdName, ExtensionContext)
Arguments
Name
Data Type
Description
String
Optional. The Caller ID number that matches the Caller ID
stored with the TeleVantage contact you want to associate with.
If this argument is not specified you must specify the
CallerIDName argument. Default is “”.
CallerIdName
String
Optional. The Caller ID name that matches the Caller ID name
stored with the TeleVantage contact you want to associate with.
If this argument is not specified you must specify the
CallerIDNumber argument. Default is “”.
ExtensionContext
String
Optional. Leave blank to match against TeleVantage public
contacts or specify a user’s extension number to match against
the user’s TeleVantage contacts. Default is “”.
Returns
Associated
Boolean
Returns True if the method resulted in a matching contact and
the association completed successfully.
Remarks
This method associates a TeleVantage contact with the caller allowing IVR Plug-ins to perform their own
contact identification. You can use this method to change calls that previously appeared as from
Unknown to be from a TeleVantage personal or public contact.
CallerIdNumber
Example
APPENDIX A. IVR PLUG-IN API REFERENCE
A-5
TELEVANTAGE DEVELOPER ’S GUIDE
AssociateExtension method (PluginCaller interface)
Description
Attempts to associate the Caller ID with a system target based on extension.
Syntax
[Associated] = Object.AssociateExtension(Extension)
Arguments
Name
Data Type
Description
Extension
String
The extension number of any system target that exists in the
TeleVantage Server.
Associated
String
Returns True if the extension specified was a valid system target
and the association completed successfully.
Remarks
This method associates a TeleVantage system target (User, Auto Attendant, Queue, IVR Plug-in, etc.)
with the caller, effectively changing who the call appears to be from. You can use this method to change
calls that previously appeared as from a user to be from a different user.
Example
AssociateExtensionEx method (PluginCaller interface)
Description
Attempts to associate the caller with a system target based on extension.
Syntax
[Associated] = Object.AssociateExtensionEx(Extension, MarkAuthenticated)
Arguments
Name
Data Type
Description
Extension
String
The extension number of any system target that exists in the
TeleVantage Server.
MarkAuthenticated
Boolean
If set to True, the caller is marked as an "authenticated" user,
which allows subsequent transfer to access voice mail/account
settings without having to enter password.
Returns
Remarks
Example
Returns True if the extension specified was a valid system target
and the association completed successfully.
When PluginCaller.CallDone is invoked with NextAction argument set to naTransferToNumber and
AddressType argument set to atAccountLogin, the Number argument can be set to "auto". In this case,
the server will use the current credentials when going through account logon. This means that if PluginCaller.AssociateExtensionEx has been previously invoked with MarkAuthenticated argument set to
"True", the account logon prompts will by bypassed altogether.
Here is the example implementation of CallOffering that transfers to voice mail access of user "104" and
tells the server to bypass account logon prompts.
>
Private Sub PluginApplication_CallOffering(ByVal Caller As TVIVRLib.PluginCaller)
Caller.AssociateExtensionEx "104", True
Caller.CallDone naTransferToNumber, "auto", atAccountLogin
End Sub
Associated
APPENDIX A. IVR PLUG-IN API REFERENCE
String
A-6
TELEVANTAGE DEVELOPER ’S GUIDE
CallDone method (PluginCaller interface)
Description
Returns control of the call to the Server with instructions on how it should continue processing the call.
Syntax
Object.CallDone Action, Number, Type, AccessCode, SubType
Arguments
Name
Data Type
Description
Action
NextAction
Specifies the next step the TeleVantage Server should take to
process the call.
Enumerations
Constant
Value Description
naHangup
0
Hang up call.
naTransferToNumber
1
Transfer call to the extension or
phone number specified in
DialString, as if it was dialed from
dialtone.
naTransferToVoiceMail 2
Transfer call to voice mailbox of the
extension specified in DialString.
naReturnToRoutingList 3
Continue with next step in routing
list.
naError
Perform Error Action specified in by
the IVR Plug-In Transfer To/Hang
Up settings in the TeleVantage
Administrator.
4
Optional. Extension or phone number required if the Action
argument is naTransferToNumber or naTransferToVoiceMail. The
default is “”.
Number
String
Type
Optional. The type of address specified in the Number argument.
The default is atExtension. Use atTelephone for phone numbers.
AddressType
See the section AddressType Enumerations for a complete list,
including account login.
AccessCode
SubType
String
Optional. Only used if the Type argument is atTelephone,
atExtension (for PBX/Centrex dialing services) or for atInternet.
Specify the Dialing Service access code (e.g. “9”) to dial the number
specified in the Number argument. The default is “”, which will use
the default phone number dialing service.
Long
Optional. Only used if the Type argument is atTelephone, specify
astUseServiceRules if the number should be dialed using the
Server’s dialing rules or specify astUnknown to dial the number
exactly as specified in the Number argument. The default is
astUnknown.
Remarks
When this method finishes, the IVR Plug-in is no longer processing the call and any voice resources
used are reclaimed by the Server. This is the last operation an IVR Plug-in can perform before it is
terminated, so after calling this method, do not call any additional IVR Plug-in methods.
Examples
Transfer the caller to the voice mailbox at extension 102:
mPlugInCaller.CallDone naTransferToVoiceMail, “102”
Transfer the caller to the external number 6175551212:
mPlugInCaller.CallDone naTransferToNumber, “6175551212”, atTelephone, “”, astUseServiceRules
APPENDIX A. IVR PLUG-IN API REFERENCE
A-7
TELEVANTAGE DEVELOPER ’S GUIDE
Delete method (PluginCaller interface)
Description
Deletes the specified custom data property from the party in the call.
Syntax
Object.Delete PropertyName
Arguments
Name
Data Type
Description
PropertyName
String
The name of a custom data variable that you want to remove
from the party in the call.
Remarks
If the party in the call has a custom data variable such as CustomerID, you can use this method to
remove it.
Example
mPlugInCaller.Delete “CustomerID”
DeviceName property (PluginCaller interface)
Description
Returns the name of the allocated raw voice resource, if any.
Syntax
[DeviceName] = Object.DeviceName
Returns
DeviceName
Remarks
This property is only filled in if using the GetDevice method and is not filled in if using the GetMedia
method
Example
mPlugInCaller.SetStatus “The voice resource being used is “& mPlugInCaller.DeviceName
String
Returns the name of the allocated raw voice resource, if any
Exists method (PluginCaller interface)
Description
Returns True if the specified custom data property exists on the party in the call.
Syntax
[Exists] = Object.Exists(PropertyName)
Arguments
Name
Data Type
Description
PropertyName
String
The name of a custom data variable.
Exists
Boolean
Returns True if the specified custom data property exists on the
party in the call.
Returns
Remarks
Example
If mPlugInCaller.Exists “CustomerID” then
mPlugInCaller.SetStatus “The caller has a CustomerID variable”
End If
APPENDIX A. IVR PLUG-IN API REFERENCE
A-8
TELEVANTAGE DEVELOPER ’S GUIDE
Get method (PluginCaller interface)
Description
Gets a standard or custom party attribute from the Caller’s party in the call, for example, CallerID or
CustomerID.
Syntax
[Value] = Object.Get(Keyname, DefaultValue)
Arguments
Name
Data Type
Description
Keyname
String
The name of a custom data variable or the name of a
standard party attribute from the table below.
DefaultValue
String
Optional. If the Keyname specified does not exist on the
party, the Value returned will beset to the DefaultValue
argument. Default is “”
Returns
Value
String
Returns the value of the Keyname specified.
Remarks
Use this method to obtain the value of any standard or custom data item attached to the party in the call.
To set a standard or custom data value see the Set method. The names of all custom data variables are
defined in the Administrator. The names of all standard party attributes are listed below.
Standard Property
Description
ppAccountCode
The account code associated with the party. Account code validation is
ignored when writing to this property.
ppCallbackNumber
The party’s callback address. This is the Caller ID number for inbound
telephone calls. CallerIDNumberType indicates if it will be a phone number,
extension, or IP address.
ppCallbackNumberAccess The access code of the Dialing Service used by the party’s callback
Code
address, if applicable.
Only used if xxxNumberType is atTelephone. astUseServiceRules indicates
ppCallbackNumberSubTyp
the number was dialed using the Server’s dialing rules. astUnknown
e
indicates the number was dialed exactly as specified in xxxNumber.
ppCallbackNumberType
The type of the party’s callback address. See the AddressType
enumeration for possible values.
ppCalledDisplayName
Suggested display name for the called party, a combination of FirstName
and LastName.
ppCalledExtension
The extension of the called party. Use one of the AssociateXXX methods to
change this value
ppCalledFirstName
The called party’s last name.
ppCalledID
The ID of the called party that can be passed to the client API. Use one of
the AssociateXXX methods to change this value.
ppCalledLastName
The called party’s first name.
ppCalledNumber
The called party’s address. This is the Caller ID number for inbound
telephone calls. CallerIDNumberType indicates if it will be a phone number,
extension, or IP address.
ppCalledNumberAccessCo The access code of the Dialing Service used by the called party’s address,
de
if applicable.
Only used if xxxNumberType is atTelephone. astUseServiceRules indicates
ppCalledNumberSubType the number was dialed using the Server’s dialing rules. astUnknown
indicates the number was dialed exactly as specified in xxxNumber.
APPENDIX A. IVR PLUG-IN API REFERENCE
A-9
TELEVANTAGE DEVELOPER ’S GUIDE
ppCalledNumberType
The type of the called party’s address. See the AddressType enumeration
for possible values.
ppCallerIDName
Caller ID name supplied by the party owner or the telephone company.
ppCallerIDNumber
The party’s address. This is the Caller ID number for inbound telephone
calls. CallerIDNumberType indicates if it will be a phone number, extension,
or IP address.
ppCallerIDNumberAccessC The access code of the Dialing Service used by the party’s address, if
ode
applicable.
Only used if xxxNumberType is atTelephone. astUseServiceRules indicates
ppCallerIDNumberSubType the number was dialed using the Server’s dialing rules. astUnknown
indicates the number was dialed exactly as specified in xxxNumber.
ppCallerIDNumberType
The type of the party’s address. See the AddressType enumeration for
possible values.
ppDeviceNumber
The device number that the party is on. Positive numbers are stations,
negative numbers are trunks.
ppDirection
The direction of the party, either inbound or outbound.
ppDisplayName
Suggested display name for the party, a combination of FirstName and
LastName.
ppExtension
The extension of the party. Use one of the AssociateXXX methods to
change this value
ppFirstName
The party’s first name.
ppHandle
The handle of the party
ppHandlerDisplayName
Suggested display name for the of the party whom handled the call (placed
by or answered by), a combination of FirstName and LastName.
ppHandlerExtension
The extension of the party whom handled the call (placed by or answered
by). Use one of the AssociateXXX methods to change this value
ppHandlerFirstName
The last name of the party whom handled the call (placed by or answered
by).
ppHandlerID
The ID of the party whom handled the call (placed by or answered by) that
can be passed to the client API. Use one of the AssociateXXX methods to
change this value.
ppHandlerLastName
The first name of the party whom handled the call (placed by or answered
by).
ppID
The ID of the party that can be passed to the client API. Use one of the
AssociateXXX methods to change this value.
ppLastName
The party’s last name.
ppLineAppearanceDevice The device number which owns the line appearance.
ppLineAppearanceNumber Line appearance number
ppLocaleCode
The current locale of the caller’s telephone prompts
ppNotes
Notes about the party.
ppQueueWaitTime
Total time in seconds that party has waited in call center queues.
ppStartTime
Time the party entered the current call
APPENDIX A. IVR PLUG-IN API REFERENCE
A-10
TELEVANTAGE DEVELOPER ’S GUIDE
Server local path and file name of the party’s recorded voice title. A
non-empty path does not guarantee that the file actually exists.
ppVoiceTitleFile
Examples
’ Get a standard party property from the caller
Dim CallerIDName as String
CallerIDName = mPlugInCaller.Get ppCallerIDName
mPlugInCaller.SetStatus "The Caller’s Caller ID Name is " & CallerIDName
’ Get a custom data variable that may
’ or another plug-in. If the customer
Dim CallersCustomerID as String
CallersCustomerID = mPlugInCaller.Get
mPlugInCaller.SetStatus "The Caller’s
have been set by an auto attendant, queue
ID is not set on the caller, use "N/A" as a default
"CustomerID", "N/A"
customer ID is " & CallersCustomerID
GetDevice method (PluginCaller interface)
Description
Allocates a raw voice resource from the TeleVantage Server’s device pool so that you can pass it to a
third party voice processing toolkit.
Syntax
[DeviceName] = Object.GetDevice(ExtraInfo)
Arguments
Name
Data Type
Description
ExtraInfo
String
Optional. Reserved for future use.
DeviceName
String
Returns the raw voice resource device name for advanced voice
processing by a 3rd party telephony toolkit.
Returns
Remarks
Use this method if you need to use a 3rd party telephony toolkit such as Dialogic’s CallSuite or the low
level Dialogic C API to perform voice processing commands that exceed the capabilities of the IVR
Plug-in API’s media object. 3rd party telephony toolkits will require the name of the raw voice
processing device in order to perform any media processing.
It is possible to use both a media object and a 3rd party telephony toolkit in the same IVR Plug-in, but
not at the same time. If you previously called the GetMedia method to obtain a media object you must
first destroy the Media object before calling this method and using the 3rd party telephony toolkit.
Likewise after calling the GetDevice method, you must call the ReleaseDevice method before calling
the GetMedia method to use the media object’s voice processing methods.
Example
Dim DeviceName as String
DeviceName = mPlugInCaller.GetDevice
GetMedia method (PluginCaller interface)
Description
Allocates a voice resource and returns a PluginMedia object associated with it.
Syntax
[Media] = Object.GetMedia(ExtraInfo)
Arguments
Name
Data Type
Description
ExtraInfo
String
Optional. Reserved for future use.
Media
PluginMedia
Returns a PlugInMedia object for basic voice processing.
Returns
APPENDIX A. IVR PLUG-IN API REFERENCE
A-11
TELEVANTAGE DEVELOPER ’S GUIDE
Remarks
With a PlugInMedia object you can perform basic voice processing tasks such as play and record files,
get digits, play tones, and speak numbers, dates, times, and more. See the PlugInMedia interface for
more information.
See the GetDevice method if you need to perform advanced voice processing tasks with a 3rd party
telephony toolkit.
Example
Dim mTVMedia as PluginMedia
mTVMedia = mPlugInCaller.GetMedia
mTVMedia.PlayFile "Hello.vox"
GetXmitTimeslot method (PluginCaller interface)
Description
Returns the TDM bus transmit timeslot of the caller’s device.
Syntax
Timeslot = Object.GetXmitTimeslot
Name
Data Type
Description
Returns
Timeslot
Long
Returns the TDM bus transmit timeslot of the caller’s device.
Remarks
Use this method if you need access to the TDM bus transmit timeslot of the caller’s device so you could
later route another TDM device to listen to the caller’s transmitting audio. For example, have a fax
device listen to the transmitting audio of a fax call.
Example
Listen method (PluginCaller interface)
Description
Performs a half duplex route of the media stream, such that the caller’s device listens to the specified
TDM bus timeslot.
Syntax
Object.Listen Timeslot
Arguments
Name
Data Type
Description
Timeslot
Long
The TDM bus timeslot number you want the calling party to
listen to.
Remarks
Example
Ping method (PluginCaller interface)
Description
Calling this method tells the Server the IVR Plug-in is still running properly.
Syntax
Object.Ping
Remarks
Calling any method on PluginCaller interface executes an implicit Ping. The Server will terminate IVR
Plug-in's which fail to call this method or any PluginCaller method for a 4 minutes. The 4 minute time
period can be changed via a setting on the Server.
APPENDIX A. IVR PLUG-IN API REFERENCE
A-12
TELEVANTAGE DEVELOPER ’S GUIDE
Example
Do
’perform some time consuming processing, such as a database query
’Ping the Server so it doesn’t terminate the Plug-in while this processing is happening.
mPlugInCaller.Ping
Until TheProcessingIsDone
PlugInComments property (PluginCaller interface)
Description
The comments for the called IVR Plug-in as defined in the Administrator.
Syntax
[Comments] = Object.PlugInComments
Comments
String
The comments for the called IVR Plug-in as defined in the
Administrator.
Remarks
Allows you to retrieve the comments specified for the current IVR Plug-in as defined in the
Administrator’s IVR Plug-in view.
Example
Dim MyPlugInsComments as String
MyPlugInsComments = mPlugInCaller.PlugInComments
PlugInDID property (PluginCaller interface)
Description
The DID number of the called IVR Plug-in as defined in the Administrator.
Syntax
[DID] = Object.PlugInDID
DID
String
The DID number of the called IVR Plug-in as defined in the
Administrator.
Remarks
Allows you to retrieve the DID number specified for the current IVR Plug-in as defined in the
Administrator’s IVR Plug-in view.
Example
Dim MyPlugInsDIDNumber as String
MyPlugInsDIDNumber = mPlugInCaller.PlugInDID
PlugInExtension property (PluginCaller interface)
Description
The extension of the called IVR Plug-in as defined in the Administrator.
Syntax
[Extension] = Object.PlugInExtension
Returns
Extension
String
The extension of the called IVR Plug-in as defined in the
Administrator.
Remarks
Allows you to retrieve the extension number specified for the current IVR Plug-in as defined in the
Administrator’s IVR Plug-in view.
Example
Dim MyPlugInsExtension as String
MyPlugInsExtension = mPlugInCaller.PlugInExtension
APPENDIX A. IVR PLUG-IN API REFERENCE
A-13
TELEVANTAGE DEVELOPER ’S GUIDE
PlugInName property (PluginCaller interface)
Description
The name of the called IVR Plug-in as defined in the Administrator.
Syntax
[Name] = Object.PlugInName
Name
The name of the called IVR Plug-in as defined in the
Administrator.
String
Remarks
Allows you to retrieve the Name specified for the current IVR Plug-in as defined in the Administrator’s
IVR Plug-in view.
Example
Dim MyPlugInsName as String
MyPlugInsName = mPlugInCaller.PlugInName
PlugInVariable property (PluginCaller interface)
Description
The custom data variable name of the called IVR Plug-in as defined in the Administrator.
Syntax
[VarName] = Object.PlugInVariable
VarName
The custom data variable name of the called IVR Plug-in as
defined in the Administrator.
String
Remarks
This method allows you to retrieve the custom data variable name specified for the current IVR Plug-in
as defined in the Administrator’s IVR Plug-in view.
Example
Dim MyPlugInsVariable as String
MyPlugInsVariable = mPlugInCaller.PlugInVariable
ReleaseDevice method (PluginCaller interface)
Description
Returns a raw voice resource to the TeleVantage Server’s device pool.
Syntax
Object.ReleaseDevice DeviceName
Arguments
Name
Data Type
Description
DeviceName
String
Device name voice resource to release.
Remarks
See the GetDevice method
Example
Set method (PluginCaller interface)
Description
Sets a custom or standard party attribute for the party in the call, for example, CustomerID or
AccountCode.
Syntax
Object.Set KeyName, Value
Arguments
Name
Data Type
Description
Keyname
String
The name of a custom data variable or the name of a
standard party attribute from the table below.
Value
String
The new value of the Keyname specified.
APPENDIX A. IVR PLUG-IN API REFERENCE
A-14
TELEVANTAGE DEVELOPER ’S GUIDE
Remarks
Examples
Use this method to set the value of many standard or any custom data item attached to the party in the
call. To get a standard or custom data value see the get method. The names of all custom data
variables are defined in the Administrator. The names of all writable standard party attributes are listed
below.
Standard Property
Description
ppAccountCode
The account code associated with the party. Account code validation is
ignored when writing to this property.
ppCallbackNumber
The party’s callback address. This is the Caller ID number for inbound
telephone calls. CallerIDNumberType indicates if it will be a phone
number, extension, or IP address.
ppCallbackNumberAccessCode
The access code of the Dialing Service used by the party’s callback
address, if applicable.
ppCallbackNumberSubType
Only used if xxxNumberType is atTelephone. astUseServiceRules
indicates the number was dialed using the Server’s dialing rules.
astUnknown indicates the number was dialed exactly as specified in
xxxNumber.
ppCallbackNumberType
The type of the party’s callback address. See the AddressType
enumeration for possible values.
ppCalledNumber
The called party’s address. This is the Caller ID number for inbound
telephone calls. CallerIDNumberType indicates if it will be a phone
number, extension, or IP address.
ppCalledNumberAccessCode
The access code of the Dialing Service used by the called party’s
address, if applicable.
ppCalledNumberSubType
Only used if xxxNumberType is atTelephone. astUseServiceRules
indicates the number was dialed using the Server’s dialing rules.
astUnknown indicates the number was dialed exactly as specified in
xxxNumber.
ppCalledNumberType
The type of the called party’s address. See the AddressType
enumeration for possible values.
ppCallerIDName
Caller ID name supplied by the party owner or the telephone company.
ppCallerIDNumber
The party’s address. This is the Caller ID number for inbound
telephone calls. CallerIDNumberType indicates if it will be a phone
number, extension, or IP address.
ppCallerIDNumberAccessCode
The access code of the Dialing Service used by the party’s address, if
applicable.
ppCallerIDNumberSubType
Only used if xxxNumberType is atTelephone. astUseServiceRules
indicates the number was dialed using the Server’s dialing rules.
astUnknown indicates the number was dialed exactly as specified in
xxxNumber.
ppNotes
Notes about the party.
’ Set a standard party property
mPlugInCaller.Set ppCallerIDName, "John Doe"
’ Set a custom data variable so it can be displayed in the call monitor
mPlugInCaller.Set "CustomerID", "3057392"
APPENDIX A. IVR PLUG-IN API REFERENCE
A-15
TELEVANTAGE DEVELOPER ’S GUIDE
SetStatus method (PluginCaller interface)
Description
Sets the status string displayed in the Device Monitor on the TeleVantage Server or in the
Administrator.
Syntax
Object.SetStatus Status
Arguments
Name
Data Type
Description
Status
String
Text to be displayed in the Device Monitor’s status column for
the trunk or station currently connected to the IVR Plug-in.
Remarks
Using SetStatus, you can visually monitor a Plug-in’s activity. The Device Monitor shows the
current status of every trunk and station in the Server. When a caller is connected to an IVR
Plug-in, calls to the SetStatus method change the status displayed for the trunk or station on which
the IVR Plug-in is operating. With this information Administrators or developers can monitor its
activity even though they are not on the call. Each call to SetStatus changes the current status to
the new status.
Example
mPlugInCaller.SetStatus "Asking the caller for the customer ID number"
mPlugInMedia.PlayFile "Please enter your customer id.vox"
mPlugInCaller.SetStatus "Waiting for the caller to enter their customer ID"
CustomerID = mPlugInMedia.GetDigits 5
PluginCallee interface_____________________________________________
The PluginCallee interface consists of the following methods and properties:
Q
Exists Method. Returns true if the specified Callee property exists.
Q
Get Method. Gets a standard or custom party attribute from the User’s
Exists method (PluginCallee interface)
Description
Returns True if the specified custom data property exists on the callee. The callee is the IVR Plug-In if
called directly. If the IVR Plug-In is called indirectly, the callee is the User who had a routing list that
called the IVR Plug-In
Syntax
[Exists] = Object.Exists(PropertyName)
Arguments
Name
Data Type
Description
PropertyName
String
The name of a custom data variable.
Exists
Boolean
Returns True if the specified custom data property exists on the
party in the callee.
Returns
Remarks
Example
If mPlugInCallee.Exists “CustomerID” then
mPlugInCaller.SetStatus “The caller has a CustomerID variable”
End If
APPENDIX A. IVR PLUG-IN API REFERENCE
A-16
TELEVANTAGE DEVELOPER ’S GUIDE
Get method (PluginCallee interface)
Description
Gets a standard or custom party attribute from the IVR Plug-In’s party in the call. The callee is the IVR
Plug-In if called directly. If the IVR Plug-In is called indirectly, the callee is the User who had a routing
list that called the IVR Plug-In
Syntax
[Value] = Object.Get(Keyname, DefaultValue)
Arguments
Name
Data Type
Description
Keyname
String
The name of a custom data variable or the name of a standard
party attribute from the table below.
DefaultValue
String
Optional. If the Keyname specified does not exist on the party,
the Value returned will beset to the DefaultValue argument.
Default is “”
Returns
Value
String
Returns the value of the Keyname specified.
Remarks
Use this method to obtain the value of any standard or custom data item attached to the callee. The
callee is the IVR Plug-In if called directly. If the IVR Plug-In is called indirectly, the callee is the User who
had a routing list that called the IVR Plug-In. The names of all custom data variables are defined in the
Administrator. The names of all standard party attributes that apply to the Callee are listed below.
Standard Property Description
ppCallerIDName
Caller ID name supplied by the party owner.
ppCallerIDNumber
The party’s address, which is the extension.
ppCallerIDNumberA
The access code of the Dialing Service used by the party’s address, if applicable.
ccessCode
ppCallerIDNumberTy
The type of the party’s address, which will always be an extension
pe
ppDisplayName
Suggested display name for the party, a combination of FirstName and
LastName.
ppExtension
The extension of the party.
ppFirstName
The party’s first name.
ppHandle
The handle of the party
ppHandlerDisplayNa
The name of the Plug-In.
me
ppHandlerExtension The extension of the Plug-In
Examples
ppHandlerID
The ID of the IVR Plug-In.
ppID
The ID of the party that can be passed to the client API. Use one of the
AssociateXXX methods to change this value.
ppLastName
The party’s last name.
ppStartTime
Time the IVR Plug-In entered the current call
ppVoiceTitleFile
Server local path and file name of the party’s recorded voice title. A non-empty
path does not guarantee that the file actually exists.
Dim oPluginCallee As TVIVRLib.PluginCallee
Set oPluginCallee = Caller
Dim sExtension
sExtension = oPluginCallee.Get(ppExtension)
APPENDIX A. IVR PLUG-IN API REFERENCE
A-17
TELEVANTAGE DEVELOPER ’S GUIDE
PluginServer interface ____________________________________________
The PluginServer interface consists of the PlaceCall method.
PlaceCall method (PluginServer interface)
Description
Allows the IVR Plug-in to make an call to an extension or external number on behalf of another
extension, attach some data to the call, and return control back to the TeleVantage Server.
Syntax
[TvDevId] = Object.PlaceCall(AccessCode, DialString, Extension, Subtype, InitialData)
Arguments
Name
Data Type
Description
AccessCode
String
Specifies if you are making an external call over a Dialing Service, an
internal call to an extension, or an external call over a particular trunk.
Specify an access code for the dialing service used to make an
external call. If calling an extension, specify "" (empty string). If you
need to call an external number using a particular trunk, then specify
the Select a Trunk access code (e.g. 88) followed by a the trunk
number exactly as you would dial it from dial tone, e.g. "881" for trunk
1.
DialString
String
Phone number or extension the TeleVantage Server will dial. The
format of the number dialed depends on the selected Subtype,
described below.
Extension
String
The extension number to transfer the call to after dialing is complete.
If you want to perform voice processing on the call, use the extension
number of an IVR Plug-in.
Subtype
AddressSubtype Address subtype for the outbound call. This is ignored for calls to
extensions. Unless you want to dial the number exactly as written,
you should specify astUseServiceRules. See the AddressSubtype
enumeration for more information.
InitialData
String
User-defined string to pass to the target if an IVR Plug-in’s extension
is specified in the Extension argument. The IVR Plug-In launched at
that extension can retrieve the InitialData string by calling
PlugInCaller.Get("TVIVRInitialData")
Returns
TvDevId
Long
The TeleVantage Device ID that the call was placed on. Negative
numbers correspond to a trunk number, positive numbers correspond
to a station ID.
Remarks
See the remarks on the next page
APPENDIX A. IVR PLUG-IN API REFERENCE
A-18
TELEVANTAGE DEVELOPER ’S GUIDE
Remarks
See the PlaceCall and ReceiveCall sample for an example of on how to use this method.
See the CallProgress method and the PluginApplicationOutbound interface for information on
performing call progress.
If the PlaceCall method’s DialString argument specifies an extension, the following issues apply.
Q Unlike calls to external numbers, the PlaceCall method doesn't return until the extension’s default
station answer, and the CallPlaced event is not fired. Therefore, when the CallPlaced method is
invoked for a call to an extension, you know that callee has answered the ringing station and is
listening to the call. The PlaceCall method will only ring the station for the duration defined in the
user’s “Ring phone for __ seconds” setting before it times out.
Example1
Q
The DialString argument cannot specify an extension for a Queue, Auto Attendant, or IVR Plug-In.
If the PlaceCall method’s DialString argument does not specify a valid extension, or the user at
this extension doesn't have an default station as defined in the Administrator, the PlaceCall()
method will fail with an error of TVIVR_E_INVALID_ARGUMENT.
Q
The extension’s Call Forwarding settings are ignored. For example if user at extension 101
forwards their calls to an external number or another extension, extension 101’s default station
(or external station) will be rung, not the call forwarding number.
Q
The extension’s Do not Disturb setting and the Taking Calls attribute of other Personal Statuses
or Call Rules are ignored.
Q
The extension’s Call screening and announcement preferences are ignored. Call offering is not
played to the callee who answers their station.
The following code creates an external call and passes data to another IVR Plug-In at extension 333:
Dim TrunkNumber As Long
Dim mServer As PluginServer
Set mServer = New IVRPlugin
TrunkNumber = ABS(mServer.PlaceCall("9", "16173540600", "333", astUseServiceRules,
"MyInitialDataString"))
In you have an IVR Plug-In at extension 333, it can retrieve the InitiaData using the following
code.
PlaceCallInitialData as String
PlaceCallInitialData = mPlugInCaller.Get "TVIVRInitialData", "N/A"
mPlugInCaller.SetStatus "The initial data set via PlaceCall is " & PlaceCallInitialData
Example2
The following code creates a call between extension 102 and extension 333:
Dim StationID As Long
Dim mServer As PluginServer
Set mServer = New IVRPlugin
StationID = mServer.PlaceCall("", "102", "333", , )
APPENDIX A. IVR PLUG-IN API REFERENCE
A-19
TELEVANTAGE DEVELOPER ’S GUIDE
PluginMedia interface _____________________________________________
The PluginMedia interface consists of the following methods:
Q
Dial method. Plays DTMF or MF digits. See page A-20.
Q
FlushDigitBuffer method. Returns a string representing all digits currently in the voice resource’s digit buffer,
and leaves the digit buffer empty. See page A-21.
Q
GetCallProgress method. Performs inbound call progress analysis. See page A-21.
Q
GetDigits method. Returns a string of digits from the digit buffer representing a number of touchtone digits, or
a series of digits ending with a terminating digit. See page A-22.
Q
GetXmitTimeslot method. Returns the TDM bus transmit timeslot of the voice resource. See page A-23.
Q
Listen method. Performs a half duplex route such that the voice resource listens to the specified TDM bus
timeslot. See page A-23.
Q
PlayFile method. Plays a pre-recorded audio file. See page A-24.
Q
PlayString method. Plays a voice string. See page A-25.
Q
PlayTone method. Plays a pre-defined tone such as dial tone or a busy signal. See page A-28.
Q
RecordFile method. Records a voice file. See page A-29.
Q
SetRate method. Set audio rate for the next or current playback operation. See page A-30.
Q
SetVolume method. Set audio volume for the next or current playback operation. See page A-30.
Q
Stop method. Stops all voice activity. See page A-30.
All PluginMedia methods are synchronous. All timeouts and durations are in milliseconds.
Dial method (PluginMedia interface)
Description
Plays DTMF or MF digits.
Syntax
Object.Dial DialString
Arguments
Name
Data Type
Description
DialString
String
Digits to dial.
Remarks
Use the PlaceCall method to call numbers. Use this method to play DTMF digits to the caller. A
common use is to play sequences of DTMF digits to another IVR application.
Example
mTVMedia.Dial "102#928472#*"
APPENDIX A. IVR PLUG-IN API REFERENCE
A-20
TELEVANTAGE DEVELOPER ’S GUIDE
FlushDigitBuffer method (PluginMedia interface)
Description
Returns a string representing all digits currently in the voice resource’s digit buffer, and leaves the digit
buffer empty.
Syntax
[DigitBuffer]= Object.FlushDigitBuffer
Name
Data Type
Description
Returns
DigitBuffer
String
String of digits retrieved from the voice resource’s digit buffer.
Remarks
The voice resource's digit buffer collects and stores digits detected over the line. The FlushDigitBuffer
method retrieves all the digits already in the digit buffer without waiting for any conditions. The digit
buffer is empty after this method completes.
The FlushDigitBuffer method is similar to the GetDigits method. However, the GetDigits method
waits for conditions before retrieving digits (see page A-22.)
Example
The following code retrieves all the digits in the digit buffer and places them in the Choice variable:
Choice = mTVMedia.FlushDigitBuffer
GetCallProgress method (PluginMedia interface)
Description
Performs call progress analysis.
Syntax
[ActionResult] = Object.GetCallProgress(CallTimeout, ConnectLength, ConnectType)
Argument
Data Type
Description
CallTimeOut
Long
Optional. Milliseconds to wait for call progress detection to
complete. Default is 20,000 (20 seconds).
ConnectLength
Long
Optional return value that if connected, provides the length of
the greeting salutation in milliseconds (e.g. "Hello" is about 1000
milliseconds long). Using this parameter it is possible to
determine if you have reached an answering machine or a
person, since answering machine greetings are much longer
than live people.
ConnectType
Optional return value that returns the type of connection
ConnectTypeCo
detected, if a connection was made. See
nstants
ConnectTypeConstants enumeration for more information.
Returns
ActionResult
ActionResult
Remarks
A CallTimeOut of 0 seconds is no timeout at all and the method will immediately return. A CallTimeOut
of -1 is an indefinite timeout.
Example
If mTVMedia.GetCallProgress(30000) = arBusy then
mPlugInCaller.CallDone naHangUp
Else
mTVMedia.PlayFile "Hello.vox"
End If
APPENDIX A. IVR PLUG-IN API REFERENCE
See the ActionResult enumeration for a complete list of possible
results for this method.
A-21
TELEVANTAGE DEVELOPER ’S GUIDE
GetDigits method (PluginMedia interface)
Description
Returns a string of digits from the digit buffer representing a number of touchtone digits, or a series of
digits ending with a terminating digit. This method waits indefinitely (by default 15 seconds) until one of
the conditions in the input list is met.
Syntax
[DigitsBuffer] = Object.GetDigits(MaxDigits, TermDigits, DigitsTimeOut, InterDigitTimeOut,
InterDigitStart, Result)
Arguments
Name
Data Type
Description
MaxDigits
Integer
Optional. Maximum number of digits to collect. Default is 1.
TermDigits
String
Optional. String indicating any digits that will terminate the
method. To automatically strip off the terminating digit, add a ”-“
to the end of the string. Default is “”.
DigitsTimeOut
Long
Optional. Maximum number of milliseconds the method will wait
before returning. Default is 15000 milliseconds (15 seconds).
InterDigitTimeOut
Long
Optional. Maximum number of milliseconds this method will wait
between digits before returning. Default is 0, no timeout set.
InterDigitStart
Long
Optional. Set to 1 to delay the InterDigitTimeout until after the
first digit is collected. Default is 0.
Result
ActionResult
Optional returned value. See the ActionResult enumeration for
more information.
Returns
DigitBuffer
String
Returns a string of digits retrieved from the voice resource’s digit
buffer.
Remarks
A voice resource has a digit buffer that collects and stores digits detected over the phone line, such as
touchtone digits. The GetDigits method retrieves digits from the digit buffer according to certain
conditions. The following conditions can cause the GetDigits method to terminate:
The number of digits received is equal to the MaxDigits argument.
One of the digits in the TermDigits argument is detected. You can add a "-" to the end of the
TermDigits argument to remove the terminating digit.
The time elapsed exceeds the DigitsTimeOut argument.
The time elapsed since the last digit was detected exceeds the InterDigitTimeOut argument.
The Stop method is executed.
The caller hangs up.
The digits retrieved by this method are removed from the digit buffer after this method executes. Any
extra digits remain in the digit buffer for later retrieval, for example if 5 digits are in the digit buffer, but
the MaxDigits argument was set to 4.
A InterDigitTimeOut or DigitsTimeOut of 0 is no timeout at all and the method will immediately return. A
timeout of -1 is an indefinite timeout.
The GetDigits method is similar to the FlushDigitBuffer method. However, the FlushDigitBuffer
method does not wait for conditions before retrieving digits (see page A-21.)
Example 1
The following code retrieves 10 digits and places them into the Choice variable, unless the caller
presses # to terminate input or waits 20 seconds. If the caller presses #, the digits up to and including
the # are returned. if the caller waits 20 seconds, no digits are returned, even if 9 digits were pressed.
Choice = mTVMedia.GetDigits(10, "#", 20000)
Example 2
The following code plays a voice file that prompts callers for their PIN number, and then retrieves it.
APPENDIX A. IVR PLUG-IN API REFERENCE
A-22
TELEVANTAGE DEVELOPER ’S GUIDE
'Please enter your PIN Code followed by the pound sign
mTVMedia.PlayFile "ENTRPIN.VOX"
'specifying a 0 for MaxDigits allows a variable number of 'digits to be entered
'# terminates digit retrieval'- strips off the terminating digit
CustomerPIN = mTVMedia.GetDigits(0, "#-")
Example 3
The following code illustrates how digits are collected and removed from the digit buffer, while the
remaining digits stay in the buffer awaiting a subsequent GetDigits method.
'Caller presses 12345
nowChoice = mTVMedia.GetDigits(2)
'nowChoice is now "12"
"NextChoice = mTVMedia.GetDigits(2)
'NextChoice is now "34"
LastChoice = mTVMedia.GetDigits(2)
The line above waits for the second digit to be pressed because only 1 digit (a "5") is in the digit buffer
when the code executes. It waits as long as the default specified in the DigitsTimeOut argument. If no
digit is pressed within that period of time, LastChoice is set to "" and the "5" remains in the digit buffer. It
could be retrieved by the next GetDigits method; however, if we assume that the caller presses 678
before the timeout, LastChoice is now "56".
ReallyLastChoice = mTVMedia.GetDigits(2)
ReallyLastChoice is now "78" and no digits remain in the buffer.
GetXmitTimeslot method (PluginMedia interface)
Description
Returns the TDM bus transmit timeslot of the voice resource.
Syntax
[Timeslot] = Object.GetXmitTimeslot
Arguments
Name
Data Type
Description
Returns
Timeslot
Long
Returns the TDM bus transmit timeslot of the voice resource.
Remarks
Example
Listen method (PluginMedia interface)
Description
Performs a half duplex route such that the voice resource listens to the specified TDM bus timeslot.
Syntax
Object.Listen Timeslot
Arguments
Name
Data Type
Description
Timeslot
Long
TDM bus timeslot to listen to.
Remarks
Example
APPENDIX A. IVR PLUG-IN API REFERENCE
A-23
TELEVANTAGE DEVELOPER ’S GUIDE
PlayFile method (PluginMedia interface)
Description
Plays a pre-recorded audio file.
Syntax
[Result] = Object.PlayFile(FileName, TermDigits, StartPosition, EndPosition, ClearDigitBuffer,
Format)
Arguments
Name
Data Type
Description
FileName
String
File name to be played.
TermDigits
String
Optional. Terminating digit mask. Default is “@” – all digits will
terminate playback.
StartPosition
Long
Optional. Position within the file in bytes to start playing. Default is 0.
EndPosition
Long
Optional returned value. Position within the file in bytes where
playback stopped.
ClearDigitBuffer Boolean
Optional. If True, clears the digit buffer before playback. Default is -1
(True).
Format
Optional. File format of the audio file. FileFormat can be
any of the following. The default format is 3, or 8KHz PCM.
FileFormat
Enumerations:
Constant
Value Description
ffVOX_ADPCM_6K 0
6KHz VOX ADPCM format.
ffVOX_ADPCM_8K 1
8KHz VOX ADPCM format.
ffVOX_PCM_6K
2
6KHz VOX PCM format.
ffVOX_PCM_8K
3
8KHz VOX PCM format.
ffWAV_PCM_9K
6
6KHz WAV PCM format.
ffWAV_PCM_8K
7
8KHz WAV PCM format.
ffWAV_PCM_11K
8
11KHz WAV PCM format. (See
Important Note in Remarks.)
All file formats are 1 channel (mono). See Remarks for more
information about each format.
Returns
Result
ActionResult
Returns information on how the method completed. See the
ActionResult enumeration for more information
Remarks
This method clears the digit buffer before playing if the ClearDigitBuffer argument is set to -1 (the
default value). Play always begins at the start of the voice file unless the StartPosition argument
contains a valid non-zero value.
Play can be interrupted by any of the following conditions:
A valid terminating digit specified in the TermDigits argument is pressed (or is already in the digit
buffer if ClearDigitBuffer is set to 0, False).
The caller hangs up.
The Stop method is invoked.
The FileFormat argument specifies the format for the file to be played. The following table lists some
additional metrics for each file format:
FileFormat
Kbps Minutes/MB Bytes/Second
6KHz VOX ADPCM format
24
APPENDIX A. IVR PLUG-IN API REFERENCE
5.83
3000
A-24
TELEVANTAGE DEVELOPER ’S GUIDE
8KHz VOX ADPCM format
32
4.37
4000
6KHz VOX PCM format
48
2.91
6000
8KHz VOX PCM format
64
2.18
8000
6KHz WAV PCM format
48
2.91
6000
8KHz WAV PCM format
64
2.18
8000
11KHz WAV PCM format
88
1.59
11000
Important: The enumeration ffWAV_PCM_11K is not supported and will fail on Dialogic DM3 telephony
boards.
PlayString method (PluginMedia interface)
Description
Plays a voice string. A voice string is a collection of one or more voice files played smoothly together
using various play methods. Voice files can be prompts, numbers, dates, times, characters or ordinal
numbers, for example, "Order number [54321] was shipped on [Tuesday, October 2]."
Syntax
[Result] = Object.PlayString(Value, TermDigits, ClearDigitBuffer, Format, LanguageParams,
DateFormat, NumericPrecision)
Arguments
Name
Data Type
Description
Value
String
String value to be played. See below for the exact format required
by this argument,
TermDigits
String
Optional. Terminating digit mask. Default is “@” – all digits will
terminate playback.
ClearDigitBuffer
Boolean
Optional. Clear the digit buffer before playback. Default is 1, clear
digit buffer.
Format
FileFormat
Optional. File format of the audio file. For a list of valid file formats,
see the Format enumerations for the PlayFile method on page
A-24. The default format is 3, 8KHz PCM VOX format.
Returns
Remarks
LanguageParams String
Optional. parameter to specify a different spoken locale or special
language processing. See below for details. LanguageParams is
specified in the format of
[tvlocale=<localecode>;]<LanguageDLLParams> . Default value is
"tvlocale=System;"
DateFormat
Optional. See below for the exact format required by this
argument,
String
NumericPrecision Integer
Optional. Precision on numbers to be played back.
Result
Returns information on how the method completed. See the
ActionResult enumeration for more information.
ActionResult
This method plays the voice string specified by the Value argument. A voice string is specified in the
following manner:
"item1[, item2]...[, itemN]"
where N is a maximum of 128 items and the format of an item is:
value|element type[|format]
Each item consists of three parts:
Part
APPENDIX A. IVR PLUG-IN API REFERENCE
Description
A-25
TELEVANTAGE DEVELOPER ’S GUIDE
Value
Value to be played (for example, "Hello.vox" or "123"). Value can be any valid value
for the given element type. Note that for dates, the date value must be in the format
of
w mm dd hh:nn:ss yyyy
e.g. In Visual Basic’s format function you can convert a time value such as Now() to
the proper format for the PluginMedia interface as in:
Format$(Now(), "w mm dd hh:nn:ss yyyy"
Which could return:
15 02 08 05:30:00 2001
Element type How the file should be played, for example, as a number, or as a currency amount.
You can abbreviate any element type by using its first letter The following element
types are available:
Format
APPENDIX A. IVR PLUG-IN API REFERENCE
Element type
Abbreviation Description
CHARACTER
C
Speaks the value.
DATE
D
Plays the value as a date and/or time in the
specified format.
FILE
F
Plays the voice file specified by value.
INDEXEDFILE
I
Plays a phrase from an indexed voice file.
Only one indexed file can be referenced in
the string (see below). The indexed file
name is specified by the value and the
phrase number is specified in the format.
MONEY
M
Plays the value as a currency amount
(dollars and cents) to the decimal precision
specified in the format.
NUMBER
N
Plays the value as a number to the decimal
precision specified in the format.
ORDINAL
O
Plays the value as an ordinal number (1st,
2nd, 3rd, etc.).
Optional. Depending on the element type, format can be any valid date or file format,
or precision. Refer to the format table below for valid formats. You only need to
specify a format for date, file, indexed file, money, and number element types. The
following formats are available:
Element type
Format
DATE
A valid date format string to specify how the date is
spoken. For example, “15 02 08 05:30:00
2001|D|mm/dd/yyy” plays just the month day and year of a
date/time value. To create date values properly, see the
value part description above.
FILE
A valid file format. For example, “Greeting.vox|F|3”.
INDEXEDFILE
Either an index number or a text string to specify which
phrase to play in the indexed file. Text strings must be
enclosed in single quotes, for example, “PHRASES.VAP|I|5”
or “PHRASES.VAP|I|'Hello'”. Refer to the PlayIndexedFile
method for more information.
A-26
TELEVANTAGE DEVELOPER ’S GUIDE
MONEY
An integer describing decimal precision. For example,
“123.50|M|0” will play the money value without any cents.
NUMBER
An integer describing decimal precision. For example,
“12.345|N|3” will play the number to all 3 decimal places.
If an error occurs during the playing of any string element, the string halts playing
and any remaining elements are not played. Refer to the PlayFile method for an
explanation of how to terminate this method.
When two or more sets of International system prompts (locales) are installed on the TeleVantage
Server, the LanguageParams argument can specify the locale the IVR Plug-In’s PlayString method
uses to speak numbers, characters, and dates. For example from English to Spanish. The format of the
LanguageParams argument is [tvlocale=<localecode>;]<LanguageDLLParams> A system’s installed
localecodes can be found in the TeleVantage Client API's Session.System.LocaleCodes collection.
PlayString supports a special locale code "system" which corresponds to the current system's default
locale code as set by TvAdmin in the SystemSettings dialog. If the locale is not provided or is empty
then PlayString will use the system locale. If the specified locale is not installed on the Server then
PlayString returns an invalid argument error. The default value of the LanguageParams parameter is
"tvlocale=System;". The "tvlocale" tag and the locale code are case insensitive.
To determine the current language used by the caller, use the PluginCaller.Get and PluginCaller.Exists
method with "ppLocaleCode". Users and contacts have a "TelephonePromptLanguage" property which
sets the default ppLocaleCode, and the system provides a default value for all other callers. Queues
and Auto Attendants may override these defaults before transferring a call to an IVR Plug-in. IVR
plug-ins that support multiple locales may use this property to select the caller’s preferred locale. A
call’s ppLocaleCode cannot be set or changed by an IVR Plug-in.
Example 1
The following code plays the string, "Order number 123."
MTVMedia.PlayString “ordernum.vox|F,123|C“
Example 2
The following code plays the string, “Transferring to...” [John Doe], where the person's name is
recorded in a file name stored in the variable Person:
MTVMedia.PlayString “transfer.vox|F,“ & Person & “|F“
Example 3
Since only one indexed file can be referenced in the string, so the following syntax would not play both
indexed file phrases correctly:
MTVMedia.PlayString "file1.vap|I|2, file2.vap|I|2"
To work around this limitation, use two PlayString methods:
MTVMedia.PlayString "file1.vap|I|2"
MTVMedia.PlayString "file2.vap|I|2"
Example 4
Play a time
MTVMedia.PlayString Now() & "|D|hh:nn am/pm"
Or some development tools require you to first format the date/time value like follows:
MTVMedia.PlayString Format$(Now(), "w mm dd hh:nn:ss yyyy") & "|D|hh:nn am/pm"
Example 5
Play the number one using different languages and genders. This requires that you install the
TeleVantage Server with Spanish language support. Every language has it’s own language parameters,
and for Spanish an "f" or "m" means speak it using female or mail gender.
APPENDIX A. IVR PLUG-IN API REFERENCE
A-27
TELEVANTAGE DEVELOPER ’S GUIDE
oMedia.PlayString "1|n", , , , "tvlocale=ES00;f" ' play Spanish, female gender "una"
oMedia.PlayString "1|n", LanguageParams:="tvlocale=ES00;" ' "un" Spanish male gender
oMedia.PlayString "1|n", LanguageParams:="tvlocale=EN00" ' "one" English
oMedia.PlayString "1|n", LanguageParams:="tvlocale=system" ' "one" System default
oMedia.PlayString "1|n"
' "one" Systen default
Dim sLocale As String
sLocale = Caller.Get(ppLocaleCode)
oMedia.PlayString "1|n", LanguageParams:=sLocale ' "one" System default
PlayTone method (PluginMedia interface)
Description
Plays a pre-defined tone such as dial tone or a busy signal.
Syntax
[Result] = Object.PlayTone Tone, TermDigits, ToneTimeOut)
Arguments
Name
Data Type
Description
Tone
ToneID
Tone to be played:
Enumerations
Returns
Constant
Value
Description
tidDialtone
1
Dialtone
tidReorder
2
Reorder
tidBust
3
Busy
tidRingback1
4
Ringback 1
tidRingback2
5
Ringback 2
tidRingback1CallWait 6
Ringback1 Call Waiting
tidRingback2CallWait 7
Ringback 2 Call Waiting
tidRecallDial
8
Recall dial
tidIntercept
9
Intercept
tidCallWait1
10
Call Waiting 1
tidCallWait2
11
Call Waiting 2
tidBusyVerifyA
12
Busy Verify 1
tidBusyVerifyB
13
Busy Verify 2
tidExecOverride
14
Executive override
tidFeatureConfirm
15
Feature confirmation
tidStutterDialtone
16
Stutter dialtone
TermDigits
String
Optional. Terminating digit mask. Default is “@” – all digits will
terminate playback.
ToneTimeOut
Long
Optional. The number of milliseconds before the tone times out.
The default is -1 for no timeout until a digit is pressed.
Result
ActionResult
Returns information on how the method completed. See the
ActionResult enumeration for more information
APPENDIX A. IVR PLUG-IN API REFERENCE
A-28
TELEVANTAGE DEVELOPER ’S GUIDE
RecordFile method (PluginMedia interface)
Description
Records a voice file, using the specified file format.
Syntax
[Result] = Object.RecordFile(FileName, TermDigits, RecordTimeOut, StartPosition, EndPosition,
ClearDigitBuffer, RecordBeep, Format, MaxSilence, MaxNonSilence)
Arguments
Name
Data Type
Description
FileName
String
File name to be recorded.
TermDigits
String
Optional. Terminating digit mask. Default is “@” – all digits will
terminate recording.
RecordTimeOut
Long
Optional. Maximum number of milliseconds to record. Default is
60000 (1 minute).
StartPosition
Long
Optional. Position in bytes within the file to start recording.
Default is 0.
EndPosition
Long
Optional returned value. Position in bytes within the file where
recording stopped.
ClearDigitBuffer
Boolean
Optional. Clear the digit buffer before playback. Default is -1,
clear digit buffer.
RecordBeep
Boolean
Optional. Specifies whether a beep will be played prior to
recording. Default is -1 (True).
Format
FileFormat
Optional. File format of the audio file. For a list of valid file
formats, see the Format enumerations for the PlayFile method
on page A-24. The default format is 3, 8KHz PCM VOX format.
MaxSilence
Long
Optional. Maximum number of milliseconds of silence to record
before terminating. Default is -1 or no timeout.
MaxNonSilence
Long
Optional. Maximum number of milliseconds of non silence to
record before terminating. Default is -1 or no timeout
Result
ActionResult
Returns information on how the method completed. See the
ActionResult enumeration for more information
Returns
Remarks
If the RecordBeep argument is set to True, a "beep" tone is played immediately before recording
begins. This method clears the digit buffer before recording unless the AutoClearDigits argument is set
to False.
Any of the following conditions can cause the RecordFile method to terminate:
A valid terminating digit specified in the TermDigits argument is pressed (or is already in the digit
buffer if the AutoClearDigits argument is set to False).
The recording time exceeds the RecordTimeOut argument.
A pause exceeding the MaxSilence argument is detected
A constant sound exceeding the MaxNonSilence argument is detected.
The Stop method is invoked.
The caller hangs up.
Example
The following example records for up to 20 seconds:
mTVMedia.RecordFile "message.vox", , 20000
APPENDIX A. IVR PLUG-IN API REFERENCE
A-29
TELEVANTAGE DEVELOPER ’S GUIDE
SetRate method (PluginMedia interface)
Description
Sets the audio playback rate for the next or current playfile operation.
Syntax
Object.SetRate Rate
Arguments
Name
Data Type
Description
Rate
Integer
Specify a value from -10 to 10 to slow down or speed up voice
file playback.
Remarks
-10 is the slowest speed, and 10 is the fasted speed. 0 is normal speed.
Example
SetVolume method (PluginMedia interface)
Description
Sets the audio volume for the next or current playfile operation.
Syntax
Object.SetVolume Volume
Arguments
Name
Data Type
Description
Volume
Integer
Specify a value from -10 to 10 to slow down or speed up voice
file playback.
Remarks
-10 is the quietest, and 10 is the loudest. 0 is normal volume.
Example
Stop method (PluginMedia interface)
Description
Stops all voice processing activity, including PlayFile, PlayString, PlayTone, RecordFile, and GetDigits.
Syntax
Object.Stop
Remarks
Call this method in the CallTerminated method to be sure all voice processing has completed
Example
APPENDIX A. IVR PLUG-IN API REFERENCE
A-30
TELEVANTAGE DEVELOPER ’S GUIDE
PluginApplicationOutbound interface________________________________
The PluginApplicationOutbound interface does not have any methods - instead acts as 'tag' interface to change the
behavior of the CallPlaced and PlaceCall methods.
If an IVR Plug-In application implements this interface, the PlaceCall method will invoke the CallPlaced() method
immediately after a trunk has been seized and the call has been placed on the trunk. In other words, if the
PluginServer.PlaceCall() method succeeds (and returns a valid DeviceID of the seized trunk), PlugInApplication is
guaranteed to receive CallPlaced().
If an IVR Plug-in does not implement the PluginApplicationOutbound interface, TeleVantage will invoke CallPlaced()
method only when audio is available in the call (either in-band call progress, or remote party answered.) which is the
default behavior.
In addition, if the IVR Plug-In implements the PluginApplicationOutbound interface, until audio is available in the call,
several methods of PluginCaller will not be able to be executed. Executing those methods before audio is available will
result in an error TVIVR_E_UNEXPECTED = 0x80040236 ('Unexpected action requested for current state'). The
methods are PluginCaller.GetMedia, PluginCaller.GetXmitSlot, and PluginCaller.Listen. In addition, while audio is not
available, the PluginCaller.CallDone() can only be called with a NextAction argument of naHangup. In order to find out
when audio becomes available in the call (so that the IVR Plug-in can start using these disallowed methods), the IVR
Plug-In needs to use the PluginOutOfBandCallProgressMonitor interface.
PluginOutOfBandCallProgressEvents interface________________________
This interface and it’s methods are meant to be used with the PluginApplicationOutbound interface and
PluginOutOfBandCallProgressMonitor interface so you can monitor out of band call progress before audio is connected.
The PluginOutOfBandCallProgressEvents interface consists of the following methods:
Q
CallProgressIndication method. Returns the current state (Alerting, Processing and Disconnected,
etc.) of out of band call progress detection used on ISDN or Internet trunks.
CallProgressIndication method (PluginOutOfBandCallProgressEvents interface)
Description
Returns the current state (Alerting, Processing and Disconnected, etc.) of out of band call progress
detection used on ISDN or Internet trunks.
Syntax
Object.CallProgressIndication(CallProgressState As OutOfBandCallProgress, ExtraData)
Arguments
Name
Data Type
CallProgressState
OutOfBandCall Returns the ISDN or Internet out of band call progress state as
Progress
describe in the enumeration below:
Description
Enumerations
ExtraData
APPENDIX A. IVR PLUG-IN API REFERENCE
Integer
Constant
Value
Description
oobcpInitiated
0
Call has been initiated.
oobcpProceeding
1
Call is proceeding
oobcpAlerting
2
Remote party ringing
oobcpConnected
3
Remote party answered
oobcpDisconnected
4
Remote party didn't answer due
to one of the reasons described
in the ExtraData argument
If the CallProgressState argument returns oobcpDisconnected,
the value of ExtraData will be one of the CallDisconnectReason
constants as described in enumeration below
A-31
TELEVANTAGE DEVELOPER ’S GUIDE
Enumerations
Constant
Value
Description
cdrUnknown
0
Unknown disconnect reason
cdrBusy
1
Remote party was busy
cdrDestOutOfOrder
2
Destination number was out of
order
cdrUnassignedNumber 3
Number is not unassigned
cdrNetworkCongestion 3
Network congestion prevented
the call
cdrRejected
4
The call was rejected by the
remote party
cdrDestIncompatible
5
The designating was
incompatible with the call type
cdrNoAnswer
6
The remote party did not
answer
PluginOutOfBandCallProgressMonitor interface _______________________
This interface and it’s methods are meant to be used with the PluginApplicationOutbound interface so you can monitor
out of band call progress before audio is connected. The PluginOutOfBandCallProgressMonitor interface consists of the
following methods:
Q
GetDisconnectReason method. Returns the disconnection reason for an unsuccessful call.
Q
MonitorCallProgress method. Returns an interface to a PluginOutOfBandCallProgressEvents object
for receiving out-of-band call progress events
Q
WaitForAudio method. Waits the specified interval (in ms) for audio to be available in the call-
APPENDIX A. IVR PLUG-IN API REFERENCE
A-32
TELEVANTAGE DEVELOPER ’S GUIDE
GetDisconnectReason method (PluginOutOfBandCallProgressEvents interface
Description
Returns the disconnection reason for an unsuccessful call.
Syntax
[Reason] = Object.GetDisconnectReason
Returns
Name
Data Type
Description
Reason
CallDisconnect The CallDisconnectReason constants as described in
Reason
enumeration below
Enumerations
Constant
Value
Description
cdrUnknown
0
Unknown disconnect reason
cdrBusy
1
Remote party was busy
cdrDestOutOfOrder
2
Destination number was out of
order
cdrUnassignedNumber 3
Number is not unassigned
cdrNetworkCongestion 4
Network congestion prevented
the call
cdrRejected
5
The call was rejected by the
remote party
cdrDestIncompatible
6
The designating was
incompatible with the call type
cdrNoAnswer
7
The remote party did not
answer
MonitorCallProgress method (PluginMedia interface)
Description
This method hooks up an event interface to receive notifications on out of band call progress.
Syntax
Object.MonitorCallProgress(PluginOutOfBandCallProgressEvents as Object)
Arguments
Name
Data Type
PluginOutOfBandCal
Object
lProgressEvents.
APPENDIX A. IVR PLUG-IN API REFERENCE
Description
An object that implements the
PluginOutOfBandCallProgressEvents interface
A-33
TELEVANTAGE DEVELOPER ’S GUIDE
WaitForAudio method (PluginMedia interface)
Description
Waits the specified interval (in ms) for audio to be available in the call
Syntax
[Result] = Object.WaitForAudio TimeoutInMilliseconds
Arguments
Name
Data Type
TimeoutInMillisecond
Long
s
Returns
Result
Description
The number of milliseconds to wait for audio
WaitForAudioR The WaitForAudioResult constants as described in enumeration
esult
below
Enumerations
Constant
Value
Description
0
Timeout specified by
WaitForAudioResult was
exceeded while waiting for
audio in the call
wfarInbandCp
1
In band call progress available
in the call. The Plug-In can use
the PlugInMedia CallProgress
method.
wfarConnected
2
Remote party answered
wfarDisconnected
3
Call disconnected. Plug-in
application can use
GetDisconnectReason()
method of
PluginOutOfBandCallProgress
Monitor to find out the reason
for failure.
wfarLocalDisconnect
4
Local party terminated the call,
for example the IVR Plug-in
called the CallDone method
wfarTimeout
APPENDIX A. IVR PLUG-IN API REFERENCE
A-34
APPENDIX B
APPENDIX B
MIGRATING OLDER IVR PLUG-IN APPLICATIONS
CHAPTER CONTENTS
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-2
IVRPlugInNotify2 interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-2
IVRPlugIn2 object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-4
TELEVANTAGE DEVELOPER ’S GUIDE
Overview _______________________________________________________
IVR Plug-in applications written using previous versions of the TeleVantage IVR Plug-in API will continue to run.
However we recommend you convert your applications to the current IVR Plug-in interface. This appendix contains a
reference to the IVRPlugInNotify2 interface and IVRPlugIn2 object, which have been replaced by the current IVR
Plug-in API, described in detail in Appendix A.
IVRPlugInNotify2 interface _________________________________________
The TeleVantage Server invokes the methods of a Notify object to offer calls to the IVR Plug-in or to terminate the IVR
Plug-in when the call ends.
Note: The earlier IVRPlugInNotify interface has also been retained for backward compatibility. It is identical to
IVRPlugInNotify2 except that it does not include the CallPlaced method.
The IVRPlugInNotify2 interface consists of the following methods:
Q
CallOffering method. See page B-2.
Q
CallPlaced method. See page B-3.
Q
CallTerminated method. See page B-5.
CallOffering method (IVRPlugInNotify2 interface)
Part of
IVRPlugInNotify2Interface
Description
Invoked when the phone call is offered to the Plug-in. If performing voice processing on the call,
you can use the Line argument to allocate the Dialogic voice resource that TeleVantage used to
handle the call.
Declaration
Private Sub IVRPlugInNotify2_CallOffering( _
hParty as Integer, _
Line as Integer)
Inputs
Returns
Argument
Description
hParty
Integer value. TeleVantage handle that references the party in this call.
Line
Integer value. Line number which corresponds to the Dialogic voice resource
that TeleVantage used to handle this call.
none
APPENDIX B. MIGRATING OLDER IVR PLUG-IN APPLICATIONS
B-2
TELEVANTAGE DEVELOPER ’S GUIDE
Remarks
Before CallOffering is invoked, TeleVantage creates an instance of the Plug-in's class via its
program ID. The program ID is specified in the Administrator's IVR Plug-ins view.
You can convert the Line parameter to a standard Dialogic device name using the following
pseudo code to calculate the Dialogic board and channel number:
Dim c, bb as Integer
Dim DialogicDeviceName as string
If Line Mod 4 = 0 then
bb = Line \ 4
Else
bb = Line \ 4 + 1
End If
If Line < 4 then
c = Line
Else
If Line \ 4 = 0 then
c = 4
Else
c = Line Mod 4
End If
End If
DialogicDeviceName = "DXXXB" + bb +"C" + c
CallPlaced method (IVRPlugInNotify2 interface)
Description
Invoked by the Server to notify the Plug-in when an outbound call has been dialed.
Declaration
Private Sub IVRPlugInNotify2_CallPlaced( _
ByVal hParty As Integer, _
ByVal Line As Integer, _
ByVal CallProgress As TVIVRLib.CPType)
Inputs
Argument
Description
hParty
Integer value. TeleVantage handle that references the party in this call.
Line
Integer value. Line number, which corresponds to the Dialogic voice
resource that TeleVantage used to handle this call.
CallProgress
CPType value. For future use. Currently, this parameter always returns
CPDialed.
Returns
none
Remarks
TeleVantage does not do any call progress analysis before invoking this method. The number has
been dialed on the first available trunk specified by the access code in the PlaceCall method. It is
the responsibility of the Plug-in to initiate call progress analysis if required by the Plug-in. Refer to
the ReceiveCall and PlaceCall Visual Basic sample projects in the OutBoundCall directory.
APPENDIX B. MIGRATING OLDER IVR PLUG-IN APPLICATIONS
B-3
TELEVANTAGE DEVELOPER ’S GUIDE
CallTerminated method (IVRPlugInNotify2 interface)
Description
Invoked when TeleVantage wants to terminate the Plug-in, for example when TeleVantage detects
that the caller has hung up.
Declaration
Private Sub IVRPlugInNotify2_CallTerminated( _
hParty as Integer, _
Line as Integer)
Inputs
Argument
Description
hParty
Integer value. TeleVantage handle that references the party in this call.
Line
Integer value. Line number, which corresponds to the Dialogic voice
resource that TeleVantage used to handle this call.
See CallOffering (page B-2) for more information.
Returns
none
Remarks
CallTerminated is not invoked after the IVRPlugIn CallDone method. After CallTerminated is
invoked, TeleVantage removes its reference to the ActiveX EXE's class, which in Visual Basic will
then invoke the Class_Terminate subroutine.
IVRPlugIn2 object ________________________________________________
The IVR Plug-in application invokes the methods of an IVRPlugIn2 object to exchange call data with the TeleVantage
Server, and then to inform the Server when it has finished processing the call.
Note: The earlier IVRPlugIn interface to this component has also been retained for backward compatibility. It is identical
to IVRPlugIn2 except that it does not include the PlaceCall and Register methods.
The IVRPlugIn2 object consists of the following methods and properties:
Q
CallDone method. See page B-5.
Q
GetCustomPartyData method. See page B-5.
Q
GetPartyData method. See page B-6.
Q
Get XmitTimeslot method. See page B-7.
Q
Listen method. See page B-7.
Q
Ping method. See page B-7.
Q
PlaceCall method. See page B-8.
Q
Register method. See page B-9.
Q
SetCustomPartyData method. See page B-10.
Q
SetCustomData method. See page B-10.
Q
SetStatus method. See page B-11.
Q
Extension property. See page .B-11
Q
DID property. See page B-11.
Q
Name property. See page B-12.
Q
Comments property. See page B-12.
Q
CustomVariableName property. See page .B-12
Q
CustomVariableValue property. See page B-12.
APPENDIX B. MIGRATING OLDER IVR PLUG-IN APPLICATIONS
B-4
TELEVANTAGE DEVELOPER ’S GUIDE
CallDone method (IVRPlugIn2 object)
Description
Returns control of the call to TeleVantage with instructions on how it should continue processing
the call.
Syntax
object.CallDone(hParty, NextActionConstants, DialString)
Inputs
Argument
Description
hParty
Integer value. TeleVantage handle that references the party in
this call.
NextActionConstants
NextAction value. Specifies action TeleVantage should take on
the call via any of the NextAction enumeration constants.
DialString
String value specifying the extension or number that should be
used by the NextAction constants NaTransferToNumber and
NaTransferToVoiceMail.
Returns
none
Enumerations NextAction Enumeration
Constant
Description
NaHangUp
Hangs up the call
NaTransferToNumber
Transfers the call to the extension or external number specified
in DialString as if it was dialed from dial tone.
NaTransferToVoiceMail
Transfers the call to the voice mail box at the extension
specified in DialString.
NaReturnToRoutingList
Returns the call to be processed by the routing list it came from,
if applicable. For example a user's routing list may be set up to
ring extension 102, then call a Plug-in, and then ring extension
103. After the Plug-in accepts the call, performs its processing
and calls CallDone with NaReturnToRoutingList, the call will go
to extension 103.
Remarks
When this method finishes, the IVR Plug-in is no longer processing the call and the Line argument
of the CallOffering method is no longer valid. Also, TeleVantage removes its reference to the
ActiveX EXE's class, which in Visual Basic will then invoke the Class_Terminate subroutine.
CallTerminated is not invoked after CallDone.
Example
'Send the caller to the voice mail box at x102
MTVPlugIn.CallDone(hParty, 2, "102")
GetCustomPartyData method (IVRPlugIn2 object)
Description
Gets the custom party data from the party in the TeleVantage call. The data that will be retrieved is
specified in KeyName. By default calls do not have any custom party data unless an IVR Plug-in
has set custom data using the SetCustomPartyData method. The value is returned from the
method as a string.
Syntax
PartyData_Str = object.GetCustomPartyData(hParty, KeyName)
Inputs
Argument
Description
hParty
Integer value. TeleVantage handle that references the party in this
call.
APPENDIX B. MIGRATING OLDER IVR PLUG-IN APPLICATIONS
B-5
TELEVANTAGE DEVELOPER ’S GUIDE
KeyName
String value specifying what custom data should be retrieved. The
KeyName must match exactly a custom data key that was set
previously by SetCustomPartyData. If the key does not exist for the
party, an empty string “” is returned.
Returns
Function result is a string containing the custom party data.
Remarks
none
Example
'get the caller's CustomerID that was previously set by
'SetCustomPartyData
CustomerID = MTVPlugIn.GetCustomPartyData(hParty, "CustomerID")
GetPartyData method (IVRPlugIn2 object)
Description
Gets the standard party data from the party in the TeleVantage call.
Syntax
PartyData_Str = object.GetPartyData(hParty StandardKeyConstants)
Inputs
Argument
Description
hParty
Integer value. TeleVantage handle that references the party in this
call.
StandardKeyConstants
KeyType value. Specifies what data should be retrieved from the
TeleVantage party via any of the following constants. Note the
values may be blank for everything except pdDeviceNumber.
Returns
Function result is a string containing the standard party data for the specified party.
Enumerations KeyType Enumeration
Constant
Description
pdCallerIDNumber
The Caller ID number
pdCallerIDName
The Caller ID name
pdDIDNumber
The DID number
pdDeviceNumber
If the returned value is negative, the call came in on that trunk
number (for example, -5 is trunk #5). If the returned value is
positive, the call came in on that internal station number (for
example, 5 is station ID 5).
pdLoggedInUserExt
The extension of the logged in user. If blank ““, then the caller the
Plug-in is handling is not a logged in user. This is useful for security
purposes.
pdCallbackAccessCode
Dialing service access code for a voice message callback number.
pdCallbackAddressType
Dialing service address for a voice message callback number.
pdCallbackAddressSubType Dialing service subaddress for a voice message callback number.
pdCallbackNumber
Callback number for a voice message.
Remarks
The data that is retrieved is specified in StandardKeyConstants. The value is returned from the
method as a string.
Example
'get the caller's Caller ID number
CallerIDNumber = MTVPlugIn.GetPartyData(hParty, 0)
APPENDIX B. MIGRATING OLDER IVR PLUG-IN APPLICATIONS
B-6
TELEVANTAGE DEVELOPER ’S GUIDE
GetXmitTimeslot method (IVRPlugIn2 object)
Description
Allows the Plug-in to retrieve the SCbus transmit timeslot of the incoming network or station device
(MSI, LSI, DTI, or IP). This can be useful to connect a trunk to a GammaLink fax device, Aculab
network card or some other device that transmits on a SCbus timeslot.
Syntax
Timeslot = object.GetXmitTimeslot(hParty)
Inputs
Argument
Description
hParty
Integer value. TeleVantage handle that references the party in this call.
Returns
Function result is a Long value containing the transmit timeslot.
Remarks
See the Listen method to force TeleVantage to listen to a SCbus timeslot.
Example
'Get the SCBus timeslot that the TeleVantage network or
'station device is transmitting to.
TransmitTimeSlot = MTVPlugIn.GetXmitTimeSlot(hParty)
Listen method (IVRPlugIn2 object)
Description
Allows the Plug-in to have the originating Dialogic network or station device (for example, LSI,
MSI, DTI, or IP) listen to a specified SCbus timeslot. This can be useful to connect a trunk to a
GammaLink fax device, Aculab network card or some other device that transmits on a SCbus
timeslot.
Syntax
object.Listen(hParty, Timeslot)
Inputs
Argument
Description
hParty
Integer value. TeleVantage handle that references the party in this call.
Timeslot
Long value. SCbus timeslot that the TeleVantage device should listen to.
Returns
none
Remarks
See the GetXmitTimeslot function to get the SCbus timeslot that the TeleVantage network or
station device is transmitting to.
Example
'Have the network device listen to SCbus timeslot 5
MTVPlugIn.Listen(hParty, 5)
Ping method (IVRPlugIn2 object)
Description
Allows the Plug-in to periodically inform the TeleVantage Server that it is still alive and processing.
If the TeleVantage Server does not receive a ping notification after a predefined interval, it will
assume that the Plug-in is no longer processing and will reclaim all Dialogic devices associated
with it.
Syntax
object.Ping(hParty)
Inputs
Argument
Description
hParty
Integer value. The TeleVantage handle that references the party in this call.
Returns
none
APPENDIX B. MIGRATING OLDER IVR PLUG-IN APPLICATIONS
B-7
TELEVANTAGE DEVELOPER ’S GUIDE
Remarks
Ping should be called by the Plug-in every PingInterval minutes, where PingInterval is 2 minutes
by default. This allows the Plug-in to periodically inform the TeleVantage Server that it is still alive
and processing. If the TeleVantage Server does not receive a ping notification for 2 intervals (by
default 4 minutes), TeleVantage will assume that the Plug-in is no longer processing and will
reclaim all Dialogic devices associated with it.
You can change the PingInterval to be a different value than 2 minutes by adding a PingInterval
registry key under the following section:
HKEY_LOCAL_MACHINE\SOFTWARE\Artisoft\TeleVantage\Server\Settings
It is recommended that you do not Ping in a timer in your Plug-in. Your code may be in an infinite
loop, but your timer will continue to fire, telling the TeleVantage Server everything is OK when it is
not. Instead spread several “Pings throughout your code whenever lengthy processing occurs
such as database access, or prompting the caller for information.
Example
'Ping the TeleVantage Server
MTVPlugIn.Ping(hParty)
PlaceCall method (IVRPlugIn2 object)
Description
Allows the Plug-in to place outbound calls, send data, and return control back to the Server.
Syntax
Result% = object.PlaceCall(AccessCode, DialString, _
Extension, Subtype, InitialData, CallProgress)
Inputs
Argument
Description
AccessCode
String value specifying access code for the dialing service used to make
the outbound call.
DialString
String value specifying phone number that Server will dial. The format of
the number dialed depends on the selected Subtype. See the Subtype
enumeration below for examples.
Extension
String value specifying user extension or IVR Plug-in extension to transfer
to after dialing is complete.
Subtype
AddressSubType value. Address Subtype for the outbound call. Specify
astUseServiceRules to apply dialing service rules to the outbound call.
InitialData
String value specifying a user-defined string to pass to the target Plug-in
specified in the Extension parameter above. The string can be retrieved
by a Plug-in that handles the call using the GetCustomPartyData method
and the “TVIVRInitialData” keyname.
CallProgress
Integer value. Reserved for future use. Currently unused.
Returns
Integer value indicating Device ID of the device on which the call was placed.
Enumerations AddressSubType Enumeration
Constant
Description
astUnknown
Dials the number “as is”
astInternational
Reserved for future use
astNational
Reserved for future use
astNetwork
Reserved for future use
astSubscriber
Reserved for future use
APPENDIX B. MIGRATING OLDER IVR PLUG-IN APPLICATIONS
B-8
TELEVANTAGE DEVELOPER ’S GUIDE
astAbbreviated
Reserved for future use
astReserved
Reserved for future use
astUseServiceRules
Sends the number through dialing service for processing by dialing
rules. The number must be formatted according to one of the
following conventions:
Option 1
Format:
+{country code}{area code and number}
Examples:
+44 181 5551212 (UK)
+1 617 5551212 (US)
Option 2
Format:
{area code and number}
Example:
6175551212
Remarks
none
Example
See the PlaceCall and ReceiveCall sample Visual Basic projects in the OutboundCall SDK sample
for details on how to use the PlaceCall method. The following Visual Basic code initiates an
outbound call:
Dim devid As Integer
Dim mServer As IVRPlugIn2
Set mServer = New IVRPlugIn
devid = mServer.PlaceCall("9", “16173540600”, "333", 0, _
"MyInitialDataString", 0)
Register method (IVRPlugIn2 object)
Description
Allows the Plug-in to register with the Server in order to get Server information (Server-side
properties) about the Plug-in.
Syntax
object.Register(ProgramId)
Inputs
Argument
Description
ProgramId
String value indicating the Plug-in to be registered.
Returns
Sets values of the Extension, DID, Name, Comments, CustomVariableName, and
CustomVariableValue properties.
Remarks
When the Register method is invoked, the properties listed above are populated.
Example
'Register the CustomerID sample program.
MTVPlugIn.Register"CustID.CTVCustID"
APPENDIX B. MIGRATING OLDER IVR PLUG-IN APPLICATIONS
B-9
TELEVANTAGE DEVELOPER ’S GUIDE
SetCustomPartyData method (IVRPlugIn2 object)
Description
Sets the custom party data for the party in the TeleVantage call. The data that will be set is
specified in KeyName.
Syntax
object.SetCustomPartyData(hParty, KeyName, Value)
Inputs
Argument
Description
hParty
Integer value. TeleVantage handle that references the party in this call.
KeyName
String value specifying what custom data should be set. The KeyName will be
used later by GetCustomPartyData to retrieve the value from the call. This
KeyName is also what must be specified in the Tools-Columns window of the
Client's Call Monitor to see the data as a custom column.
Value
String value specifying the value for the custom data specified by the KeyName
argument.
Returns
none
Remarks
none
Example
'set the caller's CustomerID to 1234567
MTVPlugIn.SetCustomPartyData(hParty, "CustomerID", "1234567")
SetPartyData method (IVRPlugIn2 object)
Description
Sets the standard party data for the party in the TeleVantage call.
Syntax
object.SetPartyData(hParty, StandardKeyConstants, Value)
Inputs
Argument
Description
hParty
Integer value. TeleVantage handle that references the party in
this call.
StandardKeyConstants
KeyType value. Specifies what data should be set via the
KeyType constants pdCallerIDNumber, pdCallerIDName, or
pdDIDNumber (note that the pdDeviceNumber constant cannot
be used here).
Value
String value specifying the value for the party data specified by
the StandardKeyConstants argument.
Returns
none
Enumerations KeyType Enumeration
Constant
Description
pdCallerIDNumber
The Caller ID number
pdCallerIDName
The Caller ID name
pdDIDNumber
The DID number
pdLoggedInUserExt
The extension of the logged in user. If blank ““, then the caller
the Plug-in is handling is not a logged in user. This is useful for
security purposes.
pdCallbackAccessCode
Dialing service access code for a voice message callback
number.
pdCallbackAddressType
Dialing service address for a voice message callback number.
APPENDIX B. MIGRATING OLDER IVR PLUG-IN APPLICATIONS
B-10
TELEVANTAGE DEVELOPER ’S GUIDE
pdCallbackAddressSubType
Dialing service subaddress for a voice message callback
number.
pdCallbackNumber
Callback number for a voice message.
Remarks
none
Example
'set the caller's Caller ID number
MTVPlugIn.SetPartyData(hParty, 0, "6175551212")
SetStatus method (IVRPlugIn2 object)
Description
Sends a string to be displayed in the TeleVantage Device Monitor's status column for the trunk or
station that the IVR Plug-in is operating on. Using SetStatus, you can visually monitor a Plug-in’s
activity. Each call to SetStatus changes the current status to the new status and the old status
disappears.
Syntax
object.SetStatus(hParty as Integer, Status as String)
Inputs
Argument
Description
hParty
Integer value. TeleVantage handle that references the party in this call.
Status
String value specifying the new status for the device.
Returns
none
Remarks
none
Example
'set the Device Monitor's status for this device
'to the string "Processing caller"
MTVPlugIn.SetStatus(hParty, "Processing caller")
Extension Property (IVRPlugIn2 object)
Description
Read-only. Extension number associated with the Plug-in on the Server.
Syntax
Reg_Ext_Str = object.Extension
Data type
string
Remarks
Value is set by the Register method.
Example
DID Property (IVRPlugIn2 object)
Description
Read-only. DID number associated with the Plug-in on the Server.
Syntax
Reg_DID_Str = object.DID
Data type
string
Remarks
Value is set by the Register method.
Example
APPENDIX B. MIGRATING OLDER IVR PLUG-IN APPLICATIONS
B-11
TELEVANTAGE DEVELOPER ’S GUIDE
Name Property (IVRPlugIn2 object)
Description
Read-only. Name of the Plug-in on the Server.
Syntax
Reg_Name_Str = object.Name
Data type
string
Remarks
Value is set by the Register method.
Example
Comments Property (IVRPlugIn2 object)
Description
Read-only. Comments associated with the Plug-in on the Server.
Syntax
Reg_Comments_Str = object.Comments
Data type
string
Remarks
Value is set by the Register method.
Example
CustomVariableName Property (IVRPlugIn2 object)
Description
Read-only. User-defined variable name associated with the Plug-in on the Server.
Syntax
Reg_VarName_Str = object.CustomVariableName
Data type
string
Remarks
Value is set by the Register method.
Example
CustomVariableValue Property (IVRPlugIn2 object)
Description
Read-only. User-defined variable value for the variable name associated with the Plug-in on the
Server.
Syntax
Reg_VarVal_Str = object.CustomVariableValue
Data type
string
Remarks
Value is set by the Register method.
Example
APPENDIX B. MIGRATING OLDER IVR PLUG-IN APPLICATIONS
B-12
APPENDIX C
APPENDIX C
DEVICE STATUS API REFERENCE
CHAPTER CONTENTS
Server object
Connect method (Server object) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-2
Disconnect method (Server object) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-2
Devices Property (Server object) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-2
DeviceStateChanged Event (Server object). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-3
Device object
Refresh method (Device object). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-3
AssignedExtensions Property (Device object) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-3
Class Property (Device object). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-3
CurrentExtension Property (Device object) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-4
DefaultExtension Property (Device object). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-4
HookState Property (Device object) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-4
Name Property (Device object) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-4
Number Property (Device object) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-4
Status Property (Device object) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-5
Extension object
Refresh method (Extension object) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-6
ACDDoNotDisturb Property (Extension object) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-6
DoNotDisturb Property (Extension object) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-6
Extension Property (Extension object) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-6
FirstName Property (Extension object) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-7
LastName Property (Extension object). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-7
Party object
CallerIDName Property (Party object) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-7
CallerIDNumber Property (Party object). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-7
CallerIDNumberType Property (Party object). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-7
FirstName Property (Party object) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-7
LastName Property (Party object) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-7
TELEVANTAGE DEVELOPER ’S GUIDE
Overview _______________________________________________________
This appendix describes the methods, properties, and events that make up the TeleVantage Device Status API. For more
information about using the Device Status API, see Chapter 5 and the DeviceStatusSample project for example code.
Server object ____________________________________________________
Connect method (Server object)
Description
Connects to the specified Server and initializes the Server object.
Syntax
GoodConnect = object.Connect(ServerName)
Inputs
Argument
Description
ServerName
The name of the Server to connect to.
Returns
Boolean value indicating if the connection was successful.
Disconnect method (Server object)
Description
Disconnects from the Server.
Syntax
object.Disconnect()
Devices Property (Server object)
Description
Read only. Returns a collection of Device objects representing all devices on the current Server.
Syntax
DeviceList = object.Devices
Data type
Collection of Device objects
APPENDIX C. DEVICE STATUS API REFERENCE
C-2
TELEVANTAGE DEVELOPER ’S GUIDE
DeviceStateChanged Event (Server object)
Description
Raised whenever the state of the device changes.
Syntax
DeviceStateChanged(Device As Device)
Inputs
none
Returns
Argument
Description
Device
The Device object that changed.
Device object____________________________________________________
Refresh method (Device object)
Description
Refreshes information about the extensions on the device.
Syntax
object.Refresh()
AssignedExtensions Property (Device object)
Description
Read only. Returns a collection of Extension objects representing all extensions assigned to this
device.
Syntax
ExtensionList = object.AssignedExtensions
Data type
Collection of Extension objects
Class Property (Device object)
Description
Read only. Returns the device's class (station or trunk).
Syntax
TVObjectDeviceClass = object.Class
Data type
TVObjectDeviceClass enumeration
Enumerations TVObjectDeviceClass Enumeration
Constant
Description
tvDeviceClassTrunk
Device is a trunk.
tvDeviceClassStation Device is a station.
ConnectedDevices Property (Device object)
Description
Read only. Returns a collection of Device objects that are connected to the Device in an active
call.
Syntax
Extension = object.ConnectedDevices
Data type
Collection object
Remarks
ConnectedDevices.Count will contain 0 if the Device is not in a call. ConnectedDevices.Count will
be 1 if the Device is in a two party call, and 2 or more for conferences.
APPENDIX C. DEVICE STATUS API REFERENCE
C-3
TELEVANTAGE DEVELOPER ’S GUIDE
CurrentExtension Property (Device object)
Description
Read only. Returns the Extension object currently logged in to the device.
Syntax
Extension = object.CurrentExtension
Data type
Extension object
Remarks
Returns Nothing if there is no current extension.
DefaultExtension Property (Device object)
Description
Read only. Returns the Extension object that is the default for the device.
Syntax
Extension = object.DefaultExtension
Data type
Extension object
Remarks
Returns Nothing if there is no default extension.
HookState Property (Device object)
Description
Read only. Returns the hook state of the device.
Syntax
TVDeviceHookState = object.HookState
Data type
TVDeviceHookState enumeration
Enumerations TVDeviceHookState Enumeration
Constant
Description
tvDeviceHookStateOn
Device is on-hook.
tvDeviceHookStateOff
Device is off-hook.
tvDeviceHookStateUnknown Device's hook state can't be determined.
Name Property (Device object)
Description
Read only. Returns the name of the device (blank for stations and the trunk name for trunks).
Syntax
NameString = object.Name
Data type
String
Remarks
none
Number Property (Device object)
Description
Read only. Returns the number of the device (positive for stations and negative for trunks).
Syntax
DevNumber = object.Number
Data type
Long
APPENDIX C. DEVICE STATUS API REFERENCE
C-4
TELEVANTAGE DEVELOPER ’S GUIDE
Status Property (Device object)
Description
Read only. Returns a status code indicating the device's current activity.
Syntax
TVDeviceStatus = object.Status
Data type
Long (TVDeviceStatus enumeration)
Enumerations TVDeviceStatus Enumeration
Constant
Description
tvDeviceStatusAudioCtl
Station is playing/recording audio for the Client.
tvDeviceStatusCallingStation
Station or trunk is waiting while TeleVantage rings a station.
tvDeviceStatusDatabaseBypass
Database is being bypassed in case of failure.
tvDeviceStatusDialogNode
Station or trunk is navigating an auto-attendant or routing list.
tvDeviceStatusDisabled
Station or trunk is disabled
tvDeviceStatusExternalDialing
Trunk is dialing an external number.
tvDeviceStatusHandsFreel
Station is in hands-free dialing mode.
tvDeviceStatusHoldRecall
Station is calling back after a hold timed out.
tvDeviceStatusIdle
Station or trunk is idle.
tvDeviceStatusInCall
Station or trunk has a call in progress.
tvDeviceStatusIncomingCall
Station or trunk is receiving an incoming call.
tvDeviceStatusInternalDialing
Station is dialing an internal number.
tvDeviceStatusListenCall
Station or trunk is screening a message.
tvDeviceStatusLoggingIn
Station or trunk is logging into the TUI.
tvDeviceStatusNoLC
Trunk does not have loop current.
tvDeviceStatusOfferingCall
Station or trunk is offering a call.
tvDeviceStatusOutboundDialing
Station or trunk is dialing an external number.
tvDeviceStatusOutOfService
Station or trunk has been taken out of service.
tvDeviceStatusPlayingHoldMusic Station is playing hold music.
Remarks
tvDeviceStatusPlugIn
Station or trunk is connected to an IVR Plug-In
tvDeviceStatusPreIdle
Station or trunk is in a pre-idle state.
tvDeviceStatusReorder
Station has been left off-hook too long, or trunk is in an error
condition.
tvDeviceStatusStartup
Station or trunk is waiting while the TeleVantage system starts
up.
tvDeviceStatusTakingMessage
Station or trunk is taking a message.
tvDeviceStatusTui
Station or trunk is navigating the TUI. User is listening to the
auto-attendant menu.
tvDeviceStatusUnknown
Station or trunk is not responding to device status queries.
none
APPENDIX C. DEVICE STATUS API REFERENCE
C-5
TELEVANTAGE DEVELOPER ’S GUIDE
Extension object _________________________________________________
Refresh method (Extension object)
Description
Refreshes information about this extension.
Syntax
object.Refresh()
ACDDoNotDisturb Property (Extension object)
Description
Read only. Returns a boolean value indicating whether or not the extension is in taking ACD
Workgroup calls.
Syntax
UserACD_DND = object.ACDDoNotDisturb
Data type
Boolean
Setting
Description
True
Extension is in ACD Do Not Disturb state.
False
Extension is not in ACD Do Not Disturb state.
DoNotDisturb Property (Extension object)
Description
Read only. Returns a boolean value indicating whether or not the extension is in Do Not Disturb
state.
Syntax
UserDND = object.DoNotDisturb
Data type
Boolean
Setting
Description
True
Extension is in Do Not Disturb state.
False
Extension is not in Do Not Disturb state.
Extension Property (Extension object)
Description
Read only. Returns the extension number for this user.
Syntax
UserExtensionString = object.Extension
Data type
String
APPENDIX C. DEVICE STATUS API REFERENCE
C-6
TELEVANTAGE DEVELOPER ’S GUIDE
FirstName Property (Extension object)
Description
Read only. Returns the first name of the user on this extension.
Syntax
UserFirstNameString = object.FirstName
Data type
String
LastName Property (Extension object)
Description
Read only. Returns the last name of the user on this extension.
Syntax
UserLastNameString = object.LastName
Data type
String
Party object _____________________________________________________
CallerIDName Property (Party object)
Description
Read only. Returns the CallerID Name of the party, if available.
Syntax
NameString = object.CallerIDName
CallerIDNumber Property (Party object)
Description
Read only. Returns the CallerID Number of the party, if available.
Syntax
NumberString = object.AssignedExtensions
CallerIDNumberType Property (Party object)
Description
Read only. Returns the type of Caller ID Number (user, phone number, etc.), if available.
Syntax
TVAddressType = object.CallerIDNumberType
Remarks
See the TVAddressType enumeration
FirstName Property (Party object)
Description
Read only. Returns the First Name of the party, if applicable.
Syntax
NameString = object.FirstName
LastName Property (Party object)
Description
Read only. Returns the Last Name of the party, if applicable.
Syntax
NameString = object.LastName
APPENDIX C. DEVICE STATUS API REFERENCE
C-7
APPENDIX D
APPENDIX D
CLIENT API OBJECT REFERENCE
CHAPTER CONTENTS
Address object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-4
Addresses object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-4
Agent object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-5
Agents object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-6
AgentStat object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-6
AudioClip object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-7
Call object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-8
CallActivity object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-11
CallActivityHistory object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-11
CallHistory object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-12
CallRule object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-13
Column object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-13
Columns object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-14
Contact object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-14
Error object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-15
Field object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-15
Fields object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-16
Folder object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-16
Folders object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-17
Greeting object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-18
IAssociate object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-18
ICOMSecurity object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-19
IDialingService object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-19
IItem object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-19
InternetService object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-20
IPhoneService object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-21
Items object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-21
IWindowsSecurity object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-22
Locale object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-22
LocaleCode object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-23
LocaleCodes object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-23
LogonAddressInfo object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-23
Message object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-23
Notification object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-25
NotifyScheduleItem object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-25
NotifyScheduleItems object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-25
Parties object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-26
Party object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-26
PartyHistories object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-27
PartyHistory object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-27
Permission object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-28
TELEVANTAGE DEVELOPER ’S GUIDE
Permissions object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-28
PersonalStatus object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-29
PhoneGatewayService object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-30
PhoneService object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-31
QueueByPeriodStat object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-31
QueueByShiftStat object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-32
QueueStat object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-33
Recipients object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-34
Role object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-34
Roles object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-35
RoutingList object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-35
RoutingListAction object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-36
RoutingListActions object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-36
RoutingListFinalAction object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-37
RoutingService object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-37
Schedule object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-38
ScheduledDate object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-38
ScheduledDates object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-38
ScheduledDay object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-39
ScheduledDays object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-39
Schedules object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-40
Session object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-40
Shortcut object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-47
ShortcutGroup object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-47
ShortcutGroups object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-47
Shortcuts object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-48
SIPAccount object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-49
SIPAccounts object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-49
SIPPhoneGatewayService object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-50
SIPServer object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-50
SIPServers object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-51
SIPService object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-51
SIPSpan object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-52
SIPSpans object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-52
SIPSwitchGatewayService object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-52
SkillDefinition object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-53
SkillDefinitions object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-53
Station object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-54
StationButton object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-55
StationButtons object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-55
StationFeature object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-56
StationFeatures object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-56
StationParameter object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-56
StationParameters object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-57
StationType object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-57
StationTypes object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-57
SwitchGatewayService object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-58
SwitchService object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-58
APPENDIX D. CLIENT API OBJECT REFERENCE
D-2
TELEVANTAGE DEVELOPER ’S GUIDE
System object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-59
SystemSetting object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-60
SystemSettings object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-60
SystemTarget object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-61
User object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-62
View object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-64
Views object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-65
Workgroup object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-65
WorkgroupMember object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-66
WorkgroupMembers object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D-66
APPENDIX D. CLIENT API OBJECT REFERENCE
D-3
TELEVANTAGE DEVELOPER ’S GUIDE
Address object
Contains address information for a contact. Address objects can be collected in an Addresses object.
Methods:
GetCallerIDMatch([AddressID]) as Contact object (see p.D-14)
AddressID as String. Optional. Default value is "".
GetPhoneNumberComponent(Component) as Variant
Component as TVAddressPhoneComponent (see p.E-2).
GuessAddressType(AddressString) as TVAddressType (see p.E-2)
AddressString as String.
Validate([AllowOverride]) as TVAddressError (see p.E-1)
AllowOverride as Boolean. Optional. Default value is 0 (false).
Properties:
AccountCode as String.
AddressSubType as TVAddressSubType.
AddressType as TVAddressType.
AssociatedPersonID as String.
Category as TVAddressCategory.
Default as Boolean.
Description as String.
ID as String.
IsPager as Boolean.
Parent as IDispatch.
Service as IDialingService.
Session as Session.
Tag as Variant.
Usage as TVAddressUsageType.
UseRules as Boolean.
UnformattedValue as String.
Value as String.
IsPublic as Boolean.
Class as TVObjectClass.
SIPSpan as SIPSpan.
SIPUserInfo as String.
ServiceAccessCode as String.
Addresses object
A collection of Address objects.
Methods:
Add([Value], [AddressType], [AddressSubType], [Service], [Category]) as Address object (see p.D-4)
Value as String. Optional.
AddressType as TVAddressType (see p.E-2). Optional. Default value is 1 (tvAddressTypePhoneNumber).
AddressSubType as TVAddressSubType (see p.E-2). Optional.
Service as IDialingService object (see p.D-19). Optional.
Category as TVAddressCategory (see p.E-1). Optional.
Discard()
Exists(Index, [SearchType]) as Boolean
APPENDIX D. CLIENT API OBJECT REFERENCE
D-4
TELEVANTAGE DEVELOPER ’S GUIDE
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as Address object (see p.D-4)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Remove(Index, [SearchType])
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Restrict(Category, [CreateIfNecessary], [Value], [AddressType], [AddressSubType], [Service]) as Addresses
object (see p.D-4)
Category as TVAddressCategory (see p.E-1).
CreateIfNecessary as Boolean. Optional. Default value is 0 (false).
Value as String. Optional.
AddressType as TVAddressType (see p.E-2). Optional. Default value is 1 (tvAddressTypePhoneNumber).
AddressSubType as TVAddressSubType (see p.E-2). Optional.
Service as IDialingService object (see p.D-19). Optional.
Save()
Restrict_v6(Filter) as Addresses object (see p.D-4)
Filter as String.
Sort(SortString)
SortString as String.
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as IDispatch.
Session as Session.
Tag as Variant.
Agent object
Contains information about a Call Center agent. Agent objects can be collected in an Agents object or in a
folder of type tvFolderAgents (see “Folder types” on page 2-10). See “Agent objects” on page 2-11 for a
detailed description of Agent object structure.
Methods:
Discard()
EndWrapUp()
SetObserver(Observer)
Observer as Boolean.
SignIn()
SignOut()
Properties:
Class as TVObjectClass.
HiddenObserver as Boolean.
ID as String.
Name as String.
Observer as Boolean.
Parent as IDispatch.
Permissions as Permissions.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-5
TELEVANTAGE DEVELOPER ’S GUIDE
QueueID as String.
Session as Session.
Synchronized as Boolean.
Tag as Variant.
Agents object
A collection of Agent objects.
Methods:
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as Agent object (see p.D-5)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as IDispatch.
Session as Session.
Tag as Variant.
AgentStat object
Contains information concerning a Call Center agent’s activity. AgentStat objects can be collected in a folder
of type tvFolderAgentStats (see “Folder types” on page 2-10).
Methods:
SetObserver(Observer)
Observer as Boolean.
JoinActiveCall([Role]) as Call object (see p.D-8)
Role as TVPartyRole (see p.E-22). Optional. Default value is 0 (tvPartyRolePeer).
SignIn()
SignOut()
Properties:
ActiveDurationTotalInbound as Long.
ActiveDurationTotalOutbound as Long.
AgentID as String.
Class as TVObjectClass.
ID as String.
ItemsActiveTotalInbound as Long.
ItemsActiveTotalOutbound as Long.
LongestItemDurationInbound as Long.
LongestTalkTimeInbound as Long.
LongestTalkTimeOutbound as Long.
LongestWrapupTimeInbound as Long.
Observer as Boolean.
Overflow as Long.
Parent as Folder.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-6
TELEVANTAGE DEVELOPER ’S GUIDE
Position as Long.
QueueID as String.
Session as Session.
Status as TVAgentStatus.
StatusStartTime as Date.
Synchronized as Boolean.
Tag as Variant.
UserID as String.
Away as Boolean.
ForcedBreakCount as Long.
ItemsCompletedTotalOutbound as Long.
ItemsConnectedTotalOutbound as Long.
ItemsPlacedTotalOutbound as Long.
LongestItemDurationOutbound as Long.
LongestWrapupTimeOutbound as Long.
NoAnswerCount as Long.
TalkTimeTotalOutbound as Long.
WrapupTimeTotalOutbound as Long.
Events:
Change()
Remove()
AudioClip object
Used to create or manipulate an audio file.
Methods:
Export(ExportFile, [VoxFormat])
ExportFile as String.
VoxFormat as TVAudioVOXFormat (see p.E-4). Optional. Default value is -1.
Import(ImportFile, [Insert], [VoxFormat])
ImportFile as String.
Insert as Boolean. Optional. Default value is 0 (false).
VoxFormat as TVAudioVOXFormat (see p.E-4). Optional. Default value is -1.
Pause()
Play([StartPos], [StopPos])
StartPos as Long. Optional. Default value is 0.
StopPos as Long. Optional. Default value is -1.
Record([StartPos], [Insert])
StartPos as Long. Optional. Default value is 0.
Insert as Boolean. Optional. Default value is 0 (false).
ResumeAfterPause()
StopAudio()
Properties:
BookMarkStart as Long.
BookMarkEnd as Long.
CurrentPosition as Long.
DeviceType as TVAudioDeviceType.
Duration as Long.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-7
TELEVANTAGE DEVELOPER ’S GUIDE
Filename as String.
ID as String.
Parent as IDispatch.
PreventHybrid as Boolean.
ReadOnly as Boolean.
Session as Session.
Size as Long.
SkipInterval as Long.
State as TVAudioState.
Tag as Variant.
Events:
AudioDeviceChange(OldDevice, NewDevice)
OldDevice as TVAudioDeviceType (see p.E-3).
NewDevice as TVAudioDeviceType (see p.E-3).
PlayBeforeInterrupt(ShutdownDelay)
ShutdownDelay as Long.
RecordBeforeInterrupt(ShutdownDelay)
ShutdownDelay as Long.
SkipIntervalChange(OldValue, NewValue)
OldValue as Long.
NewValue as Long.
StateChange(FromState, ToState, Reason)
FromState as TVAudioState (see p.E-3).
ToState as TVAudioState (see p.E-3).
Reason as TVAudioStateChangeReason (see p.E-4).
Error(ErrorNumber)
ErrorNumber as Long.
CopyAudioFromServer()
Call object
Contains information about a call and methods to manipulate the call. Call objects can be collected in a
folder of type tvFolderCalls (see “Folder types” on page 2-10).
Methods:
Announce([AnnounceType])
AnnounceType as TVCallAnnounceType (see p.E-4). Optional. Default value is 1 (tvCallAnnounceTypeCaller).
Answer()
Associate(Contact)
Contact as Contact object (see p.D-14).
BlindTransfer(Address)
Address as Address object (see p.D-4).
Conference(ConferenceCall) as Call object (see p.D-8)
ConferenceCall as Call object (see p.D-8).
Decline([DeclineMode], [DeclineAudio])
DeclineMode as TVCallDeclineMode (see p.E-4). Optional. Default value is 0 (tvCallDeclineToRoutingList).
DeclineAudio as AudioClip object (see p.D-7). Optional.
Disconnect()
APPENDIX D. CLIENT API OBJECT REFERENCE
D-8
TELEVANTAGE DEVELOPER ’S GUIDE
Hold([HoldAudioType], [HoldAudio])
HoldAudioType as TVCallGrabAndHoldAudioType (see p.E-5). Optional. Default value is 2 (tvCallGrabAndHoldAudioTypeUserDefault).
HoldAudio as AudioClip object (see p.D-7). Optional. Default value is <unprintable IDispatch*>.
Join([Role], [Partner])
Role as TVPartyRole (see p.E-22). Optional. Default value is 0 (tvPartyRolePeer).
Partner as Party object (see p.D-26). Optional. Default value is <unprintable IDispatch*>.
Park() as Long
RecordPause()
RecordResume()
RecordStart([Target], [Format], [TimeOut], [TermDigits], [Beep])
Target as IItem object (see p.D-19). Optional. Default value is <unprintable IDispatch*>.
Format as TVCallRecordFormat (see p.E-6). Optional. Default value is 3 (tvCallRecordFormatPCM8K).
TimeOut as Long. Optional. Default value is -1.
TermDigits as String. Optional. Default value is "".
Beep as Boolean. Optional. Default value is 0 (false).
RecordStop()
SetAccountCode(AccountCode)
AccountCode as String.
SetCustomData(Key, Value)
Key as String.
Value as String.
SetRole(Role, [Partner])
Role as TVPartyRole (see p.E-22).
Partner as Party object (see p.D-26). Optional. Default value is <unprintable IDispatch*>.
SupervisedTransferAbort()
SupervisedTransferComplete()
SupervisedTransferConference() as Call object (see p.D-8)
SupervisedTransferStart(Address) as Call object (see p.D-8)
Address as Address object (see p.D-4).
Supports(Feature) as Boolean
Feature as TVCallFeature (see p.E-5).
Unpark() as Call object (see p.D-8)
PlayAudio(AudioClip)
AudioClip as AudioClip object (see p.D-7).
AttachApplication(Address)
Address as Address object (see p.D-4).
AttachAudio(AudioClip)
AudioClip as AudioClip object (see p.D-7).
GetAudio() as AudioClip object (see p.D-7)
StopAudio()
StopAudioAndRelease()
AttachCall(AttachToCall, [Role], [Partner]) as Party object (see p.D-26)
AttachToCall as Call object (see p.D-8).
Role as TVPartyRole (see p.E-22). Optional. Default value is 0 (tvPartyRolePeer).
Partner as Party object (see p.D-26). Optional. Default value is <unprintable IDispatch*>.
Properties:
AccountCode as String.
Address as Address.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-9
TELEVANTAGE DEVELOPER ’S GUIDE
AnsweredByDevice as Long.
AnsweredByFirstName as String.
AnsweredByLastName as String.
AnsweredByName as String.
AnsweredByUserID as String.
AnsweredTime as Date.
AssociatedPerson as IDispatch.
AssociatedPersonID as String.
AssociatedPersonType as TVAssociatedPersonType.
AudioClip as AudioClip.
CallType as TVCallType.
Class as TVObjectClass.
Comments as String.
CustomData as String.
Device as Long.
DID as String.
Direction as TVCallDirection.
Features as Long.
FirstName as String.
ID as String.
LastName as String.
Mute as Boolean.
Name as String.
Number as String.
OrbitNumber as String.
OwnerAddress as Address.
OwnerDevice as Long.
OwnerFirstName as String.
OwnerID as String.
OwnerLastName as String.
OwnerName as String.
OwnerParty as Party.
OwnerPartyID as String.
Parent as Folder.
Parties as Parties.
PartyCount as Long.
Priority as Long.
RecordStatus as TVCallRecordStatus.
Role as TVPartyRole.
ScreenMessage as Boolean.
Session as Session.
StartTime as Date.
Status as TVPartyStatus.
Synchronized as Boolean.
Tag as Variant.
Handle as Long.
LineAppearance as Long.
WaitStartTime as Date.
VoiceTitle as AudioClip.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-10
TELEVANTAGE DEVELOPER ’S GUIDE
Answered as Boolean.
ActivityHistory as CallActivityHistory.
CallHistoryID as String.
Events:
Change(Synchronized)
Synchronized as Boolean.
PermissionsChange()
Remove()
CallActivity object
Contains trace information about a call, similar to what is displayed in the ViewPoint’s Call History pane.
Properties:
Description as String.
Device as Long.
ElapsedTime as Long.
ID as String.
Parent as IDispatch.
Position as Long.
Session as Session.
StartTime as Date.
Tag as Variant.
CallActivityHistory object
A collection of CallActivity objects.
Methods:
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as CallActivity object (see p.D-11)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Restrict(Filter) as CallActivityHistory object (see p.D-11)
Filter as String.
Subscribe()
Unsubscribe()
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as IDispatch.
Session as Session.
StartTime as Date.
Tag as Variant.
Events:
CallActivityReceived(Index)
Index as Long.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-11
TELEVANTAGE DEVELOPER ’S GUIDE
CallHistory object
Contains information about a call, similar to what is displayed in ViewPoint’s Call Log view. CallHistory
objects can be collected in a folder of type tvFolderCallHistory (see “Folder types” on page 2-10). See
“CallHistory objects” on page 2-12 for a detailed description of the CallHistory object structure.
Methods:
Associate(Contact)
Contact as Contact object (see p.D-14).
Delete([Mode])
Mode as TVDeleteMode (see p.E-9). Optional. Default value is 0 (tvDeleteMoveToDeleted).
Discard()
Save([Overwrite])
Overwrite as Boolean. Optional. Default value is 0 (false).
tvGetAssociatedPersonID() as String
Properties:
AssociatedPerson as IDispatch.
AssociatedPersonID as String.
AssociatedPersonType as TVAssociatedPersonType.
CallbackAddress as Address.
Class as TVObjectClass.
Comments as String.
Direction as TVCallDirection.
EndTime as Date.
FromParty as PartyHistory.
ID as String.
Parent as Folder.
PartyHistories as PartyHistories.
Result as TVCallHistoryResult.
Session as Session.
StartTime as Date.
Synchronized as Boolean.
Tag as Variant.
ToParty as PartyHistory.
WaitTime as Long.
AccountCode as String.
OrganizationName as String.
QueueRecordingMessage as Message.
QueueRecordingMessageID as String.
UserRecordingMessage as Message.
UserRecordingMessageID as String.
ActivityHistory as CallActivityHistory.
Events:
Change(Synchronized, ChangedBy)
Synchronized as Boolean.
ChangedBy as TVItemChangedBy (see p.E-16).
Remove()
APPENDIX D. CLIENT API OBJECT REFERENCE
D-12
TELEVANTAGE DEVELOPER ’S GUIDE
CallRule object
Contains information about a call rule, similar to what is displayed in ViewPoint’s Call Rules view. CallRule
objects can be collected in a folder of type tvFolderCallRules (see “Folder types” on page 2-10). See
“CallRule objects” on page 2-13 for a detailed description of the CallRule object structure.
Methods:
Delete([Mode])
Mode as TVDeleteMode (see p.E-9). Optional. Default value is 0 (tvDeleteMoveToDeleted).
Discard()
Save([Overwrite])
Overwrite as Boolean. Optional.
SwapPriorities(OtherCallRule)
OtherCallRule as CallRule object (see p.D-13).
Properties:
CallerCondition as IItem.
CallerTypeCondition as TVCallRuleCallerTypeCondition.
Class as TVObjectClass.
CustomScheduleCondition as Schedule.
Enabled as Boolean.
Greeting as Greeting.
ID as String.
Name as String.
Parent as Folder.
PersonalStatus as PersonalStatus.
Priority as Long.
RingOverride as TVCallRuleRingOverride.
RoutingList as RoutingList.
ScheduleTypeCondition as TVCallRuleScheduleType.
Session as Session.
Synchronized as Boolean.
Tag as Variant.
Events:
Change(Synchronized, ChangedBy)
Synchronized as Boolean.
ChangedBy as TVItemChangedBy (see p.E-16).
Remove()
Column object
Contains information about columns in a ViewPoint view. Column objects can be collected in a Columns
object. See “The Folder object” on page 2-8 for details about Folder object structures.
Properties:
Class as TVObjectClass.
DataType as TVFieldDataType.
DisplayName as String.
ID as String.
Name as String.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-13
TELEVANTAGE DEVELOPER ’S GUIDE
Parent as View.
Position as Long.
ResourceID as Long.
Session as Session.
Tag as Variant.
Width as Long.
Columns object
A collection of Column objects.
Methods:
Add(Name) as Column object (see p.D-13)
Name as String.
Discard()
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as Column object (see p.D-13)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Remove(Index, [SearchType])
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Save()
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as View.
Session as Session.
Tag as Variant.
Contact object
Contains information about a contact, similar to the information displayed in ViewPoint’s Contacts view.
Contact objects can be collected in a WorkgroupMembers object or in a folder of type tvFolderContacts (see
“Folder types” on page 2-10). See “Contact objects” on page 2-13 for a detailed description of the Contact
object structure.
Methods:
Associate(Item, AssociateFlags) as Boolean
Item as IAssociate object (see p.D-18).
AssociateFlags as TVContactAssociateFlags (see p.E-8).
Delete([Mode])
Mode as TVDeleteMode (see p.E-9). Optional. Default value is 0 (tvDeleteMoveToDeleted).
Discard()
Move(Destination)
Destination as Folder object (see p.D-16).
Save([Overwrite])
Overwrite as Boolean. Optional.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-14
TELEVANTAGE DEVELOPER ’S GUIDE
Properties:
AccountCode as String.
Addresses as Addresses.
Class as TVObjectClass.
Comments as String.
Company as String.
DefaultAddress as Address.
FirstName as String.
FullName as String.
ID as String.
JobTitle as String.
LastName as String.
Parent as Folder.
PIN as String.
Session as Session.
Synchronized as Boolean.
Tag as Variant.
TelephonePromptLanguage as LocaleCode.
VoiceTitle as AudioClip.
Events:
Change(Synchronized, ChangedBy)
Synchronized as Boolean.
ChangedBy as TVItemChangedBy (see p.E-16).
Move()
Remove()
Error object
Retains a record of a system error message.
Methods:
Clear()
Properties:
Description as String.
Number as Long.
Source as String.
Field object
Contains information about fields in a ViewPoint view. Field objects can be collected in a Fields object. See
“The Folder object” on page 2-8 for details about Folder object structures.
Properties:
Class as TVObjectClass.
DataType as TVFieldDataType.
DisplayName as String.
ID as String.
Name as String.
Parent as Folder.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-15
TELEVANTAGE DEVELOPER ’S GUIDE
ResourceID as Long.
Session as Session.
Tag as Variant.
Fields object
A collection of Field objects. See “The Folder object” on page 2-8 for details about Folder object structures.
Methods:
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as Field object (see p.D-15)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as Folder.
Session as Session.
Tag as Variant.
Folder object
Used to organize most of the objects available in a Session. Folder objects can be collected in a Folders
object. See “Structure of a session” on page 2-4 and “How folders are used” on page 2-7 for details about
folders.
Methods:
Delete([Mode])
Mode as TVDeleteMode (see p.E-9). Optional. Default value is 0 (tvDeleteMoveToDeleted).
Discard()
GetMailboxDiskUsage(CurrentUsage, MaximumUsage)
CurrentUsage as Long.
MaximumUsage as Long.
GetOwner() as SystemTarget object (see p.D-61)
GetProperty(Name, [Default]) as String
Name as String.
Default as String. Optional.
GetUnheardCount() as Long
Move(Destination)
Destination as Folder object (see p.D-16).
Save([Overwrite])
Overwrite as Boolean. Optional. Default value is 0 (false).
SetProperty(Name, Value)
Name as String.
Value as String.
Properties:
AccessLevel as TVPermissionAccessLevel.
Class as TVObjectClass.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-16
TELEVANTAGE DEVELOPER ’S GUIDE
CurrentView as View.
Customizable as Boolean.
Default as Boolean.
DisplayName as String.
Fields as Fields.
Folders as Folders.
Hidden as Boolean.
ID as String.
ItemClass as TVObjectItemClass.
Items as Items.
Name as String.
OwnerID as String.
Parent as Folder.
Permissions as Permissions.
Session as Session.
Synchronized as Boolean.
Tag as Variant.
Views as Views.
IsShared as Boolean.
Events:
Change(Synchronized, ChangedBy)
Synchronized as Boolean.
ChangedBy as TVItemChangedBy (see p.E-16).
Move()
Remove()
Folders object
A collection of Folder objects.
Methods:
Add(Name, [ItemClass]) as Folder object (see p.D-16)
Name as String.
ItemClass as TVObjectItemClass (see p.E-21). Optional. Default value is -1.
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as Folder object (see p.D-16)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Remove(Index, [SearchType])
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Restrict(Filter) as Folders object (see p.D-17)
Filter as String.
Sort(SortString)
SortString as String.
Properties:
Count as Long.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-17
TELEVANTAGE DEVELOPER ’S GUIDE
NewEnum as IUnknown.
Parent as Folder.
Session as Session.
Tag as Variant.
Greeting object
Contains information about a greeting, similar to the information displayed in ViewPoint’s Greetings view.
Greeting objects can be collected in a folder of type tvFolderGreetings (see “Folder types” on page 2-10).
See “Greeting objects” on page 2-15 for a detailed description of the Greeting object structure.
Methods:
Delete([Mode])
Mode as TVDeleteMode (see p.E-9). Optional. Default value is 0 (tvDeleteMoveToDeleted).
Discard()
Save([Overwrite])
Overwrite as Boolean. Optional. Default value is 0 (false).
Properties:
Active as Boolean.
AudioClip as AudioClip.
Class as TVObjectClass.
Default as Boolean.
ID as String.
LastRecordedTime as Date.
Name as String.
Parent as Folder.
Session as Session.
Synchronized as Boolean.
Tag as Variant.
Text as String.
Events:
Change(Synchronized, ChangedBy)
Synchronized as Boolean.
ChangedBy as TVItemChangedBy (see p.E-16).
Remove()
IAssociate object
Generic interface used to communicate with objects that can be associated. You do not need to deal directly
with an IAssociate interface; rather, you work with the associated object itself.
Methods:
Associate(Contact)
Contact as Contact object (see p.D-14).
Save([Overwrite])
Overwrite as Boolean. Optional. Default value is 0 (false).
Properties:
AssociateAllowed as Boolean.
AssociatedPerson as IDispatch.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-18
TELEVANTAGE DEVELOPER ’S GUIDE
AssociatedPersonID as String.
AssociatedPersonType as TVAssociatedPersonType.
CallbackAddress as Address.
CallerIDAddress as Address.
CallerIDName as String.
CallerIDNumber as String.
Class as TVObjectClass.
ID as String.
VoiceTitle as AudioClip.
ICOMSecurity object
An interface of the Session object. Provides access to DCOM security settings for the application.
Methods:
OverrideSecurity(EXEName, AppID, FriendlyName) as Boolean
EXEName as String.
AppID as String.
FriendlyName as String.
RestoreSecurity(EXEName, [AppID])
EXEName as String.
AppID as String. Optional. Default value is "".
Properties:
UseSecurityBypass as Boolean.
IDialingService object
Generic interface used to communicate with any of the dialing service objects. You do not need to deal
directly with an IDialingService interface; rather, you work with the dialing service object itself. See “Dialing
Service objects” on page 2-14 for information about all of the dialing service objects.
Properties:
AccessCode as String.
Name as String.
Class as TVObjectDialingServiceClass.
ID as String.
AddressType as TVAddressType.
Hidden as Boolean.
IItem object
Generic interface used to communicate with item objects. You do not need to deal directly with an IItem
interface; rather, you work with the item object itself.
Methods:
CheckAccess(AccessLevel)
AccessLevel as TVPermissionAccessLevel (see p.E-23).
Copy([Parent]) as IItem object (see p.D-19)
Parent as Folder object (see p.D-16). Optional.
Delete([Mode])
Mode as TVDeleteMode (see p.E-9). Optional. Default value is 0 (tvDeleteMoveToDeleted).
APPENDIX D. CLIENT API OBJECT REFERENCE
D-19
TELEVANTAGE DEVELOPER ’S GUIDE
Discard()
Initialize(Parent, Data, Session)
Parent as Folder object (see p.D-16).
Data as Recordset.
Session as Session.
Move(Destination)
Destination as Folder.
Save([Overwrite])
Overwrite as Boolean. Optional. Default value is 0 (false).
Properties:
Class as TVObjectClass.
Comments as String.
DerivedClass as TVObjectClass.
DisplayName as String.
ID as String.
Name as String.
Parent as Folder.
Session as Session.
Status as TVItemStatus.
Synchronized as Boolean.
InternetService object
A dialing service object containing information for dialing a number over the Internet. InternetService objects
can be collected in a folder of type tvFolderServices (see “Folder types” on page 2-10). See “Dialing Service
objects” on page 2-14 for information about all of the dialing service objects.
Methods:
Delete([Mode])
Mode as TVDeleteMode (see p.E-9). Optional. Default value is 0 (tvDeleteMoveToDeleted).
Discard()
Move(Destination)
Destination as Folder object (see p.D-16).
Save([Overwrite])
Overwrite as Boolean. Optional.
Properties:
AccessCode as String.
AddressType as TVAddressType.
Class as TVObjectClass.
Default as Boolean.
Hidden as Boolean.
ID as String.
Name as String.
Parent as Folder.
Session as Session.
Synchronized as Boolean.
Tag as Variant.
Events:
Change(Synchronized, ChangedBy)
APPENDIX D. CLIENT API OBJECT REFERENCE
D-20
TELEVANTAGE DEVELOPER ’S GUIDE
Synchronized as Boolean.
ChangedBy as TVItemChangedBy (see p.E-16).
Remove()
IPhoneService object
Generic interface used to communicate with PhoneService, PhoneGatewayService, and RoutingService
objects. You do not need to deal directly with an IPhoneService object; rather, you work with the dialing
service object itself. See “Dialing Service objects” on page 2-14 for information about all of the dialing
service objects.
Properties:
AreaCode as String.
CountryCode as String.
IncludeLongDistancePrefix as String.
InternationalPrefix as String.
LongDistancePrefix as String.
Items object
A collection of IItem objects.
Methods:
Add([Class]) as IDispatch
Class as TVObjectClass (see p.E-19). Optional. Default value is -1.
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Find(Filter) as IDispatch
Filter as String.
FindNext() as IDispatch
Item(Index, [SearchType]) as IDispatch
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Remove(Index, [SearchType])
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Restrict(Filter) as Items object (see p.D-21)
Filter as String.
Sort(Field, [SortOrder])
Field as String.
SortOrder as TVSortOrder (see p.E-28). Optional. Default value is 0 (tvSortToggle).
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as Folder.
Session as Session.
Tag as Variant.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-21
TELEVANTAGE DEVELOPER ’S GUIDE
IWindowsSecurity object
An interface of the Session object. Provides access to the Windows Firewall settings for the application.
Methods:
EnableICFProgramExceptions()
AddICFProgramException(EXEName, FriendlyName, Scope, CustomRemoteAddresses, RebootRequired)
EXEName as String.
FriendlyName as String.
Scope as TVWindowsFirewallScope (see p.E-35).
CustomRemoteAddresses as String.
RebootRequired as Boolean.
GetScopePolicy(Server, Scope, CustomRemoteAddresses, [DatabaseInstance])
Server as String.
Scope as TVWindowsFirewallScope (see p.E-35).
CustomRemoteAddresses as String.
DatabaseInstance as String. Optional. Default value is "".
Properties:
ICFEnabled as Boolean.
AutoAdjustWindowsSecurity as Boolean.
Locale object
Provides access to the localized strings and images currently being used by the Session object.
Methods:
FormatCallerID(CallerID, Format) as String
CallerID as String.
Format as TVLocaleCallerIDFormat (see p.E-16).
FormatDateTime(DateTime, Format) as String
DateTime as Date.
Format as TVLocaleDateTimeFormat (see p.E-17).
GetInstalledLocales() as Collection
GetPicture(Index, Format, [Width], [Height]) as Picture
Index as Long.
Format as TVLocalePictureFormat.
Width as Long. Optional.
Height as Long. Optional.
GetString(Index, [Parameters]) as String
Index as Long.
Parameters as Variant. Optional.
GetSytemLocaleID() as String
Properties:
LocaleID as String.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-22
TELEVANTAGE DEVELOPER ’S GUIDE
LocaleCode object
Contains a locale code identifying a language locale setting. LocaleCode objects can be collected in a
LocaleCodes object.
Properties:
Description as String.
LocaleCode as String.
Parent as System.
Session as Session.
Tag as Variant.
LocaleCodes object
A collection of LocaleCode objects.
Methods:
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as LocaleCode object (see p.D-23)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as System.
Session as Session.
Tag as Variant.
LogonAddressInfo object
A container object that provides a mechanism to pass logon information to the Logon method of the Session
object.
Properties:
AccessCode as String.
AddressSubType as TVAddressSubType.
AddressType as TVAddressType.
PhoneType as TVPhoneType.
StationUsage as TVStationUsage.
Value as String.
Message object
Contains a voice message and related information. Message objects can be collected in a folder of type
tvFolderMessages (see “Folder types” on page 2-10). See “Message objects” on page 2-15 for a detailed
description of the Message object structure.
Methods:
Associate(Contact)
Contact as Contact object (see p.D-14).
APPENDIX D. CLIENT API OBJECT REFERENCE
D-23
TELEVANTAGE DEVELOPER ’S GUIDE
Delete([Mode])
Mode as TVDeleteMode (see p.E-9). Optional. Default value is 0 (tvDeleteMoveToDeleted).
Discard()
Forward() as Message object (see p.D-23)
Move(Destination)
Destination as Folder object (see p.D-16).
Reply([ReplyToAll]) as Message object (see p.D-23)
ReplyToAll as Boolean. Optional. Default value is 0 (false).
Save([Overwrite])
Overwrite as Boolean. Optional. Default value is 0 (false).
Send() as Recipients object (see p.D-34)
Properties:
AssociatedPerson as IDispatch.
AssociatedPersonID as String.
AssociatedPersonType as TVMessageAssociatedPersonType.
AudioClip as AudioClip.
CallbackAddress as Address.
Class as TVObjectClass.
Comments as String.
Confidential as Boolean.
CreatedTime as Date.
ForwardedTime as Date.
ID as String.
MessageType as TVMessageType.
Parent as Folder.
ReceiveStatus as TVMessageStatus.
Recipients as Recipients.
SenderCallerIDAddress as Address.
SenderCallerIDName as String.
SenderCallerIDNumber as String.
SendStatus as TVMessageStatus.
Session as Session.
Synchronized as Boolean.
Tag as Variant.
Unheard as Boolean.
Urgent as Boolean.
CallHistoryID as String.
Events:
Change(Synchronized, ChangedBy)
Synchronized as Boolean.
ChangedBy as TVItemChangedBy (see p.E-16).
Move()
Remove()
APPENDIX D. CLIENT API OBJECT REFERENCE
D-24
TELEVANTAGE DEVELOPER ’S GUIDE
Notification object
Contains address and schedule information for sending pager or e-mail message notifications to the user.
See “Notification objects” on page 2-16 for a detailed description of the Notification object structure.
Properties:
Address as Address.
ID as String.
Level as TVNotificationLevel.
MessageAttachment as TVNotificationMessageAction.
Parent as IDispatch.
ScheduleItems as NotifyScheduleItems.
Session as Session.
Tag as Variant.
UseScheduling as Boolean.
NotificationType as TVNotificationType.
NotifyScheduleItem object
Contains a record of when pager or e-mail notifications should be sent. NotifyScheduleItem objects can be
collected in a NotifyScheduleItems object.
Properties:
Enabled as Boolean.
ID as String.
Parent as Notification.
CustomSchedule as Schedule.
ScheduleType as TVScheduleItemType.
Tag as Variant.
Session as Session.
NotifyScheduleItems object
A collection of NotifyScheduleItem objects.
Methods:
Add() as NotifyScheduleItem object (see p.D-25)
Discard()
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as NotifyScheduleItem object (see p.D-25)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Remove(Index, [SearchType])
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Save()
Properties:
Count as Long.
NewEnum as IUnknown.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-25
TELEVANTAGE DEVELOPER ’S GUIDE
Parent as Notification.
Session as Session.
Tag as Variant.
Parties object
A collection of Party objects.
Methods:
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as Party object (see p.D-26)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as Call.
Session as Session.
Tag as Variant.
Party object
Contains information about one of the parties involved in a call, such as the caller, the recipient, a member
of a conference, and so forth. Party objects can be collected in a Parties object.
Methods:
Announce()
Answer()
Associate(Contact)
Contact as Contact object (see p.D-14).
Disconnect()
Hold([PlayHoldMusic])
PlayHoldMusic as Boolean. Optional. Default value is -1 (true).
SetCustomData(Key, Value)
Key as String.
Value as String.
SetRole(Role, [Partner])
Role as TVPartyRole (see p.E-22).
Partner as Party object (see p.D-26). Optional. Default value is <unprintable IDispatch*>.
Supports(Feature) as Boolean
Feature as TVPartyFeature (see p.E-22).
Properties:
Address as Address.
AnsweredTime as Date.
AssociatedPerson as IDispatch.
AssociatedPersonID as String.
AssociatedPersonType as TVAssociatedPersonType.
AudioClip as AudioClip.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-26
TELEVANTAGE DEVELOPER ’S GUIDE
Class as TVObjectClass.
Comments as String.
CustomData as String.
Device as Long.
DID as String.
Direction as TVPartyDirection.
Features as Long.
FirstName as String.
ID as String.
LastName as String.
Mute as Boolean.
Name as String.
Number as String.
Parent as Call.
Role as TVPartyRole.
Session as Session.
StartTime as Date.
Status as TVPartyStatus.
Tag as Variant.
Handle as Long.
WaitStartTime as Date.
VoiceTitle as AudioClip.
PartyHistories object
A collection of PartyHistory objects.
Methods:
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as PartyHistory object (see p.D-27)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as CallHistory.
Session as Session.
Tag as Variant.
PartyHistory object
Contains information concerning one party in a call. PartyHistory objects can be collected in a PartyHistories
object.
Properties:
AccountCode as String.
AnsweredBy as IDispatch.
AnsweredTime as Date.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-27
TELEVANTAGE DEVELOPER ’S GUIDE
CallerIDAddress as Address.
CallerIDName as String.
CallerIDNumber as String.
CustomData as String.
DeviceNumber as Long.
DialString as String.
DID as String.
Direction as TVCallDirection.
EndTime as Date.
ID as String.
LeftMessage as Boolean.
Message as Message.
Parent as CallHistory.
Person as IDispatch.
PersonID as String.
Result as TVPartyHistoryResult.
StartTime as Date.
Tag as Variant.
OrganizationName as String.
Session as Session.
Permission object
Contains a record of a permission needed for a specific feature. Permission objects can be collected in a
Permissions object.
Properties:
ID as String.
Name as String.
OwnerID as String.
Parent as IDispatch.
PermissionType as TVPermissionType.
Session as Session.
Tag as Variant.
UseDefault as Boolean.
Value as Long.
Permissions object
A collection of Permission objects.
Methods:
Add([EveryOne], [User]) as Permission object (see p.D-28)
EveryOne as Boolean. Optional. Default value is 0 (false).
User as IItem object (see p.D-19). Optional.
Discard()
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as Permission object (see p.D-28)
Index as Variant.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-28
TELEVANTAGE DEVELOPER ’S GUIDE
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Remove(Index, [SearchType])
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Save()
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as IDispatch.
Session as Session.
Tag as Variant.
PersonalStatus object
Contains a record of a personal status, as displayed in ViewPoint’s Personal Status view. PersonalStatus
objects can be collected in a folder of type tvFolderPersonalStatus (see “Folder types” on page 2-10). See
“PersonalStatus objects” on page 2-16 for a detailed description of the PersonalStatus object structure.
Methods:
Delete([Mode])
Mode as TVDeleteMode (see p.E-9). Optional. Default value is 0 (tvDeleteMoveToDeleted).
Discard()
Save([Overwrite])
Overwrite as Boolean. Optional.
Properties:
AcceptQueueCalls as Boolean.
CallForwarding as TVPersonalStatusCallForwarding.
Class as TVObjectClass.
Description as String.
DisplayName as String.
DoNotRingPhone as Boolean.
ForwardingAddress as Address.
ForwardingAttemptCentrexPBXTransfer as Boolean.
ForwardingPromptForPassword as Boolean.
ForwardingPromptToAccept as Boolean.
ForwardingRingDuration as Long.
Greeting as Greeting.
ID as String.
Name as String.
Parent as Folder.
PromptForDescription as Boolean.
RoutingList as RoutingList.
Session as Session.
Synchronized as Boolean.
System as Boolean.
Tag as Variant.
UseCallRules as Boolean.
VoiceTitle as AudioClip.
Events:
APPENDIX D. CLIENT API OBJECT REFERENCE
D-29
TELEVANTAGE DEVELOPER ’S GUIDE
Change(Synchronized, ChangedBy)
Synchronized as Boolean.
ChangedBy as TVItemChangedBy (see p.E-16).
Remove()
PhoneGatewayService object
A dialing service object containing information for dialing a number over an IP Gateway.
PhoneGatewayService objects can be collected in a folder of type tvFolderServices (see “Folder types” on
page 2-10). See “Dialing Service objects” on page 2-14 for information about all of the dialing service
objects.
Methods:
Delete([Mode])
Mode as TVDeleteMode (see p.E-9). Optional. Default value is 0 (tvDeleteMoveToDeleted).
Discard()
Move(Destination)
Destination as Folder object (see p.D-16).
Save([Overwrite])
Overwrite as Boolean. Optional.
Properties:
AccessCode as String.
AddressType as TVAddressType.
AreaCode as String.
Class as TVObjectClass.
CountryCode as String.
Hidden as Boolean.
ID as String.
IncludeLongDistancePrefix as String.
InternationalPrefix as String.
LongDistancePrefix as String.
Name as String.
Parent as Folder.
Session as Session.
Synchronized as Boolean.
Tag as Variant.
Events:
Change(Synchronized, ChangedBy)
Synchronized as Boolean.
ChangedBy as TVItemChangedBy (see p.E-16).
Remove()
APPENDIX D. CLIENT API OBJECT REFERENCE
D-30
TELEVANTAGE DEVELOPER ’S GUIDE
PhoneService object
A dialing service object containing information for dialing a number over a standard phone line.
PhoneService objects can be collected in a folder of type tvFolderServices (see “Folder types” on
page 2-10). See “Dialing Service objects” on page 2-14 for information about all of the dialing service
objects.
Methods:
Delete([Mode])
Mode as TVDeleteMode (see p.E-9). Optional. Default value is 0 (tvDeleteMoveToDeleted).
Discard()
Move(Destination)
Destination as Folder object (see p.D-16).
Save([Overwrite])
Overwrite as Boolean. Optional.
Properties:
AccessCode as String.
AddressType as TVAddressType.
AreaCode as String.
Class as TVObjectClass.
CountryCode as String.
Default as Boolean.
Hidden as Boolean.
ID as String.
IncludeLongDistancePrefix as String.
InternationalPrefix as String.
LongDistancePrefix as String.
Name as String.
Parent as Folder.
Session as Session.
Synchronized as Boolean.
Tag as Variant.
Events:
Change(Synchronized, ChangedBy)
Synchronized as Boolean.
ChangedBy as TVItemChangedBy (see p.E-16).
Remove()
QueueByPeriodStat object
Contains information concerning a Call Center queue’s activity during a specific period of time.
Properties:
ItemsAbandonedTotalInbound as Long.
ItemsActiveTotalInbound as Long.
ItemsCompletedTotalInbound as Long.
ItemsReceivedTotalInbound as Long.
Parent as QueueStat.
Tag as Variant.
TalkTimeTotalInbound as Long.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-31
TELEVANTAGE DEVELOPER ’S GUIDE
WaitTimeTotalForAbandonedItemsInbound as Long.
WaitTimeTotalForAnsweredItemsInbound as Long.
ItemsCompletedTotalOutbound as Long.
ItemsConnectedTotalOutbound as Long.
ItemsPlacedTotalOutbound as Long.
LongestItemDurationOutbound as Long.
LongestTalkTimeOutbound as Long.
LongestWrapupTimeOutbound as Long.
NumberRedirectMaxHold as Variant.
NumberRedirectQueueBusy as Long.
NumberRedirectQueueClosed as Long.
TalkTimeTotalOutbound as Long.
WrapupTimeTotalOutbound as Long.
LongestItemDurationInbound as Long.
LongestTalkTimeInbound as Long.
ItemsToVoiceMailTotalInbound as Long.
ItemsTransferredTotalInbound as Long.
QueueByShiftStat object
Contains information concerning a Call Center queue’s activity during a specific shift.
Properties:
ItemsAbandonedTotalInbound as Long.
ItemsActiveTotalInbound as Long.
ItemsCompletedTotalInbound as Long.
ItemsReceivedTotalInbound as Long.
Parent as QueueStat.
Tag as Variant.
TalkTimeTotalInbound as Long.
WaitTimeTotalForAbandonedItemsInbound as Long.
WaitTimeTotalForAnsweredItemsInbound as Long.
ItemsCompletedTotalOutbound as Long.
ItemsConnectedTotalOutbound as Long.
ItemsPlacedTotalOutbound as Long.
LongestItemDurationOutbound as Long.
LongestTalkTimeOutbound as Long.
LongestWrapupTimeOutbound as Long.
NumberRedirectMaxHold as Variant.
NumberRedirectQueueBusy as Long.
NumberRedirectQueueClosed as Long.
TalkTimeTotalOutbound as Long.
WrapupTimeTotalOutbound as Long.
LongestItemDurationInbound as Long.
LongestTalkTimeInbound as Long.
ItemsToVoiceMailTotalInbound as Long.
ItemsTransferredTotalInbound as Long.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-32
TELEVANTAGE DEVELOPER ’S GUIDE
QueueStat object
Contains information concerning a Call Center queue’s activity. QueueStat objects can be collected in a
folder of type tvFolderQueueStats (see “Folder types” on page 2-10).
Properties:
AgentsAvailable as Long.
AgentsSignedIn as Long.
AgentsWrapUpInbound as Long.
Class as TVObjectClass.
CurrentPeriodStat as QueueByPeriodStat.
CurrentShiftStat as QueueByShiftStat.
ID as String.
ItemsAbandonedTotalInbound as Long.
ItemsActiveTotalInbound as Long.
ItemsCompletedTotalInbound as Long.
ItemsReceivedTotalInbound as Long.
ItemsWaitingTotalInbound as Long.
LongestItemDurationInbound as Long.
LongestTalkTimeInbound as Long.
LongestWaitTimeInbound as Long.
Parent as Folder.
PreviousPeriodStat as QueueByPeriodStat.
PreviousShiftStat as QueueByShiftStat.
QueueID as String.
QueueName as String.
QueueStatus as String.
Session as Session.
StartTime as Date.
Synchronized as Boolean.
Tag as Variant.
TalkTimeTotalInbound as Long.
WaitTimeTotalForAbandonedItemsInbound as Long.
WaitTimeTotalForAnsweredItemsInbound as Long.
ItemsBeingPlacedTotalOutbound as Long.
ItemsCompletedTotalOutbound as Long.
ItemsConnectedTotalOutbound as Long.
ItemsPlacedTotalOutbound as Long.
LongestItemDurationOutbound as Long.
LongestTalkTimeOutbound as Long.
LongestWrapupTimeOutbound as Long.
NumberRedirectMaxHold as Variant.
NumberRedirectQueueBusy as Long.
NumberRedirectQueueClosed as Long.
TalkTimeTotalOutbound as Long.
WrapupTimeTotalOutbound as Long.
AgentsOnBreak as Long.
AgentsWrapUp as Long.
AgentsWrapUpOutbound as Long.
ItemsToVoiceMailTotalInbound as Long.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-33
TELEVANTAGE DEVELOPER ’S GUIDE
ItemsTransferredTotalInbound as Long.
Events:
Change()
Remove()
Recipients object
Collection object containing a list of Contact and Workgroup items.
Methods:
Add(Recipient)
Recipient as IItem object (see p.D-19).
Discard()
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as IDispatch
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Remove(Index, [SearchType])
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Save()
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as Message.
Session as Session.
Tag as Variant.
Role object
Contains information on a given set of permissions that apply to a group of Users. Any user added to a role
will inherit permissions from that role.
Properties:
Class as TVObjectClass.
Comments as String.
Name as String.
ID as String.
Parent as IDispatch.
Tag as Variant.
Session as Session.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-34
TELEVANTAGE DEVELOPER ’S GUIDE
Roles object
A collection of Role objects.
Methods:
Add(Role)
Role as Role object (see p.D-34).
Discard()
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as Role object (see p.D-34)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Remove(Index, [SearchType])
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Save()
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as IDispatch.
Session as Session.
Tag as Variant.
RoutingList object
Contains information about a routing list, similar to the information displayed in ViewPoint’s Routing Lists
view. RoutingList objects can be collected in a folder of type tvFolderRoutingLists (see “Folder types” on
page 2-10). See “RoutingList objects” on page 2-17 for a detailed description of the RoutingList object
structure.
Methods:
Delete([Mode])
Mode as TVDeleteMode (see p.E-9). Optional. Default value is 0 (tvDeleteMoveToDeleted).
Discard()
Save([Overwrite])
Overwrite as Boolean. Optional. Default value is 0 (false).
Properties:
Actions as RoutingListActions.
Active as Boolean.
Class as TVObjectClass.
Customizable as Boolean.
Default as Boolean.
FinalAction as RoutingListFinalAction.
ID as String.
Name as String.
Parent as Folder.
Session as Session.
Synchronized as Boolean.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-35
TELEVANTAGE DEVELOPER ’S GUIDE
Tag as Variant.
BusyAction as RoutingListFinalAction.
Events:
Change(Synchronized, ChangedBy)
Synchronized as Boolean.
ChangedBy as TVItemChangedBy (see p.E-16).
Remove()
RoutingListAction object
Contains a record of a single routing list action. RoutingListAction objects can be collected in a
RoutingListActions object.
Properties:
ActionType as TVRoutingListActionType.
Address as Address.
AttemptCentrexPBXTransfer as Boolean.
Description as String.
Greeting as Greeting.
ID as String.
Parent as RoutingList.
PauseDuration as Long.
Position as Long.
PromptCallerBeforeAction as TVRoutingListPromptCallerType.
PromptCallerGreeting as Greeting.
PromptForPassword as Boolean.
PromptToAccept as Boolean.
RingDuration as Long.
Tag as Variant.
WorkgroupRoutingType as TVWorkgroupRoutingType.
Session as Session.
RoutingListActions object
A collection of RoutingListAction objects.
Methods:
Add() as RoutingListAction object (see p.D-36)
Discard()
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as RoutingListAction object (see p.D-36)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Remove(Index, [SearchType])
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Save()
Properties:
APPENDIX D. CLIENT API OBJECT REFERENCE
D-36
TELEVANTAGE DEVELOPER ’S GUIDE
Count as Long.
NewEnum as IUnknown.
Parent as RoutingList.
Session as Session.
Tag as Variant.
RoutingListFinalAction object
Contains a record of the final action in a routing list.
Properties:
ActionType as TVRoutingListFinalActionType.
Address as Address.
Greeting as Greeting.
ID as String.
Parent as RoutingList.
PauseDuration as Long.
PlayGreeting as TVRoutingListPlayGreetingType.
Tag as Variant.
Session as Session.
RoutingService object
Contains information for selecting a dialing service based on the number dialed.
Methods:
Delete([Mode])
Mode as TVDeleteMode (see p.E-9). Optional. Default value is 0 (tvDeleteMoveToDeleted).
Discard()
Move(Destination)
Destination as Folder object (see p.D-16).
Save([Overwrite])
Overwrite as Boolean. Optional.
Properties:
AccessCode as String.
AddressType as TVAddressType.
AreaCode as String.
Class as TVObjectClass.
CountryCode as String.
Default as Boolean.
Hidden as Boolean.
ID as String.
IncludeLongDistancePrefix as String.
InternationalPrefix as String.
LongDistancePrefix as String.
Name as String.
Parent as Folder.
Session as Session.
Synchronized as Boolean.
Tag as Variant.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-37
TELEVANTAGE DEVELOPER ’S GUIDE
Events:
Change(Synchronized, ChangedBy)
Synchronized as Boolean.
ChangedBy as TVItemChangedBy (see p.E-16).
Remove()
Schedule object
Contains a record of the times when pager and e-mail message notifications should be sent. See “Schedule
objects” on page 2-18 for a detailed description of the Schedule object structure. Schedule objects can be
collected in a Schedules object.
Properties:
ID as String.
Name as String.
Parent as IDispatch.
ScheduledDays as ScheduledDays.
ScheduledDates as ScheduledDates.
Session as Session.
Tag as Variant.
ScheduledDate object
Contains a record of a date and time when pager and e-mail message notifications should be sent.
ScheduledDate objects can be collected in a ScheduledDates object.
Properties:
EndTime as Date.
ID as String.
Parent as Schedule.
Session as Session.
StartTime as Date.
Tag as Variant.
Value as Date.
ScheduledDates object
A collection of ScheduledDate objects.
Methods:
Add(ScheduledDate) as ScheduledDate object (see p.D-38)
ScheduledDate as Date.
Discard()
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as ScheduledDate object (see p.D-38)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Remove(Index, [SearchType])
Index as Variant.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-38
TELEVANTAGE DEVELOPER ’S GUIDE
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Save()
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as Schedule.
Session as Session.
Tag as Variant.
ScheduledDay object
Contains a record of times on specific days of the week when pager and e-mail message notifications
should be sent. ScheduledDay objects can be collected in a ScheduledDays object.
Properties:
EndTime as Date.
ID as String.
Parent as Schedule.
Session as Session.
StartTime as Date.
Tag as Variant.
Value as TVScheduledDaysWeekday.
Times as String.
ScheduledDays object
A collection of ScheduledDay objects.
Methods:
Add(ScheduledDay) as ScheduledDay object (see p.D-39)
ScheduledDay as TVScheduledDaysWeekday (see p.E-26).
Discard()
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as ScheduledDay object (see p.D-39)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Remove(Index, [SearchType])
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Save()
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as Schedule.
Session as Session.
Tag as Variant.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-39
TELEVANTAGE DEVELOPER ’S GUIDE
Schedules object
A collection of Schedule objects.
Methods:
Add(Name) as Schedule object (see p.D-38)
Name as String.
Discard()
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as Schedule object (see p.D-38)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Remove(Index, [SearchType])
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Save()
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as IDispatch.
Session as Session.
Tag as Variant.
Session object
The root of the Client API. See “Structure of a session” on page 2-4 for details.
Methods:
CreateAddress([Value], [AddressType], [AddressSubType], [Service], [Category]) as Address object (see
p.D-4)
Value as String. Optional.
AddressType as TVAddressType (see p.E-2). Optional. Default value is 1 (tvAddressTypePhoneNumber).
AddressSubType as TVAddressSubType (see p.E-2). Optional.
Service as IDialingService object (see p.D-19). Optional.
Category as TVAddressCategory (see p.E-1). Optional.
CreateCall(Address) as Call object (see p.D-8)
Address as Address object (see p.D-4).
CreateCallAbort()
CreateItem(Class) as IDispatch
Class as TVObjectClass (see p.E-19).
CreateSession(UserName, [ServerConnectionLevel]) as Session object (see p.D-40)
UserName as String.
ServerConnectionLevel as TVServerConnectionLevel (see p.E-26). Optional. Default value is 0 (tvServerConnectionLevelFull).
EmptyDeletedFolder([DeletedFolder], [Interval])
DeletedFolder as Folder object (see p.D-16). Optional.
Interval as Long. Optional. Default value is 0.
Export(Filename, Source, [Parameters]) as Long
APPENDIX D. CLIENT API OBJECT REFERENCE
D-40
TELEVANTAGE DEVELOPER ’S GUIDE
Filename as String.
Source as Folder object (see p.D-16).
Parameters as Variant. Optional.
ExportCancel()
ExportDebugInfo(DataMember, [Password])
DataMember as Long.
Password as String. Optional.
Find(Filter, ItemClass) as IDispatch
Filter as String.
ItemClass as TVObjectItemClass (see p.E-21).
FindNext() as IDispatch
GetCallingInfo([LoggedInUserID], [LoggedInUserFirstName], [LoggedInUserLastName],
[CallingAsFirstName], [CallingAsLastName])
LoggedInUserID as String. Optional. Default value is "".
LoggedInUserFirstName as String. Optional. Default value is "".
LoggedInUserLastName as String. Optional. Default value is "".
CallingAsID as String. Optional. Default value is "".
CallingAsFirstName as String. Optional. Default value is "".
CallingAsLastName as String. Optional. Default value is "".
GetData(DataMember, [PreserveState], [LockType], [Password], [Filter]) as Recordset
DataMember as Long.
PreserveState as Boolean. Optional. Default value is -1 (true).
LockType as LockTypeEnum. Optional. Default value is 1.
Password as String. Optional. Default value is "".
Filter as String. Optional. Default value is "".
GetDefaultFolder(FolderType) as Folder
FolderType as TVDefaultFolders.
GetFolder(ID) as Folder
ID as String.
GetInterface(Interface, Item) as IDispatch
Interface as TVInterface.
Item as IDispatch.
GetItem(ID, [ParentID]) as IDispatch
ID as String.
ParentID as String. Optional. Default value is "".
GetItemFromTargetID(ID) as IDispatch
ID as String.
GetLastError() as Error
GetLastInboundCallAddress() as Address
GetPermissionValue(Name, [Parameters]) as Long
Name as String.
Parameters as Variant. Optional.
GetRecentOutboundCallAddresses() as Collection
GetTarget(ID) as SystemTarget
ID as String.
Import(Filename, Destination, Options, Mapping, HeaderPosition, [Parameters]) as Variant
Filename as String.
Destination as Folder.
Options as TVImportOptions.
APPENDIX D. CLIENT API OBJECT REFERENCE
[CallingAsID],
D-41
TELEVANTAGE DEVELOPER ’S GUIDE
Mapping as Variant.
HeaderPosition as TVImportHeaderPosition.
Parameters as Variant. Optional.
ImportCancel()
LogOff()
Logon(Server, UserName, Password, Station, ApplicationType, ApplicationID, [ServerConnectionLevel],
[CheckVersions], [StationUsage])
Server as String.
UserName as String.
Password as String.
Station as Long.
ApplicationType as TVApplicationType.
ApplicationID as Long.
ServerConnectionLevel as TVServerConnectionLevel. Optional. Default value is 0.
CheckVersions as Boolean. Optional. Default value is -1 (true).
StationUsage as TVStationUsage. Optional. Default value is 0.
ReadImportRecord(Filename, RecordNumber) as Collection
Filename as String.
RecordNumber as Long.
StartRing(RingPattern, [NumberofRings])
RingPattern as TVUserRingPattern.
NumberofRings as Long. Optional. Default value is 2.
StopRing()
ValidateLogonInfo(Server, UserName, Password, Station, [DefaultStation], [DefaultUsername]) as TVSessionValidateLogonResult
Server as String.
UserName as String.
Password as String.
Station as Long.
DefaultStation as Long. Optional.
DefaultUsername as String. Optional.
ExportXML(FolderType, [ExportType]) as String
FolderType as TVDefaultFolders.
ExportType as TVExportType. Optional. Default value is 0.
ChangePassword(Server, UserName, OldPassword, NewPassword, [MinimumPasswordLength])
Server as String.
UserName as String.
OldPassword as String.
NewPassword as String.
MinimumPasswordLength as Long. Optional.
ChangeLocale(LocaleID)
LocaleID as String.
GetSystemCallHistory(Item) as CallHistory
Item as Variant.
GetLocale() as String
CreateCallAs(Address, CallingAsID) as Call
Address as Address.
CallingAsID as String.
GetLastInboundCallInfo([Address], [Timestamp], [CallerIDName], [CallerIDNumber])
Address as Address. Optional. Default value is <unprintable IDispatch*>.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-42
TELEVANTAGE DEVELOPER ’S GUIDE
Timestamp as Date. Optional.
CallerIDName as String. Optional. Default value is "".
CallerIDNumber as String. Optional. Default value is "".
GetCurrentCall() as Call
ChangePassword_v6(Server, UserName, OldPassword, NewPassword, [MinimumPasswordLength], [DatabaseInstance])
Server as String.
UserName as String.
OldPassword as String.
NewPassword as String.
MinimumPasswordLength as Long. Optional.
DatabaseInstance as String. Optional. Default value is "".
Logon_v6(Server, UserName, Password, AddressInfo, ApplicationType, ApplicationID, [ServerConnectionLevel], [CheckVersions], [DatabaseInstance])
Server as String.
UserName as String.
Password as String.
AddressInfo as TVLogonAddressInfo.
ApplicationType as TVApplicationType.
ApplicationID as Long.
ServerConnectionLevel as TVServerConnectionLevel. Optional. Default value is 0.
CheckVersions as Boolean. Optional. Default value is -1 (true).
DatabaseInstance as String. Optional. Default value is "".
ValidateLogonInfo_v6(Server, UserName, Password, Station, [DefaultStation], [DefaultUsername], [DatabaseInstance]) as TVSessionValidateLogonResult
Server as String.
UserName as String.
Password as String.
Station as Long.
DefaultStation as Long. Optional.
DefaultUsername as String. Optional.
DatabaseInstance as String. Optional. Default value is "".
GetFoldersByItemClass(ItemClass) as Folders
ItemClass as TVObjectItemClass.
Logon_v61(Server, UserName, Password, AddressInfo, ApplicationType, ApplicationID, [ServerConnectionLevel], [CheckVersions], [DatabaseInstance])
Server as String.
UserName as String.
Password as String.
AddressInfo as LogonAddressInfo.
ApplicationType as TVApplicationType.
ApplicationID as Long.
ServerConnectionLevel as TVServerConnectionLevel. Optional. Default value is 0.
CheckVersions as Boolean. Optional. Default value is -1 (true).
DatabaseInstance as String. Optional. Default value is "".
ValidateLogonInfo_v61(Server, UserName, Password, Station, AddressType, [DefaultStation], [DefaultUsername], [DatabaseInstance], [TerminalType], [ExternalAddress]) as TVSessionValidateLogonResult
Server as String.
UserName as String.
Password as String.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-43
TELEVANTAGE DEVELOPER ’S GUIDE
Station as Long.
AddressType as TVAddressType.
DefaultStation as Long. Optional.
DefaultUsername as String. Optional.
DatabaseInstance as String. Optional. Default value is "".
TerminalType as Long. Optional. Default value is 0.
ExternalAddress as String. Optional. Default value is "".
SendShortMessage(UserID, Message)
UserID as String.
Message as String.
CreateSession_v7(UserName, AddressInfo, [ServerConnectionLevel]) as Session
UserName as String.
AddressInfo as LogonAddressInfo.
ServerConnectionLevel as TVServerConnectionLevel. Optional. Default value is 0.
GetCallFromHandle(CallHandle) as Call
CallHandle as Long.
Properties:
ApplicationID as Long.
ApplicationType as TVApplicationType.
Class as TVObjectClass.
ClientServerTimeDiff as Long.
DefaultStationNumber as Long.
ExportRecords as Long.
Folders as Folders.
ImportBytes as Long.
Locale as IDispatch.
NameFormat as TVUserNameFormat.
ShortcutGroups as ShortcutGroups.
Station as Station.
StationNumber as Long.
Status as TVSessionStatus.
System as System.
SystemSettings as SystemSettings.
Tag as Variant.
User as User.
UserID as String.
Version as String.
AgentStatisticInterval as TVAgentStatisticInterval.
AudioDevice as TVAudioDeviceType.
Events:
AudioDeviceChange(AudioDevice)
AudioDevice as TVAudioDeviceType (see p.E-3).
CallStatusChange(ID, Status, OldStatus)
ID as String.
Status as TVPartyStatus (see p.E-23).
OldStatus as TVPartyStatus (see p.E-23).
CampOnAbort(ID)
ID as String.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-44
TELEVANTAGE DEVELOPER ’S GUIDE
CampOnCreateCallStart(ID, Cancel)
ID as String.
Cancel as Boolean.
CreateCallAbort(ID)
ID as String.
CreateCallComplete(ID)
ID as String.
CreateCallStart(ID)
ID as String.
CallingInfoChange()
FolderAdd(ID, ParentID, Folder)
ID as String.
ParentID as String.
Folder as Folder object (see p.D-16).
FolderChange(ID, ParentID, Folder)
ID as String.
ParentID as String.
Folder as Folder object (see p.D-16).
FolderAfterMove(ID, ParentID, PreviousParentID)
ID as String.
ParentID as String.
PreviousParentID as String.
FolderAfterRemove(ID, ParentID)
ID as String.
ParentID as String.
FolderBeforeMove(ID, ParentID, Folder, Destination)
ID as String.
ParentID as String.
Folder as Folder object (see p.D-16).
Destination as Folder object (see p.D-16).
FolderBeforeRemove(ID, ParentID, Folder)
ID as String.
ParentID as String.
Folder as Folder object (see p.D-16).
ItemAdd(ID, Class, ParentID, Item)
ID as String.
Class as TVObjectClass (see p.E-19).
ParentID as String.
Item as IDispatch.
ItemAfterMove(ID, Class, ParentID, PreviousParentID)
ID as String.
Class as TVObjectClass (see p.E-19).
ParentID as String.
PreviousParentID as String.
ItemAfterRemove(ID, Class, ParentID)
ID as String.
Class as TVObjectClass (see p.E-19).
ParentID as String.
ItemBeforeMove(ID, Class, ParentID, Item, Destination)
APPENDIX D. CLIENT API OBJECT REFERENCE
D-45
TELEVANTAGE DEVELOPER ’S GUIDE
ID as String.
Class as TVObjectClass (see p.E-19).
ParentID as String.
Item as IDispatch.
Destination as Folder object (see p.D-16).
ItemBeforeRemove(ID, Class, ParentID, Item)
ID as String.
Class as TVObjectClass (see p.E-19).
ParentID as String.
Item as IDispatch.
ItemChange(ID, Class, ParentID, Item)
ID as String.
Class as TVObjectClass (see p.E-19).
ParentID as String.
Item as IDispatch.
ItemDataExpired(ItemClass)
ItemClass as TVObjectItemClass (see p.E-21).
PermissionChange()
SettingChange(Name, Value)
Name as String.
Value as Variant.
Logon(User)
User as User object (see p.D-62).
LogOff()
ServerShutdownScheduled(ShutdownDelay)
ShutdownDelay as Long.
ServerStatusChange(Status, ExtraInfo)
Status as TVServerStatus (see p.E-27).
ExtraInfo as Variant.
Error(Error, SeverityOverride, Cancel)
Error as Error object (see p.D-15).
SeverityOverride as TVDebugSeverity.
Cancel as Boolean.
ShortcutGroupAdd(ID)
ID as String.
ShortcutGroupChange(ID)
ID as String.
ShortcutGroupRemove(ID)
ID as String.
ShortcutAdd(ID, GroupID)
ID as String.
GroupID as String.
ShortcutChange(ID, GroupID)
ID as String.
GroupID as String.
ShortcutRemove(ID, GroupID)
ID as String.
GroupID as String.
ShortMessageReceived(FromID, FromName, Message)
APPENDIX D. CLIENT API OBJECT REFERENCE
D-46
TELEVANTAGE DEVELOPER ’S GUIDE
FromID as String.
FromName as String.
Message as String.
Shortcut object
Contains information that can be used to locate and access a specific Folder object. Shortcut objects can be
collected in a Shortcuts object.
Properties:
FolderID as String.
ID as String.
ItemClass as TVObjectItemClass.
Name as String.
Parent as ShortcutGroup.
PictureID as Long.
Position as Long.
ResourceID as Long.
Session as Session.
Tag as Variant.
ShortcutGroup object
Contains information about a group of shortcuts, for example, the General and Advanced shortcut groups
displayed in ViewPoint’s view bar. ShortcutGroup objects can be collected in a ShortcutGroups object.
Methods:
Delete()
Discard()
Save()
Properties:
IconType as TVShortcutGroupIconType.
ID as String.
Name as String.
Parent as Session.
ResourceID as Long.
Session as Session.
Shortcuts as Shortcuts.
Tag as Variant.
ShortcutGroups object
A collection of ShortcutGroup objects.
Methods:
Add([Name]) as ShortcutGroup object (see p.D-47)
Name as String. Optional. Default value is "".
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as ShortcutGroup object (see p.D-47)
APPENDIX D. CLIENT API OBJECT REFERENCE
D-47
TELEVANTAGE DEVELOPER ’S GUIDE
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Remove(Index, [SearchType])
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Restrict(Filter) as ShortcutGroups object (see p.D-47)
Filter as String.
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as Session.
Session as Session.
Tag as Variant.
Shortcuts object
A collection of Shortcut objects.
Methods:
Add([Name], [FolderID]) as Shortcut object (see p.D-47)
Name as String. Optional. Default value is "".
FolderID as String. Optional. Default value is "".
Discard()
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as Shortcut object (see p.D-47)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Remove(Index, [SearchType])
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Save()
Restrict(Filter) as Shortcuts object (see p.D-48)
Filter as String.
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as ShortcutGroup.
Session as Session.
Tag as Variant.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-48
TELEVANTAGE DEVELOPER ’S GUIDE
SIPAccount object
Contains details of a SIP account, as shown when you edit a SIP account in ViewPoint (Tools > Options >
Personal > SIP Accounts.)
Properties:
AccountType as TVSIPAccountType.
AORUserPart as String.
DisplayName as String.
ID as String.
Parent as IDispatch.
Password as String.
Register as Boolean.
Session as Session.
SIPServer as SIPServer.
SIPSpan as SIPSpan.
Tag as Variant.
UseAsCallerIdentity as Boolean.
UseCredentials as Boolean.
UserName as String.
SIPAccounts object
A collection of SIPAccount objects.
Methods:
Add() as SIPAccount object (see p.D-49)
Discard()
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as SIPAccount object (see p.D-49)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Remove(Index, [SearchType])
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Save()
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as IDispatch.
Session as Session.
Tag as Variant.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-49
TELEVANTAGE DEVELOPER ’S GUIDE
SIPPhoneGatewayService object
A dialing service object containing information for dialing a number over an SIP Gateway.
SIPPhoneGatewayService objects can be collected in a folder of type tvFolderServices (see “Folder types”
on page 2-10). See “Dialing Service objects” on page 2-14 for information about all of the dialing service
objects.
Methods:
Delete([Mode])
Mode as TVDeleteMode (see p.E-9). Optional. Default value is 0 (tvDeleteMoveToDeleted).
Discard()
Move(Destination)
Destination as Folder object (see p.D-16).
Save([Overwrite])
Overwrite as Boolean. Optional.
Properties:
AccessCode as String.
AddressType as TVAddressType.
AreaCode as String.
Class as TVObjectClass.
CountryCode as String.
Hidden as Boolean.
ID as String.
IncludeLongDistancePrefix as String.
InternationalPrefix as String.
LongDistancePrefix as String.
Name as String.
Parent as Folder.
Session as Session.
Synchronized as Boolean.
Tag as Variant.
Events:
Change(Synchronized, ChangedBy)
Synchronized as Boolean.
ChangedBy as TVItemChangedBy (see p.E-16).
Remove()
SIPServer object
Contains details of a SIP Server, as displayed in the SIP Servers view in the Administrator.
Properties:
Address as String.
AddressFormat as TVSIPServerAddressFormat.
Class as TVObjectClass.
Comments as String.
Name as String.
ID as String.
Parent as IDispatch.
Tag as Variant.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-50
TELEVANTAGE DEVELOPER ’S GUIDE
SIPServers object
A collection of SIPServer objects.
Methods:
Discard()
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as SIPServer object (see p.D-50)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as IDispatch.
Session as Session.
Tag as Variant.
SIPService object
Contains details of a SIP Service, which can be managed in the Administrator (File > New > Dialing
Service.)
Methods:
Delete([Mode])
Mode as TVDeleteMode (see p.E-9). Optional. Default value is 0 (tvDeleteMoveToDeleted).
Discard()
Move(Destination)
Destination as Folder object (see p.D-16).
Save([Overwrite])
Overwrite as Boolean. Optional.
Properties:
AccessCode as String.
AddressType as TVAddressType.
Class as TVObjectClass.
Default as Boolean.
Hidden as Boolean.
ID as String.
Name as String.
Parent as Folder.
Session as Session.
Synchronized as Boolean.
Tag as Variant.
Events:
Change(Synchronized, ChangedBy)
Synchronized as Boolean.
ChangedBy as TVItemChangedBy (see p.E-16).
APPENDIX D. CLIENT API OBJECT REFERENCE
D-51
TELEVANTAGE DEVELOPER ’S GUIDE
Remove()
SIPSpan object
Contains details of a SIP Span, as shown in the Trunks view in the Administrator.
Properties:
BoardNumber as Long.
Class as TVObjectClass.
Comments as String.
ID as String.
IPAddress as String.
Parent as IDispatch.
Tag as Variant.
Port as Long.
SIPSpans object
A collection of SIPSpan objects.
Methods:
Discard()
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as SIPSpan object (see p.D-52)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as IDispatch.
Session as Session.
Tag as Variant.
SIPSwitchGatewayService object
A dialing service object containing information for dialing a number over a SIP Switch Gateway.
SIPSwitchGatewayService objects can be collected in a folder of type tvFolderServices (see “Folder types”
on page 2-10). See “Dialing Service objects” on page 2-14 for information about all of the dialing service
objects.
Methods:
Delete([Mode])
Mode as TVDeleteMode (see p.E-9). Optional. Default value is 0 (tvDeleteMoveToDeleted).
Discard()
Move(Destination)
Destination as Folder object (see p.D-16).
Save([Overwrite])
Overwrite as Boolean. Optional.
Properties:
APPENDIX D. CLIENT API OBJECT REFERENCE
D-52
TELEVANTAGE DEVELOPER ’S GUIDE
AccessCode as String.
AddressType as TVAddressType.
Class as TVObjectClass.
Hidden as Boolean.
ID as String.
Name as String.
Parent as Folder.
Session as Session.
Synchronized as Boolean.
Tag as Variant.
Events:
Change(Synchronized, ChangedBy)
Synchronized as Boolean.
ChangedBy as TVItemChangedBy (see p.E-16).
Remove()
SkillDefinition object
Contains details of an Agent Skill, which can be managed in the Administrator (Tools > System settings >
Queue > Agent Skills.)
Properties:
Class as TVObjectClass.
Comments as String.
ID as String.
Name as String.
Parent as IDispatch.
Tag as Variant.
SkillDefinitions object
A collection of SkillDefinition objects.
Methods:
Discard()
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as SkillDefinition object (see p.D-53)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as IDispatch.
Session as Session.
Tag as Variant.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-53
TELEVANTAGE DEVELOPER ’S GUIDE
Station object
Contains configuration information about a station. See “Station objects” on page 2-19 for a detailed
description of the Station object structure.
Methods:
Discard()
GetButtonCount() as Long
Save([Overwrite])
Overwrite as Boolean. Optional. Default value is 0 (false).
ValidateButtons(PDNButtonCount, SDNStations, SDNButtonCounts) as Boolean
PDNButtonCount as Long.
SDNStations as Long.
SDNButtonCounts as Long.
Properties:
Buttons as StationButtons.
CadenceID as Long.
Class as TVObjectClass.
DefaultIdleString as String.
DefaultVolume as Long.
DeviceName as String.
HandsFreeCanPlaceCall as Boolean.
HandsFreeDialtoneTimeout as Long.
HandsFreeDisconnectTimeout as Long.
HandsFreeModeEnabled as Boolean.
ID as String.
Number as Long.
PadCharacter as TVStationPadCharacter.
PadExtension as TVStationPadExtension.
Parent as Folder.
PhoneFeatures as TVStationPhoneFeatures.
Session as Session.
Synchronized as Boolean.
Tag as Variant.
TerminalType as Long.
ToneID as Long.
TransferMode as TVStationTransferMode.
VoiceFirstAnsweringEnabled as Boolean.
DirectConnectDialString as String.
PickupAnswersRingingSDN as Boolean.
ExternalAddress as Address.
DropLoopCurrent as Boolean.
IdentificationOptions as TVStationIdentificationOptions.
Events:
Change(Synchronized, ChangedBy)
Synchronized as Boolean.
ChangedBy as TVItemChangedBy (see p.E-16).
Remove()
APPENDIX D. CLIENT API OBJECT REFERENCE
D-54
TELEVANTAGE DEVELOPER ’S GUIDE
StationButton object
Contains information about a specialized button on a feature phone. StationButton objects can be collected
in a StationButtons object.
Properties:
Address as Address.
ButtonNumber as Long.
DirectoryStationNumber as Long.
Feature as StationFeature.
Parent as Station.
RingDelay as Long.
Session as Session.
Tag as Variant.
DirectDialString as String.
PersonalStatusType as TVPersonalStatusType.
StationButtons object
A collection of StationButton objects.
Methods:
Add(ButtonNumber) as StationButton object (see p.D-55)
ButtonNumber as Long.
Discard()
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as StationButton object (see p.D-55)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Remove(Index, [SearchType])
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Save()
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as Station.
Session as Session.
Tag as Variant.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-55
TELEVANTAGE DEVELOPER ’S GUIDE
StationFeature object
Contains information about a feature assigned to a StationButton object. StationFeature objects can be
collected in a StationFeatures object. See “StationFeature objects” on page 2-19 for a detailed description of
the StationFeature object structure.
Properties:
DisplayName as String.
ID as String.
Name as String.
Parameters as StationParameters.
Parent as StationType.
ResourceID as Long.
Session as Session.
Tag as Variant.
StationFeatures object
A collection of StationFeature objects.
Methods:
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as StationFeature object (see p.D-56)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as StationType.
Session as Session.
Tag as Variant.
StationParameter object
Contains a parameter required by a StationFeature object. StationParameter objects can be collected in a
StationParameters object.
Properties:
ParameterType as TVStationFeatureParameterType.
Parent as StationFeature.
Session as Session.
Tag as Variant.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-56
TELEVANTAGE DEVELOPER ’S GUIDE
StationParameters object
A collection of StationParameter objects.
Methods:
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as StationParameter object (see p.D-56)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as StationFeature.
Session as Session.
Tag as Variant.
StationType object
Contains a list of features used by a specific type of feature phone. StationType objects can be collected in a
StationTypes object.
Properties:
Features as StationFeatures.
Name as String.
Parent as System.
Session as Session.
Tag as Variant.
StationTypes object
A collection of StationType objects.
Methods:
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as StationType object (see p.D-57)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as System.
Session as Session.
Tag as Variant.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-57
TELEVANTAGE DEVELOPER ’S GUIDE
SwitchGatewayService object
A dialing service object containing information for dialing a number over a Switch Gateway.
SwitchGatewayService objects can be collected in a folder of type tvFolderServices (see “Folder types” on
page 2-10). See “Dialing Service objects” on page 2-14 for information about all of the dialing service
objects.
Methods:
Delete([Mode])
Mode as TVDeleteMode (see p.E-9). Optional. Default value is 0 (tvDeleteMoveToDeleted).
Discard()
Move(Destination)
Destination as Folder object (see p.D-16).
Save([Overwrite])
Overwrite as Boolean. Optional.
Properties:
AccessCode as String.
AddressType as TVAddressType.
Class as TVObjectClass.
Hidden as Boolean.
ID as String.
Name as String.
Parent as Folder.
Session as Session.
Synchronized as Boolean.
Tag as Variant.
Events:
Change(Synchronized, ChangedBy)
Synchronized as Boolean.
ChangedBy as TVItemChangedBy (see p.E-16).
Remove()
SwitchService object
A dialing service object containing information for dialing a number over a Switch. SwitchService objects can
be collected in a folder of type tvFolderServices (see “Folder types” on page 2-10). See “Dialing Service
objects” on page 2-14 for information about all of the dialing service objects.
Methods:
Delete([Mode])
Mode as TVDeleteMode (see p.E-9). Optional. Default value is 0 (tvDeleteMoveToDeleted).
Discard()
Move(Destination)
Destination as Folder object (see p.D-16).
Save([Overwrite])
Overwrite as Boolean. Optional.
Properties:
AccessCode as String.
AddressType as TVAddressType.
Class as TVObjectClass.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-58
TELEVANTAGE DEVELOPER ’S GUIDE
Hidden as Boolean.
ID as String.
Name as String.
Parent as Folder.
Session as Session.
Synchronized as Boolean.
Tag as Variant.
Events:
Change(Synchronized, ChangedBy)
Synchronized as Boolean.
ChangedBy as TVItemChangedBy (see p.E-16).
Remove()
System object
Represents the system as a whole. It serves as the main interface between ViewPoint and the Server. It also
contains all system-wide settings and licenses. It handles all operations that affect the system as a whole.
For example, the System object provides methods to backup or restore the database, and to start or shut
down the Server. See “The System object” on page 2-5 for a detailed description of the System object
structure.
Methods:
GetDeviceName(DeviceNumber) as String
DeviceNumber as Long.
GetLicenseStatus(ExpirationDate) as TVLicenseStatus (see p.E-16)
ExpirationDate as Date.
Properties:
BusinessSchedules as Schedules.
Class as TVObjectClass.
DefaultInternetService as InternetService.
DefaultLocaleCode as LocaleCode.
DefaultPhoneService as IPhoneService.
LocaleCodes as LocaleCodes.
MinPasswordLength as Long.
ServerName as String.
ServerStatus as TVServerStatus.
ServerTime as Date.
ServerTimeZoneBias as Long.
Session as Session.
StationTypes as StationTypes.
Tag as Variant.
TimeUntilServerShutDown as Long.
VARCompany as String.
VARContactInfo as String.
VARName as String.
DefaultOutboundCallerIDPresentation as TVOutboundCallerIDPresentation.
DefaultOutboundCallerIDName as String.
DefaultOutboundCallerIDNumber as String.
Roles as Roles.
DefaultSIPService as SIPService.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-59
TELEVANTAGE DEVELOPER ’S GUIDE
SIPServers as SIPServers.
SIPSpans as SIPSpans.
SkillDefinitions as SkillDefinitions.
SystemSetting object
Contains information about a system setting. SystemSetting objects can be collected in a SystemSettings
object.
Methods:
Reset()
Save()
Properties:
AllowChange as Boolean.
Class as TVObjectClass.
Customizable as Boolean.
DataType as TVRegistryDataType.
Default as Variant.
Description as String.
ID as String.
Location as TVRegistryLocation.
Name as String.
Session as Session.
Tag as Variant.
Value as Variant.
UsingDefaultValue as Boolean.
SystemSettings object
A collection of SystemSetting objects.
Methods:
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
GetValue(Name) as Variant
Name as String.
GetValueEx(Name, DefaultValue) as Variant
Name as String.
DefaultValue as Variant.
Item(Index, [SearchType]) as SystemSetting object (see p.D-60)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
ResetValue(Name)
Name as String.
SetValue(Name, Value)
Name as String.
Value as Variant.
Properties:
Count as Long.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-60
TELEVANTAGE DEVELOPER ’S GUIDE
NewEnum as IUnknown.
Session as Session.
Tag as Variant.
SystemTarget object
Contains information about a user, similar to the information displayed in ViewPoint’s Extensions view.
SystemTarget objects can be collected in a folder of type tvFolderSystemTarget (see “Folder types” on
page 2-10).
Methods:
ApplyStatus(StatusType, [Password])
StatusType as TVPersonalStatusType (see p.E-24).
Password as String. Optional. Default value is "".
JoinActiveCall([Role]) as Call object (see p.D-8)
Role as TVPartyRole (see p.E-22). Optional. Default value is 0 (tvPartyRolePeer).
CampOnAbort()
CampOnStart([TimeOut])
TimeOut as Long. Optional. Default value is -1.
Supports(Feature) as Boolean
Feature as TVSystemTargetFeature (see p.E-31).
Properties:
Agent as Boolean.
Availability as TVSystemTargetAvailability.
CallForwardingType as TVSystemTargetCallForwardingType.
CallForwardingSystemTarget as SystemTarget.
Class as TVObjectClass.
Comments as String.
DIDList as String.
Extension as String.
FirstName as String.
HasMailbox as Boolean.
ID as String.
JobTitle as String.
LastName as String.
Name as String.
Parent as Folder.
QueueStandby as Boolean.
Session as Session.
StatusDescription as String.
StatusName as String.
Synchronized as Boolean.
Tag as Variant.
TargetType as TVSystemTargetType.
CampOnAbortTime as Date.
Addresses as Addresses.
NTAccountName as String.
OrganizationName as String.
MailboxSize as Long.
MaxMailboxSize as Long.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-61
TELEVANTAGE DEVELOPER ’S GUIDE
Events:
Change(Synchronized)
Synchronized as Boolean.
Remove()
User object
A Session’s User object represents the end user who is currently logged in. User objects can be collected in
a folder of type tvFolderUsers (see “Folder types” on page 2-10). See “The User object” on page 2-6 for a
detailed description of the User object structure.
Methods:
ApplyStatus(Status)
Status as PersonalStatus object (see p.D-29).
ChangePassword(NewPassword, [OldPassword])
NewPassword as String.
OldPassword as String. Optional. Default value is "".
Delete([Mode])
Mode as TVDeleteMode (see p.E-9). Optional. Default value is 0 (tvDeleteMoveToDeleted).
Discard()
Save([Overwrite])
Overwrite as Boolean. Optional.
SetCallingAs(CallingAsID)
CallingAsID as String.
Properties:
ACDDoNotDisturb as Boolean.
AcceptQueueCalls as Boolean.
Addresses as Addresses.
Agents as Agents.
AutoAccountCodeLookup as Boolean.
AnnounceCallBehavior as TVUserAnnounceCallBehavior.
BusinessSchedule as Schedule.
CallBackEnabled as Boolean.
CallBackInterval as Long.
CallHistoryDayLimit as Long.
CallRecordingRecipient as IItem.
CallWaiting as TVUserCallWaiting.
Category as TVUserCategory.
CentrexPBXTransferOnForward as Boolean.
Class as TVObjectClass.
Comments as String.
Company as String.
DefaultAddress as Address.
DefaultAudioDevice as TVAudioDeviceType.
DefaultAudioSkipInterval as Long.
DefaultCentrexPBXTransferOnForward as Boolean.
DefaultContactAction as TVUserDefaultContactAction.
DefaultForwardingAddress as Address.
DefaultForwardRingDuration as Long.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-62
TELEVANTAGE DEVELOPER ’S GUIDE
DefaultPromptForwardeeForPassword as Boolean.
DefaultPromptForwardeeToAccept as Boolean.
DialByNameAction as TVExtensionDialByNameAction.
DIDList as String.
DoNotRingPhone as Boolean.
EmailNotification as Notification.
EmptyDeletedBehavior as TVUserEmptyDeletedBehavior.
EmptyDeletedInterval as Long.
ExchangeMailbox as String.
ExchangeSynchronization as Boolean.
Extension as String.
ExternalCallRingPattern as TVUserRingPattern.
ExternalCallTypes as TVUserExternalCallTypes.
FirstName as String.
ForwardingAddress as Address.
ForwardRingDuration as Long.
FullName as String.
GreetingAndTitleSize as Long.
HoldAudio as AudioClip.
ID as String.
InboundAccountCodeBehavior as TVUserAccountCodeBehavior.
InboundCallBehavior as TVUserInboundCallBehavior.
InternalCallRingPattern as TVUserRingPattern.
JobTitle as String.
LastAppliedStatus as PersonalStatus.
LastName as String.
MailboxSize as Long.
MaxConferenceMembers as Long.
MaxGreetingAndTitleSize as Long.
MaxMailboxSize as Long.
MaxMessageDuration as Long.
MessagePlayBackOrder as TVUserMessageOrder.
NameFormat as TVUserNameFormat.
Operator as IItem.
OutboundAccountCodeBehavior as TVUserAccountCodeBehavior.
OutboundCallBehavior as TVUserOutboundCallBehavior.
PagerNotification as Notification.
Parent as Folder.
Permissions as Permissions.
PlayNewMessageSound as Boolean.
PromptCallerForName as TVUserPromptCallerForName.
PromptForStatusDescription as Boolean.
PromptForStatusDuration as Boolean.
PromptForwardeeForPassword as Boolean.
PromptForwardeeToAccept as Boolean.
RingDuration as Long.
Session as Session.
SendDigitsBehavior as TVUserSendDigitsBehavior.
Station as Station.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-63
TELEVANTAGE DEVELOPER ’S GUIDE
StationNumber as Long.
StatusDescription as String.
Synchronized as Boolean.
Tag as Variant.
TelephonePromptLanguage as LocaleCode.
UseCallRules as Boolean.
VerifyIPAddress as Boolean.
VerifyPhoneAddress as Boolean.
VoiceTitle as AudioClip.
AllowVoiceMailLogonDuringGreeting as Boolean.
CallingAsFirstName as String.
CallingAsID as String.
CallingAsLastName as String.
CallNotification as Notification.
LogCalls as TVLogCallsLevel.
OutboundCallerIDNumber as String.
OutboundCallerIDPresentation as TVOutboundCallerIDPresentation.
Roles as Roles.
ImitateStation as Boolean.
RemoteAddress as Address.
RemotePhoneType as TVUserRemotePhoneType.
NTAccountName as String.
AutoAlertingOffHook as Boolean.
OutboundCallerIDCustomName as String.
OutboundCallerIDName as TVOutboundCallerIDName.
LockedOut as Boolean.
MustChangePassword as Boolean.
PasswordNeverExpires as Boolean.
SIPAccounts as SIPAccounts.
Events:
Change(Synchronized, ChangedBy)
Synchronized as Boolean.
ChangedBy as TVItemChangedBy (see p.E-16).
Remove()
View object
Contain informations about a ViewPoint view. View objects can be collected in a Views object.
Methods:
Export([ExportType]) as String
ExportType as TVExportType (see p.E-13). Optional. Default value is 0 (tvExportTypeView).
Filter([FieldName], [Operator], [Value])
FieldName as String. Optional. Default value is "".
Operator as TVFilterOperator (see p.E-14). Optional. Default value is 0 (tvFilterOperatorEqualTo).
Value as Variant. Optional.
GetData([PreserveState], [Password], [ShowAll], [ResetDataSource]) as Recordset
PreserveState as Boolean. Optional. Default value is -1 (true).
Password as String. Optional.
ShowAll as Boolean. Optional.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-64
TELEVANTAGE DEVELOPER ’S GUIDE
ResetDataSource as Boolean. Optional.
Reset()
Sort([FieldName], [SortOrder])
FieldName as String. Optional. Default value is "".
SortOrder as TVSortOrder. Optional. Default value is 1.
ExportItemClass([ExportType]) as String
ExportType as TVExportType. Optional. Default value is 0.
Properties:
Columns as Columns.
Current as Boolean.
DisplayName as String.
FilterString as String.
ID as String.
Name as String.
Parent as Folder.
ResourceID as Long.
Session as Session.
SortString as String.
SystemDefined as Boolean.
Tag as Variant.
Views object
A collection of View objects. See “The Folder object” on page 2-8 for details about Folder object structures.
Methods:
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as View object (see p.D-64)
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as Folder.
Session as Session.
Tag as Variant.
Workgroup object
Contains information about a workgroup, similar to the information displayed in ViewPoint’s Workgroups
view. Workgroup objects can be collected in a WorkgroupMembers object or in a folder of type
tvFolderWorkgroups (see “Folder types” on page 2-10). See “Workgroup objects” on page 2-20 for a
detailed description of the Workgroup object structure.
Methods:
Delete([Mode])
Mode as TVDeleteMode (see p.E-9). Optional. Default value is 0 (tvDeleteMoveToDeleted).
Discard()
APPENDIX D. CLIENT API OBJECT REFERENCE
D-65
TELEVANTAGE DEVELOPER ’S GUIDE
Save([Overwrite])
Overwrite as Boolean. Optional. Default value is 0 (false).
Properties:
Class as TVObjectClass.
Comments as String.
DialByNameAction as TVExtensionDialByNameAction.
DIDList as String.
Extension as String.
ID as String.
Members as WorkgroupMembers.
Name as String.
Operator as IItem.
Parent as Folder.
RingDuration as Long.
Session as Session.
Synchronized as Boolean.
Tag as Variant.
VoiceTitle as AudioClip.
Events:
Change(Synchronized, ChangedBy)
Synchronized as Boolean.
ChangedBy as TVItemChangedBy (see p.E-16).
Remove()
WorkgroupMember object
Contains either a Contact object or a Workgroup object. WorkgroupMember objects can be collected in a
WorkgroupMembers object.
Properties:
Member as IItem.
ID as String.
Parent as Workgroup.
Position as Long.
Session as Session.
Tag as Variant.
WorkgroupMembers object
A collection of WorkgroupMember objects.
Methods:
Add([Member]) as WorkgroupMember object (see p.D-66)
Member as IItem object (see p.D-19). Optional. Default value is <unprintable IDispatch*>.
Discard()
Exists(Index, [SearchType]) as Boolean
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Item(Index, [SearchType]) as WorkgroupMember object (see p.D-66)
Index as Variant.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-66
TELEVANTAGE DEVELOPER ’S GUIDE
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Remove(Index, [SearchType])
Index as Variant.
SearchType as TVSearchType (see p.E-26). Optional. Default value is 0 (tvSearchDefault).
Save()
Properties:
Count as Long.
NewEnum as IUnknown.
Parent as Workgroup.
Session as Session.
Tag as Variant.
APPENDIX D. CLIENT API OBJECT REFERENCE
D-67
APPENDIX E
APPENDIX E
CLIENT API ENUMERATIONS
TVAddressCategory
tvAddressCategoryNone = 0
tvAddressCategoryBusiness = 1
tvAddressCategoryHome = 2
tvAddressCategoryMobile = 3
tvAddressCategoryBusiness2 = 4
tvAddressCategoryHome2 = 5
tvAddressCategoryOther = 6
tvAddressCategoryEmail = 7
tvAddressCategoryEmail2 = 8
tvAddressCategoryIMAddress = 9
TVAddressError
tvAddressErrorNone = 0
tvAddressErrorInvalidParent = 1851
tvAddressErrorSetCallerIDParent = 1852
tvAddressErrorCallerIDConflict = 1853
tvAddressErrorDefaultToNothing = 1854
tvAddressErrorValueEmpty = 1855
tvAddressErrorCallerIDUsage = 1856
tvAddressErrorDuplicateCategory = 1857
tvAddressErrorInvalidService = 1858
tvAddressErrorInvalidType = 1859
tvAddressErrorUnableToRemoveCallerID = 1860
tvAddressErrorUnableToSetDefault = 1861
tvAddressErrorInvalidCategory = 1862
tvAddressErrorCouldNotConvertToPhone = 1863
tvAddressErrorAmbiguous = 1864
tvAddressErrorInvalidStation = 1865
tvAddressErrorInvalidID = 1866
tvAddressErrorInvalidUseRule = 1867
tvAddressErrorDefaultForUser = 1868
TVAddressFieldValidation
tvAddressFieldValidationMaxDescription = 5000
tvAddressFieldValidationMaxValue = 255
tvAddressFieldValidationMaxAccountCode = 255
tvAddressFieldValidationMaxSIPUserInfo = 255
TELEVANTAGE DEVELOPER ’S GUIDE
TVAddressPhoneComponent
tvAddressPhoneComponentAreaCode = 0
tvAddressPhoneComponentCountryCode = 1
tvAddressPhoneComponentPhoneNumber = 2
tvAddressPhoneComponentUseRules = 3
TVAddressSubType
tvAddressSubTypeDoNotUseRules = 0
tvAddressSubTypeUseRules = 8
tvAddressSubTypePager = 16
TVAddressType
tvAddressTypePhoneNumber = 1
tvAddressTypeIP = 2
tvAddressTypeStation = 3
tvAddressTypeUser = 4
tvAddressTypeEmail = 5
tvAddressTypeCustom = 6
tvAddressTypeExtension = 6
tvAddressTypeName = 7
tvAddressTypeApplication = 8
tvAddressTypePlugin = 8
tvAddressTypeAutoAttendant = 9
tvAddressTypeWorkgroup = 10
tvAddressTypeQueue = 11
tvAddressTypeUnused = 12
tvAddressTypeDID = 12
tvAddressTypeUserDefaultLocation = 13
tvAddressTypeVoiceMail = 14
tvAddressTypeVoiceMailAccess = 15
tvAddressTypeAccountLogon = 15
tvAddressTypeHoldMenu = 16
tvAddressTypeUnparkMenu = 21
tvAddressTypeIMAddress = 22
tvAddressTypeSIP = 23
tvAddressTypeSIPLocalAOR = 24
TVAddressUsageType
tvAddressUsageAddress = 1
tvAddressUsageCallerID = 2
tvAddressUsageBoth = 3
APPENDIX E. CLIENT API ENUMERATIONS
E-2
TELEVANTAGE DEVELOPER ’S GUIDE
TVAgentStatisticInterval
tvAgentStatisticIntervalDay = 0
tvAgentStatisticIntervalShift = 1
TVAgentStatus
tvAgentStatusSignedOut = 0
tvAgentStatusAvailable = 1
tvAgentStatusStandby = 2
tvAgentStatusWrapUp = 3
tvAgentStatusOffering = 4
tvAgentStatusNoAnswer = 5
tvAgentStatusActiveInbound = 6
tvAgentStatusActiveOutbound = 7
tvAgentStatusWrapUpInbound = 3
tvAgentStatusWrapUpOutbound = 8
tvAgentStatusDialing = 9
TVApplicationType
tvApplicationTypeClient = 0
tvApplicationTypeAdministrator = 1
TVAssociatedPersonType
tvAssociatedPersonTypeSystem = 0
tvAssociatedPersonTypeUser = 1
tvAssociatedPersonTypeContact = 2
tvAssociatedPersonTypeUnknown = 3
tvAssociatedPersonTypeQueue = 4
TVAudioDeviceType
tvAudioDevicePhone = 0
tvAudioDeviceSpeakers = 1
tvAudioDeviceInCall = 2
TVAudioState
tvAudioStatePlaying = 1
tvAudioStateRecording = 2
tvAudioStatePausedPlaying = 3
tvAudioStatePausedRecording = 4
tvAudioStateIdle = 5
tvAudioStateUnknown = 6
tvAudioStateRinging = 7
APPENDIX E. CLIENT API ENUMERATIONS
E-3
TELEVANTAGE DEVELOPER ’S GUIDE
TVAudioStateChangeReason
tvAudioStateChangeReasonPlay = 0
tvAudioStateChangeReasonPause = 1
tvAudioStateChangeReasonRecord = 2
tvAudioStateChangeReasonStop = 3
tvAudioStateChangeReasonSilentRange = 4
tvAudioStateChangeReasonDeviceChange = 5
tvAudioStateChangeReasonPlayDone = 6
tvAudioStateChangeReasonPlayInterrupt = 7
tvAudioStateChangeReasonSessionDone = 8
tvAudioStateChangeReasonSessionRinging = 9
tvAudioStateChangeReasonRecordTerminateUser = 10
tvAudioStateChangeReasonRecordTerminateMaxSilence = 11
tvAudioStateChangeReasonRecordTerminateTimeOut = 12
tvAudioStateChangeReasonRecordTerminateDigit = 13
TVAudioType
tvAudioTypeMessage = 2
tvAudioTypeGreeting = 1
tvAudioTypeVoiceTitle = 0
TVAudioVOXFormat
tvAudioVOXFormatServerDefault = 0xffffffff
tvAudioVOXFormatALaw = 0
tvAudioVOXFormatULaw = 1
TVCallAnnounceType
tvCallAnnounceTypeCallee = 0
tvCallAnnounceTypeCaller = 1
TVCallDeclineMode
tvCallDeclineToRoutingList = 0
tvCallDeclineToVoiceMail = 1
tvCallDeclineToVoiceMailScreen = 2
TVCallDirection
tvCallDirectionInbound = 0
tvCallDirectionOutbound = 1
TVCallerIDFormat
tvCallerIDFormatNameAndNumber = 0
tvCallerIDFormatName = 1
tvCallerIDFormatNumber = 2
APPENDIX E. CLIENT API ENUMERATIONS
E-4
TELEVANTAGE DEVELOPER ’S GUIDE
TVCallFeature
tvCallFeatureAnnounce = 0
tvCallFeatureAnswer = 1
tvCallFeatureAssociate = 2
tvCallFeatureConference = 3
tvCallFeatureDecline = 4
tvCallFeatureDeclineToVoiceMail = 5
tvCallFeatureDeclineToVoiceMailScreen = 6
tvCallFeatureDisconnect = 7
tvCallFeatureHold = 8
tvCallFeatureJoin = 9
tvCallFeatureMute = 10
tvCallFeaturePark = 11
tvCallFeatureRecordPause = 12
tvCallFeatureRecordResume = 13
tvCallFeatureRecordStart = 14
tvCallFeatureRecordStop = 15
tvCallFeatureRoleCoach = 16
tvCallFeatureRoleMonitor = 17
tvCallFeatureRolePeer = 18
tvCallFeatureRolePupil = 19
tvCallFeatureScreenMessage = 20
tvCallFeatureSetAccountCode = 21
tvCallFeatureSetRole = 22
tvCallFeatureTransferBlind = 23
tvCallFeatureTransferBlindToApplication = 24
tvCallFeatureTransferSupervisedAbort = 25
tvCallFeatureTransferSupervisedComplete = 26
tvCallFeatureTransferSupervisedConference = 27
tvCallFeatureTransferSupervisedStart = 28
tvCallFeatureUnpark = 29
tvCallFeaturePlayAudio = 30
TVCallFieldValidation
tvCallFieldValidationMaxAccountCode = 255
tvCallFieldValidationMaxComments = 5000
tvCallFieldValidationMaxCustomData = 5000
TVCallGrabAndHoldAudioType
tvCallGrabAndHoldAudioTypeNone = 0
tvCallGrabAndHoldAudioTypeSystemDefault = 1
tvCallGrabAndHoldAudioTypeUserDefault = 2
tvCallGrabAndHoldAudioTypeCustom = 3
APPENDIX E. CLIENT API ENUMERATIONS
E-5
TELEVANTAGE DEVELOPER ’S GUIDE
TVCallHistoryError
tvCallHistoryErrorUnsavedContact = 5501
TVCallHistoryFieldValidation
tvCallHistoryFieldValidationMaxNotes = 5000
tvCallHistoryFieldValidationMaxAccountCode = 255
TVCallHistoryResult
tvCallHistoryResultUnknown = 0xffffffff
tvCallHistoryResultAbandoned = 0
tvCallHistoryResultConnected = 1
tvCallHistoryResultLeftMessage = 2
tvCallHistoryResultBlindTransfer = 3
tvCallHistoryResultSupervisedTransfer = 4
tvCallHistoryResultLogin = 5
tvCallHistoryResultNoAnswer = 6
tvCallHistoryResultLoginFailed = 7
TVCallRecordFormat
tvCallRecordFormatADPCM6K = 0
tvCallRecordFormatADPCM8K = 1
tvCallRecordFormatPCM6K = 2
tvCallRecordFormatPCM8K = 3
TVCallRecordStatus
tvCallRecordStatusIdle = 0
tvCallRecordStatusRecording = 1
tvCallRecordStatusPaused = 2
TVCallRuleCallerTypeCondition
tvCallRuleCallerTypeNone = 0
tvCallRuleCallerTypeInternal = 1
tvCallRuleCallerTypeExternal = 2
tvCallRuleCallerTypeUnidentified = 4
tvCallRuleCallerTypeSpecific = 8
APPENDIX E. CLIENT API ENUMERATIONS
E-6
TELEVANTAGE DEVELOPER ’S GUIDE
TVCallRuleError
tvCallRuleErrorNonUniqueName = 7001
tvCallRuleErrorNoName = 7002
tvCallRuleErrorNonUniquePriority = 7003
tvCallRuleErrorNoPriority = 7004
tvCallRuleErrorInvalidCallerCondition = 7005
tvCallRuleErrorScheduleConditionInvalidCombo = 7006
tvCallRuleErrorCallerConditionInvalidCombo = 7007
tvCallRuleErrorNoConditions = 7008
tvCallRuleErrorNoActions = 7009
tvCallRuleErrorCannotSwapWithDifferentFolder = 7010
TVCallRuleFieldValidation
tvCallRuleFieldValidationMaxName = 255
tvCallRuleFieldValidationMinName = 1
tvCallRuleFieldValidationMinPriority = 1
TVCallRuleRingOverride
tvCallRuleRingDoNotOverride = 0
tvCallRuleRingAlways = 1
tvCallRuleRingNever = 2
TVCallRuleScheduleType
tvCallRuleScheduleTypeNone = 0
tvCallRuleScheduleTypeBusinessHours = 1
tvCallRuleScheduleTypeNonBusinessHours = 2
tvCallRuleScheduleTypeAfterHoursWorkDays = 3
tvCallRuleScheduleTypeNonWorkDays = 4
tvCallRuleScheduleTypeHolidays = 5
tvCallRuleScheduleTypeCustomHours = 6
TVCallType
tvCallTypeConsultation = 3
tvCallTypeNormal = 2
tvCallTypeParked = 5
tvCallTypeTransfer = 4
TVColumnsError
tvColumnsErrorNonUniqueName = 9626
tvColumnsErrorInvalidName = 9627
APPENDIX E. CLIENT API ENUMERATIONS
E-7
TELEVANTAGE DEVELOPER ’S GUIDE
TVContactAssociateFlags
tvContactAssociateNoCallerID = 0
tvContactAssociateCallerIDNumberToCallerID = 1
tvContactAssociateCallerIDNumberToCategory = 2
tvContactAssociateCallerIDNameToCallerID = 4
tvContactAssociateCallbackNumberToCallerID = 8
tvContactAssociateCallbackNumberToCategory = 16
tvContactAssociateCategoryOther = 0
tvContactAssociateCategoryBusiness = 128
tvContactAssociateCategoryHome = 256
tvContactAssociateCategoryMobile = 512
tvContactAssociateCategoryBusiness2 = 1024
tvContactAssociateCategoryHome2 = 2048
tvContactAssociateNoVoiceTitle = 0
tvContactAssociateVoiceTitle = 16384
TVContactError
tvContactErrorDuplicatePIN = 1002
tvContactErrorMissingName = 1003
tvContactErrorCallerIDConflict = 1004
tvContactErrorTelephonePromptLanguage = 1005
tvContactErrorCannotClearDefault = 1006
tvContactErrorNotInAddresses = 1007
tvContactErrorNoPINInSharedFolder = 1008
TVContactFieldValidation
tvContactFieldValidationMaxComments = 5000
tvContactFieldValidationMaxCompanyName = 50
tvContactFieldValidationMaxFirstName = 64
tvContactFieldValidationMaxJobTitle = 30
tvContactFieldValidationMaxLastName = 30
tvContactFieldValidationMaxPIN = 6
tvContactFieldValidationMaxAccountCode = 255
APPENDIX E. CLIENT API ENUMERATIONS
E-8
TELEVANTAGE DEVELOPER ’S GUIDE
TVDefaultFolders
tvFolderAgents = 100
tvFolderAgentStats = 2300
tvFolderCallHistory = 400
tvFolderCallRules = 1000
tvFolderCalls = 300
tvFolderContacts = 500
tvFolderCurrentUser = 0xffffffff
tvFolderDeleted = 0
tvFolderGreetings = 1500
tvFolderMessages = 700
tvFolderPersonalStatus = 1600
tvFolderQueueStats = 2200
tvFolderRoutingLists = 1800
tvFolderServices = 1100
tvFolderSystemTarget = 1700
tvFolderUsers = 1300
tvFolderWorkgroups = 2100
TVDeleteMode
tvDeleteMoveToDeleted = 0
tvDeletePermanent = 1
tvDeletePermanentPromptIfInUse = 2
TVDeviceHookState
tvDeviceHookStateOff = 1
tvDeviceHookStateOn = 0
tvDeviceHookStateUnknown = 2
TVDirectorySearchMode
tvDirectorySearchLastName = 0
tvDirectorySearchFirstName = 1
tvDirectorySearchEither = 2
APPENDIX E. CLIENT API ENUMERATIONS
E-9
TELEVANTAGE DEVELOPER ’S GUIDE
TVError
tvErrorUnexpected = 1001
tvErrorDeleteWhileEdit = 7501
tvErrorMoveInvalidDestination = 7502
tvErrorMoveWhileNew = 7503
tvErrorMoveWhileEdit = 7504
tvErrorSaveOutOfSync = 7505
tvErrorObjectIsDeleted = 7506
tvErrorNoChildID = 7507
tvErrorInvalidIndex = 7508
tvErrorItemNotFound = 7509
tvErrorDuplicateExtension = 7510
tvErrorInvalidExtension = 7511
tvErrorInvalidString = 7512
tvErrorNotImplemented = 7513
tvErrorInvalidEnumValue = 7514
tvErrorCannotMoveToDeleted = 7515
tvErrorPermissionAddNotAllowed = 7516
tvErrorPermissionAddNoUser = 7517
tvErrorPermissionAddNonUser = 7518
tvErrorPermissionAddNewUser = 7519
tvErrorPermissionAddFolderOwner = 7520
tvErrorPermissionAddDuplicateUser = 7521
tvErrorPermissionRemoveNotAllowed = 7522
tvErrorPermissionAccessUseDefault = 7523
tvErrorInvalidLong = 7524
tvErrorDatabaseTimeOut = 7525
tvErrorDatabaseQueryFailed = 7526
tvErrorAudioNoAudioToExport = 7527
tvErrorAudioConversionFailed = 7528
tvErrorAudioInvalidFileFormat = 7529
tvErrorAudioImportNotAllowed = 7530
tvErrorAudioRecordNotAllowed = 7531
tvErrorAudioServerNotRunning = 7532
tvErrorAudioGetTempPath = 7533
tvErrorAudioGetComputerName = 7534
tvErrorAudioGetTempFile = 7535
tvErrorAudioMCICommandFailed = 7536
tvErrorAudioMCICommandAborted = 7537
tvErrorInvalidIItemClass = 7538
tvErrorSubItemAlreadyInCollection = 7539
tvErrorAudioInvalidDeviceID = 7540
tvErrorPermissionCannotSetToNone = 7541
APPENDIX E. CLIENT API ENUMERATIONS
E-10
TELEVANTAGE DEVELOPER ’S GUIDE
tvErrorPermissionDenied = 7542
tvErrorSessionLoggedOff = 7543
tvErrorInvalidDataMember = 7544
tvErrorInvalidTelephonyCharacters = 7545
tvErrorSystemCannotStartServer = 7546
tvErrorSystemCannotShutdownServer = 7547
tvErrorSystemCannotCancelShutdown = 7548
tvErrorCannotSetToNothing = 7549
tvErrorInvalidSNVKCombo = 7550
tvErrorSystemVariableReadOnly = 7551
tvErrorInvalidParentObject = 7552
tvErrorInvalidPassword = 7553
tvErrorInvalidUser = 7554
tvErrorTooManyInvalidLogins = 7555
tvErrorUnsavedObject = 7556
tvErrorDeleteInUseCannotDelete = 7557
tvErrorDeleteInUseCanDelete = 7558
tvErrorPropertyMissing = 7559
tvErrorObjectBeingUpdated = 7560
tvErrorMaxGreetingSpaceExceeded = 7561
tvErrorFailedSendToMailRecipient = 7562
tvErrorDatabaseVersionMismatch = 7563
tvErrorServerVersionMismatch = 7564
tvErrorBuildVersionMismatch = 7565
tvErrorDatabaseConnectionFailed = 7566
tvErrorServerConnectionFailed = 7567
tvErrorServerSyncCallNotAllowed = 7568
tvErrorServerTimeOut = 7569
tvErrorServerUnknown = 7571
tvErrorDatabaseTransactionOpen = 7572
tvErrorDatabaseInvalidCursor = 7573
tvErrorFolderNotFound = 7574
tvErrorParameterRequired = 7575
tvErrorParentSaveBeforeAdd = 7576
tvErrorDatabaseDeadlock = 7577
tvErrorFileCopyFileNotFound = 7578
tvErrorFileCopyDiskFull = 7579
tvErrorAudioImportFailed = 7580
tvErrorServerStationBusy = 7581
tvErrorFileCopyFileAccess = 7582
tvErrorInvalidDevice = 7583
tvErrorServerDBError = 7584
tvErrorServerNoVoxResource = 7585
APPENDIX E. CLIENT API ENUMERATIONS
E-11
TELEVANTAGE DEVELOPER ’S GUIDE
tvErrorServerFileNotFound = 7586
tvErrorServerDiskFull = 7587
tvErrorServerMaxPartiesExceeded = 7588
tvErrorAudioExportRecording = 7589
tvErrorServerConnectionFailedInvalidNetworkSettings = 7590
tvErrorAudioMCIHardwareProblem = 7591
tvErrorInvalidBoolean = 7592
tvErrorDatabaseOutOfMemory = 7593
tvErrorDatabaseSyntaxError = 7594
tvErrorDatabaseUnknown = 7595
tvErrorAudioExportFailed = 7596
tvErrorAudioCopyFileViaDatabaseFailed = 7597
tvErrorAudioMCIFileProblem = 7598
tvErrorAudioMCIUnknown = 7599
tvErrorInsufficientLicenses = 7600
tvErrorInvalidProcedureCall = 7601
tvErrorCallFeatureNotAvailable = 7602
tvErrorAccountCodeIncomplete = 7603
tvErrorAccountCodeInvalid = 7604
tvErrorAccountCodeRequired = 7605
tvErrorInvalidTransferTarget = 7606
tvErrorObjectDiscarded = 7607
tvErrorServerCantTakeQueueCall = 7608
tvErrorServerFileExists = 7609
tvErrorServerNoAvailableTrunks = 7610
tvErrorServerStationOffHook = 7611
tvErrorInvalidFolder = 7612
tvErrorServerNotRunning = 7613
tvErrorInvalidFile = 7614
tvErrorPasswordRequired = 7615
tvErrorServerAnswerFailed = 7616
tvErrorServerInvalidParty = 7617
tvErrorUnregisteredLicensesExpired = 7618
tvErrorPasswordTooShort = 7619
tvErrorPasswordContainsExtension = 7620
tvErrorPasswordContainsPreventedSequence = 7621
tvErrorPasswordMustBeDifferent = 7622
tvErrorAccountLockedOut = 7623
tvErrorAccountLockedOutDueToPasswordFailure = 7624
tvErrorMustChangePassword = 7625
tvErrorPasswordExpired = 7626
tvErrorServerConferenceFailedNoResources = 7627
tvErrorTrialLicensesExpired = 7628
APPENDIX E. CLIENT API ENUMERATIONS
E-12
TELEVANTAGE DEVELOPER ’S GUIDE
tvErrorServerNotInstalled = 7629
tvErrorServerDisconnectedParty = 7630
tvErrorServerCantTransfer = 7631
tvErrorServerTargetCantAcceptTransfer = 7632
tvErrorServerTargetCantAcceptTransferBlind = 7633
tvErrorServerTargetCantAcceptTransferSupervised = 7634
tvErrorServerTargetCantAcceptTransferredConferences = 7635
tvErrorServerCantCompleteTransferNoTransferCall = 7636
tvErrorServerCantCompleteTransferNoConsultationCall = 7637
tvErrorServerTransferConvertedSupervisedToBlind = 7638
tvErrorInvalidCallingAs = 7639
tvErrorServerNoActiveCall = 7640
tvErrorServerDialingNotComplete = 7641
tvErrorServerCantRecordCallNoMailbox = 7642
tvErrorCannotCreateFirewallException = 7643
tvErrorCannotUpdateSystemDCOMSettings = 7644
tvErrorServerNoMediaSession = 7645
tvErrorServerCannotReachClient = 7646
TVExportFormatType
tvExportFormatTypeXML = 0
tvExportFormatTypeCSV = 1
TVExportType
tvExportTypeView = 0
tvExportTypeData = 1
TVExtensionDialByNameAction
tvExtensionDialByNameActionDoNotList = 0
tvExtensionDialByNameActionListAndPlayExtension = 1
tvExtensionDialByNameActionList = 2
TVFieldDataType
tvFieldDataTypeNumber = 0
tvFieldDataTypeBoolean = 1
tvFieldDataTypeString = 2
tvFieldDataTypeDateTime = 3
tvFieldDataTypeIcon = 4
APPENDIX E. CLIENT API ENUMERATIONS
E-13
TELEVANTAGE DEVELOPER ’S GUIDE
TVFilterOperator
tvFilterOperatorEqualTo = 0
tvFilterOperatorLessThan = 1
tvFilterOperatorGreaterThan = 2
tvFilterOperatorLike = 3
tvFilterOperatorLessThanOrEqualTo = 4
tvFilterOperatorGreaterThanOrEqualTo = 5
tvFilterOperatorNotEqualTo = 6
TVFinalActionError
tvFinalActionErrorAddressInvalid = 9451
tvFinalActionErrorNoAddress = 9453
tvFinalActionErrorSetAddressToNothing = 9455
TVFolderError
tvFolderErrorInvalidView = 9501
tvFolderErrorUnsavedView = 9502
tvFolderErrorNoView = 9503
tvFolderErrorNoName = 9504
tvFolderErrorDeleteNotAllowed = 9505
tvFolderErrorMoveNotAllowed = 9506
tvFolderErrorRenameNotAllowed = 9507
TVFolderFieldValidation
tvFolderFieldValidationMaxName = 255
tvFolderFieldValidationMinName = 1
TVFoldersError
tvFoldersErrorAddInvalidParent = 9551
TVGreetingError
tvGreetingErrorNonUniqueName = 9001
tvGreetingErrorNoName = 9002
tvGreetingErrorNoAudio = 9003
tvGreetingErrorDeleteDefaultGreeting = 9004
tvGreetingErrorSetDefaultToFalse = 9005
tvGreetingErrorSetActiveToFalse = 9006
tvGreetingErrorDeleteActiveGreeting = 9007
TVGreetingFieldValidation
tvGreetingFieldValidationMaxName = 255
tvGreetingFieldValidationMinName = 1
tvGreetingFieldValidationMaxText = 5000
APPENDIX E. CLIENT API ENUMERATIONS
E-14
TELEVANTAGE DEVELOPER ’S GUIDE
TVImportContactField
tvImportContactFieldFirstName = 1
tvImportContactFieldLastName = 2
tvImportContactFieldTitle = 3
tvImportContactFieldComment = 4
tvImportContactFieldCompany = 5
tvImportContactFieldBusinessPhone = 6
tvImportContactFieldBusinessPhoneAccessCode = 7
tvImportContactFieldBusinessPhone2 = 8
tvImportContactFieldBusinessPhone2AccessCode = 9
tvImportContactFieldHomePhone = 10
tvImportContactFieldHomePhoneAccessCode = 11
tvImportContactFieldHomePhone2 = 12
tvImportContactFieldHomePhone2AccessCode = 13
tvImportContactFieldMobilePhone = 14
tvImportContactFieldMobilePhoneAccessCode = 15
tvImportContactFieldOtherPhone = 16
tvImportContactFieldOtherPhoneAccessCode = 17
tvImportContactFieldPIN = 18
tvImportContactFieldCallerIDs = 19
tvImportContactFieldAccountCode = 20
tvImportContactFieldEmail = 21
tvImportContactFieldEmail2 = 22
tvImportContactFieldIM = 23
tvImportContactFieldBusinessPhoneDescription = 24
tvImportContactFieldBusinessPhone2Description = 25
tvImportContactFieldHomePhoneDescription = 26
tvImportContactFieldHomePhone2Description = 27
tvImportContactFieldMobilePhoneDescription = 28
tvImportContactFieldOtherPhoneDescription = 29
tvImportContactFieldEmailDescription = 30
tvImportContactFieldEmail2Description = 31
tvImportContactFieldIMDescription = 32
tvImportContactFieldLocaleCode = 33
TVImportHeaderPosition
tvImportHeaderPositionNone = 0
tvImportHeaderPositionFirstRecord = 1
TVImportOptions
tvImportOptionsReplaceDuplicate = 0
tvImportOptionsAllowDuplicate = 1
tvImportOptionsNoDuplicate = 2
APPENDIX E. CLIENT API ENUMERATIONS
E-15
TELEVANTAGE DEVELOPER ’S GUIDE
TVInterface
tvInterfaceIItem = 0
tvInterfaceIAssocate = 1
tvInterfaceICOMSecurity = 2
tvInterfaceIWindowsSecurity = 3
TVItemChangedBy
tvItemChangedByThisInstance = 0
tvItemChangedByAnotherInstance = 1
TVItemStatus
tvItemStatusNew = 0
tvItemStatusReady = 1
tvItemStatusModified = 2
tvItemStatusDeleted = 3
TVLicenseStatus
tvLicenseStatusUnlicensed = 0
tvLicenseStatusUnregistered = 1
tvLicenseStatusRegistered = 2
tvLicenseStatusRegisteredWithHardwareChange = 3
tvLicenseStatusTrial = 4
TVLicenseType
tvLicenseServer = 0
tvLicenseStation = 1
tvLicenseTrunk = 2
tvLicenseClient = 3
tvLicenseIP = 4
tvLicenseACD = 5
tvLicenseReporter = 6
TVLocaleCallerIDFormat
CallerIDFormatName = 1
CallerIDFormatNameAndNumber = 0
CallerIDFormatNumber = 2
APPENDIX E. CLIENT API ENUMERATIONS
E-16
TELEVANTAGE DEVELOPER ’S GUIDE
TVLocaleDateTimeFormat
DateTimeFormatDate = 0
DateTimeFormatDateTime = 2
DateTimeFormatDateTimeDetailed = 11
DateTimeFormatDateTimeLong = 3
DateTimeFormatTimeLong = 12
DateTimeFormatTime = 1
TVLocalePictureFormat
PictureFormatBitmap = 0
PictureFormatCursor = 2
PictureFormatIcon = 1
TVLogCallsLevel
tvLogCallsLevelNone = 0
tvLogCallsLevelInboundOnly = 1
tvLogCallsLevelOutboundOnly = 2
tvLogCallsLevelAll = 3
TVMessageAssociatedPersonType
tvMessageAssociatedPersonTypeSystem = 0
tvMessageAssociatedPersonTypeUser = 1
tvMessageAssociatedPersonTypeContact = 2
tvMessageAssociatedPersonTypeUnknown = 3
tvMessageAssociatedPersonTypeQueue = 4
TVMessageError
tvMessageErrorUnsavedContact = 1501
tvMessageErrorForwardUnsent = 1502
tvMessageErrorReplyUnsent = 1503
tvMessageErrorSaveUnsent = 1504
tvMessageErrorSendExisting = 1505
tvMessageErrorNoRecipient = 1506
tvMessageErrorNoAudio = 1507
tvMessageErrorNoReplyRecipient = 1508
tvMessageErrorAssociateNotAllowed = 1509
tvMessageErrorConfidentialNotAllowed = 1510
tvMessageErrorConfidentialMove = 1511
TVMessageFieldValidation
tvMessageFieldValidationMaxComments = 5000
APPENDIX E. CLIENT API ENUMERATIONS
E-17
TELEVANTAGE DEVELOPER ’S GUIDE
TVMessageStatus
tvMessageStatusNormal = 0
tvMessageStatusForward = 1
tvMessageStatusReply = 2
TVMessageType
tvMessageTypeVoiceMail = 0
tvMessageTypeCallRecording = 1
tvMessageTypeNthCallRecording = 2
tvMessageTypeSystemCallRecording = 3
TVNameFormat
tvNameFormatFirstLast = 0
tvNameFormatLastFirst = 1
tvNameFormatUserSpecific = 2
TVNotificationError
tvNotificationErrorNoAddress = 2851
tvNotificationErrorAddressTypeMismatch = 2852
TVNotificationFieldValidation
tvNotificationFieldValidationMaxLevel = 2
tvNotificationFieldValidationMaxMessageAction = 3
TVNotificationLevel
tvNotificationLevelNone = 0
tvNotificationLevelAll = 1
tvNotificationLevelUrgentOnly = 2
TVNotificationMessageAction
tvNotificationMessageActionDoNotAttach = 0
tvNotificationMessageActionAttach = 1
tvNotificationMessageActionttachAndMarkHeard = 2
tvNotificationMessageActionAttachAndDelete = 3
TVNotificationType
tvNotificationTypeEmail = 1
tvNotificationTypePager = 2
tvNotificationTypeCall = 3
APPENDIX E. CLIENT API ENUMERATIONS
E-18
TELEVANTAGE DEVELOPER ’S GUIDE
TVObjectClass
tvClassSession = 1
tvClassFolder = 10
tvClassSystem = 11
tvClassPermission = 20
tvClassAddress = 21
tvClassSetting = 22
tvClassView = 23
tvClassShortcut = 24
tvClassSchedule = 27
tvClassScheduledDay = 28
tvClassScheduledDate = 29
tvClassVariable = 33
tvClassNotification = 34
tvClassParty = 35
tvClassAudioClip = 36
tvClassField = 41
tvClassColumn = 42
tvClassNotifyScheduleItem = 43
tvClassRoutingListAction = 44
tvClassRoutingListFinalAction = 45
tvClassReportingCategory = 46
tvClassSystemSetting = 47
tvClassShortcutGroup = 48
tvClassStationType = 49
tvClassStationFeature = 50
tvClassStationParameter = 51
tvClassSIPAccount = 60
tvClassSkillDefinition = 65
tvClassAgent = 101
tvClassAgentStat = 2301
tvClassAutoAttendant = 201
tvClassCall = 301
tvClassCallHistory = 401
tvClassCallHistoryParty = 402
tvClassCallRule = 1001
tvClassContact = 501
tvClassDeviceStation = 601
tvClassGreeting = 1501
tvClassIVRPlugIn = 1401
tvClassMessage = 701
tvClassPersonalStatus = 1601
tvClassQueue = 901
APPENDIX E. CLIENT API ENUMERATIONS
E-19
TELEVANTAGE DEVELOPER ’S GUIDE
tvClassQueueStat = 2201
tvClassRoutingList = 1801
tvClassServiceInternet = 1101
tvClassServicePhone = 1102
tvClassServicePhoneGateway = 1103
tvClassServiceSwitch = 1104
tvClassServiceSwitchGateway = 1105
tvClassServiceRouting = 1106
tvClassServiceSIP = 1107
tvClassServiceSIPPhoneGateway = 1108
tvClassServiceSIPSwitchGateway = 1109
tvClassSystemTarget = 1701
tvClassTrunkGroupSIP = 1206
tvClassUser = 1301
tvClassUserGroup = 1302
tvClassRole = 1302
tvClassWorkgroup = 2101
tvClassSIPServer = 2701
TVObjectDialingServiceClass
tvDialingServiceClassPhone = 1102
tvDialingServiceClassSwitch = 1104
tvDialingServiceClassInternet = 1101
tvDialingServiceClassPhoneGateway = 1103
tvDialingServiceClassSwitchGateway = 1105
tvDialingServiceClassRouting = 1106
APPENDIX E. CLIENT API ENUMERATIONS
E-20
TELEVANTAGE DEVELOPER ’S GUIDE
TVObjectItemClass
tvItemClassNoItem = 0xffffffff
tvItemClassDeletedItem = 0
tvItemClassAgentItem = 100
tvItemClassAutoAttendantItem = 200
tvItemClassCallItem = 300
tvItemClassCallHistoryItem = 400
tvItemClassContactItem = 500
tvItemClassDeviceItem = 600
tvItemClassMessageItem = 700
tvItemClassQueueItem = 900
tvItemClassCallRuleItem = 1000
tvItemClassServiceItem = 1100
tvItemClassTrunkGroupItem = 1200
tvItemClassUserItem = 1300
tvItemClassIVRPlugInItem = 1400
tvItemClassGreetingItem = 1500
tvItemClassPersonalStatusItem = 1600
tvItemClassSystemTargetItem = 1700
tvItemClassRoutingListItem = 1800
tvItemClassWorkgroupItem = 2100
tvItemClassQueueStatItem = 2200
tvItemClassAgentStatItem = 2300
tvItemClassSIPServerItem = 2700
TVOutboundCallerIDName
tvOutboundCallerIDNameSystemDefault = 0
tvOutboundCallerIDNameOrganization = 1
tvOutboundCallerIDNameUserName = 2
tvOutboundCallerIDNameCustom = 3
TVOutboundCallerIDPresentation
tvOutboundCallerIDPresentationSystemDefault = 0
tvOutboundCallerIDPresentationNetwork = 1
tvOutboundCallerIDPresentationAvailable = 2
tvOutboundCallerIDPresentationRestricted = 3
TVPartyDirection
tvPartyDirectionInbound = 0
tvPartyDirectionOutbound = 1
APPENDIX E. CLIENT API ENUMERATIONS
E-21
TELEVANTAGE DEVELOPER ’S GUIDE
TVPartyFeature
tvPartyFeatureAnnounce = 0
tvPartyFeatureAnswer = 1
tvPartyFeatureAssociate = 2
tvPartyFeatureDisconnect = 7
tvPartyFeatureHold = 8
tvPartyFeatureMute = 10
tvPartyFeatureRoleCoach = 16
tvPartyFeatureRoleMonitor = 17
tvPartyFeatureRolePeer = 18
tvPartyFeatureRolePupil = 19
tvPartyFeatureSetRole = 22
TVPartyHistoryResult
tvPartyHistoryResultNone = 0
tvPartyHistoryResultHungUp = 1
tvPartyHistoryResultHungUpUpon = 2
tvPartyHistoryResultAbandoned = 3
tvPartyHistoryResultVoiceMail = 4
tvPartyHistoryResultBlindTransfer = 5
tvPartyHistoryResultSupervisedTransfer = 6
tvPartyHistoryResultMerged = 7
tvPartyHistoryResultLoggedIn = 8
tvPartyHistoryResultDirectVoiceMail = 9
tvPartyHistoryResultNoAnswer = 10
tvPartyHistoryResultAbandonedUpon = 11
tvPartyHistoryResultLoginFailed = 12
TVPartyRole
tvPartyRolePeer = 0
tvPartyRoleMonitor = 1
tvPartyRolePupil = 2
tvPartyRoleCoach = 3
tvPartyRolePeerListener = 4
APPENDIX E. CLIENT API ENUMERATIONS
E-22
TELEVANTAGE DEVELOPER ’S GUIDE
TVPartyStatus
_tvPartyStatusMax = 38
tvPartyStatusUnknown = 37
tvPartyStatusNone = 0
tvPartyStatusActive = 1
tvPartyStatusAlerting = 29
tvPartyStatusApplication = 33
tvPartyStatusAttempting = 28
tvPartyStatusAttemptingTransfer = 35
tvPartyStatusCalling = 23
tvPartyStatusDialing = 30
tvPartyStatusDisconnected = 3
tvPartyStatusGreetingListening = 26
tvPartyStatusGreetingPlaying = 6
tvPartyStatusHold = 4
tvPartyStatusMessageLeaving = 8
tvPartyStatusMessageScreening = 9
tvPartyStatusMessageTaking = 7
tvPartyStatusOffering = 5
tvPartyStatusParked = 25
tvPartyStatusQueued = 27
tvPartyStatusRinging = 2
tvPartyStatusTransferring = 34
tvPartyStatusWaiting = 11
TVPermissionAccessLevel
tvPermissionAccessLevelUnknown = 0xffffffff
tvPermissionAccessLevelNone = 0
tvPermissionAccessLevelReadOnly = 1
tvPermissionAccessLevelFull = 2
TVPermissionType
tvPermissionTypeBoolean = 0
tvPermissionTypeAccessLevel = 1
TVPersonalStatusCallForwarding
tvPersonalStatusCallForwardingUseDefault = 0
tvPersonalStatusCallForwardingSetOn = 1
tvPersonalStatusCallForwardingSetOff = 2
APPENDIX E. CLIENT API ENUMERATIONS
E-23
TELEVANTAGE DEVELOPER ’S GUIDE
TVPersonalStatusError
tvPersonalStatusErrorNonUniqueName = 8501
tvPersonalStatusErrorNoName = 8502
tvPersonalStatusErrorNoCategory = 8503
tvPersonalStatusErrorInvalidCallForwarding = 8504
tvPersonalStatusErrorCannotDeleteLAPS = 8505
tvPersonalStatusErrorSystemDefinedStatus = 8506
TVPersonalStatusFieldValidation
tvPersonalStatusFieldValidationLengthMaxDescription = 100
tvPersonalStatusFieldValidationLengthMaxName = 50
TVPersonalStatusType
tvPersonalStatusTypeAvailable = 0
tvPersonalStatusTypeDoNotDisturb = 1
tvPersonalStatusTypeInAMeeting = 2
tvPersonalStatusTypeOutOfTheOffice = 3
tvPersonalStatusTypeVacation = 4
tvPersonalStatusTypeAvailableACDOnly = 5
tvPersonalStatusTypeAvailableNonACD = 6
tvPersonalStatusTypeBreak = 7
tvPersonalStatusTypeCustom = 8
TVPhoneType
tvPhoneTypeUnspecified = 0
tvPhoneTypeH323 = 17
tvPhoneTypeH323PMIG = 18
tvPhoneTypeH323Uniden = 19
tvPhoneTypeH323Softphone = 20
TVRecipientError
tvRecipientErrorAddNotAllowed = 1950
tvRecipientErrorDuplicateRecipient = 1951
tvRecipientErrorDiscardNotAllowed = 1952
tvRecipientErrorRemoveNotAllowed = 1953
tvRecipientErrorSaveNotAllowed = 1954
tvRecipientErrorAddInvalidObject = 1955
tvRecipientErrorAddNoMailbox = 1956
TVRegistryDataType
tvRegistryDataTypeBoolean = 0
tvRegistryDataTypeLong = 1
tvRegistryDataTypeString = 2
APPENDIX E. CLIENT API ENUMERATIONS
E-24
TELEVANTAGE DEVELOPER ’S GUIDE
TVRegistryLocation
tvRegistryLocationDatabasePerUser = 0
tvRegistryLocationDatabasePerSystem = 1
tvRegistryLocationRegistryCurrentUser = 2
tvRegistryLocationRegistryLocalMachine = 3
TVRoutingListActionError
tvRoutingListActionErrorNoAddress = 9401
tvRoutingListActionErrorSetAddressToNothing = 9402
tvRoutingListActionErrorSetPromptCallerGreeting = 9403
tvRoutingListActionErrorNoVoiceTitle = 9404
tvRoutingListActionErrorInvalidRingDuration = 9405
tvRoutingListActionErrorCannotForward = 9406
TVRoutingListActionType
tvRoutingListActionTypeCallMeWhereIAm = 1
tvRoutingListActionTypeCallAddress = 2
tvRoutingListActionTypePlayGreeting = 3
tvRoutingListActionTypePause = 4
TVRoutingListError
tvRoutingListErrorDeleteDefault = 9251
tvRoutingListErrorNoName = 9252
tvRoutingListErrorNonUniqueName = 9253
tvRoutingListErrorSetDefaultToFalse = 9254
tvRoutingListErrorEditSystemRL = 9255
tvRoutingListErrorSetActiveToFalse = 9256
tvRoutingListErrorDeleteActive = 9257
TVRoutingListFieldValidation
tvRoutingListFieldValidationMaxName = 128
tvRoutingListFieldValidationMinName = 1
TVRoutingListFinalActionType
tvRoutingListFinalActionTypeNone = 0
tvRoutingListFinalActionTypeTakeMessage = 1
tvRoutingListFinalActionTypeDisconnect = 2
tvRoutingListFinalActionTypeTransferToExtension = 3
tvRoutingListFinalActionTypePauseAndRestart = 4
tvRoutingListFinalActionTypePlayBusySignal = 5
tvRoutingListFinalActionTypeTransferToVMail = 6
tvRoutingListFinalActionTypeHangup = 7
tvRoutingListFinalActionTypeGrabAndHold = 8
APPENDIX E. CLIENT API ENUMERATIONS
E-25
TELEVANTAGE DEVELOPER ’S GUIDE
TVRoutingListPlayGreetingType
tvRoutingListPlayGreetingTypeDoNotPlay = 0
tvRoutingListPlayGreetingTypeSystemHoldGreeting = 1
tvRoutingListPlayGreetingTypeCustomGreeting = 2
tvRoutingListPlayGreetingTypeSystemCampOnGreeting = 3
TVRoutingListPromptCallerType
tvRoutingListPromptCallerTypeDoNotPrompt = 0
tvRoutingListPromptCallerTypeSystemGreeting = 1
tvRoutingListPromptCallerTypeCustomGreeting = 2
TVScheduledDaysWeekday
tvScheduledDaysWeekdaySunday = 1
tvScheduledDaysWeekdayMonday = 2
tvScheduledDaysWeekdayTuesday = 3
tvScheduledDaysWeekdayWednesday = 4
tvScheduledDaysWeekdayThursday = 5
tvScheduledDaysWeekdayFriday = 6
tvScheduledDaysWeekdaySaturday = 7
TVScheduleItemFieldValidation
tvScheduleItemFieldValidationMaxType = 5
TVScheduleItemType
tvScheduleItemTypeBusinessHours = 0
tvScheduleItemTypeNonBusinessHours = 1
tvScheduleItemTypeAfterHoursWorkDays = 2
tvScheduleItemTypeNonWorkDays = 3
tvScheduleItemTypeCustomHours = 4
tvScheduleItemTypeHolidays = 5
TVSchedulesError
tvSchedulesErrorDuplicateName = 2801
TVSearchType
tvSearchDefault = 0
tvSearchID = 1
tvSearchOrdinal = 2
tvSearchKey = 3
TVServerConnectionLevel
tvServerConnectionLevelBasic = 0xffffffff
tvServerConnectionLevelFull = 0
APPENDIX E. CLIENT API ENUMERATIONS
E-26
TELEVANTAGE DEVELOPER ’S GUIDE
TVServerStatus
tvServerLicenseError = 6
tvServerStarting = 2
tvServerStarted = 3
tvServerShutDownScheduled = 5
tvServerStopping = 4
tvServerStopped = 1
tvServerUnknown = 0
TVSessionStatus
tvSessionStatusLoggedOff = 0
tvSessionStatusLoggedOn = 1
tvSessionStatusLoggedOnWithoutCalls = 2
TVSessionValidateLogonResult
tvSessionValidateLogonResultSuccess = 0
tvSessionValidateLogonResultInvalidUser = 1
tvSessionValidateLogonResultInvalidPassword = 2
tvSessionValidateLogonResultInvalidStation = 3
tvSessionValidateLogonResultInvalidNoInternetService = 4
tvSessionValidateLogonResultInvalidInternetAddressPermissionDenied = 5
tvSessionValidateLogonResultInvalidNoSIPService = 6
TVShortcutError
tvShortcutErrorGroupNameRequired = 4401
tvShortcutErrorShortcutNameandFolderRequired = 4402
TVShortcutFieldValidation
tvShortcutFieldValidationMaxName = 255
tvShortcutFieldValidationMinName = 1
TVShortcutGroupFieldValidation
tvShortcutGroupFieldValidationMaxName = 255
tvShortcutGroupFieldValidationMinName = 1
TVShortcutGroupIconType
tvShortcutGroupIconTypeLarge = 0
tvShortcutGroupIconTypeSmall = 1
APPENDIX E. CLIENT API ENUMERATIONS
E-27
TELEVANTAGE DEVELOPER ’S GUIDE
TVSIPAccountError
tvSIPAccountErrorNoAORUserPart = 3001
tvSIPAccountErrorNoSIPSpan = 3002
tvSIPAccountErrorNoSIPServer = 3003
tvSIPAccountErrorNoUserName = 3004
TVSIPAccountFieldValidation
tvSIPAccountFieldValidationMaxAORUserPart = 63
tvSIPAccountFieldValidationMaxDisplayName = 255
tvSIPAccountFieldValidationMaxUserName = 255
tvSIPAccountFieldValidationMaxPassword = 255
TVSIPAccountType
tvSIPAccountTypeLocal = 0
tvSIPAccountTypeExternal = 1
TVSIPServerAddressFormat
tvSIPServerAddressFormatFullyQualifiedDomainName = 0
tvSIPServerAddressFormatRegisteredAddressOfRecord = 1
TVSortOrder
tvSortToggle = 0
tvSortAscending = 1
tvSortDescending = 2
TVSpecialUsers
tvEveryOne = 0xffffffff
TVStationAnalogPhoneType
tvStationAnalogPhoneTypeStandard = 0
tvStationAnalogPhoneTypeAastra = 1
tvStationAnalogPhoneTypeCybiolink = 2
tvStationAnalogPhoneTypeVerticalAastraPowertouch = 3
tvStationAnalogPhoneTypeVerticalFanstel = 4
tvStationAnalogPhoneTypeVerticalIntelliVoice = 5
TVStationButtonFieldValidation
tvStationButtonFieldValidationMinRingDelay = 0xffffffff
tvStationButtonFieldValidationMaxRingDelay = 999
APPENDIX E. CLIENT API ENUMERATIONS
E-28
TELEVANTAGE DEVELOPER ’S GUIDE
TVStationError
tvStationErrorFeatureRequired = 2501
tvStationErrorStationRequired = 2502
tvStationErrorButtonAlreadyDefined = 2503
tvStationErrorAddressRequired = 2504
tvStationErrorButtonSetAddressToNothing = 2505
TVStationExternalPhoneDestination
tvStationExternalPhoneDestinationNone = 0
tvStationExternalPhoneDestinationExternalNumber = 16
tvStationExternalPhoneDestinationGenericH323 = 17
tvStationExternalPhoneDestinationIntelPBXIPMediaGateway = 18
tvStationExternalPhoneDestinationUnidenIP = 19
tvStationExternalPhoneDestinationTeleVantageH323 = 20
tvStationExternalPhoneDestinationSIP = 24
TVStationFeatureParameterType
tvStationFeatureParameterTypeNone = 0xffffffff
tvStationFeatureParameterTypeAddress = 0
tvStationFeatureParameterTypeStationNumber = 1
tvStationFeatureParameterTypeRingDelay = 2
tvStationFeatureParameterTypePersonalStatusType = 3
tvStationFeatureParameterTypeMailbox = 4
TVStationFieldValidation
tvStationFieldValidationMaxDefaultIdleString = 16
tvStationFieldValidationMaxDirectConnectDialString = 255
tvStationFieldValidationMaxDefaultIdleString_v7 = 40
tvStationFieldValidationMinCadenceID = 1
tvStationFieldValidationMaxCadenceID = 16
tvStationFieldValidationMinDefaultVolume = 1
tvStationFieldValidationMaxDefaultVolume = 21
TVStationIdentificationOptions
tvStationIdentificationOptionsNone = 0
tvStationIdentificationOptionsUsePLARConnectionString = 1
tvStationIdentificationOptionsAutomaticallyLogon = 2
TVStationIdentificationOptionsUseIPAddress = 4
APPENDIX E. CLIENT API ENUMERATIONS
E-29
TELEVANTAGE DEVELOPER ’S GUIDE
TVStationPadCharacter
tvStationPadCharacterPound = 35
tvStationPadCharacterStar = 42
tvStationPadCharacterZero = 48
tvStationPadCharacterOne = 49
tvStationPadCharacterTwo = 50
tvStationPadCharacterThree = 51
tvStationPadCharacterFour = 52
tvStationPadCharacterFive = 53
tvStationPadCharacterSix = 54
tvStationPadCharacterSeven = 55
tvStationPadCharacterEight = 56
tvStationPadCharacterNine = 57
TVStationPadExtension
tvStationPadExtensionBefore = 0
tvStationPadExtensionAfter = 1
tvStationPadExtensionDoNotPad = 2
TVStationPhoneFeatures
tvStationPhoneFeaturesNone = 0
tvStationPhoneFeaturesCID = 1
tvStationPhoneFeaturesCallWaitingCID = 2
tvStationPhoneFeaturesMessageIndicator = 4
tvStationPhoneFeaturesStutter = 8
TVStationTransferMode
tvStationTransferModeDirect = 0
tvStationTransferModeAssisted = 1
TVStationUsage
tvStationUsageOwner = 0
tvStationUsageOwnerAndForwardCalls = 1
tvStationUsageVisitor = 2
TVStoreHistoryType
tvStoreHistoryNone = 0
tvStoreHistoryExternalOnly = 1
tvStoreHistoryAll = 2
APPENDIX E. CLIENT API ENUMERATIONS
E-30
TELEVANTAGE DEVELOPER ’S GUIDE
TVSystemTargetAvailability
tvSystemTargetAvailabilityAvailable = 0
tvSystemTargetAvailabilityInCall = 1
tvSystemTargetAvailabilityRinging = 2
tvSystemTargetAvailabilityWrapUp = 3
TVSystemTargetCallForwardingType
tvSystemTargetCallForwardingTypeNone = 0
tvSystemTargetCallForwardingTypeInternal = 1
tvSystemTargetCallForwardingTypeExternal = 2
TVSystemTargetError
tvSystemTargetErrorCannotDelete = 8751
tvSystemTargetErrorCannotDiscard = 8752
tvSystemTargetErrorCannotMove = 8753
tvSystemTargetErrorCannotSave = 8754
TVSystemTargetFeature
tvSystemTargetFeaturePersonalCallsCanBeMonitored = 0
tvSystemTargetFeaturePersonalCallsCanBeCoached = 1
tvSystemTargetFeaturePersonalCallsCanBeJoined = 2
TVSystemTargetType
tvSystemTargetTypeAutoAttendant = 201
tvSystemTargetTypeIVRPlugIn = 1401
tvSystemTargetTypeQueue = 901
tvSystemTargetTypeUser = 1301
tvSystemTargetTypeWorkgroup = 2101
TVUserAccountCodeBehavior
tvUserAccountCodeBehaviorNone = 0
tvUserAccountCodeBehaviorRequire = 1
tvUserAccountCodeBehaviorVerify = 2
TVUserAnnounceCallBehavior
tvUserAnnounceCallBehaviorNone = 0
tvUserAnnounceCallBehaviorCallerInternal = 1
tvUserAnnounceCallBehaviorCallerExternal = 2
tvUserAnnounceCallBehaviorCallerExternalDirect = 4
tvUserAnnounceCallBehaviorCallee = 8
tvUserAnnounceCallBehaviorTransferrer = 16
APPENDIX E. CLIENT API ENUMERATIONS
E-31
TELEVANTAGE DEVELOPER ’S GUIDE
TVUserCallWaiting
tvUserCallWaitingDisabled = 0
tvUserCallWaitingEnabled = 1
tvUserCallWaitingEnabledWithoutBeep = 2
TVUserCategory
tvUserCategoryLocalUser = 0
tvUserCategoryACDUser = 1
tvUserCategoryRemoteUser = 3
TVUserDefaultContactAction
tvUserDefaultContactActionOpen = 0
tvUserDefaultContactActionCall = 1
TVUserEmptyDeletedBehavior
tvUserEmptyDeletedBehaviorNone = 0
tvUserEmptyDeletedBehaviorOnExit = 1
tvUserEmptyDeletedBehaviorInterval = 2
TVUserError
tvUserErrorInvalidDIDNumber = 2001
tvUserErrorNoLastName = 2002
tvUserErrorServerSettingsMissing = 2003
tvUserErrorDuplicateFullName = 2004
tvUserErrorNotInAddresses = 2005
tvUserErrorInvalidDefaultAddress = 2006
tvUserErrorPasswordFailNoMatch = 2009
tvUserErrorCannotDeleteSystemUser = 2012
tvUserErrorCannotRenameSystemUser = 2013
tvUserErrorPasswordInvalidCharacters = 2014
tvUserErrorNonSystemSchedule = 2015
tvUserErrorInvalidCallForwarding = 2016
TVUserExternalCallTypes
tvUserExternalCallTypesNone = 0
tvUserExternalCallTypesLocal = 1
tvUserExternalCallTypesLocalLong = 2
tvUserExternalCallTypesLocalLongIntl = 3
APPENDIX E. CLIENT API ENUMERATIONS
E-32
TELEVANTAGE DEVELOPER ’S GUIDE
TVUserFieldValidation
tvUserFieldValidationMaxComment = 5000
tvUserFieldValidationMaxCompany = 50
tvUserFieldValidationMaxDIDList = 500
tvUserFieldValidationMaxExchangeMailbox = 5000
tvUserFieldValidationMinExtension = 1
tvUserFieldValidationMaxExtension = 5
tvUserFieldValidationMaxFirstName = 64
tvUserFieldValidationMaxJobTitle = 30
tvUserFieldValidationMaxLastName = 30
tvUserFieldValidationMaxPassword = 12
tvUserFieldValidationMaxExtensionEx = 10
tvUserFieldValidationMaxNTAccountName = 255
tvUserFieldValidationMinConferenceMembers = 0xffffffff
tvUserFieldValidationMinGreetingTitleSize = 1
tvUserFieldValidationMinMaxMessageDuration = 6
tvUserFieldValidationMaxMaxMessageDuration = 300
tvUserFieldValidationMinMaxMailboxSize = 0
tvUserFieldValidationMaxMaxMailboxSize = 59940
tvUserFieldValidationMaxMaxMailboxSizeEx = 0x00092784
tvUserFieldValidationMaxMaxMailboxSize_v6 = 0x039386c4
TVUserInboundCallBehavior
tvUserInboundCallBehaviorNone = 0
tvUserInboundCallBehaviorDisplayCallMonitor = 1
tvUserInboundCallBehaviorPlayCallerName = 2
tvUserInboundCallBehaviorFlashTitleBar = 4
tvUserInboundCallBehaviorPlayCalleeName = 8
tvUserInboundCallBehaviorFlashCallMonitorTab = 16
TVUserMessageOrder
tvUserMessageOrderUnheardLIFOHeardLIFO = 1
tvUserMessageOrderUnheardLIFOHeardFIFO = 2
tvUserMessageOrderUnheardFIFOHeardFIFO = 4
tvUserMessageOrderUnheardFIFOHeardLIFO = 8
tvUserMessageOrderAllFIFO = 16
tvUserMessageOrderAllLIFO = 32
TVUserNameFormat
tvUserNameFormatFirstLast = 0
tvUserNameFormatLastFirst = 1
APPENDIX E. CLIENT API ENUMERATIONS
E-33
TVUserOutboundCallBehavior
tvUserOutboundCallBehaviorNone = 0
tvUserOutboundCallBehaviorDisplayMonitorOnNew = 1
tvUserOutboundCallBehaviorDisplayMonitorOnReturn = 2
TVUserPromptCallerForName
tvUserPromptCallerForNameNever = 0
tvUserPromptCallerForNameWhenNoVoiceTitle = 1
tvUserPromptCallerForNameWhenNoCallerID = 2
TVUserRemotePhoneType
tvUserRemotePhoneTypeNone = 0
tvUserRemotePhoneTypePolycomSoundPointIP = 1
tvUserRemotePhoneTypeIntelPBXIPMediaGateway = 2
tvUserRemotePhoneTypeUniden = 3
TVUserRingPattern
tvUserRingPatternTwoSecond = 1
tvUserRingPatternOneSecond = 2
tvUserRingPatternSplash1 = 3
tvUserRingPatternSplash2 = 4
tvUserRingPatternSplash3 = 5
tvUserRingPatternLongShort = 6
tvUserRingPatternShortLong = 7
TVUserSendDigitsBehavior
tvUserSendDigitsBehaviorNone = 0
tvUserSendDigitsBehaviorDID = 1
tvUserSendDigitsBehaviorExtension = 2
TVUserStrataRingPattern
tvUserStrataRingPatternLowTone = 1
tvUserStrataRingPatternMediumTone = 2
tvUserStrataRingPatternHighTone = 3
tvUserStrataRingPatternCombinedTone = 4
tvUserStrataRingPatternSingleTone = 5
TELEVANTAGE DEVELOPER ’S GUIDE
TVViewError
tvViewErrorResetNotAllowed = 9651
tvViewErrorSetCurrentToFalse = 9652
tvViewErrorSortStringInvalid = 9653
tvViewErrorFilterStringInvalid = 9654
tvViewErrorFilterValueInvalid = 9655
tvViewErrorFieldNameInvalid = 9656
TVViewFieldValidation
tvViewFieldValidationMaxFilter = 255
tvViewFieldValidationMaxSort = 255
TVWindowsFirewallScope
tvScopeManual = 3
tvScopeUnrestricted = 0
tvScopeRestrictLocalSubnet = 1
tvScopeRestrictCustom = 2
TVWorkgroupErrors
tvWorkgroupErrorMissingName = 1701
tvWorkgroupErrorInvalidRingDuration = 1702
tvWorkgroupErrorNonUniqueName = 1703
TVWorkgroupFieldValidation
tvWorkgroupFieldValidationMaxComments = 5000
tvWorkgroupFieldValidationMinName = 0
tvWorkgroupFieldValidationMaxName = 30
tvWorkgroupFieldValidationMaxDID = 500
tvWorkgroupFieldValidationMaxExtension = 4
TVWorkgroupMembersError
tvWorkgroupMembersErrorAlreadyExists = 1801
tvWorkgroupMembersErrorInvalidPerson = 1802
tvWorkgroupMembersErrorInvalidOwner = 1803
TVWorkgroupRoutingType
tvWorkgroupRoutingTypeSimultaneous = 0
tvWorkgroupRoutingTypeRoundRobin = 2
tvWorkgroupRoutingTypeSequential = 4
APPENDIX E. CLIENT API ENUMERATIONS
E-35
INDEX
Symbols
* telephone commands (table), 6-6
Device Status API. See TeleVantage Device Status API
Dialing service object group, 2-14
A
E
about
in-band signaling, 6-2
IVR Plug-in API, 4-2
TeleVantage Client API, 2-2
TeleVantage Device Status API, 3-2, 5-2
TeleVantage SDK, 1-2
TeleVantage TAPI Service Provider, 7-2
Address object, D-4
Addresses object, D-4
Agent object, D-5
Agent object group, 2-11
Agents object, D-6
AgentStat object, D-6
Application Programming Interface (API)
defined, 1-3
AudioClip object, D-7
C
Call object, D-8
Call object group, 2-12
CallActivity object, D-11
CallActivityHistory object, D-11
CallHistory object, D-12
CallHistory object group, 2-12
CallRule object, D-13
CallRule object group, 2-13
class
defined, 1-3
Client API. See TeleVantage Client API
Column object, D-13
Columns object, D-14
component
defined, 1-3
Component Object Model (COM)
defined, 1-3
Contact object, D-14
Contact object group, 2-13
D
definitions of terms used in this manual, 1-3
development tools, 1-3
INDEX
Error object, D-15
F
Field object, D-15
Fields object, D-16
Folder object, D-16
Folder object group, 2-7
folders
default folder structure, 2-9
types, 2-10
used in TeleVantage Client API, 2-7
Folders object, D-17
G
Greeting object, D-18
Greeting object group, 2-15
I
IAssociate object, D-18
ICOMSecurity object, D-19
IDialingService object, D-19
IItem object, D-19
installing
TeleVantage Client API, 1-3
TeleVantage Device Status API, 1-3
TeleVantage IVR Plug-in API, 1-3
InternetService object, D-20
IPhoneService object, D-21
Items object, D-21
IVR Plug-in API. See TeleVantage IVR Plug-in API
IVR Plug-ins
debugging in Visual Basic, 4-8
licensing, 4-4
IWindowsSecurity object, D-22
L
Locale object, D-22
LocaleCode object, D-23
LocaleCodes object, D-23
LogonAddressInfo object, D-23
I-1
M
Message object, D-23
Message object group, 2-15
Microsoft Visual Basic
debugging IVR Plug-ins with, 4-8
starting new TeleVantage Client API project, 2-20
module
defined, 1-3
N
Notification object, D-25
Notification object group, 2-16
NotifyScheduleItem object, D-25
NotifyScheduleItems object, D-25
O
Object
Address, D-4
Addresses, D-4
Agent, D-5
Agents, D-6
AgentStat, D-6
AudioClip, D-7
Call, D-8
CallActivity, D-11
CallActivityHistory, D-11
CallHistory, D-12
CallRule, D-13
Column, D-13
Columns, D-14
Contact, D-14
Error, D-15
Field, D-15
Fields, D-16
Folder, D-16
Folders, D-17
Greeting, D-18
IAssociate, D-18
ICOMSecurity, D-19
IDialingService, D-19
IItem, D-19
InternetService, D-20
IPhoneService, D-21
Items, D-21
IWindowsSecurity, D-22
Locale, D-22
LocaleCode, D-23
INDEX
LocaleCodes, D-23
LogonAddressInfo, D-23
Message, D-23
Notification, D-25
NotifyScheduleItem, D-25
NotifyScheduleItems, D-25
Parties, D-26
Party, D-26
PartyHistories, D-27
PartyHistory, D-27
Permission, D-28
Permissions, D-28
PersonalStatus, D-29
PhoneGatewayService, D-30
PhoneService, D-31
QueueByPeriodStat, D-31
QueueByShiftStat, D-32
QueueStat, D-33
Recipients, D-34
Role, D-34
Roles, D-35
RoutingList, D-35
RoutingListAction, D-36
RoutingListActions, D-36
RoutingListFinalAction, D-37
RoutingService, D-37
Schedule, D-38
ScheduledDate, D-38
ScheduledDates, D-38
ScheduledDay, D-39
ScheduledDays, D-39
Schedules, D-40
Session, D-40
Shortcut, D-47
ShortcutGroup, D-47
ShortcutGroups, D-47
Shortcuts, D-48
SIPAccount, D-49
SIPAccounts, D-49
SIPPhoneGatewayService, D-50
SIPServer, D-50
SIPServers, D-51
SIPService, D-51
SIPSpan, D-52
SIPSpans, D-52
SIPSwitchGatewayService, D-52
SkillDefinition, D-53
SkillDefinitions, D-53
Station, D-54
I-2
StationButton, D-55
StationButtons, D-55
StationFeature, D-56
StationFeatures, D-56
StationParameter, D-56
StationParameters, D-57
StationType, D-57
StationTypes, D-57
SwitchGatewayService, D-58
SwitchService, D-58
System, D-59
SystemSetting, D-60
SystemSettings, D-60
SystemTarget, D-61
User, D-62
View, D-64
Views, D-65
Workgroup, D-65
WorkgroupMember, D-66
WorkgroupMembers, D-66
object
defined, 1-3
object group diagrams
key, 2-3
object groups
Agent, 2-11
Call, 2-12
CallHistory, 2-12
CallRule, 2-13
Contact, 2-13
Dialing services, 2-14
Folder, 2-7
Greeting, 2-15
Message, 2-15
Notification, 2-16
RoutingList, 2-17
Schedule, 2-18
Session, 2-4
Station, 2-19
StationFeature, 2-19
System, 2-5
User, 2-6
Workgroup, 2-20
object groupsLPersonalStatus, 2-16
object structures
in TeleVantage Client API, 2-2
INDEX
P
Parties object, D-26
Party object, D-26
PartyHistories object, D-27
PartyHistory object, D-27
Permission object, D-28
Permissions object, D-28
PersonalStatus object, D-29
PersonalStatus object group, 2-16
PhoneGatewayService object, D-30
PhoneService object, D-31
programming tips, 2-21
Q
QueueByPeriodStat object, D-31
QueueByShiftStat object, D-32
QueueStat object, D-33
R
Recipients object, D-34
Role object, D-34
Roles object, D-35
RoutingList object, D-35
RoutingList object group, 2-17
RoutingListAction object, D-36
RoutingListActions object, D-36
RoutingListFinalAction object, D-37
RoutingService object, D-37
S
Schedule object, D-38
Schedule object group, 2-18
ScheduledDate object, D-38
ScheduledDates object, D-38
ScheduledDay object, D-39
ScheduledDays object, D-39
Schedules object, D-40
Session object, D-40
Session object group, 2-4
Shortcut object, D-47
ShortcutGroup object, D-47
ShortcutGroups object, D-47
Shortcuts object, D-48
SIPAccount object, D-49
I-3
SIPAccounts object, D-49
SIPPhoneGatewayService object, D-50
SIPServer object, D-50
SIPServers object, D-51
SIPService object, D-51
SIPSpan object, D-52
SIPSpans object, D-52
SIPSwitchGatewayService object, D-52
SkillDefinition object, D-53
SkillDefinitions object, D-53
starting
new project, 2-20
Station object, D-54
Station object group, 2-19
StationButton object, D-55
StationButtons object, D-55
StationFeature object, D-56
StationFeature object group, 2-19
StationFeatures object, D-56
StationParameter object, D-56
StationParameters object, D-57
StationType object, D-57
StationTypes object, D-57
SwitchGatewayService object, D-58
SwitchService object, D-58
System object, D-59
System object group, 2-5
SystemSetting object, D-60
SystemSettings object, D-60
SystemTarget object, D-61
T
telephone commands
* commands (table), 6-6
call handling menu commands (table), 6-3
quick call menu commands (table), 6-4
quick call menu commands for call center agents (table), 6-6
Voice Mail.Account menu commands (table), 6-5
TeleVantage
using in-band signaling with, 6-2
TeleVantage Client API
about, 2-2
installing, 1-3
key to object group diagrams, 2-3
object structures, 2-2
programming tips and examples, 2-21
INDEX
answering an incoming call, 2-26
changing personal status, 2-32
checking the availability of a user, 2-29
checking the status of a call center agent, 2-29
checking the status of a user, 2-29
checking the status of an ACD workgroup agent, 2-31
creating a call to a user, 2-25
creating a call to an external number, 2-25
creating a contact, 2-23
creating a queue call, 2-26
creating a user, 2-24
exporting a list of voice messages, 2-23
finding a call center agent via user and queue names, 2-29
finding a specific Call object, 2-28
finding out who is assigned to an extension, 2-28
finding out who owns a call, 2-27
getting events for any item, 2-23
hot desking, 2-22
locating dialing service by its access code, 2-28
logging in and starting a new session, 2-22
logging on to a remote number, 2-22
logging on to another user’s station, 2-22
putting a call on hold, 2-27
recording conversations between call center agents and
external callers, 2-31
retrieving a call on hold, 2-27
signing a call center agent in and out, 2-30
storing data with a party in a call, 2-33
starting new project, 2-20
TeleVantage Device Status API
about, 3-2, 5-2
Device Status components, 3-2, 5-2
installing, 1-3
quick reference, 5-5
sample project, 3-2, 5-2
TeleVantage IVR Plug-in API
about, 4-2
components, B-2
configuring, 4-4
installing, 1-3
monitoring standard and custom call data, 4-3
quick reference, 4-9
using
sample Customer ID Plug-in, 4-6
Televantage SDK
about, 1-2
TeleVantage TAPI Service Provider
about, 7-2
I-4
accessing custom call data, 7-3
bearer modes supported, 7-3
call states, 7-3
capabilities, 7-2
exported TSP functions, 7-3
TAPI functions supported, 7-2
terms used in this manual, 1-3
type library
defined, 1-3
U
User object, D-62
User object group, 2-6
using in-band signaling With TeleVantage
about, 6-2
V
View object, D-64
Views object, D-65
W
Workgroup object, D-65
Workgroup object group, 2-20
WorkgroupMember object, D-66
WorkgroupMembers object, D-66
INDEX
I-5