Connection to Hipath 4000 & hipath 3000 Hold and retrive problem
Hello ,
Has anyone succesfully connect OpenCsta to Hipath 4000 ?
I have tried some things but it didnt work , it seems that on hipath 4000 the acse request is different from h 3000 beacause the second byte indicates the length of the acse request not the 3rd .
This is the acse request :
60 2d a1 07 06 05 2b 0c 00 81 5a ac 0d 80 0b 43 41 50 2d 43 61 6c 6c 52
65 63 be 13 28 11 06 07 2b 0c 00 82 1d 81 48 a0 06 a0 04 03 02 00 08
After some modifications of the code used for hipath 3000 i have send to PBX this acse request but i have received an error . This is the log :
INFO - org.opencsta.server.CSTA_Layer5 .... CSTA Link first attempt to connect
INFO - org.opencsta.server.CSTA_Layer5 .... CSTA Link first attempt to connect
INFO - CSTA Link is active - sending ACSE Request
INFO - CSTA Link is active - sending ACSE Request
INFO - org.opencsta.link.CSTATCPClientX: 60 2d a1 7 6 5 2b c 0 81 5a ac d 80 b 43 41 50 2d 43 61 6c 6c 52 65 63 be 13 28 11 6 7 2b c 0 82 1d 81 48 a0 6 a0 4 3 2 0 8
INFO - org.opencsta.link.CSTA_Link_Siemens_Hipath3000_Network getting CSTA Link Thread
INFO - org.opencsta.link.CSTA_Link_Siemens_Hipath3000_Network getting CSTA Link Thread
INFO - Loop to check if csta is up
INFO - Loop to check if csta is up
INFO - org.opencsta.link.CSTATCPClient16 bytes received
DEBUG - org.opencsta.link.CSTATCPClientBuffer status -> Intended Length: a1 | Current Length: 16
DEBUG - org.opencsta.link.CSTATCPClientBuffer is still reading
INFO - org.opencsta.link.CSTATCPClientBuffer is still reading
Incoming Buffer is still reading
The length of chris at the moment is: 16
The length of chris full message should be (hex): a1
The length of chris full message should be (dec): 161
WARN - org.opencsta.link.CSTATCPClientRead failed
On Hipath 3000 there is a problem with the hold and retrieve . There is a difference between the physical hold button on the phone and the hold in the opencsta . When i put on hold from the phone i receive an "Service Initiated event" and i can retrieve the call after . On the OpenCsta i don't receive the "Service Initiated event" and i can't retrieve the call .
Can anyone have any advice??
Thank you .

It worked
Thank you very much , it worked , i had some problems with the call id's , because of that i had those problems . Now it seems to work fine.
I look forward to news about the implementation with Hipath 4000 .
Best regards .
Hipath 4000
Hello again codname,
There is a slight problem with the Hipath 4000 implementation. You are correct about the length being on a different byte. This has been done, however there is one big problem. The hipath 4000 implementation has been lost (for now). I have to track down where the code is because a few years ago the repository got restarted as I got my system administration mojo.
I am currently not near my usual place of work - I am in another state in Australia getting my hands dirty doing non-computer related work.
I am sure the code exists on a CDR backup, which I will need to recover. This will not be do-able until mid-to-late November.
Until then, could you make do with Hipath 3000 implementation and cross your fingers I can find the correct backup.
There are further differences between 4000 and 3000. When pulling apart the strings for Device, the 4000 implementation adds an extra SEQUENCE character 0x30 0xlength. This happens in another part of the string building/taking-apart as well. I would need to sit down and work out where this happens.
Thanks for you patience,
Chris
Hipath 3000 hold problem should be solved.
Hi codname,
If you could keep one problem per thread it makes it easier to solve the problems in future :)
Let's sort out your 3000 hold problem first, because I've just committed the code changes to make it work from OpenCSTA. There were a couple of lines of code missing.
1. When you lift the handset and put it back down, do you get a Service Initiated event and a Connection Cleared event?
If so, then monitoring the extensions is working. You should also receive a Held event whether you put a call on hold from the handset button, or through OpenCSTA now! In the Held event the Call ID can be used to Retrieve the call.
If you check out the client project from head/revision 24, it will work. You would have had problems with Answer,Hold,Retrieve,Transfer & Deflect.
Here is the changeset, you can just update your own code: http://client.trac.opencsta.org/changeset/24 with those changes, and for your reference, this is what another developer found :) http://opencsta.org/forums/support/20110819/simpleexample
Could you let me know if this solves the problem for you?
Thanks
Chris
ReHipath3000
Yes, the monitoring works fine and I have modffied the CSTAMulti file.
After I press the hold button on the telephone it retieves *** HELD ***
*held connection:
* Call ID: 0001
and
*** SERVICE INITIATED ***
*initiated connection:
* Call ID: 0002
After I press the retieve button from the telephone I get
*** CONNECTION CLEARED ***
*dropped connection:
* Call ID: 0002
and
*** RETRIEVED ***
*retrieved connection:
* Call ID: 0001
But this is not happening from my java desktop application. the function:
MyApp.getApplication().getCSTA().HoldCall("101","") generates ONLY the held event but not the "Service initiated event " :
*** HELD ***
*held connection:
* Call ID: 0001
and the function "retieve call" is not working (is not generating any event)
I have called all the functions with .
If I put the Call ID listed in the events (ex: *** DELIVERED ***
*connection:
* Call ID: 0007
function_name("device_id","0007"). it doesn't work.
Thank you.
So so
OK, could you post the log, specifically the CSTA strings (hex values) from your desktop application for Hold and Retrieve.
Could you confirm how you are working with your telephone (i.e. speaker phone, or with the handset in your hand). When you press Hold on your telephone, there is the sound of dialtone if you are using the speaker (handset down, maybe as well with the handset up whilst you are listening). This is where the service initiated event is coming from because you are 1. Holding the current call; and, 2. Creating a new call. That is the behaviour of the telephone.
With java code, you are only holding the call, then silence. There is no second call started or service initiated.
Crazy - but true!