Hi Günther,
Günther Starnberger wrote:
Bogdan-Andrei Iancu wrote:
hello,
indeed, a small possibility is by setting a
script route to be
executed just before cpl forwards a request:
http://www.openser.org/docs/modules/1.1.x/cpl-c.html#AEN111
it will help you to make last changes on the request - adding headers,
etc. But the remaining problem is to actually set the URI to be billed
during cpl execution. Each time the cpl does a serial fork, it will
have to update that URI...I thing this is the missing piece.
adding a header is all i need to do as only calls to the pstn are
accounted and the cdrs are written on the pstn-gateway.
my initial plan was the following:
1) on an incoming call add an AVP which contains the callee
2) execute the CPL interpreter
3) in proxy_route check if the actual callee is equal to the AVP. if
this is not the case there was a forward -> put the value from the AVP
into the From header (or the rpid header).
although the whole logic is in the CPL module the user who should be
accounted is always the same one - the owner of the script. or do i
miss something?
if a@local has setup a forward to b@local the cpl interpreter is first
executed for user a@local and then relays the call to b@local which
starts a new transaction (for the incoming call to b@local) so that i
have the chance to put the new callee (b@local) in the AVP again. is
this right?
if the above isn't possible i could try to add the missing
functionality to the CPL module myself. how hard do you assume is it
for someone who doesn't know the internal structure of openser but who
has c programming experience to add the missing code?
I would say it's possible to do it with what we have now (based on your
plan)
1) on incoming call and in an AVP the RPID or if not present, the
FROM URI (as party to be billed)
2) run CPL
3) in proxy_route, remove the existent RPID hdr and add it with the
content from AVP.
all the time the RPID will contain the party to be billed and the GW
should use this info.
regards,
bogdan