SIP Router Project


FS#161 - domain class AVPs are not stored in transaction

Attached to Project: sip-router
Opened by Juha Heinanen (jh) - Tuesday, 27 September 2011, 21:02 GMT
Task Type Bug Report
Category Module → tm
Status Assigned
Assigned To Andrei Pelinescu-Onciul (andrei)
Operating System All
Severity Medium
Priority Normal
Reported Version Development
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No


as discussed earlier, domain class AVPs are not stored in transaction.

This task depends upon

Comment by Daniel-Constantin Mierla (miconda) - Wednesday, 28 September 2011, 09:06 GMT

From the sources of tm, the domain class of AVPs (which are specific to SER) are kind of special, see build_cell() function:

     /* We can just store pointer to domain avps in the transaction context,
      * because they are read-only
new_cell->domain_avps_from = get_avp_list(AVP_TRACK_FROM | 
new_cell->domain_avps_to = get_avp_list(AVP_TRACK_TO | AVP_CLASS_DOMAIN);

Looks to me they were designed in this way. As I understand, they should be available always, looks like per process, but not per transaction specific, like the other AVPs. However, I am not the author, nor user of them, so maybe the developer can shed more light here.

Comment by Juha Heinanen (jh) - Wednesday, 28 September 2011, 10:42 GMT

I don’t mind domain class AVPs being read only, but it is bad when their values are not available in failure and reply routes. If that is by design, then they should not be called APVs at all and there should not be any reference to them in tm module. At some point Jan told that domain class AVPs should be stored in transaction and that there is a bug in the code if that is not the case, but I guess he is now busy with other things.