Using checkval for Call Routing with Sippy B2BUA

Tobias Wolf tobias.wolf at
Wed Jan 7 14:51:38 CET 2009


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 := 
         h323-ivr-in = 
'Routing:12345 at;expires=30;Codecs:alaw,g.726'

b2b Called-Station-Id == 556,Called-Station-Id == 558,Auth-Type := 
         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 

I hope i made myself clear ;)

Kind regards,


   Tobias Wolf

More information about the Freeradius-Users mailing list