How do I use ice4j just for interaction with a TURN server?

I would like to use ice4j to handle just interactions with a TURN server only for setting up TCP connections. I think it would go something like this:

  1. client sends an Allocate request to TURN server.
  2. client parses the response.
  3. client sends a CreatePermission request.
  4. client parses the response.
  5. peer connects to allocated ip:port on TURN server.
  6. client receives ConnectionAttempt.
  7. client creates new connection to TURN server and sends ConnectionBind request.

Could anybody point me in the right direction on how to do the above with the ice4j library? I found the now archived project “turnserver” which comes with “TurnTcpAllocationClient” which seems to be doing much of what I want but it fails at the first hurdle, it gets a null response to the allocate request. I do see in the log of my cotrun server

7274: IPv4. tcp or tls connected to: 64.99.230.16:53934

and then a little later:

7334: session 000000000000000003: closed (2nd stage), user <> realm <cnri.net> origin <>, local 0.0.0.0:3478, remote 64.99.230.16:53934, reason: allocation watchdog determined stale session state

Any help would be greatly appreciated.