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



--
Игорь Павлов



--
Игорь Павлов



--
Игорь Павлов