Ok, I will paste critical configs in email.
You need to setup radius as usual and copy dictionary files as usual.

/etc/openser.cfg:
#
# $Id$
#
# radius config script
#
# ----------- global configuration parameters ------------------------

debug=0            # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=no    # (cmd line: -E)
check_via=no    # (cmd. line: -v)
dns=no          # (cmd. line: -r)
rev_dns=no      # (cmd. line: -R)
port=5060
children=4
listen=udp:yy.yy.yy.yy
listen=udp:xx.xx.xx.xx
alias=sfbay.sun.com
avp_aliases="day=i:101;time=i:102"

#fifo="/tmp/openser_fifo"

# ------------------ module loading ----------------------------------
#mpath="/usr/local/openser-1.0.1/lib/openser/modules"
mpath="/usr/local/lib64/openser/modules"

#loadmodule "mysql.so"
loadmodule "sl.so"
loadmodule "tm.so"
loadmodule "rr.so"
loadmodule "maxfwd.so"
loadmodule "avpops.so"
loadmodule "usrloc.so"
loadmodule "registrar.so"
loadmodule "textops.so"
loadmodule "xlog.so"
loadmodule "uri.so"
loadmodule "acc.so"
loadmodule "auth.so"
loadmodule "auth_radius.so"
loadmodule "group_radius.so"
loadmodule "avp_radius.so"

# ----------------- setting module-specific parameters ---------------

# -- usrloc params --
#modparam("usrloc","db_url","mysql://openser:[EMAIL PROTECTED]/openser")

# neeraj changed to 0 from 2
modparam("usrloc", "db_mode", 0)

# -- acc params --
modparam("acc", "radius_flag", 1)
modparam("acc", "radius_missed_flag", 2)
modparam("acc", "log_flag", 1)
modparam("acc", "log_missed_flag", 1)
modparam("acc", "service_type", 15)
modparam("acc", "radius_extra", "Sip-Src-IP=$si;Sip-Src-Port=$sp")
modparam("acc|auth_radius|group_radius|avp_radius", "radius_config", "/etc/radiusclient-ng/radiusclient.conf")

# -- group_radius params --
modparam("group_radius", "use_domain", 1)

# -- rr params --
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)

# -------------------------  request routing logic -------------------

# main routing logic

route{

    # initial sanity checks -- messages with
    # max_forwards==0, or excessively long requests
    if (!mf_process_maxfwd_header("10")) {
        sl_send_reply("483","Too Many Hops");
    };

    if (msg:len >=  2048 ) {
        sl_send_reply("513", "Message too big");
    };

    # check if user is suspended
    ###if(is_method("REGISTER|INVITE|MESSAGE|OPTIONS|SUBSCRIBE")) {
    ###   if (radius_is_user_in("From", "suspended")) {
    ###      sl_send_reply("403", "Forbidden - suspended");
    ###        exit;
    ###    };
    ###};

    # we record-route all messages -- to make sure that
    # subsequent messages will go through our proxy; that's
    # particularly good if upstream and downstream entities
    # use different transport protocol
    if (!method=="REGISTER")
        record_route();

    # subsequent messages withing a dialog should take the
    # path determined by record-routing
    if (loose_route()) {
        # mark routing logic in request
        append_hf("P-hint: rr-enforced\r\n");
        if(is_method("BYE")) {                  # log it all the time
            acc_rad_request("200 ok");
            acc_log_request("200 ok");
        }
        route(1);
    };

    if(is_method("INVITE") && !has_totag())
    {   # set the acc flags
        setflag(1);
        setflag(2);
    };

    if (!uri==myself) {
        # check if user is allowed to do voip calls to other domains
        if(is_method("INVITE|MESSAGE")) {
            if (!radius_is_user_in("From", "voip")) {
                sl_send_reply("403", "Forbidden VoIP");
                exit;
            };
        };
        # mark routing logic in request
        append_hf("P-hint: outbound\r\n");
        route(1);
    };

    # if the request is for other domain use UsrLoc
    # (in case, it does not work, use the following command
    # with proper names and addresses in it)
    if (uri==myself) {
        # authenticate registers
        if (method=="REGISTER") {
            if (!radius_www_authorize("")) {
                www_challenge("", "1");
                exit;
            };

            # check the src ip address
            # no need to use this now. tested OK
            ###if(!avp_check("$avp(i:2)", "eq/$src_ip/ig")) {
            ###    sl_send_reply("403", "Forbidden IP");
            ###    exit;
            ###};

            save("location");
            exit;
        };

        # calls to pstn
        if(uri=~"sip:00[1-9][0-9]+@") {
            if(is_method("INVITE") && !has_totag()) {
                if (!radius_is_user_in("From", "pstn")) {
                    sl_send_reply("403", "Forbidden PSTN");
                    exit;
                };
            };
            # set gateway address
            rewritehostport("10.10.10.10:5090");
            route(1);
        };

        # native SIP destinations are handled using our USRLOC DB
        if (!lookup("location")) {
            # log to acc as missed call
            acc_rad_request("404 Not Found");
            acc_log_request("404 Not Found");
            sl_send_reply("404", "Not Found");
            exit;
        };
        append_hf("P-hint: usrloc applied\r\n");
    };

    route(1);
}

# generic forward
route[1] {
    # send it out now; use stateful forwarding as it works reliably
    # even for UDP2TCP
    if (!t_relay()) {
        sl_reply_error();
    };
    exit;
}

/etc/radiusclient-ng/servers:
xx.xx.xx.xx   test1234
yy.yy.yy.yy     test1234


/etc/radiusclient-ng/radiusclient.conf:
<snip>
# neeraj
authserver      xx.xx.xx.xx:1812
# RADIUS server to use for accouting requests. All that I
# said for authserver applies, too.
#
# neeraj
#acctserver     localhost
acctserver      xx.xx.xx.xx:1813
<snip>



Neeraj Gupta wrote:
Yes. I have this working.. all with latest pieces of software on Sun SPARC Solaris 10.

What exactly do you need ?

-Neeraj

OpenSER ML wrote:
Hi All,

  Ok, I'm a bit mixed up here, the documents are simply not cutting it.
I'm wondering if any of you have a working OpenSER + FreeRadius configuration
that I can look at and extrapulate my required settings?

  I've gone over all the material I could find, but all of it reverts back
to the outdated how-to on the FreeRadius website.
  Assistance would be highly appreciated.

Regards,
  Z2L

_______________________________________________
Users mailing list
Users@openser.org
http://openser.org/cgi-bin/mailman/listinfo/users
 


-- 
-------------------------------------------------------------
o Neeraj Gupta                 email: [EMAIL PROTECTED] 
o Netra Systems & Networking   phone: +1(408) 276-7214 x71214
o Sun Microsystems, Inc.       fax  : +1(408) 276-4552 
o 4120 Network Circle, USCA12-216, Santa Clara, CA 95054, USA
-------------------------------------------------------------
_______________________________________________
Users mailing list
Users@openser.org
http://openser.org/cgi-bin/mailman/listinfo/users

Reply via email to