Using checkval for Call Routing with Sippy B2BUA

Luciano Afranllie listas.luafran at
Thu Jan 8 14:56:28 CET 2009

On Wed, Jan 7, 2009 at 11:51 AM, Tobias Wolf <tobias.wolf at> wrote:
> Hello,
> i am using FreeRadius 1.1.3 and want to use it for Call Routing.
> The Sippy B2BUA will send AAA Requests to RADIUS and i want the routing
> based on the Called-Station-Id Attribute.
> For the beginning i would like to configure the routes in the users-File and
> later switch to an sql backend.
> This is my users-File:
> b2b Called-Station-Id == 555,Called-Station-Id == 557,Auth-Type := Accept
>        h323-ivr-in =
> 'Routing:12345 at;expires=30;Codecs:alaw,g.726'
> b2b Called-Station-Id == 556,Called-Station-Id == 558,Auth-Type := Accept
>        h323-ivr-in =
> 'Routing:12345 at;expires=30;Codecs:alaw,g.726'
> The Calls will always come from the same user and the called number will
> have to decide what SIP Server to use.
> If i have only one Called-Station-Id in the check pairs line, i get the
> Access-Accept with the reply data.
> But since one route can have a lot of numbers i need to be able to have
> several Called-Station-Id Entrys. From the description of the checkval
> attribute it appeared to me the correct solution.
> Apart from this the different number ranges are conncected to different end
> users, which i have to find. This will be an accounting issue.
> How can this be solved with Freeradius ?
> The real user is not known when the INVITE reaches Sippy. Sippy sends the
> request to Freeradius with a lot of information, from which
> Called-Station-Id will indicate what SIP Server to use and what End User is
> associated with the call.
> Just want to clarify the whole procedure:
> I have several incoming SIP Servers, which sends SIP calls to Sippy. Each
> SIP Server will control a certain number range and will send its servername
> as Username. The SIP Server have no infomation about which number belongs to
> which end user, they forward all calls to Sippy.
> The Radius Server will have the information what numbers are associated with
> a certain end user and to which sip server a call have to be sent.
> The Authorize Request from Sippy should confirm wether the destination
> number is valid (is configured for an end user) and replys with the correct
> sip server to use and with a special codec list for the call. If the number
> is not configured, a Access-Reject is send and the call is aborted.
> I hope i made myself clear ;)

Some questions:

SIP proxies are not making authentication, the authentication is being
done only by B2BUA?
For granting access you don't care if the caller is authorized to make
the call, you only care if destination is valid?

And finally just a tip: You should return h323-ivr-in attribute to
Sippy b2bua inside Cisco-AVPair attribute. You need something like
this in users file
Cisco-AVPair = 'h323-ivr-in=Routing:12345 at;expires=30;Codecs:alaw,g.726'


More information about the Freeradius-Users mailing list