Hi Dan, I modified my config to use a realm called sip.greenfieldtech.net, but the situation remains. Here is the config file:
# # $Id$ # # radius config script # # ----------- global configuration parameters ------------------------ debug=9 # debug level (cmd line: -dddddddddd) fork=no log_stderror=yes # (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.2.80 #alias="openser.org" #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("auth_radius|group_radius|avp_radius", "radius_config","/etc/radiusclient/radiusclient.conf") # -- group_radius params -- modparam("group_radius", "use_domain", 0) # -- avpops params -- 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) modparam("usrloc", "use_domain", 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("sip.greenfieldtech.net")) { www_challenge("sip.greenfieldtech.net", "1"); exit; }; if (radius_www_authorize("sip.greenfieldtech.net")) { sl_send_reply("200", "ok"); exit; }; # check the src ip address #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); }; # load callee's avps if(avp_load_radius("callee")) { # check if user has time filter enabled #if(avp_check($avp("i:3"), $avp("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; } # Version is 1.2.1 Z2L ----- Original Message ----- From: "Dan-Cristian Bogos" <[EMAIL PROTECTED]> To: [EMAIL PROTECTED] Cc: "users" <users@openser.org> Sent: Wednesday, July 18, 2007 2:02:11 PM (GMT+0200) Asia/Jerusalem Subject: Re: [OpenSER-Users] Radius integration issue Can u post your openser configuration + version also? From the debug u sent it all looks fine except the error. DanB On 7/18/07, OpenSER ML <[EMAIL PROTECTED]> wrote: > Hi Dan, > > I am running in debug mode, here is the output of FreeRadius which seems > fine to me: > > rad_recv: Access-Request packet from host 192.168.2.80:35223, id=250, > length=232 > User-Name = "[EMAIL PROTECTED]" > Digest-Attributes = 0x0a05313031 > Digest-Attributes = 0x010d6f70656e7365722e6f7267 > Digest-Attributes = > 0x022a34363961626230616465333832613934646432333533636264663264666438336231353933663564 > Digest-Attributes = 0x04127369703a3139322e3136382e322e3830 > Digest-Attributes = 0x030a5245474953544552 > Digest-Attributes = 0x050661757468 > Digest-Attributes = 0x090a3030303030303930 > Digest-Attributes = 0x081235343038316466316439623562383564 > Digest-Response = "d3ff78d09d9b2cefdce0c975b3c6fd26" > Service-Type = IAPP-Register > X-Ascend-PW-Lifetime = 0x313031 > NAS-Port = 5060 > NAS-IP-Address = 192.168.2.80 > Processing the authorize section of radiusd.conf > modcall: entering group authorize for request 1124 > modcall[authorize]: module "preprocess" returns ok for request 1124 > radius_xlat: > '/usr/local/freeradius/var/log/radius/radacct/192.168.2.80/auth-detail-20070716' > rlm_detail: > /usr/local/freeradius/var/log/radius/radacct/%{Client-IP-Address}/auth-detail-%Y%m%d > expands to > /usr/local/freeradius/var/log/radius/radacct/192.168.2.80/auth-detail-20070716 > modcall[authorize]: module "auth_log" returns ok for request 1124 > rlm_digest: Adding Auth-Type = DIGEST > modcall[authorize]: module "digest" returns ok for request 1124 > users: Matched entry [EMAIL PROTECTED] at line 53 > modcall[authorize]: module "files" returns ok for request 1124 > modcall: leaving group authorize (returns ok) for request 1124 > rad_check_password: Found Auth-Type DIGEST > auth: type "digest" > Processing the authenticate section of radiusd.conf > modcall: entering group authenticate for request 1124 > rlm_digest: Converting Digest-Attributes to something sane... > Digest-User-Name = "101" > Digest-Realm = "openser.org" > Digest-Nonce = "469abb0ade382a94dd2353cbdf2dfd83b1593f5d" > Digest-URI = "sip:192.168.2.80" > Digest-Method = "REGISTER" > Digest-QOP = "auth" > Digest-Nonce-Count = "00000090" > Digest-CNonce = "54081df1d9b5b85d" > A1 = 101:openser.org:101 > A2 = REGISTER:sip:192.168.2.80 > H(A1) = f195c177997cee336c919be9279c5703 > H(A2) = 046d0643f281affab19fe62ffc848ab5 > KD = > f195c177997cee336c919be9279c5703:469abb0ade382a94dd2353cbdf2dfd83b1593f5d:00000090:54081df1d9b5b85d:auth:046d0643f281affab19fe62ffc848ab5 > EXPECTED d3ff78d09d9b2cefdce0c975b3c6fd26 > RECEIVED d3ff78d09d9b2cefdce0c975b3c6fd26 > modcall[authenticate]: module "digest" returns ok for request 1124 > modcall: leaving group authenticate (returns ok) for request 1124 > Login OK: [EMAIL PROTECTED]/<no User-Password attribute>] (from client > 192.168.2.80 port 5060) > Sending Access-Accept of id 250 to 192.168.2.80 port 35223 > Finished request 1124 > Going to the next request > Waking up in 6 seconds... > > > Z2L > ----- Original Message ----- > From: "Dan-Cristian Bogos" <[EMAIL PROTECTED]> > To: [EMAIL PROTECTED] > Sent: Wednesday, July 18, 2007 1:53:14 PM (GMT+0200) Asia/Jerusalem > Subject: Re: [OpenSER-Users] Radius integration issue > > Hi, > > try running FreeRADIUS in debug mode, this will tell u more info > regarding the cause of failure. > To run FreeRADIUS in debug start it with -X option. > > Let us know about the results. > > Cheers, > DanB > > On 7/18/07, OpenSER ML <[EMAIL PROTECTED]> wrote: > > Hi All, > > > > I'm trying to connect OpenSER with FreeRadius. I've managed to get the > > digest authentication > > going correctly, having the Radius respond with LOGIN OK for the requests > > that are in the users file. However, although the authentication process > > appears to succeed, the IP phone doesn't register to the OpenSER server. > > > > The following can be seen in the debug: > > > > 0(17821) SIP Request: > > 0(17821) method: <REGISTER> > > 0(17821) uri: <sip:192.168.2.80> > > 0(17821) version: <SIP/2.0> > > 0(17821) parse_headers: flags=2 > > 0(17821) Found param type 232, <branch> = <z9hG4bK4d7202f23b6595fc>; > > state=16 > > 0(17821) end of header reached, state=5 > > 0(17821) parse_headers: Via found, flags=2 > > 0(17821) parse_headers: this is the first via > > 0(17821) After parse_msg... > > 0(17821) preparing to run routing scripts... > > 0(17821) parse_headers: flags=100 > > 0(17821) DEBUG:parse_to:end of header reached, state=10 > > 0(17821) DBUG:parse_to: display={}, ruri={sip:[EMAIL PROTECTED];user=phone} > > 0(17821) DEBUG: get_hdr_field: <To> [35]; uri=[sip:[EMAIL > > PROTECTED];user=phone] > > 0(17821) DEBUG: to body [<sip:[EMAIL PROTECTED];user=phone> > > ] > > 0(17821) get_hdr_field: cseq <CSeq>: <20048> <REGISTER> > > 0(17821) DEBUG:maxfwd:is_maxfwd_present: value = 70 > > 0(17821) parse_headers: flags=200 > > 0(17821) DEBUG: get_hdr_body : content_length=0 > > 0(17821) found end of header > > 0(17821) find_first_route: No Route headers found > > 0(17821) loose_route: There is no Route HF > > 0(17821) grep_sock_info - checking if host==us: 12==12 && [192.168.2.80] > > == [192.168.2.80] > > 0(17821) grep_sock_info - checking if port 5060 matches port 5060 > > 0(17821) grep_sock_info - checking if host==us: 12==12 && [192.168.2.80] > > == [192.168.2.80] > > 0(17821) grep_sock_info - checking if port 5060 matches port 5060 > > 0(17821) check_nonce(): comparing > > [469aba5f4ff6b78f7b9588ad19fc0ab514e709da] and > > [469aba5f4ff6b78f7b9588ad19fc0ab514e709da] > > 0(17821) ERROR:auth_radius:radius_authorize_sterman: rc_auth failed > > 0(17821) build_auth_hf(): 'WWW-Authenticate: Digest realm="openser.org", > > nonce="469aba5f4ff6b78f7b9588ad19fc0ab514e709da", qop="auth" > > ' > > 0(17821) parse_headers: flags=ffffffffffffffff > > 0(17821) check_via_address(192.168.2.101, 192.168.2.101, 0) > > 0(17821) DEBUG:destroy_avp_list: destroying list (nil) > > 0(17821) receive_msg: cleaning up > > > > As you can surely see, the ERROR is somewhere in the authorization > > status. Now, I've verified > > the secret key between the machine, and all seems to be in place - any > > pointers will be highly appreciated. > > > > Z2L > > > > _______________________________________________ > > Users mailing list > > Users@openser.org > > http://openser.org/cgi-bin/mailman/listinfo/users > > > > _______________________________________________ Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users