Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

CTI Programming (UUI setting) 4

Status
Not open for further replies.

Zowwie438

Programmer
Aug 27, 2004
74
US
All,

I have been looking through Avaya's TSAPI docs as well as others regarding attPrivateData and I am UNABLE to set the UUI data field. :(

Here is the deal:
1) User calls Avaya switch.
2) Switch collects digits and adjunct routes to CTI app.
3) CTI app can see input digits and all works well.
4) CTI app MUST be able to take entered digits and assign to UUI private data field.
5) I can read UUI private data coming in, but I am unable to set it and return it to switch.

Normally... From what I have read, if I receive the following it should work:

1) CTI app receives adjunct route request.
2) I perform some logic.
3) I set value to UUI value and assign UUI type (ASCII).
4) I then answer the adjunct route request and pass my privateData structure.

However... When I return my private data, the UUI value is still blank.

Does anyone have some sample code on this... I am spinning some serious wheels trying to figure this out.

Thanks,

Zowwie
 
Snovitsky,

No... Sorry my friend I have never set and sent text to a phone directly or with extra button.

What you could do it this:
1) Start up the Avaya tools (Excerciser).
2) Create a monitor with no filters to a device.
3) Pickup device and press tons of buttons.
4) Review your logs and you she see your type for each button pressed.
5) You may have to criss-cross the button value being depicted in the log with the DWORD name inside the .header file of the API's.

Also... Did I send you a direct email some time ago with the cut/paste of that UUI setting thing that I got working many months ago? If so, pls resend it back to me cuz by email archives were erased (thanks IT security!).

Also... Stop TSAPI stalking me! I just just in here yesterday for the first time since we last communicated, and now I hear from you again. :) LOL

Let me know if 1-5 helps you or not.

Zow
 
Zow - Not sure we are talking about the same things. Let me try to clarify my question. If you login as an admin to G3, execute "change station xxxxx", and then go to the Page 3 of the station xxxxx configuration, you can assign/re-assign different "types" to the station buttons. Correct? Hope yes. All the types available for the assigning can be seen by pressing [Help] on the G3 terminal. Thus, my question was about the "type" that needs to be assigned to an available station's button so we can see UserProvidedCode I'm setting in my application (before routing to the station xxxxx). Do you know?
 
Snov,

Yeah... I now know what you are talking about, but I don't actually do the programming on the switch or even have access to those screens. I am stricly a TSAPI geek.

However... What I do know is this:

1) Features or buttons assigned to a phone are normally controlled by the model of the phone.

2) I would hope that the G3 admin interface does not provide you a 1,000 item list of all button possibilities... But narrows them down to the ones isolated to that model.

Since I don't know... You could try the process of ellimination.

1) Find one of those old hotel/motel/switchboard/operator models.

2) Program each button on the model to what you think is what you are looking for.

3) Route some calls there using your code to isolate what button it is.

4) If you need to see the exact methods or model type DWORD names or numbers... Use the 1-5 I mentioned above.

I know the above sounds like a long way around, but if you can't find the answer here... I assume you have already been through google, dogpile, etc.

As far as Avaya docs...
See pages 28-32:
Also see Avaya "buttons" document:
See also Avaya knowledge base:
This may be what you are looking for... Search for "callr" inside this PDF, but pay special attention to the section entitled "Displaying digits on the agents set" on page 193.
Good luck!

Zow
 
Thanks for the documents. Unfortunately they don't provide information regarding my question - how can data set as ATTUserProvidedCode_t be displayed on agent's hard-phone. Is it possible in general? If not, where/how ATTUserProvidedCode (type=UP_DATA_BASE_PROVIDED or another) can be used instead? Assigning a button to 'callr-info' does NOT display ATTUserProvidedCode...
 
Snov,

Did you try pressing the info button multiple times? I recall seeing in the docs that once the display is full you have to keep pressing it to see the next batch of data.

Not sure how many you can Q up this way.

Zow
 
The issue is not related to the screen. In our phones when a button is assigned to a certain function (like 'callr-info' or 'uui-info') agent has to press this button to see the information, if available. The issue with UserProvidedCode is I'm not sure if:

1. It's possible, in general, to display UserProvidedCode on the phone's display.

2. If yes, what function code (like 'callr-info' or 'uui-info') needs to be assigned to a button to display UserProvidedCode set in my application.
 
Snov,

Rather than trying to get this stuff on the phones display and assign buttons... Have you thought about building a small screen popping application to send that data down to the agent?

Doing so would allow you to send all the data they could ever desire all at once.

From what I understand from your needs... It sounds like the person answering the phone has a "need" for all this data.

It also sounds like it is placing a burden on you to try and get data onto the telephone device itself (and you will have issues between phone models) with respect to display size and character length.

Sounds to me like a small home grown screen pop display similar to an IM like approach would be very useful.

It's pretty simple to impliment:

1) Create a backend process that does the following:
a) Binds to inbound VDN.
b) Adds itself as the routerequest for that VDN.
c) Program VDN to adjunt route to application.
d) When app received adjunct route request, place monitor on callID.
e) When monitor for callID sees ANSWER, then send data to client.

2) Client code can be lightweight C, C++ or C#.

Let me know how it goes Snov... I really wish I had the right answer for you, but I don't my friend. :(

If you wish to communicate in real time... Contact me using yahoo IM @ zowwie438.

Zow
 
Snov,

Have you had experience with the TSAPI event differences between a switch that supports TDM phones VS that of TDM and VOIP phones?

I ask because we have some recording software that depends on the on/off hook event... And I recall reasing elsewhere that VOIP phones will NOT send this TSAPI event.

Any thoughts?

Zow
 
Zowwie438 and others,

I don't mean to "hijack" this thread, but can someone quickly tell me if there is a way to make the calls to the C, or C++ dlls from VB.Net? That is the only programming environment we use in our company.

Again, sorry for taking this on a tangent.

 
CWJR,

Well... I do recall seeing some VB examples on the Novell site while searching for TSAPI.

However... if you are calling TSAPI API calls for "call control" related functions (especially from a server side app like we do)... I would HIGHLY recommend against using VB.

If you are building a mission critical call control application, it is VERY important that you know every last piece of functional code in addition to it being light weight and being able to handle mass traffic and load.

I feel that if you use VB, you will have so much BS in the running code that you will seriously effect your performance and ability to handle calls in a "top notch" like manner.

If your comany ONLY allows VB code to run... Then I guess they need to trash the whole windows OS then, because most of that is created in C.

The decision to use VB is really up to your boss, but it sounds like there are some education issues there.

Check out google and search for something like:
tsapi makecall vb (all in one line)


Good luck.

Zowwie
 
I hear ya. I'm and old C programmer from way back. I used to (15 years ago) be with a company that created POS systems. We did everything from UI (In DOS of course) as well as writing our own screen,serial port, and other interrupts, gas pump controls, etc.

Problem is, I haven't written any code in years, and all of our in house developers (about 30) are VB. Our current call center app is totally VB, so our hands are a bit "tied". I was kinda hoping someone had written a "wrapper" control that would call the C functions in the telephony dll's, but I guess no luck.

Thanks very much for taking time to answer my post.
 
All,

Awhile back we all shared discussions regarding the setting of UUI data with respect to attPrivateData_t and the use of Attv6RouteSelect. When this is used in conjunction with cstaRouteSelectInv... UUI data and other private data is set.

The problem is this... Using cstaRouteSelectInv REQUIRES you to specify a desinationRoute.

I don't like hard coding stuff and I want to be able to use cstaRouteEnvInv to tell the switch GENERIC_UNSPECIFIED so the switch can continue processing it's vector coding. The problem is... When you use attV6RouteSelect in conjunction with cstaRouteEndInv... No private data is passed.

PLEASE HELP!

 
Hi all,
I am using JTAPI for the development of CT Application. If I have a call coming in from A to B and B will manually transfer (transfer using the phone) the call to C, could i include a UUI at the point when B pick up the call or when B Held event is fired?

The reason is that i am not able to get the C caller ID once transfer completed to C.

Anyone have any idea?

Thanks
 
KennyWong,

Setting the UUI only occurs on making calls, routing calls to a specific destination and a few others.

The easiest way to find what methods accept UUI data is to check the csta.h and attpriv.h headers and search for UUI in the arguments. That is a good indication that it accepts it.

If YOU transfered the call and not the agent from the phone... Then YOU could set the UUI data when you make the call to agent C since a tranfer is the act of placing A on hold, making call to C and then merging the two with transfer.

Just keep in mind that you have to use the att stuff to set the UUI data.

Reply to this thread or contact me directly if you need some cut/paste stuff (in tsapi / c++).

Good luck!

Zowwie
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top