Thanks for the reply Sayan,

As for the scenario is concerned, how about the late media call? i.e.
offer carried in 200 OK and answer in ACK ? I think you will be hard
pressed to do this in the transaction layer...

ACK construction is definitely done by the UAC core as you indicated. My
cocern is specifically regarding the retransmission which is kind of like
this


- UAC sends INVITE creates a transaction 
- Gets a 200 OK frees the transaction and passed the message to UAC core
- UAC core constructs the ACK and sends it directly to transport as per
recommendation of section 13.2.2.4
- Now if the UAC core constructs and has the responsibility of
retransmission, that is where I think we have a design limitation of keeping
a number of ACKs possible ....

Now if we follow the same logic as we follow for 3XX, I do not have to worry
about keeping copies of ACK in UAC core, when ever TXN time will timeout it
will retrieve the txn ptr which has copy of last sent message.

- UAC sends INVITE creates a transaction
- Gets a 200 OK and passed the message to UAC core
- UAC core constructs the ACK and sends it to transaction layer on the same
transaction. ( I know that ACK will have it's own branch, but I am sure it
is possible to locate INVITE txn and push this ACK on  the same transaction
) . Now if we use this txn time for handling duplicate 2XX and free the TXN
after 32 seconds. I do not have to store the ACKs in the UAC core ...

But then fundamentally I am deviating from the recommendations ( for my
memory savings reasons. UAC core/dialog is in SHM, TXN is on heap and have
to keep multiple ACKs in dialog as indicated above ), so I want to
understand if I do decide to deviate then what are it's impact from handling
some call scenarios / application. 

I want to basically make sure that later on we do not have to go back to
what the protocol says, bcoz we could not forsee the call-scenario I am
looking for.

Was I able to explain, what I meant to ?? if not please let me know. 

Thanks.

Indresh

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Friday, March 18, 2005 6:08 AM
To: Singh, Indresh; [email protected]
Cc: Shetty, Sathish
Subject: RE: [Sip-implementors] Saving ACK in the UAC core !!



Hello Indresh ,

Theoretically we can have both infinite offer-answers and an infinite
memory model as well :)

Practically I guess we may need to limit it according to the system on
which we are implementing our UAC...

Also do you need to preserve the copy of the entire ACK message? you can
remember the transaction object for the timer duration and generate the
ACK each time you get a retransmitted 200 .

As for the scenario is concerned, how about the late media call? i.e.
offer carried in 200 OK and answer in ACK ? I think you will be hard
pressed to do this in the transaction layer...


Regards,
Sayan




-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Singh,
Indresh
Sent: Thursday, March 17, 2005 7:58 PM
To: '[EMAIL PROTECTED]'
Cc: Shetty, Sathish
Subject: [Sip-implementors] Saving ACK in the UAC core !!

Hi,


I have this concern regarding the UAC core ACK retransmission logic. As
per
the RFC-3261 after getting a 200 OK from the UAS, UAC should free the
transaction, pass the event to the UAC core and the UAC core will send
an
ACK ( thus ensuring reliability of the final response). Now UAC has to
save
this ACK for 64 * t1 secs.


The problem is that let us say if the UAC core is the dialog/session
layer
in an implementation. Then copy of the first ACK is saved in the
dialog/session layer and a Timer is run for 64 * t1 sec. Now immediately
if
there is a media re-negotiation ( re-INVITE-200OK-ACK), then UAC has to
run
another timer for 64 * t1 sec and save another copy of the ACK message (
for
handling 200 OK retrans by the UAS )


Now there is no limit on how many times a user can re-negotiate media (
theoretically), so how many copies of the ACK message and how many
timers
one is going to run in the dialog/session layer. Dialog/Session Layer is
a
persistent call block and many times memory for it is allocated from
Shared
memory where you can not have dynamically expandable memory. Even if you
save it in a link-list pointer and keep the link-list on heap, one has
to
worry about syncing stuff ( for failover support etc ).


So I am basically again coming back and asking the question why do we
have
to handle the INVITE-2XX-ACK differently and handle it in UAC core and
not
in the transaction level.


Please let me know if the query is not coherent.



Regards,


Indresh K Singh
_______________________________________________
Sip-implementors mailing list
[email protected]
http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors



Confidentiality Notice


The information contained in this electronic message and any attachments to
this message are intended
for the exclusive use of the addressee(s) and may contain confidential or
privileged information. If
you are not the intended recipient, please notify the sender at Wipro or
[EMAIL PROTECTED] immediately
and destroy all copies of this message and any attachments.
_______________________________________________
Sip-implementors mailing list
[email protected]
http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors

Reply via email to