It's strange, but I do see the SIP INVITE messages being sent in the
ethereal log. Why they don't reach to the server? SER is connected
directly to the internet, without any NAT. On the other hand, REGISTER
messages do get to SER and the client recieves the 200 OK and all
intermediate replies as well.
I have attached the clientside ethereal log for you to see.
I am lost.
Harmeet
Hello, I am using the exec_dset for access to my database mysql and change
the uri in the calls, but I think this use more CPU processing, Are there
other module to do the same?
thanks
Jesus Teran B.
Hi Dan,
Thanks for all your help and support, I really appreciate it. I was able
to get it to work.
Although I had to replace all VSA'a with the SIP-AVP attributes. For some
reason the SIP-AVP's were not loaded due to the presence of other VSA's.
Maybe it was because I was using a = sign in the value prefixes instead of
: or #.
Is this a known issue.
Regards,
Danish
ps: Someone asked earlier about the radius server I was using. The radius
server along with the billing solution is from advancedvoip.com, so far
our experience with them has been quite good.
> Hi Danish,
>
> sorry for replying to you so late, but I was out from the office today.
>
> Here you go:
>
> First of all, my bad, the returned value should be in the form:
> return-code#0 if you want your value to be treated as an integer or
> return-code:0 if 0 the AVP should be considered as string - has been a
> while since I worked last time with those. By using a higher layer of
> debug you should be able to see your avps converted inside when
> received from radius.
> The rest of your configuration looks good. Note that you can return
> more AVP values with the same reply, so you can include the credit
> amount as well:
> SIP-AVP="return-code#0"
> SIP-AVP="h323-credit-amount#4206"
>
> Hope you will rock now.
>
> Cheers,
> DanB
>
> On 8/30/07, danish.samad(a)vocalseeds.com <danish.samad(a)vocalseeds.com>
> wrote:
>> Hi Dan,
>> To test the functionality of SIP-AVP, I am trying to get theses avp's in
>> the registration block, shown below. Basically on sucessful registration
>> the radius server returns the following attributes in acces-accpet
>>
>> Attributes:
>> SIP-AVP = "return-code=0"
>> cisco-h323-credit-amount = "h323-credit-amount=4206"
>>
>> so after registration I am trying to get the return code value. The
>> registration block is shown below
>>
>> route[2] {
>> # -----------------------------------------------------------------
>> # REGISTER Message Handler
>> # ----------------------------------------------------------------
>> xlog("L_NOTICE","Danish: Entering route[2]\n");
>> xlog("L_NOTICE","Danish: Register message IPsrcaddr [$si],
>> RecvdIPaddr[$Ri]\n");
>> if (!search("^Contact:[ ]*\*") && nat_uac_test("2")) {
>> xlog("L_NOTICE","Danish: In route[2] Found Nated
>> contact\n");
>> setflag(6);
>> setbflag(6);
>> # if you want OPTIONS natpings uncomment next
>> setbflag(7);
>> fix_nated_register();
>> force_rport();
>> };
>>
>> sl_send_reply("100", "Trying");
>> if (!radius_www_authorize("192.168.0.99")) {
>> www_challenge("192.168.0.99", "1");
>> };
>> consume_credentials();
>>
>> #avp_print();
>> xlog("L_NOTICE","Danish: Before is set check\n");
>> if(is_avp_set("$avp(s:return-code)")){
>> xlog("L_NOTICE","Danish: return code is set \n");
>> };
>> xlog("L_NOTICE","Danish: After is set check\n");
>> if(avp_check("$avp(s:return-code)", "eq/i:0/g"))
>> {
>> xlog("L_NOTICE","Danish: return code 0 received \n");
>> };
>>
>> if (!save("location")) {
>> sl_reply_error();
>> };
>>
>> }
>>
>> In my logs I see
>>
>> 058) DEBUG:auth_radius:generate_avps: getting SIP AVPs from avpair 225
>> 4(11058) Danish: Before is set check
>> 4(11058) Danish: After is set check
>> 4(11058) DEBUG:avpops:ops_check_avp: no src avp found
>>
>> so both conditional avp checks fail and the last debug line is a bit
>> worrying
>> I traced the first debug line above to sterman.c->generate_avps()
>> so just under this debug line I added this piece of code
>>
>> vp=rc_avpair_get(vp,attrs[A_SIP_AVP].v,0);
>> if (vp != NULL)
>> {
>> DBG("DEBUG:auth_radius:generate_avps: strvalue %s\n",
>> vp->strvalue);
>> }
>> else
>> DBG("DEBUG:auth_radius:generate_avps: vp is null\n");
>>
>> and this is what I got
>>
>> 4(11058) DEBUG:auth_radius:generate_avps: getting SIP AVPs from avpair
>> 225
>> 4(11058) DEBUG:auth_radius:generate_avps: vp is null
>>
>> hence openser is not loading the SIP-avp in $avp(s:return-code). I think
>> either I am missing something in the openser script or the way I am
>> returning the attribute.
>>
>> all relevant definitions in the cfg are given below:
>>
>> loadmodule "/usr/local/lib/openser/modules/auth_radius.so"
>> loadmodule "/usr/local/lib/openser/modules/uri_radius.so"
>> loadmodule "/usr/local/lib/openser/modules/avp_radius.so"
>> loadmodule "/usr/local/lib/openser/modules/avpops.so"
>>
>> modparam("auth_radius|uri_radius|avp_radius", "radius_config",
>> "/usr/local/etc/radiusclient-ng/radiusclient.conf")
>> modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo")
>>
>> modparam("uri_db|usrloc", "db_url",
>> "mysql://openser:openserrw@localhost/openser")
>>
>> modparam("nathelper", "natping_interval", 20)
>> modparam("nathelper", "ping_nated_only", 1)
>> modparam("nathelper", "rtpproxy_sock", "unix:/var/run/rtpproxy.sock")
>> modparam("nathelper", "received_avp", "$avp(i:42)")
>> modparam("nathelper", "sipping_bflag", 7)
>> modparam("nathelper", "sipping_from", "sip:pinger@abc.org")
>>
>> modparam("registrar", "received_avp", "$avp(i:42)")
>> modparam("usrloc", "db_mode", 2)
>> modparam("usrloc", "nat_bflag", 6)
>>
>> Hope this explains everything and you would be in a better position to
>> help.
>>
>> Regards,
>> Danish
>> ps: isnt there any sample script I can refer to for sip-avp radius
>> configurations.
>>
>>
>> > Hi Danish,
>> >
>> > can u post the full block where you are doing these checks?
>> >
>> > DanB
>> >
>> > On 8/29/07, danish.samad(a)vocalseeds.com <danish.samad(a)vocalseeds.com>
>> > wrote:
>> >> Hi Dan,
>> >> Thanks for the explanation, things are more clear now. Now I am
>> >> returning
>> >> a SIP-AVP from radius (for authentication), this is what I see in the
>> >> logs
>> >>
>> >> Attributes:
>> >> SIP-AVP = "return-code=0"
>> >> .......
>> >>
>> >> In my script I do
>> >> avp_print();
>> >> if(is_avp_set("$avp(s:return-code)")){
>> >> xlog("L_NOTICE","return code is set \n");
>> >> };
>> >> if(avp_check("$avp(s:return-code)", "eq/0/g"))
>> >> {
>> >> xlog("L_NOTICE","return code 0 received \n");
>> >> };
>> >>
>> >> none of the checks pass and nothing is printed from avp_print. In
>> >> openser
>> >> logs I see this line
>> >>
>> >> 1(32550) DEBUG:auth_radius:generate_avps: getting SIP AVPs from
>> avpair
>> >> 225
>> >>
>> >> am I missing some pre-requisites or what am I doing wrong.
>> >>
>> >> Regards,
>> >> Danish
>> >>
>> >>
>> >> > Hi Danish,
>> >> >
>> >> > for the moment you cannot process attributes other than SIP-AVP
>> inside
>> >> > openser script. This one is automatically converted into avp.
>> >> > EG. A SIP-AVP attribute in the form of: "reason='No Credit'" should
>> >> > automatically create an AVP named reason with value "No Credit".
>> >> >
>> >> > Hope that helps,
>> >> > DanB
>> >> >
>> >> >
>> >> > On 8/29/07, danish.samad(a)vocalseeds.com
>> <danish.samad(a)vocalseeds.com>
>> >> > wrote:
>> >> >> Hi Dan,
>> >> >>
>> >> >> Thanks for your reply.
>> >> >>
>> >> >> Actually I am currently returning an integer status value in
>> >> >> cisco-h323-return-code (a vendor specific attribute). So basically
>> >> how
>> >> >> can
>> >> >> I extract the value returned in this attribute, compare it and
>> then
>> >> send
>> >> >> and sl reply.
>> >> >>
>> >> >> Probably there is a way of loading this attr value in an avp and
>> >> >> comparing
>> >> >> it?
>> >> >>
>> >> >> Regards,
>> >> >> Danish
>> >> >>
>> >> >> > Hello Danish,
>> >> >> >
>> >> >> > a solution would be returning a SIP-AVP, containing the reason
>> for
>> >> >> > failure, and then forward this to the client using sl.
>> >> >> > Another one would be completely rewriting R-URI again from your
>> >> >> > SIP-AVP and then send the request to an announcement server (eg:
>> >> >> > ann:paymentrequired@your.server - which should play Payment
>> >> Required
>> >> >> > annoucement).
>> >> >> >
>> >> >> > Cheers,
>> >> >> > DanB
>> >> >> >
>> >> >> > On 8/29/07, danish.samad(a)vocalseeds.com
>> >> <danish.samad(a)vocalseeds.com>
>> >> >> > wrote:
>> >> >> >> Hi,
>> >> >> >>
>> >> >> >> I have configured openser-1.2 with a (commercial) third party
>> >> radius
>> >> >> >> server and it is working great. Now I have a requirement where
>> I
>> >> need
>> >> >> to
>> >> >> >> check a radius return attribute in case an access reject is
>> >> received
>> >> >> in
>> >> >> >> response to an authorization request. Is there some way I can
>> do
>> >> >> this
>> >> >> >> in
>> >> >> >> the openser script.
>> >> >> >>
>> >> >> >> Basically I want to send a 402 payment required message to a
>> sip
>> >> >> client
>> >> >> >> in
>> >> >> >> case the call is rejected due low balance. In such cases radius
>> >> >> returns
>> >> >> >> a
>> >> >> >> status response code with access reject.
>> >> >> >>
>> >> >> >>
>> >> >> >> Thanks,
>> >> >> >> Danish
>> >> >> >>
>> >> >> >> _______________________________________________
>> >> >> >> Users mailing list
>> >> >> >> Users(a)openser.org
>> >> >> >> http://openser.org/cgi-bin/mailman/listinfo/users
>> >> >> >>
>> >> >> >
>> >> >>
>> >> >>
>> >> >
>> >>
>> >>
>> >
>>
>>
>
Hi,
I have configured openser-1.2 with a (commercial) third party radius
server and it is working great. Now I have a requirement where I need to
check a radius return attribute in case an access reject is received in
response to an authorization request. Is there some way I can do this in
the openser script.
Basically I want to send a 402 payment required message to a sip client in
case the call is rejected due low balance. In such cases radius returns a
status response code with access reject.
Thanks,
Danish
As I wrote: you don't, you need another component to do that. SER has a management interface that can be used to inject a message, but you still need an
external component to do that.
g-)
------- Original message -------
From: kapilg <kapilg(a)amdale.com>
Sent: 31.8.'07, 13:34
> Oh Sorry! Actually I am using SER.
>
>
> Well, if one has to send INFO using ser then how one can send?
>
>
>
>
> Regards,
>
>
> Kapil
>
>
>
> ---------------
>
> From: Greger V. Teigre [mailto:greger@teigre.com]
> Sent: Friday, August 31, 2007 4:19 PM
> To: kapilg
> Cc: serusers(a)iptel.org
> Subject: Re: [Serusers] INFO Method
>
>
>
>
> Wrong list, this is the ser, not openser list.
> A proxy just proxies, it doesn't create messages. But maybe your media server?
> g-)
>
> kapilg wrote:
>
>
> Dear Users,
>
>
>
>
> Could any one tell or give me one sample of sending INFO Method with MSCML as Message Body part?
>
>
> I am working on one project in which XLite makes a call to a Media Server using openser proxy and after some seconds delay proxy forms one packet of INFO
Method filling MSCML script in this and send to Media Server. This will be an ivr call.
>
>
>
>
> Any help will be appreciated.
>
>
>
>
> Thanks and Regards,
>
>
> Kapil Goel
>
>
>
>
>
> ---------------
>
>
>
>
>
> _______________________________________________
>
> Serusers mailing list
>
> Serusers(a)lists.iptel.org
>
> http://lists.iptel.org/mailman/listinfo/serusers
>
>
>