ActivaTSP
Hi,
we would like to be able to place calls from our HiPath 3000 PBX using TAPI applications on a windows terminal server. There's a project called Activa ( http://activa.sourceforge.net/ ) that would solve the TAPI side of things.
Unfortunately, this only seem to work in connection with Asterisk Soft PBX.
Now, my questions:
1 - Has anybody been able to setup something that would do what we want, "gatewaying" call control from TAPI to our HiPath 3000 using ActivaTSP/Asterisk/OpenCsta?
2 - I guess this might be possible, but I might be wrong. Asterisk is a full PBX and I am not sure I can just relay call control stuff from asterisk to the HiPath. Could someone tell me if and where I am wrong?
Thanks in advance for any answer to that.
Cheers
Jan

ActivaTapi<>Asterisk AMI
Hi,
I installed Asterisk on my linux box. Here's the conversation. The call fails because I did not configure Asterisk to handle anything properly. I am dialing from MS Outlook to 0822037. Bold is client, the rest Asterisk server. I'll need a bit more time to do a complete call, I have no experience in setting up Asterisk. If you need a dump of the CSTA traffic the Siemens Driver is generating, I can send it to you.
Action: Login
UserName: admin
Secret: amp111
ActionID: 4
Asterisk Call Manager/1.1
Response: Success
ActionID: 4
Message: Authentication accepted
Event: FullyBooted
Privilege: system,all
Status: Fully Booted
Action: Originate
Channel: Local/52@from-internal/n
Exten: 0822037
Priority: 1
Callerid: #Id=2 <52>
Context: from-internal
Variable: originating=52
ActionID: 5
Timeout: 30000
Async: 1
Response: Success
ActionID: 5
Message: Originate successfully queued
Event: Newchannel
Privilege: call,all
Channel: Local/52@from-internal-3ee1;1
ChannelState: 0
ChannelStateDesc: Down
CallerIDNum:
CallerIDName:
AccountCode:
Exten: 52
Context: from-internal
Uniqueid: 1315492958.0
Event: Newchannel
Privilege: call,all
Channel: Local/52@from-internal-3ee1;2
ChannelState: 4
ChannelStateDesc: Ring
CallerIDNum:
CallerIDName:
AccountCode:
Exten: 52
Context: from-internal
Uniqueid: 1315492958.1
Event: VarSet
Privilege: dialplan,all
Channel: Local/52@from-internal-3ee1;1
Variable: originating
Value: 52
Uniqueid: 1315492958.0
Event: NewCallerid
Privilege: call,all
Channel: Local/52@from-internal-3ee1;1
CallerIDNum: 52
CallerIDName: #Id=2
Uniqueid: 1315492958.0
CID-CallingPres: 0 (Presentation Allowed, Not Screened)
Event: NewAccountCode
Privilege: call,all
Channel: Local/52@from-internal-3ee1;1
Uniqueid: 1315492958.0
AccountCode:
OldAccountCode:
Event: NewCallerid
Privilege: call,all
Channel: Local/52@from-internal-3ee1;1
CallerIDNum: 52
CallerIDName: #Id=2
Uniqueid: 1315492958.0
CID-CallingPres: 0 (Presentation Allowed, Not Screened)
Event: Hangup
Privilege: call,all
Channel: Local/52@from-internal-3ee1;2
Uniqueid: 1315492958.1
CallerIDNum: 52
CallerIDName: #Id=2
ConnectedLineNum: 52
ConnectedLineName: #Id=2
Cause: 0
Cause-txt: Unknown
Event: Hangup
Privilege: call,all
Channel: Local/52@from-internal-3ee1;1
Uniqueid: 1315492958.0
CallerIDNum: 52
CallerIDName: #Id=2
ConnectedLineNum: 52
ConnectedLineName: #Id=2
Cause: 0
Cause-txt: Unknown
Event: OriginateResponse
Privilege: call,all
ActionID: 5
Response: Failure
Channel: Local/52@from-internal/n
Context: from-internal
Exten: 0822037
Reason: 0
Uniqueid:
CallerIDNum: 52
CallerIDName: #Id=2
Great!
I'll see what I can do -
Outlook<--->Activa<---"Originate"--->Convert Originate to CSTA.MakeCall<--->Siemens
You've done well despite not getting the call to go through - I know what it is now. The truth is I should have done this years ago, and now I'll get around to doing it because there's benefit!
Cheers
Chris
CSTA trace?
Hi Chris,
Actually yes, you should have done that years ago :P
You're right, your project could really benefit from that, because you open it to the whole crowd of windows applications running on top of TAPI. And that goes from small apps going through windows dialer to call center applications.
Our goal here is to allow our users to dial to customers/partners directly from our ERP system running on Windows terminal server. I guess that you could come up with a real gateway module in your code, relying on activa for the TAPI, and it would also take any input from asterisk client apps communicating on AMI.
Would that be of any help if I sent you a trace of a call made using the Hipath 120 TAPI driver, or are you fine with my input from yesterday? I could send you ASCII dump of the Hex data, or a Wireshark trace file.
Anyway, thanks for reading this and for seeing how this could also be profitable to your project.
Cheers
Jan
Untested on windows
Hi Jan,
I'm not a windows user, but if java is on that machine you could try to see how much info get's passed directly with OpenCSTA. CSTA is like TAPI on steroids - you have more call control.
If you can download the server package on the getting started page, we'll see how far you can get.
You'll need java installed, this is the only requirement.
Thanks
Chris
Thanks
Hi Chris,
Thanks a lot for the quick answer. I will give OpenCSTA servef a try today.
I think I might not have been so clear, as to what I'd like to achieve. We have existing commercial apps that run under windows and use TAPI to place calls. My goal is to "gateway" TAPI to CSTA. So I guess I'll have to write an Application that would handle ActivaTSP communication like a dummy Asterisk PBX, and use your code to relay the info to the HiPath using CSTA.
I'll update you if that works, and if you have any interest.
Jan
Write a wrapper
OK Jan - that makes more sense now.
TAPI should be pretty straight forward - we could work on converting the TAPI commands to CSTA. It would take a bit of work (and patience) but if you could throw some traces up here of what gets sent over the network for making a call....well it could be a nice easy start.
HTH
Chris
Asterisk and OpenCSTA
Activa uses AMI. I've seen this on your site: http://www.opencsta.org/asterisk-csta
If I understand this well, you developed the AMI client side in O-CSTA. If you'd develop a "fake server side" that would communicate with Activa, then O-CSTA would be open to all applications that use TAPI, i.e. virtually all windows apps that use TAPI (at least for simple functions like dialing, etc.). Well, I'm being lazy here :) I'll have a look at it myself.
Precision
Hi,
The thing is, I cannot trace TAPI calls that easily. TAPI is an interface between higher level client application and the Windows OS telephony service, as far as I understood. Siemens does deliver TAPI "drivers", that do just what I want, but the multi-line version is quite expensive. Let me sketch you the way it works:
Client Application
|
-------------------------
| TAPI interface |
-------------------------
|
---------------------------
| Windows TAPI srv |
---------------------------
|
------------------------------
| TAPI Driver |<----- CSTA / TCP -------> HiPath3000
------------------------------
It might not be 100% accurate, but I think that is the way it's layered. My current problem is that the number of lines you can have is defined at the TAPI Driver level, and this is something I cannot change. What I am interested in, is a way for each of my windows Terminal Server user to be able to dial their own phone from a remotely run application.
But you are right that I have to write a Wrapper from E:G: ActivaTSP driver Asterisk communication to CSTA using your code. I have seen your message in their forum, that is why I came to that idea.
Siemens is asking a s*** load of money for a "TAPI driver" that can handle multiple end-devices, and many people are looking for a cost effective alternative (there is a licensing scheme per line). May be a look at JTAPI (GJTAPI) might also be worth it to integrate that directly in your work, but for now I'd like to try it with Activa's stuff. I'll have a look at what it sends over TCP for call signalling to Asterisk. It might then not be too complicated to have basic call functionality using your code.
Install Activa
Hmmm I see what you mean now...
Install Activa and we can hack the simple example to receive TAPI<--->AMI<--read+convert-->CSTA<--->Siemens
If you have a VoIP trunk on the Siemens, I can give you access to an asterisk box to get started if you like. That is if you have limited resources for setting up your own. Mine is already up.
Let me know and I'll contact you tomorrow - sounds exciting - be happy to help you,
Cheers,
Chris
OK
I have a linux box on my desk. I'll install Asterisk on it, because Activa does not seem to like the input I feed it with netcat... I'll send you the details when I have them.