410 likes | 800 Views
TSAPI APIs. 沈婉婉 sww@itri.org.tw. Outline. CSTA TSAPI Overview IOTS TSAPI Overview TSAPI Programming IOTS TSAPI APIs. CSTA (Computer Supported Telecommunications Applications). by ECMA Current version - Phase II Client-server architecture. CSTA Call Model. Objects Device
E N D
TSAPI APIs 沈婉婉 sww@itri.org.tw
Outline • CSTA • TSAPI Overview • IOTS TSAPI Overview • TSAPI Programming • IOTS TSAPI APIs
CSTA (Computer Supported Telecommunications Applications) • by ECMA • Current version - Phase II • Client-server architecture
CSTA Call Model • Objects • Device • lines, trunks, stations, ACD, ACD groups... • Call • Connection • a relationship between a call and a CSTA device • Each object has an identifier, state, other attributes
Call 1 Connection 1 (connected) Connection 2 (altering) Device 314 Device 315 CSTA Call Model (cont.) • Device, Call, Connection
Null Alerting Initiated Failed Queued Hold Connected Connection State
Connection State Device3 Device1 C1 C3 Call Device4 Device2 C2 C4 Call State = C1 C2 C3 C4 Call State
Call 1 C1 Device3 C2 Call 2 C3 Call 3 Connection State Device State = C1 C2 C3 Device State
CSTA Call Event Device D1 Call C1 Device D2 Time Null Null Null T1 Initiated Service Initiated Null T2 Connected Originated Null T3 Connected Delivered Alerting T4 T5 Connected Established Connected CSTA Connection States CSTA Event Reports CSTA Connection States
Agent State Model Agent Null Agent Not Ready Agent Working After Call Agent Ready Agent Busy
Agent State Model (extended) Agent Null Agent Not Ready Agent Working After Call Agent Not Work Not Ready Agent Busy Agent Ready Agent Pending
Voice Unit Operational Model Speed Volume Level Speed Volume Level Speed Volume Level Stop next message Record Play Position Speed Level Volume Set Speed Suspend Record Position Suspend Play Position Review Set Speed Set Speed Position Speed Level Volume Speed Level Volume
Voice Unit Operational Model (partial) Stop Play Record
PBX Telephony Server TSAPI(Telephony Services Applications Programming Interface) • by Novell and AT&T.
TSAPI (cont.) • Client-server model • Support different client platforms • Microsoft Windows • Unix • Macintosh • OS/2 • No special voice cards, or other hardwares is necessary at a client’s desktop • Follow CSTA Phase I • Currently, only have switching functions • Current version - TSAPI Release 2.21
NetWare Server-based Application Applications Telephony Client Library NetWare Client Modules Windos OS Telephony Services API Telephony Services Library Switch (PBX) Switch Driver Interface Switch Driver .OA&M Server Functions .API Mapping .CTI Link Device Driver Telephony Services NetWare OS CTI Link Hardware LAN Adapter Card Clients ... LAN Telephony Server CTI Link Analog, ISDN, or PBX-specific lines TSAPI Introduction (cont.)
trunk or line interface IOTS Client Client IOTS TSAPI • TSAPI-like application programming interface for IOTS
IOTS TSAPI (cont.) • Follow TSAPI Release 2.21, excepts: • Escape services • Maintenance services • System services • Server: Windows NT 4.0 • Client: Windows NT 4.0
LAN Adapter Card IOTS TSAPI (cont.) Windows NT4.0 Server-based Application TSAPI Library Applications TSAPI Library TSAPI DLL Windos NT4.0 TSAPI DLL IOTS Platform TRUNK TSAPI Server Windows NT4.0 LSI / MSI Clients ... LAN IOTS Analog lines
TSAPI Programming • API Control Services (ACS) Stream • a logical link between application & TSAPI server • applications request CSTA services and receive events over the stream • CSTA Call Model • TSAPI Events • most APIs has an associated confirmation event • when the state of calls or devices were changed, an unsolicited event reports
Switch Function / Media Process Requests CSTA Service Requests Monitor Requests acsCloseStream() acsOpenStream() Unsolicited Events Open Stream Conf Event Monitor Conf Event Conf Event CSTA Conf Events TSAPI TSAPI Server PBX TSAPI Programming (cont.) Close Stream Conf Event
IOTS Supported TSAPI APIs • API control services • Switching function services • Status reporting services • Snapshot services • CSTA computing function services • Media processing services • IOTS extended services
Event Manipulation • Each stream contains one event queue • confirmation events (service request) • unsolicited events (monitor request) • for swithing & media processing • request events (route register request) • for call routing request • event report (route register request) • for call routing status • Retrieve event form queue • acsGetEventBlock() • acsGetEventPoll() • Clear event queue • acsFlushEventQueue()
API Control Services • acsOpenStream • acsCloseStream • acsGetEventBlock • acsGetEventPool • acsFlushEventQueue • cstaGetDeviceList • cstaGetAPICaps
cstaAlternateCall cstaAnswerCall cstaClearCall cstaClearConnection cstaConferenceCall cstaConsultationCall cstaDeflectCall cstaGroupPickupCall cstaHoldCall cstaMakeCall cstaMakePredictiveCall cstaPickupCall cstaReconnectCall cstaRetrieveCall cstaTransferCall Switching Function Services
cstaQueryAgentState cstaQueryDeviceInfo cstaQueryDoNotDisturb cstaQueryFwd cstaQueryLastNumber cstaSetAgentState cstaSetDnd cstaSetFwd Switching Function Services (cont.)
Status Reporting Services • cstaMonitorDevice • cstaMonitorCall • cstaMonitorCallsViaDevice • cstaMonitorStop • cstaChangeMonitorFilter
Snapshot Services • cstaSnapshotCallReq Device3 Connection State Device1 C1 C3 Call Device4 Device2 C2 C4 Call State = C1 C2 C3 C4
Call 1 C1 Device3 C2 Call 2 C3 Call 3 Connection State Device State = C1 C2 C3 Snapshot Services (cont.) • cstaSnapshotDeviceReq
CSTA Computing Function Services • cstaRouteRegisterReq • cstaRouteRegisterCancel • cstaRouteSelectInv • cstaRouteEndInv
Driver / Switch Domain Routing Server (application) call related info is passed (1) (0) call cstaRouteRegisterReq() to be a routing server for a specified device (2) Application select a destination for for the call. A cstaRouteSelectInv() message is sent (Rout Used=off). (4a) If (3a) then route is completed as specified in (2). (4b) If (3b) then send a second cstaRouteSelectInv() with a different destination (Rout Used=on). (6a) If (5a) then route is completed as specified in (4b). (6b) If (5b) then send a second cstaRouteSelectInv() with a different destination (Rout Used=on), or send a cstaRouteEndInv() handback to switch. (last) call cstaRouteRegisterCancel() before application exit. (1) a call arrives at the routing device, CSTARouteRequestEvent is sent (3) the switchh attempts to route the queued call to selected dest. a. if destination address is o.k. a CSTARouteEndEventis sent b. if destination is invalid, then a CSTAReRouteEvent is sent (5) the switch attempts to route the queued call to selected dest. a. if destination address o.k., a CSTARouteUsedEvent and CSTARouteEndEvent is sent b. if destionation is invalid then a CSTAReRouteEvent is sent (2) (3a) or (3b) (4b) (5a) or (5b) ... ... ... Application Routing Scenario
Media Processing Services • _cstaPlayMessage • _cstaRecordMessage • _cstaStopMessage • _cstaDeleteMessage • _cstaGetDTMFTones • _cstaSendDTMFTones • _cstaSendFAX • _cstaReceiveFAX
IOTS Extended Services • _cstaAssociateData • _cstaQueryCallInfo • _cstaSingleStepTransferCall
CSTA Event - Unsolicited Event • CSTADoNotDisturb • CSTAForwarding • CSTALoggedOn • CSTALoggedOff • CSTANotReady • CSTAReady • CSTAWorkNotReady • CSTAWorkReady • CSTAMonitorEnded • CSTAOutOfService • CSTABackInService • CSTAPlay • CSTARecord • CSTAStop • CSTACallCleared • CSTAConferenced • CSTAConnectionCleared • CSTADelivered • CSTADiverted • CSTAEstablished • CSTAFailed • CSTAHeld • CSTANetworkReached • CSTAOriginated • CSTAQueued • CSTARetrieved • CSTAServiceInitiated • CSTATransferred
CSTA Event - Request Event • CSTARouteRequest • CSTARerouteRequest
CSTA Event - Event Report • CSTARegisterAbort • CSTARouteUsedExt • CSTARouteEnd
Events for Failure • ACSUniversalFailureConf • non-telephony problem • sent in place of confirmation event • CSTAUniversalFailureConf • telephony-based problem • sent in place of confirmation event • ACSUniversalFailure • a failure of ACS Stream with TSAPI server
Confirmation Events • Confirmation events: TSAPI has processed the request • acsOpenStream() ACSOpenStreamConf • cstaGetDeviceList() CSTAGetDeviceListConf
Unsolicited Events • Unsolicited events for switch function (that IOTS Platform/switch has processed) cstaMonitorDevive(StationDeviceID): CSTADelivered (delivered.connection) Another party drop call cstaAnswerCall() CSTAAnswerCallConf CSTAEstablished CSTAClearConnection cstaClearConnection() CSTAClearConnectionConf CSTAClearConnection
Request Events & Event Report • Unsolicited events for call routing (sent from IOTS platform/switch) cstaMonitorDevive(TrunkDeviceID) cstaRouteRegisterReq(TrunkDeviceID) CSTARouteRequestExt cstaRouteSelectInv() Another party drop call No confirmation event CSTARouteEnd /CSTAReRouteRequest CSTAClearConnection CSTARouteEnd Connected Busy No answer