CIE 1 0 TOM SDK Daniel Stimac Rohit

  • Slides: 31
Download presentation
CIE 1. 0 - TOM SDK Daniel Stimac Rohit Tendulkar Sandeep Chavan © 2007

CIE 1. 0 - TOM SDK Daniel Stimac Rohit Tendulkar Sandeep Chavan © 2007 Avaya Inc. All rights reserved. Avaya Proprietary - Use pursuant to your signed non-disclosure agreement (V 1. 1)

Agenda ( Day 1) PART 1 - SDK Architecture ( Approx. 2 Hours) CIE

Agenda ( Day 1) PART 1 - SDK Architecture ( Approx. 2 Hours) CIE overview TOM Server – What is it? – Integration into CIE 1. 0 (System Overview) – TOM interfaces – What is the local Phone? TOM Object model – TOM Server objects TOM Listener model Capabilities Usage of the TOM server © 2007 Avaya Inc. All rights reserved. 2 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

Agenda ( Day 1) PART 2 – Installation/Configuration (Approx. 45 mins) Installation overview Registry

Agenda ( Day 1) PART 2 – Installation/Configuration (Approx. 45 mins) Installation overview Registry Keys Local Phone Configuration Licensing Environment Test Application PART 3 – TTrace (Approx. 30 mins) TTRace overview TTRace Console TTRace Configuration © 2007 Avaya Inc. All rights reserved. 3 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

Agenda (Day 2) PART 4 – Sample Coding examples (approx. 2. 5 hours )

Agenda (Day 2) PART 4 – Sample Coding examples (approx. 2. 5 hours ) Development Environment VB Example Java Example C++ Example PART 5 – Troubleshooting ( approx. 30 mins ) Debugging / Troubleshoting © 2007 Avaya Inc. All rights reserved. 4 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

Agenda (Day 2) PART 6 – Exercise (approx. 30 mins) C++ / Visual Basic

Agenda (Day 2) PART 6 – Exercise (approx. 30 mins) C++ / Visual Basic Example Exercise PART 7 – Feedback ( approx. 15 mins ) FeedbackSuggesstions © 2007 Avaya Inc. All rights reserved. 5 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

PART 1 - SDK Architecture © 2005 2007 Avaya Inc. All rights reserved. 6

PART 1 - SDK Architecture © 2005 2007 Avaya Inc. All rights reserved. 6 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1) Avaya Proprietary - Use pursuant to your signed non-disclosure agreement

CIE overview This is where the TOM server fits into the CIE system ©

CIE overview This is where the TOM server fits into the CIE system © 2007 Avaya Inc. All rights reserved. 7 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

TOM server – What is it? TOM stand for "Telephony object model" Object oriented

TOM server – What is it? TOM stand for "Telephony object model" Object oriented telephony interface Application can connect via COM or CORBA to the TOM server The TOM server is designed and developed as a client side interface. TOM server runs on client machine. © 2007 Avaya Inc. All rights reserved. 8 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

Integration into CIE 1. 0 Server Client Application 1 Application 2 Local Phone CORBA

Integration into CIE 1. 0 Server Client Application 1 Application 2 Local Phone CORBA COM Task. Server TOM BLC-Provider © 2007 Avaya Inc. All rights reserved. 9 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

TOM Architecture © 2007 Avaya Inc. All rights reserved. 10 Avaya Proprietary - Use

TOM Architecture © 2007 Avaya Inc. All rights reserved. 10 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

What is the local phone? The agents have working environment with a phone and

What is the local phone? The agents have working environment with a phone and a computer. The local phone is the phone dedicated to the agents work station. The phone association can be configured in the CIE 1. 0 workplace configuration using the "HOSTNAME" In special environments like Terminal Server Environment, where more than one user work on the same machine the environment variable “CLIENTNAME” is usually filled with the name of the terminal session which is used for the Workplace configuration. Note: You can also use the phone if it is not configured as a local phone. © 2007 Avaya Inc. All rights reserved. 11 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

What is the local phone? TOM-Server tries to read the configuration of the local

What is the local phone? TOM-Server tries to read the configuration of the local phone data in following ways: 1. Reading of the local phone from the CIE-Database (workplace configuration) • Normal PC environment • Terminal Server Environment 2. Configuration of the local phone via a client application at runtime. © 2007 Avaya Inc. All rights reserved. 12 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

TOM Object Model © 2007 Avaya Inc. All rights reserved. 13 Avaya Proprietary -

TOM Object Model © 2007 Avaya Inc. All rights reserved. 13 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

TOM Object Model © 2007 Avaya Inc. All rights reserved. 14 Avaya Proprietary -

TOM Object Model © 2007 Avaya Inc. All rights reserved. 14 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

TOM Server Objects (1 of 5) TOM – Entry object – Query version number

TOM Server Objects (1 of 5) TOM – Entry object – Query version number – Create provider after checking if the provider is available. e. g. VB 6 code Set interface. List = the. Tom. get. All. Interfaces() For i = 0 To interface. List. length() - 1 If interface. List. at(i) = "Blc" Then Set the. Provider = the. Tom. get. Provider("Blc; ") Exit For © 2007 Avaya Inc. All rights reserved. 15 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

TOM Server Objects (1 of 5) • If the Default. PABX is available, then

TOM Server Objects (1 of 5) • If the Default. PABX is available, then you can create the phone directly using the • Check if the correct name service is phone extension. TOMProvider configured • If innot, registry. you will have to • Check if Domain resolution provide name the phone in the works by – Can create phones(dependingpinging on configured name service host. format PABX: : extension. default. PABX registry value. ) • Check if all CIE components (Database, LNA, Taskserver – Can query phones to be monitored Manager, Taskserver) are running properly. e. g. get. All. Tom. Phones() – Hold the provider state – Provider. States: • Connection to License server failed or no BLC provider available. • Please check License server configuration. • CONNECTED -> OK • DISCONNECTED • NO LICENSE -> establish new connection to TOM Server © 2007 Avaya Inc. All rights reserved. 16 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

TOM Server Objects TOMPhone These 6 function do not need a call management. The

TOM Server Objects TOMPhone These 6 function do not need a call management. The call will be done by TOM server internally. If multiple calls (1 of management 5) are in progress then it’s not transparent to the application which call will be selected by the TOM server (It depends on the call states). It is recommended to use the respective methods of the Call. Object. Note: It is advisable to refer the TOM SDK programmers manual before using these function. – The TOMPhone object is similar to a real phone new. Call call 1 = phone. new. Call(„number. To. Be. Dialed“); transfer. Call phone. transfer. Call(call 1, call 2); alternate. Call phone. alternate. Call(call 1, call 2); new. Conference conference = phone. new. Conference(call 1, call 2); © 2007 Avaya Inc. All rights reserved. 17 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

TOM Server Objects (1 of 5) TOMCall answer. Call call 1. answer(); end. Call

TOM Server Objects (1 of 5) TOMCall answer. Call call 1. answer(); end. Call call 1. drop(); Hold / retrieve call 1. hold(); call 1. retriev(); Query a number = Call. get. Caller(); number = Call. get. Called(); Set / Get Call. Tags call 1. set. Call. Tag(tagname, value); value = call 1. get. Call. Tag(tagname); © 2007 Avaya Inc. All rights reserved. 18 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

Call. Tags/Tasktags Calltags are the same as Tasktags. Call. Tags contain additional information to

Call. Tags/Tasktags Calltags are the same as Tasktags. Call. Tags contain additional information to a call. Name and content of the Call. Tags can be freely chosen and appended to each call. Two applications which address the same call and its Call. Tags can thus exchange information There are 2 types of Call. Tags 1. "Normal" Call. Tags – These are supported by the CIE system 2. "Local" Call. Tags – The local Call. Tags must begin with the prefix "TOMLocal_”. The prefix is Case-sensitive – These are special implementation in the TOM server – The local Call. Tags are not handed over to the CIE system but are processed in the TOM server itself. © 2007 Avaya Inc. All rights reserved. 19 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

Call. Tags/Tasktags The distribution of the local Call. Tags is identical to the distribution

Call. Tags/Tasktags The distribution of the local Call. Tags is identical to the distribution of the "normal" Call. Tags. Signalling of the new local Call. Tag is done with the on. Calltag. Changed() event in the same way as for a "normal" Call. Tag. A list of important Calltags is as follows: Specifies the number of the dialed topic. Indicates the name of the caller when the caller has – CCK_Caller_Name Indicates the customer number of the caller when the caller been recognized by the customer recognition (ANI). has been recognized by the customer recognition (ANI). – CCK_Customer_Number Indicates the name of the last topic used for distribution. In – Last. Topic. Name the event of a topic overflow, the last topic (e. g. , in the task Indicates of the used for distribution. flow set, the number first screen, orlast VU)topic can be queried. – Last. Topic. Addr Indicates the name of the first topic used for distribution. – First. Topic. Name Indicates the number or email address of the first topic – First. Topic. Addr Indicates the address, caller number or email sender used for distribution (dialed topic, incoming mailbox). – CCK_Calling_Address Indicates the destination address, of the task of origin. e. g. , for the email address or dialed number. – CCK_Called_Address Marks the call as a job. This value contains the job ID – CCOD_Call. Job coded with a CCID string. – c. dialled. Theme © 2007 Avaya Inc. All rights reserved. 20 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

TOM Server Objects (1 of 5) TOMAgent – 2 options to login a agent

TOM Server Objects (1 of 5) TOMAgent – 2 options to login a agent Login / logout agent. login(phone); agent. log. Off(phone); Sign on / off agent. assign(agentgroup); You will have to use: agent. set. State(Agent. State_Ready) to switch off wrap up time. Agent. deassign(agentgroup) Wrap up time on / off agent. set. State(Agent. State_Post. Working. Extended ); Pause on / off agent. set. Agent. Pause(Agent. State_Pause ); © 2007 Avaya Inc. All rights reserved. 21 You will have to use: agent. set. Agent. Pause(Agent. State_Ready) to switch off pause. Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

Agent login: set. Agent on a tomphone © 2007 Avaya Inc. All rights reserved.

Agent login: set. Agent on a tomphone © 2007 Avaya Inc. All rights reserved. 22 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

Agent login: login on a agent object © 2007 Avaya Inc. All rights reserved.

Agent login: login on a agent object © 2007 Avaya Inc. All rights reserved. 23 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

Agent. States © 2007 Avaya Inc. All rights reserved. 24 Avaya Proprietary - Use

Agent. States © 2007 Avaya Inc. All rights reserved. 24 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

TOM Listener model TOM Listener are event handler. To get the arriving events to

TOM Listener model TOM Listener are event handler. To get the arriving events to the client application, the listener objects have to be explicitly connected to the TOM objects. Listener objects can also be registered at the parent objects To receive events a phone object has to be monitored The amount of events a listener receives depends on the object the listener is connected to. Asynchronous processing A good practice is to put the information of the events into a message queue through a worker thread which can handle the information without blocking the TOM event thread During longer operations in the application code the event handlers have to be decoupled from the application code. (e. g. Queues / Windows Messages). If the application isn’t decoupled from the events, the TOM server will block until the application execution finishes. © 2007 Avaya Inc. All rights reserved. 25 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

TOM Listener (1 of 3) Provider. Listener – on. New. Phone (ITOMProvider* p, DATE

TOM Listener (1 of 3) Provider. Listener – on. New. Phone (ITOMProvider* p, DATE t, ITOMCapabilities* cap, ITOMPhone* ph) – on. Phone. Configuration (ITOMProvider* p, DATE t, ITOMCapabilities* cap, BSTR number, short added) Phone. Listener – on. Back. In. Service(ITOMPhone* p, DATE t, ITOMCapabilities* cap) – on. Out. Of. Service(ITOMPhone* p, DATE t, ITOMCapabilities* cap) – on. New. Call(ITOMPhone* p, DATE t, ITOMCapabilities* cap, ITOMCall* c) – on. Call. Cleared(ITOMPhone* p, DATE t, ITOMCapabilities* cap, ITOMCall* c) – on. Logged. On(ITOMPhone* p, DATE t, ITOMCapabilities* cap) – on. Logged. Off(ITOMPhone* p, DATE t, ITOMCapabilities* cap) Note: © 2007 Avaya Inc. All rights reserved. Only important events are mentioned for the presentation purposes. Participants are requested to refer the TOM SDK Programmers Manual for more details. 26 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

TOM Listener (2 of 3) Call. Listener – on. Originated (ITOMCall* c, DATE t,

TOM Listener (2 of 3) Call. Listener – on. Originated (ITOMCall* c, DATE t, ITOMCapabilities* caps, Call. Cause. Type cause) – on. Delivered (ITOMCall* c, DATE t, ITOMCapabilities* caps, Call. Cause. Type cause) – on. Established (ITOMCall* c, DATE t, ITOMCapabilities* caps, Call. Cause. Type cause) – on. Transfered (ITOMCall* c, DATE t, ITOMCapabilities* caps, Call. Cause. Type cause) – on. Held (ITOMCall* c, DATE t, ITOMCapabilities* caps, Call. Cause. Type cause) – on. Retrieved (ITOMCall* c, DATE t, ITOMCapabilities* caps, Call. Cause. Type cause) – on. Failed (ITOMCall* c, DATE t, ITOMCapabilities* caps, Call. Cause. Type cause) – on. Call. Info. Update (ITOMCall* c, DATE t, ITOMCapabilities* caps, BSTR caller. Number, BSTR called. Number, BSTR last. Redirector. Number, BSTR topic. Name, Call. Cause. Type cause) – on. Calltag. Changed (ITOMCall* c, DATE t, ITOMCapabilities* caps, BSTR name, BSTR value, Call. Cause. Type cause) Note: © 2007 Avaya Inc. All rights reserved. Only important events are mentioned for the presentation purposes. Participants are requested to refer the TOM SDK Programmers Manual for more details. 27 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

TOM Listener (3 of 3) Agent. Listener – on. Signed. On(ITOMAgent* a, DATE t,

TOM Listener (3 of 3) Agent. Listener – on. Signed. On(ITOMAgent* a, DATE t, ITOMCapabilities* cap, BSTR group) – on. Signed. Off(ITOMAgent* a, DATE t, ITOMCapabilities* cap, BSTR group) – on. Pause. Started(ITOMAgent* a, DATE t, ITOMCapabilities* cap) – on. Pause. Finished(ITOMAgent* a, DATE t, ITOMCapabilities* cap) – on. Busy. ACD(ITOMAgent* a, DATE t, ITOMCapabilities* cap) – on. Busy(ITOMAgent* a, DATE t, ITOMCapabilities* cap) – on. Postworking(ITOMAgent* a, DATE t, ITOMCapabilities* cap) Note: © 2007 Avaya Inc. All rights reserved. Only important events are mentioned for the presentation purposes. Participants are requested to refer the TOM SDK Programmers Manual for more details. 28 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

Capabilities describe Dynamic capabilities of a method change at runtime. e. g. The capability

Capabilities describe Dynamic capabilities of a method change at runtime. e. g. The capability to transfer a Static capabilities arebecontained in is the object call will off if there only one call in capabilities and not change at runtime. e. g the do scenario. However the capability will Capability_Provider_Get. All. TOMPhones be switched on if there are two calls in the properties of TOM objects system. Each TOM object has capabilities Capabilities describe static as well as dynamic courses of action Capabilities can be queried for each method If a capability is not available the function can be called but it may throw an exception. It is the responsibility of the Client application to handle the exception. Code snippet: Dim my. Capabilities As TOMCapabilities ‘Declare variable of type TOMCapabilities Set my. Capabilities = the. Provider. get. Capabilities() ‘Set TOMCapabilities variable to provider’s capabilities If (my. Capabilities. get. Capability(Capability_Provider_Get. All. TOMPhones) = 1) Then ‘Code to do activities if Capability check passes Set the. Phones = the. Provider. get. All. TOMPhones ' Get the list of all available phones End if © 2007 Avaya Inc. All rights reserved. 29 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

Usage of the TOM-Server The TOM server is designed and developed as a client

Usage of the TOM-Server The TOM server is designed and developed as a client side cti interface. Server side integration is not supported. It is not permited to create and release TOM objects like phones permanently. For each client application that connects to the tom server a separate provider instance will be created If the separate applications create phones, then the phone instances are also separate and mutually independent of one another. Each provider will use its own license. Its only allowed to run the TOM server on one host per client basis. In Terminal server environment, one TOM server per session is to be used. © 2007 Avaya Inc. All rights reserved. 30 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)

Questions? © 2007 Avaya Inc. All rights reserved. 31 Avaya Proprietary - Use pursuant

Questions? © 2007 Avaya Inc. All rights reserved. 31 Avaya Proprietary - Use pursuant to your signed non-disclosure agreement. (V 1. 1)