Цитата(harris @ 3.10.2012, 11:23)
С чего Вы это взяли?? Такие же возможности, как и в TCS.
Отвечать на TCS обязательно для открытия H.245, но при FS канал H.245 как таковой не открывается:
With the use of Fast Connect, there is no need to open an H.245 channel, as long as all needed media can be negotiated via Fast Connect.
Давайте не будем читать обзорные презентации по протоколу с packetizer.com (да-да, страницы 110-112 презентации), а обратимся к официальному описанию протокола H.323 v4
Код
8.1.7 Fast connect procedure
H.323 endpoints may establish media channels in a call using either the procedures defined in Recommendation H.245 or the "Fast Connect" procedure described in this subclause. The Fast Connect procedure allows the endpoints to establish a basic point-to-point call with as few as one round-trip message exchange, enabling immediate media stream delivery upon call connection.
The calling endpoint initiates the Fast Connect procedure by sending a Setup message containing the fastStart element to the called endpoint. The fastStart element consists of a sequence of OpenLogicalChannel structures describing media channels which the calling endpoint proposes to send and receive, including all of the parameters necessary to immediately open and begin transferring media on the channels. Details of the content and usage of the fastStart element are discussed below.
Поясняю мысль - в элементе fastStart содержатся структуры OpenLogicalChannel вида:
Код
OpenLogicalChannel ::=SEQUENCE
{
forwardLogicalChannelNumber LogicalChannelNumber,
forwardLogicalChannelParameters SEQUENCE
{
portNumber INTEGER (0..65535) OPTIONAL,
dataType DataType,
multiplexParameters CHOICE
{
h222LogicalChannelParameters H222LogicalChannelParameters,
h223LogicalChannelParameters H223LogicalChannelParameters,
v76LogicalChannelParameters V76LogicalChannelParameters,
...,
h2250LogicalChannelParameters H2250LogicalChannelParameters,
none NULL -- for use with Separate Stack when
-- multiplexParameters are not required
-- or appropriate
},
...,
forwardLogicalChannelDependency LogicalChannelNumber OPTIONAL,
-- also used to refer to the primary logical channel when using video redundancy coding
replacementFor LogicalChannelNumber OPTIONAL
},
где DataType это:
Код
DataType ::=CHOICE
{
nonStandard NonStandardParameter,
nullData NULL,
videoData VideoCapability,
audioData AudioCapability,
data DataApplicationCapability,
encryptionData EncryptionMode,
...,
h235Control NonStandardParameter,
h235Media H235Media,
multiplexedStream MultiplexedStreamParameter
}
А теперь TCS: (документ H.245 v.4)
Код
B.2.2.1 Capability Table
A TerminalCapabilitySet may contain zero or more CapabilityTableEntrys. At the start, no table entries are defined. When a CapabilityTableEntry is received, it replaces the previously received CapabilityTableEntry with the same CapabilityTableEntryNumber. A CapabilityTableEntry without a Capability may be used to remove the previously received CapabilityTableEntry with the same CapabilityTableEntryNumber.
B.2.2.2 Capability Descriptors
CapabilityDescriptors are used to indicate a terminal's capability to transmit and receive. Each CapabilityDescriptor provides an independent statement about the terminal's capabilities.
B.2.2.3 Capability
The choices receiveVideoCapability, receiveAudioCapability, receiveDataApplicationCapability, receiveUserInputCapability and receiveMultiplexedStreamCapability indicate the capability to receive according to the respective VideoCapability, AudioCapability, DataApplicationCapability, UserInputCapability and MultiplexedStreamCapability.
The choices transmitVideoCapability, transmitAudioCapability, transmitDataApplicationCapability, transmitUserInputCapability and transmitMultiplexedStreamCapability indicate the capability to transmit according to the respective VideoCapability, AudioCapability, DataApplicationCapability UserInputCapability and MultiplexedStreamCapability.
The choices receiveAndTransmitVideoCapability, receiveAndTransmitAudioCapability, receiveAndTransmitDataApplicationCapability, receiveAndTransmitUserInputCapability and receiveAndTransmitMultiplexedStreamCapability indicate the capability to receive and transmit symmetrically according to the respective VideoCapability, AudioCapability, DataApplicationCapability and UserInputCapability and MultiplexedStreamCapability. These code points may be useful for indicating that the receive and transmit capabilities are not independent
Capability ::=CHOICE
{
nonStandard NonStandardParameter,
receiveVideoCapability VideoCapability,
transmitVideoCapability VideoCapability,
receiveAndTransmitVideoCapability VideoCapability,
receiveAudioCapability AudioCapability,
transmitAudioCapability AudioCapability,
receiveAndTransmitAudioCapability AudioCapability,
receiveDataApplicationCapability DataApplicationCapability,
transmitDataApplicationCapability DataApplicationCapability,
receiveAndTransmitDataApplicationCapability DataApplicationCapability,
h233EncryptionTransmitCapability BOOLEAN,
h233EncryptionReceiveCapability SEQUENCE
{
h233IVResponseTime INTEGER (0..255), -- units milliseconds
...
},
...,
conferenceCapability ConferenceCapability,
h235SecurityCapability H235SecurityCapability,
maxPendingReplacementFor INTEGER (0..255),
receiveUserInputCapability UserInputCapability,
transmitUserInputCapability UserInputCapability,
receiveAndTransmitUserInputCapability UserInputCapability,
genericControlCapability GenericCapability,
receiveMultiplexedStreamCapability MultiplexedStreamCapability,
transmitMultiplexedStreamCapability MultiplexedStreamCapability,
receiveAndTransmitMultiplexedStreamCapability MultiplexedStreamCapability,
receiveRTPAudioTelephonyEventCapability AudioTelephonyEventCapability,
receiveRTPAudioToneCapability AudioToneCapability
}
Разница в полях OLC в FS и структурах TCS надеюсь понятна стала ?
Насчет того, что при FS H.245 "как таковой не открывается" - это опять-таки заблуждение. Если кто-то из сторон хочет процедуру (как например панас) - она запускается.
Код
8.1.7.2 Switching to H.245 procedures
After establishment of a call using the Fast Connect procedure, either endpoint may determine that it is necessary to invoke call features that require the use of H.245 procedures. Either endpoint may initiate the use of H.245 procedures at any point during the call using tunneling as described in 8.2.1 (if h245Tunneling remains enabled). An H.323 Version 4 or higher entity that uses Fast Connect in a call shall use H.245 tunneling when an H.245 Control Channel is required and shall always set the h245Tunneling field to TRUE. The process for switching to a separate H.245 connection is described in 8.2.3 and may be used by Version 3 or older entities or by newer H.323 entities when communicating with Version 3 or older entities for the purpose of maintaining backward compatibility.
When a call is established using the Fast Connect procedure, both endpoints shall keep the Q.931 Call Signalling Channel open until either the call is terminated or, for compatibility with older endpoints, until a separate H.245 connection is established.
When H.245 procedures are activated, all mandatory procedures of H.245 that normally occur upon initiation of an H.245 connection shall be completed prior to initiation of any additional H.245 procedures. The media channels that were established in the Fast Connect procedure are "inherited" as though they had been opened using normal H.245 openLogicalChannel and openLogicalChannelAck procedures. In order for such "inheritance" to succeed, media sessions opened during the Fast Connect procedure shall use only well-known sessionID values defined in Recommendation H.245.
.......SKIP......
However, an endpoint may exchange the terminalCapabilitySet message and the masterSlaveDetermination message in the Setup message as described in section 8.2.4. Such an exchange constitutes the opening of the H.245 Control Channel, but does not preclude either endpoint from proceeding with Fast Connect.
Цитата
Вся проблема, видимо, в том, что MG отвечает сообщением SetupAck без FS. Но MG в этот момент не знает, сможет ли она принять вызов, т.к не было Sending_Complete, и возможно не все цифры номера получены.
И видимо, поэтому Панас более не реагирует на поля FS, которые MG включает уже в след. сообщения (в Call_Proc).
Поделитесь с нами дампом, нам тоже интересно :-)
Цитата
2 exzerodivide:
Значит мы по-разному понимаем стандарты. Вы наблюдаете за дождем, а мы - за ротой красноармейцев. И неизвестно, что в данном случае важнее.
Игорь, не нужно мне приписывать того, что я не делаю. Я же Вам не приписываю того, чего Вы не делаете.
Цитата
Еще раз перечитал доки... Early H.245 вовсе не является дополнением к Fast Start. Это вполне самостоятельный метод.
Я это сказал в контексте связки FS и parallel H.245 в сообщениях панаса.
Цитата
Оба практически преследуют одни и те же цели - возможность передачи RTP до установления соединения (до Connect).
Опять-таки, это не совсем так. Посмотрите на структуры OLC и TCS.
Цитата
Но при Early H.245, лог. канал H.245 действительно открывается до Connect'а, а при FS стороны обмениваются необходимой информацией в сообщениях, аналогичных H.245, но без открытия Н.245 как такового.
B где-же там аналогичные сообщения ? Приведите примеры что-ли.
Цитата
Впрочем, на глубокие знания данного предмета я не претендую..
На глубокие знания тут никто не претендует. Достаточно читать стандарты и делать выводы.
Цитата
И давайте по-спокойнее... Корейцы, по крайней мере, пытаются найти решение, а не занимаются отписками, как обычно поступает Панас.
Да мы в общем-то и не волнуемся. К слову все забываю спросить - МГ перестала валится при получении в Setup с FS более 3(или 4) кодеков ? :-)