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) {