Hi Ravi,
Thanks for your help and suggestion. I went through avp
module documentation and figured out that the avp_check syntax in
config.cfg file was incorrect. I changed it as follows and now it's
working,
if(!avp_check("$avp(i:2)", "eq/$avp($src_ip)/ig"))
{
sl_send_reply("403", "Forbidden IP");
exit;
};
But still I get parse error for following 2 statements in
openser.cfg (I commented them to make forward progress). Please advice
modparam("acc", "radius_extra", "Sip-Src-IP=$si;Sip-Src-Port=$sp")
modparam("avpops", "avp_aliases", "day=i:101;time=i:102")
Another thing is I am currently using the file based radius
authentication for the users. (I have created a file called
/usr/local/etc/raddb/users with 2 users). Do you know how to
enable/use radius with user authentication done from a database (i am
using mysql). I couldn't find any documentation for it.
Thanks for the help
- Sanjeev
On 11/6/06, raviprakash sunkara <[EMAIL PROTECTED]> wrote:
Usrs usrloc is comment,
On 11/7/06, Sanjeev Manoli <[EMAIL PROTECTED]> wrote:
> Hi,
> I am getting following errors as seen in /var/log/message while
> running openser with radius integration,
>
*****************************************************************************************
> Nov 6 20:33:45 lx-dev monit[13565]: 'openser' start: /etc/init.d/openser
> Nov 6 20:33:45 lx-dev monit[13565]: 'openser' failed to start
> Nov 6 20:33:45 lx-dev openser: init_tcp: using epoll_lt as the io
> watch method (auto detected)
> Nov 6 20:33:45 lx-dev openser: INFO: statistics manager successfully
> initialized
> Nov 6 20:33:45 lx-dev openser: StateLess module - initializing
> Nov 6 20:33:45 lx-dev openser: TM - initializing...
> Nov 6 20:33:46 lx-dev openser: Maxfwd module- initializing
> Nov 6 20:33:46 lx-dev openser: AVPops - initializing
> Nov 6 20:33:46 lx-dev openser: TextOPS - initializing
> Nov 6 20:33:46 lx-dev openser: ACC - initializing
> Nov 6 20:33:46 lx-dev openser: AUTH module - initializing
> Nov 6 20:33:46 lx-dev openser: xl_parse_item: error - bad parameters
> Nov 6 20:33:46 lx-dev openser: ERROR:avpops:fixup_check_avp: unable
> to get pseudo-variable in P1
> Nov 6 20:33:46 lx-dev openser: ERROR: fix_actions: fixing failed
> (code=-2) at cfg line 146
> Nov 6 20:33:46 lx-dev openser: ERROR: fix_expr : fix_actions error
>
*****************************************************************************************
> I am using openser (Version: openser-1.1.0-tls) and radius server
> (freeradius-1.1.3) along with radiusclient-ng (radiusclient-ng-0.5.2 ).
> I exactly followed the following radius integration documentation
> from openser web site,
> http://openser.org/docs/openser-radius-1.0.x.html
>
> If I remove the radius integration related part from openser.cfg then
> my openser server starts fine, I have tested it with kphone SIP UA and
> it works fine.
>
> One other question is I get parse error for following 2 statements in
> openser.cfg (I commented them to make forward progress). Please advice
> the right syntax to use following modparam statements.
> modparam("acc", "radius_extra",
"Sip-Src-IP=$si;Sip-Src-Port=$sp")
> modparam("avpops", "avp_aliases", "day=i:101;time=i:102")
>
> This is kind of urgent for me and I am clueless at this point so
> really appreciate all your help.
>
> Thanks,
> - San
> P.S. For your reference here is the openser.cfg file that I am using,
> #
> # $Id$
> #
> # radius config script
> #
>
> # ----------- global configuration parameters ------------------------
>
> debug=9 # debug level (cmd line: -dddddddddd)
> fork=no
> 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: 192.168.0.5
> alias="192.168.0.5"
>
> #fifo="/tmp/openser_fifo"
>
> # ------------------ module loading
----------------------------------
> mpath="/usr/local/lib/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")
> modparam("usrloc", "db_mode", 2)
>
> # -- 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)
>
> # -- avpops params --
> #modparam("avpops", "avp_aliases", "day=i:101;time=i:102")
>
> # -- 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");
> exit;
> };
>
> if (msg:len >= 2048 ) {
> sl_send_reply("513", "Message too big");
> exit;
> };
>
> # 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("192.168.0.5")) {
> www_challenge("192.168.0.5", "0");
> exit;
> };
>
> # check the src ip address
Call the method is Wrong , Check the Module doc od avp_radius and Avp,
>
> if(!avp_check("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);
> };
>
> # load callee's avps
> if(avp_load_radius("callee"))
> {
> # check if user has time filter enabled
> if(avp_check("i:3", "eq/i:1"))
> {
> # print time in an avp
> avp_printf("i:100", "$Tf");
> # extract day
> avp_subst("i:100/i:101", "/(.{3})
.+/*\1*/");
> if(!avp_check("i:6", "fm/$day")) {
> sl_send_reply("403", "Forbidden -
day");
> exit;
> };
> # extract 'hours:minutes'
> avp_subst("i:100/i:102", "/(.{10})
(.{5}):.+/\2/");
> if((is_avp_set("i:4") && avp_check("i:4",
"gt/$time"))
> || (is_avp_set("i:5") && avp_check("i:5", "lt/$time"))) {
> sl_send_reply("403", "Forbidden -
time");
> exit;
> };
> };
> };
>
> # 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;
> }
> #
>
> _______________________________________________
> Users mailing list
> [email protected]
> http://openser.org/cgi-bin/mailman/listinfo/users
>
--
Thanks and Regards
Ravi Prakash Sunkara
[EMAIL PROTECTED]
M:+91 9985077535
O:+91 40 23114549
F:+91 40 40208727
[EMAIL PROTECTED]
www.hyperion-tech.com
_______________________________________________
Users mailing list
[email protected]
http://openser.org/cgi-bin/mailman/listinfo/users