[prev in list] [next in list] [prev in thread] [next in thread] 

List:       serdev
Subject:    [Serdev] [Tracker] Updated: (SER-346) TM support for SASI
From:       "Bogdan Pintea (JIRA)" <tracker () iptel ! org>
Date:       2008-08-18 13:59:49
Message-ID: 30377902.1219067989647.JavaMail.root () tracker
[Download RAW message or body]

     [ http://tracker.iptel.org/browse/SER-346?page=all ]

Bogdan Pintea updated SER-346:
------------------------------

    Attachment: as_ack.diff

Updated patch to work against current HEAD.

Notes (to ongoing issue discussion):
a) calculate_hooks is currently always called; so, the flag returned by it, stored \
along with the retransmission buffer can be immediately used.

b) in cases this won't happen, the following tests are sequentially applied (order by \
speed):  [1] check if 1st route lacks ;lr  => strict
  [2] check if last route shows ;lr => loose
  [3] 1st route has ;lr -> check if the destination of original INV equals the \
address provided by this route; if does => loose  [4] compare (possibly updated) \
remote target to original RURI; if equal, a strict router's address wasn't filled in \
as RURI => loose  [5] compare (possibly updated) remote target to last route; if \
equal, strict router's address might have been filled as RURI and remote target \
appended to route set => strict  [6] assume loose

c) local_ack buffer remains present in retr_buf as pointer only. For performance, I \
did merge allocations, but didn't piggyback TM's cell allocation, but rather ACK's \
printing buffer: I've overridden build_dlg_ack() "len" as printing offset.

The patch also compacts the printed route set, from a route every line to a comma \
separated list.


> TM support for SASI
> -------------------
> 
> Key: SER-346
> URL: http://tracker.iptel.org/browse/SER-346
> Project: SER
> Issue Type: Improvement
> Components: Transaction Manager
> Affects Versions: Ipteldorf
> Reporter: Bogdan Pintea
> Assigned To: Andrei Pelinescu - Onciul
> Priority: Minor
> Fix For: Ipteldorf
> 
> Attachments: as_ack.diff, calculate_hooks.diff
> 
> 
> The patch adds TM support for the SASI (but also addresses a couple of bug fixes).
> Boogs: 
> - when building the route set (for ACKs), only the reply is now evaluated; this is \
> insufficient, since replies to in-dialog requests normally miss the route set. This \
>                 route set is used to evaluate the next hop.
> - t_check_status(): error handing case attempts to use possibly uninit'ed value \
>                 (fp)
> - ACK matching bug documented (but not fixed in patch), in ack_matching()
> New functions added to the TM API:
> - t_get_canceled_ident(): gets the transaction ID (TID) of the T of the canceled \
> request. This is needed because SER sends the AS the TID of request and expects it \
> back in replies given by the AS; in the case SER receives forked requests, out of \
> which, say, one is canceled, the AS should get the TID of the original request, not \
>                 the one for the 'current' CANCEL.
> - cancel_uac(): see bug #253 (the code is updated to match current head in attached \
>                 patch)
> - ack_local_uac(): allows for another module to build&send an ACK for a pending \
> transaction. Needed to allow scenarios where the AS sends the ACK containing an SDP \
> answer. Updates:
> - local_ack member added to struct ua_client. This is needed for the case the AS \
> sends out both the INVITE and 2xx-ACK. In this case, retransmissions of the 2xx are \
>                 handled by SER, rather than having the AS regenerate the ACK every \
>                 time.
> - build_dlg_ack() can now take extra headers and a body, as parameters
> - disabled a not fully understood hack: a CANCEL's transaction label is set to \
>                 equal the INVITE's label (in e2e_cancel())
> - memapp macro moved in t_msgbuilder.c, from .h, since it's only used there
> - append_mem_block, append_str macros had the trailing `;' removed
> - append_mem_block macro removed from .h (defined in .c, already, but gcc doesn't \
>                 complain over two identical defines)
> - logging message in uri2dst() moved from LOG(LEVEL...) to LEVEL(...), since "..." \
> contained old function name ('uri2sock').

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: \
                http://tracker.iptel.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
Serdev mailing list
Serdev@lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serdev


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic