I've greatly reduced db lookups and external scripts using radius and avpops:
1. During radius authentication, some parameter are returned as SIP_AVP, which will be used later, e.g. remote party id, ....
2. user preferences will be loaded for the from URI (caller preferences) and if necessary for the called URI (callee preferences, e.g. voicemail URI) using avp_db_load.
Thus, there is one radius lookup for authentication, and depending on the call direction (incoming, outgoing, local) one or two db lookups for the user parameters. Then, everything can be handled (at least in our scenario) internally using avpops.
regards klaus
Andreas Granig wrote:
Juha Heinanen wrote:
i agree with you that consistent location table in DB is a good idea, but i don't understand why you need 10-15 mysql queries. switch to radius and return all caller attributes as result of authentication and all callee attributes as result of uri exists check. you end up with only two queries (plus accounting).
I just came across this posting from you (well, a little bit outdated) while digging in Path header documentation, where you argue the same way I did (that one more additional query doesn't matter):
http://www1.ietf.org/mail-archive/web/sip/current/msg04087.html
Now you say that this all can be done using radius. I don't know much of radius, but looking at auth_radius and uri_radius modules I just see the xxx_authorize() and radius_does_uri_exists() methods and don't see a way how these could help me (except writing a own modules for authentication which stores the additional attributes in avp which I could query subsequently).
Beside that the URI could be altered by some kind of call-forwarding-lookups after some basic checks (call barring and such), where checks against this rewritten URI have to be made again, which requires additional queries.
Are you willing to share your experience doing this things with radius?
Thanks, Andy
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers