The documentation says "remove + generate", so I'd say this is then buggy
behavior.
I looked briefly at the code and ... it's a bit questionable if it would work
but in some certain combinations of calls.
1. To either replace or remove the header is conditioned additionally by
`_siputils_pcv_status == PCV_PARSED`. From what I could deduce, that's not set,
unless you tried to get that header and it was parsed... I have no idea why
replace/remove would be conditioned by that. (But when it works, then removes
both the value and the header name, I think.)
2. Adding the header is done with a lump at a position which seems a bit...
arbitrary to me: `msg->parsed - msg->buf`, so where the parsing stopped before.
Lumps were always scary to me, so I'd guess maybe some deleted headers pushes
it in the message body. Also: the added part is just the header value, skipping
the header name part, albeit that's written in a buffer. So matches what you
see in the message. I'm wondering how it would work for a simple generate...
3. The last issue is why it's the same value, which I don't know if it still
matters given 1&2. There are some parsing-back extra complications after
generating, so that might be the issue. Or lumps issues again?
Maybe @neutrino38 can pitch in?
P.S. I'd suggest an alternative path, to only generate a PCV value in C-code
and return it to the script (or if there is a UUID/unique/etc generator
function in the script that'd be enough), then use other script functions to
add the header with that value wherever you want, remove older values, etc.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/3929#issuecomment-2329769156
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/3929/2329769...@github.com>
_______________________________________________
Kamailio (SER) - Development Mailing List
To unsubscribe send an email to sr-dev-le...@lists.kamailio.org