Menu

#37 ACK building for negative replies in local transactions

ver 1.0.x
closed-fixed
modules (357)
5
2006-05-29
2006-04-21
No

(Transaction Module, local UAC transactions)

When the ACK is built for a response to a local UAC
transaction, it is build using build_dlg_ack().

the ACK's request-URI is created from the Route-Set (if
it exists) or from Contact (if no route-set), although
section 17.1.1.3 (construction of the ACK request) in
3261 says that the ACK must have the same
request-URI,From and Call-ID headers as the original
INVITE. So the request-URI should be taken from the
transaction buffer (t->uac[0].request).

I've found that changing build_dlg_ack() with:

process_routeset(rpl,&contact,&list,&ruri,&next_hop)
to
process_routeset(rpl,&Trans->uac[0].uri,&list,&ruri,&next_hop)

and then

if((contact.s != ruri.s)||(contact.len!= ruri.len)){
to
if((Trans->uac[0].uri.s!=ruri.s)||(Trans->uac[0].uri.len
!=ruri.len)){

fixes this behavior.

Discussion

  • Bogdan-Andrei Iancu

    Logged In: YES
    user_id=1275325

    Elias,

    the fix was slightly different - it was committed on CVS.
    Please update and see if works properly for both 2xx and
    negative replies.
    If there are still some problems, please re-open the bug report.

    Thanks and regards,
    Bogdan

     
  • Bogdan-Andrei Iancu

    • assigned_to: nobody --> bogdan_iancu
    • status: open --> closed-fixed
     

Log in to post a comment.