Hi Michael,

this is one of the function's usage. You may check if the CANCEL has a corresponding INVITE; if so, just relay it without any other processing. If the CANCEL doesn't match, the best behaviour is to try to fwd stateless applying same changes as for INVITE.

regards,
Bogdan

Michael Ulitskiy wrote:

Bogdan,

If I got it right then now I can do something like the following:

if (is_method("CANCEL")) {
 if (t_check_trans()) {
   t_relay();
 }
}
...
<process request the same as invite>

And now there's no possibility for race when CANCEL received
before openser had a chance to build a transaction.
Is it true?
Thanks,

Michael


On Wednesday 24 August 2005 02:08 pm, Bogdan-Andrei Iancu wrote:
User: bogdan_iancu
Date: 2005/08/24 11:08:15 PDT

 OpenSER CVS - Commit Details

 Modified files:
modules/tm tm.c Commit Log:
 - new TM function t_check_trans(): checks if the request belongs to a
   transacation as follows:
         non-CANCEL;non-ACK - checks if the the transaction already exists
            (retransmission)
         ACK - returns true if it's local e2e ACK; false otherwise;
         CANCEL - returns true if the coresponding INVITE transaction exists.
Revision Changes Path
 1.9       +47 -1     sip-server/modules/tm/tm.c
  [ 
http://cvs.sourceforge.net/viewcvs.py/openser/sip-server/modules/tm/tm.c?r1=1.8&r2=1.9
 ]

_______________________________________________
Devel mailing list
[email protected]
http://openser.org/cgi-bin/mailman/listinfo/devel


_______________________________________________
Devel mailing list
[email protected]
http://openser.org/cgi-bin/mailman/listinfo/devel



_______________________________________________
Devel mailing list
[email protected]
http://openser.org/cgi-bin/mailman/listinfo/devel

Reply via email to