Archana,
This gets back to my statement of why I've felt that CRVs are of little use-- you really do need something that makes your endpoint unique.
There have been a number of problems with CRVs, which is one reason why the CallID was introduced in H.323v2. I recommend following the rules w.r.t. CRVs for the purposes of backward compatibility. It should be safe to use the CRV to differentiate multiple calls over the same call signaling channel (allowed in newer versions of H.323). It should also be safe to assume that the CRV in the originating ARQ is the same as the CRV in the corresponding Setup message. However, I would personally put more weight behind the CallID and using it to differentiate messages. However, there are some messages that do not have the CallID field (this is particularly true prior to V4), so it is important to be able to determine what call the message is for based on the fact the call exists on a separate connection or that the CRV value is properly set.
Essentially, two entities existing on the same physical machine will not utilize the same TCP connection to a remote entity, so if those two entities did use the same CRV, the far endpoint shouldn't care.
The Gatekeeper may utilize the CRVs and it will recognize the uniqueness of the entities by their RAS address and the assigned endpoint identifier, so I don't think GKs have the same issues as endpoints.
From a practical point of view, what Chris Purvis said makes sense-- the
CRVs should be unique only across a single connection. However, the text doesn't seem to support that-- and the idea definitely falls apart once GKs come into the picture. However, if you just originate unique CRVs and ignore CRVs on the called end, except in cases where multiple calls are signaled over the same call signaling channel and relate the CRVs on a very local scope, I believe you will not see any interoperability issues.
I believe that the only real issue that prevents us from looking at CRVs as unique only within a single connection is their use w.r.t. the GK. Perhaps we could examine ways to change this. For certain, CRVs are a "bottleneck". On one hand, they can be used to reference a particular call quickly. On the other hand, it limits an H.323 entity to ~32K calls. It would be very nice to see that restriction lifted-- perhaps retaining the CRV only for backward compatibility, but changing some of the rules when an endpoint is communicating with a V5 or higher Gatekeeper, for example.
Paul
----- Original Message ----- From: "Nehru, Archana" archie@trillium.com To: "'Paul E. Jones'" paulej@PACKETIZER.COM Cc: ITU-SG16@mailbag.cps.intel.com Sent: Tuesday, January 16, 2001 9:19 PM Subject: RE: H.225- CRV
Paul,
Since we agree that CRVs should be unique between two endpoints, what is the ideal behavior in the following case?
Let us say there are two endpoints running on the same machine..which
means
that they have the same source IP address. Since the two endpoints are independent entities, they will generate CRVs independently. Now let us
say
both the endpoints make a call to another endpoint/GK with the same CRV. So at the receiver's
side,
we see two incoming calls with exactly the same CRV and exactly same "source" IP address. Is this a valid configuration? How is a receiver supposed to handle these incoming calls, particularly is there is no "callId"?
Thanks -Archana
-----Original Message----- From: Paul E. Jones [mailto:paulej@PACKETIZER.COM] Sent: Tuesday, January 16, 2001 12:40 PM To: ITU-SG16@mailbag.cps.intel.com Subject: Re: H.225- CRV
Chris,
Considering that V1 only allowed a single call over a single TCP connection, what would have been the point of a CRV in the Setup message? If they could all be the same, it makes them worthless. (Of course, I've found CRVs in packet-switched systems mostly worthless, but not entirely.)
From H.323: ``One CRV is used to associate the call signalling messages. This CRV shall be used in all call signalling messages between two entities (endpoint to Gatekeeper, endpoint-to-endpoint, etc.) related to the same call.''
Note the text that says "between two entities". If the intent was that these values were only unique "per connection", it would say so. The CRVs are unique between two entities.
From H.225.0: ``Note that the CRV is only unique on a particular part of a call, e.g. between two terminals, or between a terminal and a gatekeeper. If a given terminal has two calls in the same conference, each shall have the same conference ID but different CRVs.''
The latter sentence is more important: when communicating between two entities, it states clearly that there must be different CRVs. Again, with V1 those two calls would have been using different TCP connections, yet the text clearly says the CRVs must be different.
Now, I may be wrong-- this is just my interpretation of the text. I'd like to hear other comments.
Paul
----- Original Message ----- From: "Chris Wayman Purvis" cwp@isdn-comms.co.uk To: "Paul E. Jones" paulej@packetizer.com Cc: ITU-SG16@mailbag.cps.intel.com Sent: Tuesday, January 16, 2001 5:16 AM Subject: Re: H.225- CRV
Paul,
I disagree. CRV is surely unique per connection. One may be well advised to keep it more unique than that, because in gatekeepered environments you're liable to end up with
problems if you're not
careful because of your note 1 - but if I receive Q.931 messages on
separate
TCP connections giving the same CRV I shouldn't expect them
to refer to the
same call. I argue that this is rooted in the principal of
TransportAddress
throughout the H.323 standards including the SAPI (IP port
number) as well as
actual address.
Regards, Chris
"Paul E. Jones" wrote:
Archana,
(a) is closer to the way things actually work.
Essentially, you can use whatever values you wish so long
as you never place
two calls to the same endpoint using the same CRV value.
So, whether two
calls to an endpoint use the same TCP connection or different
connections,
the CRV must be unique.
You should also consider the possibility that an endpoint
may have two call
signaling addresses. How would you know if this were the
case? The safest
thing to do is never have two calls with the same CRV at
the same time.
However, if you know that the destination endpoints are unique, you
could
re-use the CRV value.. at least when a Gatekeeper is not
being used.
There are also so other properties of CRVs:
- The CRV sent in an ARQ to place a call shall be the
same as the
CRV in the resulting Setup message
- The CRV sent in an ARQ to accept a call should *not* be taken from the incoming Setup message-- it should be
locally generated so
that it is a unique between the endpoint and the GK
Paul
----- Original Message ----- From: "Nehru, Archana" archie@trillium.com To: "'Paul E. Jones'" paulej@PACKETIZER.COM Cc: ITU-SG16@mailbag.cps.intel.com Sent: Monday, January 15, 2001 10:28 PM Subject: H.225- CRV
hi all,
I have a question about H.323 -CRV values. Q.931 specs
says that a CRV
value
should be unique per D-channel layer 2 logical link.
In H.225 context, does the above mean that:
a) CRV values should be unique across all outgoing H.225
calls that have
the
same "destination" IP address ?
b) CRV value only needs to be unique across all H.225 connections
using
the
same TCP connection? In other words, if an endpoint A makes two
simultaneous
calls to endpoint B, then the same CRV can be used on
both the calls, as
long as they use different TCP connections?
I would appreciate any help on this.
Regards Archana
> > For help on this mail list, send "HELP ITU-SG16" in a message to > > listserv@mailbag.intel.com > > -- > Dr Chris Purvis -- Development Manager > ISDN Communications Ltd, The Stable Block, Ronans, Chavey Down Road > Winkfield Row, Berkshire. RG42 6LY ENGLAND > Phone: +44 1344 899 007 > Fax: +44 1344 899 001 >
For help on this mail list, send "HELP ITU-SG16" in a message to listserv@mailbag.intel.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For help on this mail list, send "HELP ITU-SG16" in a message to listserv@mailbag.intel.com