Richard writes:
The issue is that A has no choice to be forwarded or not. When a 302 is received by A, there is no option for A to continue or reject the call.
well, this is purely a SIP UA issue. try, for example, kphone. when it receives 302, it asks the user if the user wishes to place another call to the referred (possibly expensive) destination. many SIP UAs don't do it, which is VERY dangerous for the user.
In this example, B (an IP phone) sets his phone forwarding to C which is a long distance number. A is from PSTN. When A makes a call to B, B sends 302 to the PSTN gateway. The gateway forwards the call to ser which routes it back to C via the PSTN gatway. So in ser's call log, I see a call from A to C. Apparently I can't charge A or C. Only B is in my domain. But B is not even in the second call log. In my understanding, if B sets the forward setting on his phone to a toll number, he should be the one paying the bill.
regarding pstn gws, i recommend that you turn off 302 processing, since otherwise your gw may end up paying for the forwarded (expensive) leg of the call, since, as you say, you cannot charge the PSTN caller.
-- juha