* crashes in app_conference


#1

I develop a java SIP softphone and need to use it with app_conference.
It works fine when I dial another softphone (and any other phones), but if second softphone dials existing conference * crashes.
I determined the line of code in \app_conference\member.c file:
left = ast_waitfor( chan, AST_CONF_WAITFOR_LATENCY );
that is executed last before crash.

Can someone advise me what can be the reasons and what can be done to avoid them?

p.s. this was tested on 1.2.0 and 1.2.4 with the same effect.


#2

I didn’t even know you could compile it with Asterisk 1.2.X

I just looked on the project site and noticed that they have updated the code recently:
cvs.sourceforge.net/viewcvs.py/i … onference/

The problem with app_conference is that it was not updated very often and it’s not very well compatibility-tested.

The idea of it is great and I would love to use it, but if it’s not going to make it into SVN ever then I wouldn’t waste time trying to get it to work because you would be at the mercy of the people who understand how it works to keep updating it as Asterisk changes.


#3

Ok, I found and fixed the problem - the reason was in Sun’s JMF library. By default it constructs RTP packet of 480 bytes length for PCMU encoding (and all other applications including hardware phones have 160 bytes). App_conference crashed when was trying to mix different packets.
Documentation on JMF is not quite heplful, so it took some time to figure out how to change the packet length.


#4

@nickbilak:

I am very interested in your findings. Did you fix the problem in your Softphone code or did you do any additions to the app_conference code.

We might try to do some frame length checks in the app_conference code in order to prevent it from crashing asterisk. (That is assuming the different frame length causes asterisk to crash).

Thanks for a reply!

Alex


#5

Alex,
as I already said, I fixed softphone, so it was definitely frame size bug/feature