<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
<META NAME="GENERATOR" CONTENT="GtkHTML/3.28.1">
</HEAD>
<BODY>
Food for thought since this is a problem I have dealt with as well, If you restrict your view to only SBC radius logs you will miss some events. Perhaps this isn't critical to your deployment though but I find that a lot of on-switch events and a lot of the meta-data that comes with the billing records is hugely valuable to producing complete billing records. This was my experience with Sylantro, especially when more unusual call flows got involved such as ACD queuing etc. <BR>
<BR>
On Wed, 2009-11-11 at 16:40 -0500, Scott Berkman wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
The Metaswitch is just one of a number of systems involved in everything. The idea was to bill off the Radius records from the SBC's, because every call touches them. Not every call touches the Metaswitch, so we are trying to avoid dealing with those records as well.
The Metaswitch trunk auth may help, we'll look into that.
Thanks,
        -Scott
-----Original Message-----
From: anorexicpoodle [<A HREF="mailto:anorexicpoodle@gmail.com">mailto:anorexicpoodle@gmail.com</A>]
Sent: Wednesday, November 11, 2009 4:26 PM
To: Scott Berkman
Cc: 'Alex Balashov'; <A HREF="mailto:voiceops@voiceops.org">voiceops@voiceops.org</A>
Subject: RE: [VoiceOps] Billing of Forwarded Calls
Actually depending on how you have constructed your trunk in Metaswitch
you can indeed authenticate the call, just turn on the SIP
Authentication required flag in the configured SIP binding for your
trunk. Be aware this will force it to authenticate invite, cancel and
bye messages so this may be undesirable but it will certainly get you
what you need.
Given the scope of your problem though you know who is originating the
call since it would be coming from a configured sip binding, are the
billing records Metaswitch produces insufficient for this?
On Wed, 2009-11-11 at 16:01 -0500, Scott Berkman wrote:
> Because on a normal termination call the call is sent with the From user as one of the customer's numbers. When a call is forwarded, perhaps as part of a find-me follow-me type feature, the system preserves the original caller's number as the From. Some PBX's do use diversion headers, some use them only on "internal" calls, IE not to a provider's trunk, and some don't send them at all. Again, some customer systems do not support authentication, and some carrier platforms (such as the Metaswitch) do not support authentication on trunks. In this case we are trying to bill a number of different platforms off one central system, the records of the SBCs that sit in the middle of everything and see all the traffic. They just don't know how to correlate calls they don't see as related based on SIP headers.
>
>         -Scott
>
> -----Original Message-----
> From: Alex Balashov [<A HREF="mailto:abalashov@evaristesys.com">mailto:abalashov@evaristesys.com</A>]
> Sent: Wednesday, November 11, 2009 3:29 PM
> To: Scott Berkman
> Cc: 'anorexicpoodle'; <A HREF="mailto:voiceops@voiceops.org">voiceops@voiceops.org</A>
> Subject: Re: [VoiceOps] Billing of Forwarded Calls
>
> Yes, but if a call comes from a SIP trunk from a system located on the
> customer's premises, what is the issue? Why not just bill the call as a
> normal termination call, just as if someone picked up the phone and
> placed it?
>
> Scott Berkman wrote:
>
> > Think about this in the context of a SIP trunking provider where the systems in question are customer systems that you cannot control, pull CDR off of, or require diversion headers from. You can't tell the customer you won't provide them SIP trunks because "their system sucks". Because you are trying to support a wide range of systems, the presence or absence of a diversion header will be a variable.
> >
> >         -Scott
> >
> > -----Original Message-----
> > From: anorexicpoodle [<A HREF="mailto:anorexicpoodle@gmail.com">mailto:anorexicpoodle@gmail.com</A>]
> > Sent: Wednesday, November 11, 2009 3:12 PM
> > To: Alex Balashov
> > Cc: Scott Berkman; <A HREF="mailto:voiceops@voiceops.org">voiceops@voiceops.org</A>
> > Subject: Re: [VoiceOps] Billing of Forwarded Calls
> >
> > Look for the presence of a diversion header, if the diversion header is
> > there, then that is the responsible party. I cannot speak to the
> > particulars of your platform, but as long as you make sure that if a
> > diversion header is present it is assigned as the responsible party your
> > billing should come out correct in this flow. If your switch/endpoint is
> > not adding a diversion header then I am inclined to agree with Alex.
> >
> > On Wed, 2009-11-11 at 13:01 -0500, Alex Balashov wrote:
> >> Scott Berkman wrote:
> >>
> >>> So how do most of you deal with billing of forwarded calls (specifically
> >>> where the calling number on the forwarded leg is using the original
> >>> calling number from the inbound leg) in a SIP environment when the
> >>> originally called number is not preserved in the new invite? In this
> >>> case there is no way to match the calling or called number to a specific
> >>> customer.
> >>>
> >>> Do you bill by IP address or interface instead? Do you somehow use a
> >>> system that correlates the forwarded leg to the original inbound leg?
> >>> I’ve come across this issue a few different times when trying to bill
> >>> off of SIP messaging logs, for instance radius off a SIP SBC or SQL logs
> >>> from SER.
> >> In my view, that depends on what is doing the forwarding.
> >>
> >> If it's the customer handset actually initiating the forward, then it
> >> should just look like a normal termination call from the customer.
> >>
> >> If it's a multi-tenant switch or other call control agent, it should
> >> have some way of associating forwarded calls with an account and
> >> sticking an account ID or similar into the CDRs, which will reveal who
> >> to bill and presumably the rate plan to use.
> >>
> >> If it can't do that, the product sucks.
> >>
> >> -- Alex
> >>
> >
> >
> >
>
>
</PRE>
</BLOCKQUOTE>
<BR>
</BODY>
</HTML>