IAX Java Stack


#1

Hi,

I’m looking into implementing a java IAX stack.

The purpose of this stack should be the following:

  • IAX java phone for desktop computers (Telelearning)
  • IAX java stack in a server (handling 120 concurrent calls) for dtmf processing and recording (I know, that I could do somehow other, but I want to do it with java :wink: )

Can somebody ponit me in the right direction?
What are the obstacles I need to consider?
Is it possible to do it at all?

Any other guideance?

Thanks for your help.
Gerwin


#2

I did some reading and here is what I found out:

Basic structure of the stack:

  • Receiver/Dispatcher component for IAX UDP Packets
  • Jitter Buffer - not yet a clue how this is gonna look like - some ideas here would be great
  • encoding/decoding - here could we add some codecs (like jspeex :wink: ) but for the beginning we will stay with ulaw/alaw because it is supported natively by java (I hope I’m right with this assumption)
  • JMF for playing (speaker) and sending (mic) the audio

Has anybody some thoughts on this?
Am I going in the right direction?

Thanks,
Gerwin


#3

Hi Gerwin,

there was some discussion about this on the mailing list earlier this year
http://lists.digium.com/pipermail/asterisk-dev/2005-April/011158.html.
Tim Panton was working on such a library and at least had a prototype (i dont find that email though).

I am very interested in such a library, too. So if you are real about starting an effort keep me informed.

The IAX specification is available at http://www.cornfed.com/iax.pdf and there is the C reference implementation of libiax. So maybe thats a point to start.

=Stefan


#4

Hi Stefan,

thanks for the Info, I read the postings back then, but never saw something more specific about that.

It is very serious to make this IAX Java implementation happen, but I want to make sure that it is possible to implement this, before getting started.

I already took a look at the IAX and IAX2 spec. Seems to be quite straight forward, but there are a lot of cases which are not really well documented there. So I guess the answers are in the ref. impl. of libiax.

Another concern I’ve got, is that the needed real-time requirements can not be met by Java when there is high load (concurrent 120 channels).
What do you think?

Anyway, are there some thinks you are interested in from a requirement standpoint?

Let me know,
Gerwin


#5

Hi Gerwin,

afaik Tim Panton has a working prototype and showed and applet that was able to place calls - so it is certainly feasible. And there is sip-communicator written in Java which also works.
I am not sure about the 120 concurrent channels and I have to admit that I am not an expert regarding such lowlevel Java programming.

Regarding the requirements I mainly think of to usage scenarios:

  • IAX based softphones (that should be rather easy as there is only one channel)
  • Enhanced IVR stuff including voice recognition (maybe sphinx integration) and realtime text to speech.

=Stefan


#6

[quote=“srt”]
Regarding the requirements I mainly think of to usage scenarios:

  • IAX based softphones (that should be rather easy as there is only one channel)
  • Enhanced IVR stuff including voice recognition (maybe sphinx integration) and realtime text to speech.

=Stefan[/quote]

IAX Softphone
This seems to be a good base for a prototype. Simple, but covers the whole scope. Dial, Answer, Hangup.

IVR stuff
That’s what seems to be really interesting and challanging. Here are the high performance needs.
a.) Voice Recognition
I’ve got some experience with Nuance and Telisma from a project I worked on.
Can you give me some more detailed Information on Sphinx and on what you want to do with it.

b.) TTS
This shouldn’t be to difficult, I think not much more than prompt playing :wink:

Gerwin


#7

yes the softphone is a good way to start.

sphinx is an open source java voice recognition library available from cmu:
http://cmusphinx.sourceforge.net/sphinx4/

I have no real world experience with it and don’t know how it compares to the commercial packages. But it shouldn’t be too hard to make the actual implementation pluggable.
Another think that could be added then would be support for voice xml so applications could be written in any language and the java iax platform would act as a vxml browser.


#8

[quote=“srt”]
Another think that could be added then would be support for voice xml so applications could be written in any language and the java iax platform would act as a vxml browser.[/quote]

This seems quite far from trivial to me, but I like challanges :wink:

OK, I’ll do some studies over the weekend, let’s get some basic things started.

Gerwin


#9

Hehe since you asked for requirements you are very likely to receive challenges g

If you start coding over the weekend and produce something that might compile i am very interested to have a look at it - and maybe help (if i can).

=Stefan


#10

[quote=“srt”]Hehe since you asked for requirements you are very likely to receive challenges g
[/quote]

I know, I did ask :smiley:

[quote]
If you start coding over the weekend and produce something that might compile i am very interested to have a look at it - and maybe help (if i can).

=Stefan[/quote]

OK, lets see how this is going to work out, I’ll let you know as soon as I’ve got something.

BTW: I always try to write code that compiles, … at least. :wink:

Gerwin


#11

Hi,

had no chance to to anything over the weekend,
but I talked to Tim and we are trying to figure out a way
to get some together.

As soon as I’ve got some news I let you know.

Gerwin


#12

I don’t know if you noticed this recent posting to asterisk-users:
http://lists.digium.com/pipermail/asterisk-users/2005-November/135258.html
seems like there is really interest!


#13

Hi,

I am using Asterisk-Java to develop an Asterisk Manager and I keep getting a TimeoutException after calling:

managerConnection.sendAction( new AbsoluteTimeoutAction( channelName, timeout));

Anyone with a clue on what could be causing the problem? Any ideas of a solution or workaround?

Thanks in advance,
Roland.

P/S I posted thos message already to the developer forum but I decided to add it to this thread bc it aligngs with my “java-oriented” goals and maybe you could save my asterisk from a “Geisterflug”. Maybe I could offer a kölsch in Neubrück in exchange for some tips . :laughing:


#14

any news about the java based iax stack?