[ http://tracker.iptel.org/browse/SER-346?page=all ]
Bogdan Pintea updated SER-346:
------------------------------
Attachment: calculate_hooks.diff
In order to generate a valid route set for the ACK of a local UAC (minding the
loose/strict router as possible next hop), one would have to analyze how the
route set looked like for the original INVITE.
However, the INVITE is transformed by SER and stored in this modified form
(strict router traversing rules applied), before sending it out.
Consequently, information about the next hop (kind of ~) must be computed and
stored along with INVITE retransmission buffer.
The patch modifies calculate_hooks(), in order to return what kind of router
the next hop is, out of the fed route set.
> 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: 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
[email protected]
http://lists.iptel.org/mailman/listinfo/serdev