Igor
There are 2 things here. 1. compensate for the T1000 inability to renegotiate the channel on master/slave conflict. (it should be the slave but ignores the message from H323plus) so that you still get audio. 2. ensure that if the OLC does contain an invalid sessionID that we avoid the assert and reject the OLC.
I have checked a patch into the CVS (h323.cxx,h323neg.cxx) that should resolve both problems.
Simon
_____
From: Igor Pavlov [mailto:pavlov.ig@gmail.com] Sent: Tuesday, 29 December 2009 12:24 AM To: Simon Horne Cc: h323plus@lists.packetizer.com Subject: Re: [h323plus] Valid sessionID in OpenLogicalChannel command
Simon
I can see following sequence of packets with sniffer:
me -> T1000 : masterSlaveDetermination : terminalType 50 T1000 -> me : masterSlaveDetermination : terminalType 50 me -> T1000 : masterSlaveDeterminationAck : descision slave(1) T1000 -> me : masterSlaveDeterminationAck : descision master(0)
Am I understand you right that T1000 says that he is master, however don't discharge master's obligations correct ?
May be Assert should work only in debug? But in release in this case h323plus should just reject such RTP session (with incorrect sessionID) ?
Igor
28 декабря 2009 г. 16:47 пользователь Simon Horne s.horne@packetizer.com написал:
Igor
The problem you are having with the Tandberg T1000 is a tandberg bug. The endpoint cannot properly renegotiate the OLC on a master/slave conflict. The H323plus end advises the T1000 that it is master however the T1000 ignores it causing the conflict. Tandberg may have a firmware update to correct the problem.
Simon
_____
From: Igor Pavlov [mailto:pavlov.ig@gmail.com]
Sent: Monday, 28 December 2009 11:07 PM
To: Simon Horne Cc: h323plus@lists.packetizer.com Subject: Re: [h323plus] Valid sessionID in OpenLogicalChannel command
About H.264 plugin - actualy I have 3rd party static library for H.264 encoding/decoding and use H264 plugin as wrapper to connect library to h323plus. I don't think anyone has interest of half working plugin without static library...
28 декабря 2009 г. 15:57 пользователь Simon Horne s.horne@packetizer.com написал:
Igor
The problem is caused by an master/slave conflict when first opening the audio channel which results in the OLC being rejected. The correct process is to renegotiate the OLC. It appears that the T1000 cannot properly renegotiate the OLC and incorrectly allocates an invalid sessionID of 0 which causes the assert and behavior you highlighted.
I also see you are using a modified and working H.264 plugin and have decided not to contribute any of that work back to the project. This is a pity.
Simon
_____
From: Igor Pavlov [mailto:pavlov.ig@gmail.com] Sent: Monday, 28 December 2009 9:46 PM To: Simon Horne Cc: h323plus@lists.packetizer.com Subject: Re: [h323plus] Valid sessionID in OpenLogicalChannel command
Sending log. T1000 in most cases after Reject sends OLC with sessionID=0, and in less cases send OLC with sessionID from 32 up to 53 (increase 1 after each reject).
2009/12/28 Simon Horne s.horne@packetizer.com
Igor
Session ID should never be zero. This is clearly an error coming from the T1000 unit.
Can you post a level 6 trace showing the condition the T1000 sends an OLC with sessionID = 0
Simon
_____
From: h323plus-bounces@lists.packetizer.com [mailto:h323plus-bounces@lists.packetizer.com] On Behalf Of Igor Pavlov Sent: Monday, 28 December 2009 8:25 PM To: h323plus@lists.packetizer.com Subject: [h323plus] Valid sessionID in OpenLogicalChannel command
Hi.
I have problem when I reject OpenLogicalChannel (audio) while communicating with Tandberg T1000. In most cases Tandberg send me OpenLogicalChannel again with sessionID=0 so my application falls in assertion in file rtp.cxx line 760 : PAssert(id > 0 && id < 256, PInvalidParameter);
I could not find valid value range for sessionID, but I don't like when application crashes in this case :( What can I do in this situation?
Igor Pavlov