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.
Since logging and accounting is a problem, I want to only allow local numbers in the forward field. Is there any function available to match and modify the contact field. For example, if it is "Contact: sip:18085551212@mydomain.com", I should change it to "Contact: vm+(original-callee-number)@mydomain.com" which goes to voicemail. Are search() and append_urihf() good for this?
I think the same issue applies to REFER. However I won't be able to disallow a toll call on REFER. It is possible a secretary makes a toll call, then REFREs to the boss. So I have to find some way to log and account this.
Thanks, Richard