Daniel-Constantin Mierla writes:
this tells that the avp list was null. The message is
printed 6 times
since ser added 5 more avp lists - kamailio used to have 1, the first,
corresponding to FROM_URI list in ser notation. So, it looks like all
the avps list were null when the core cleaned the received message. If
there was an avp in any of the lists and it was not deleted, then the
lists are null because they were moved to transaction.
Could it be that this avp is deleted automatically somewhere in a
module?
i haven't found that kind of action in s domain module. avps are
destroyed only when whole domain is deleted.
-- juha
modules_s/domain$ egrep -i avp *.c
domain.c: if (d->attrs) destroy_avp_list(&d->attrs);
domain.c: str name_s = STR_STATIC_INIT(AVP_DID);
domain.c: if (add_avp_list(&d->attrs, AVP_CLASS_DOMAIN | AVP_NAME_STR |
AVP_VAL_STR,
domain.c: str avp_val;
domain.c: /* Get AVP name */
domain.c: avp_val.s = 0;
domain.c: avp_val.len = 0;
domain.c: avp_val = rec->fld[2].v.lstr;
domain.c: flags = AVP_CLASS_DOMAIN | AVP_NAME_STR;
domain.c: if (rec->fld[1].v.int4 == AVP_VAL_STR) {
domain.c: /* String AVP */
domain.c: v.s = avp_val;
domain.c: flags |= AVP_VAL_STR;
domain.c: /* Integer AVP */
domain.c: str2int(&avp_val, (unsigned*)&v.n);
domain.c: if (add_avp_list(&d->attrs, flags, name, v) < 0) {
domain_mod.c:#include "../../usr_avp.h"
domain_mod.c: destroy_avp_list(&d->attrs);
domain_mod.c: str name_s = STR_STATIC_INIT(AVP_DID);
domain_mod.c: if (flags & AVP_TRACK_FROM) {
domain_mod.c: if (add_avp_list(&p->attrs, AVP_CLASS_DOMAIN | AVP_NAME_STR |
AVP_VAL_STR,
domain_mod.c: set_avp_list((unsigned long)flags, &d->attrs);
domain_mod.c: set_avp_list((unsigned long)flags, &d->attrs);
domain_mod.c: flags = AVP_TRACK_FROM | AVP_CLASS_DOMAIN;
domain_mod.c: flags = AVP_TRACK_TO | AVP_CLASS_DOMAIN;
domain_rpc.c: avp_t* a;
domain_rpc.c: name = get_avp_name(a);
domain_rpc.c: get_avp_val(a, &val);
domain_rpc.c: if (a->flags & AVP_VAL_STR) {