Thanks, now it works fine!
Igor
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 commandSimon
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 commandAbout 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 commandSending 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 commandHi.
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
--
éÇÏÒØ ðÁ×ÌÏ×
--
éÇÏÒØ ðÁ×ÌÏ×
--
éÇÏÒØ ðÁ×ÌÏ×