It is not clear for me from the description what is the role of `a_contact_avp`? Store a value inside it that is going to be used to set the user part of the contact URI? Or store in AVP what is in the Contact URI user part?
Then, I would rather use xavp instead of avp, so there can be a parameter `xavp_cfg` that can be set to some `name `and then have `$xavp(name=>a_contact)` and `$xavp(name=>b_contact)`. We end up with a single modparam and can be extended if more attributes are needed later. This is following the trend of using xavps instead of avps -- they were already being replaced for tm serialize contacts, dispatcher, registrar/usrloc, ...