OK, I believe this has turned into a bug in the stack. I've noticed some more details:
- When I send a 183 response with nua_respond() containing SIPTAG_RSEQ() or SIPTAG_RSEQ_STR() the stack disregards my RSeq and uses its own, and PRACK is treated correctly; - When I send a 180 response in exactly the same way the stack uses my supplied RSeq in the response, but when a PRACK is received with a RAck header containing the number I supplied in the response RSeq, sofia responds to the PRACK with '481 No Such Response'. I believe the RSeq value internally stored with the leg information is not updated when RSeq is supplied. Is there a reason 183 and 180 are treated differently in this situation? Thanks. On Tue, Jun 17, 2008 at 4:47 PM, Fabio Margarido <[EMAIL PROTECTED]> wrote: > Sorry to double post, but I've given this some more reading, and now > I'm a bit afraid of the answer I'm likely to get to my original > question. I've found this in the documentation for nta: > > "The nta takes care of assigning a serial number to each reliable > response and resending them if no PRACK request is received" > > And this in the documentation for nua_handle(): > > "Note that certain SIP headers cannot be saved with the handle. They > include Content-Length, CSeq, RSeq, RAck, and Timestamp." > > Does this mean there is no way to change the RSeq header in outgoing > reliable 18X responses without modifying the stack's code in (or so I > believe) the lines below: > > if (irq->irq_must_100rel || > (sip->sip_supported && > sip_has_feature(sip->sip_supported, "100rel"))) { > irq->irq_rseq = su_randint(1, 0x7fffffff); /* Initialize rseq */ > } > > ? > > On a side note, from what I've observed the number generated by this > su_randint() call doesn't seem very random. I've noticed it is always > around 10 digits long. Is that expected? > Thanks. > > On Tue, Jun 17, 2008 at 2:13 PM, Fabio Margarido > <[EMAIL PROTECTED]> wrote: >> Hi there, >> >> I'm trying to set a manually generated RSeq header with >> SIPTAG_RSEQ_STR() in nua_respond(), but 100rel 18X messages go out >> with a stack generated RSeq anyway. PRACK is not among my >> NUTAG_APPL_METHOD()s in this case. Is there something I'm missing or >> is this behavior expected? >> > ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ Sofia-sip-devel mailing list Sofia-sip-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel