{"id":1015,"date":"2013-11-26T10:03:11","date_gmt":"2013-11-25T23:03:11","guid":{"rendered":"\/?p=208"},"modified":"2013-11-26T10:03:11","modified_gmt":"2013-11-25T23:03:11","slug":"avaya-ip-office-tapi-2-1-tapi-3-0","status":"publish","type":"post","link":"https:\/\/infinititelecommunications.com.au\/avaya-ip-office-tapi-2-1-tapi-3-0\/","title":{"rendered":"Avaya IP Office CTI and working with TAPI 2.1 and TAPI 3.0"},"content":{"rendered":"

Microsoft TAPI 2.1 and 3.0 are simply open specifications and developers interfaces for controlling and monitoring a telephone system (Avaya IP Office phone system for example<\/a>).\u00a0 TAPI is simply the common language protocol they use.\u00a0 TAPI allows your Avaya phone system to talk with computer applications that are running TAPI<\/p>\n

TAPI 2.1 and TAPI 3.0 are different specifications although they both work the same way.\u00a0 Think of TAPI 3.0 as simply more advanced.\u00a0 Most CTI applications we see for the Avaya IP 500 operate with the more basic Microsoft TAPI 2.1 driver.\u00a0 TAPI 3.0 standard requires that more core functionality is implemented, and additionally defines a series of optional functionality that switch vendors (phone systems) may also implement.<\/p>\n

The following table shows the very extensive Avaya device specific data available via TAPI.<\/h3>\n\n\n\n
\n
\n\n\n\n
\u2022<\/td>\nPhone’s extension number<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nForward on busy flag<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nForward on no answer flag<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nForward unconditional flag<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nForward hunt group flag<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nDo not disturb flag<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nOutgoing call bar flag<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nCall waiting on flag<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nVoicemail on flag<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nVoicemail ring-back flag<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nNumber of voicemail messages<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nNumber of unread voicemail messages<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nOutside call sequence number<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nInside call sequence number<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nRing back sequence number<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nNo answer timeout period<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nWrap up time period<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nCan intrude flag<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nCannot be intruded upon flag<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nX directory flag<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/td>\n\n
\n\n\n\n
\u2022<\/td>\nForce login flag<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nLogin code flag<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nSystem phone flag<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nAbsent message id<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nAbsent message set flag<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nVoicemail email mode<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nUser’s extension number<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nUsers Locale<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nForward number<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nFollow me number<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nAbsent text<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nDo not disturb exception list<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nForward on busy number<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nUser’s priority<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nNumber of groups the user is a member of<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nNumber of groups that the user is a member of that are currently outside their time profile<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nNumber of groups the user is currently disabled from<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nNumber of groups that the user is a member of that are currently out of service<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nNumber of groups that the user is a member of that are currently on night service<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n

<\/h3>\n

Avaya TAPILink Lite provides the following functionality for TAPI 3.0:<\/h3>\n
\n\n\n\n
\n

ITTAPI:<\/h4>\n
\n\n\n\n
\u2022<\/td>\nInitialize<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nShutdown<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nEnumerateAddresses<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nRegisterCallNotifications<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nPut_EventFilter<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n

 <\/p>\n

ITAddress:<\/h4>\n
\n\n\n\n
\u2022<\/td>\nget_AddressName<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nget_dialableAddress<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nget_ServiceProviderName<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nCreateCall<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n

 <\/p>\n

ITMediaSupport:<\/h4>\n
\n\n\n\n
\u2022<\/td>\nget_MediaTypes<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/td>\n\n

ITCallInfo:<\/h4>\n
\n\n\n\n
\u2022<\/td>\nget_Address<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nget_CallState<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nget_CallInfoString<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nSetCallInfoBuffer<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n

 <\/p>\n

ITBasicCallControl:<\/h4>\n
\n\n\n\n
\u2022<\/td>\nConnect<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nAnswer<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nDisconnect<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nHold<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nSwapHold<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nParkDirect<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nUnpark<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nBlindTransfer<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nTransfer<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/td>\n\n

ITCallStateEvent:<\/h4>\n
\n\n\n\n
\u2022<\/td>\nget_Cause<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nget_State<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nget_Call<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n

 <\/p>\n

ITCallNotificationEvent:<\/h4>\n
\n\n\n\n
\u2022<\/td>\nget_Call<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n

 <\/p>\n

ITCallInfoChangeEvent:<\/h4>\n
\n\n\n\n
\u2022<\/td>\nget_Call<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n

 <\/p>\n

ITCallHubEvent:<\/h4>\n
\n\n\n\n
\u2022<\/td>\nget_Event<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nget_Call<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n

Notes:<\/p>\n

\n\n\n\n
\u2022<\/td>\nTAPILink Lite can be used from C, C++ and Delphi. Visual Basic cannot directly use TAPI 2.1, but does support TAPI 3.0 without any third-party tools.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n\n\n\n
\u2022<\/td>\nTAPILink Lite provides detailed information on telephony events, including the ability to screen-pop based on CLI and\/or DDI.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n

 <\/p>\n

Avaya TAPILink Lite provides the following functionality for TAPI 2.1:<\/h3>\n\n\n\n
\n
\n\n\n\n
\u2022<\/td>\nlineAddToConference<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineAnswer<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineBlindtransfer<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineCompleteTransfer<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineConfigDialog<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineClose<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineDeallocateCall<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineDial<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineDrop<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineGetAddressCaps<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineGetAddressID<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineGetAddressStatus<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineGetAppPriority<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineGetCallInfo<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/td>\n\n
\n\n\n\n
\u2022<\/td>\nlineGetCallStatus<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineGetDevCaps<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineGetID<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineGetLineDevStatus<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineHold<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineInitialiseEx<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineMakeCall<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineNegotiateTAPIVersion<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineOpen<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlinePark<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineRedirect<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineRemoveFromConference<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineSetAppPriority<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineSetAppSpecific<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/td>\n\n
\n\n\n\n
\u2022<\/td>\nlineSetCallPrivilege<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineSetStatusMessages<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineSetupTransfer<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineShutdown<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineSwapHold<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineUnhold<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineUnpark<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineSetCallData<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineDevSpecific<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineGenerateDigits<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineGenerateTone<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineMonitorDigits<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n
\n\n\n\n
\u2022<\/td>\nlineMonitorTones<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"Microsoft TAPI 2.1 and 3.0 are simply open specifications and developers interfaces for controlling and monitoring a telephone system (Avaya IP Office phone system for example).\u00a0 TAPI is simply the common language protocol they use.\u00a0 TAPI allows your Avaya phone system to talk with computer applications that are running TAPI TAPI 2.1 and TAPI 3.0… Read more »<\/a>","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[20],"tags":[16,11],"acf":[],"_links":{"self":[{"href":"https:\/\/infinititelecommunications.com.au\/wp-json\/wp\/v2\/posts\/1015"}],"collection":[{"href":"https:\/\/infinititelecommunications.com.au\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/infinititelecommunications.com.au\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/infinititelecommunications.com.au\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/infinititelecommunications.com.au\/wp-json\/wp\/v2\/comments?post=1015"}],"version-history":[{"count":0,"href":"https:\/\/infinititelecommunications.com.au\/wp-json\/wp\/v2\/posts\/1015\/revisions"}],"wp:attachment":[{"href":"https:\/\/infinititelecommunications.com.au\/wp-json\/wp\/v2\/media?parent=1015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/infinititelecommunications.com.au\/wp-json\/wp\/v2\/categories?post=1015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/infinititelecommunications.com.au\/wp-json\/wp\/v2\/tags?post=1015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}