[OpenSIPS-Devel] Scripting problem RFC5090/Diameter

Alexandre Westfahl (アレックサンドル ウエ Alexandre Westfahl (アレックサンドル ウエ
Sat Jun 5 07:10:55 CEST 2010


Hi Bogdan,

Thank you, your solution worked!! Is it ok to put "0" in this declaration?

> {"proxy_challenge",     (cmd_function)proxy_challenge,         2,
> fixup_pvar_pvar, 0, REQUEST_ROUTE},
>

I just need my scripting variables (cnonce, nonce_count and if possible
digest-algorithm) to finish my gateway.

Regards,
Alex

By the way, have you think about Diameter client in opensips?



On Sat, Jun 5, 2010 at 12:23 AM, Bogdan-Andrei Iancu <bogdan at voice-system.ro
> wrote:

> Hi Alexandre,
>
> you can use the fixup_pvar_pvar function, but in your implementation
> function, take care and evaluate the pvar to the actual string - this
> evaluation is not automatically done, but you need to manually do it in
> your function.
>
> For example, see in modules/domain/domain_mod.c :
>
> {"is_domain_local", (cmd_function)w_is_domain_local, 1, fixup_pvar_null,
> fixup_free_pvar_null, REQUEST_ROUTE|FAILURE_ROUTE|BRANCH_ROUTE|
> LOCAL_ROUTE|STARTUP_ROUTE|TIMER_ROUTE},
>
> and how the w_is_domain_local() handles the parameters.
>
> Regards,
> Bogdan
>
> Alexandre Westfahl (アレックサンドル ウエスファル) wrote:
> > My changes are just hack, it may not be optimized. I will make you an
> > archive today but could you tell me if fixup_pvar_pvar is supposed to
> > do the job correctly? I would like to solve this asap to continue.
> >
> > Regards,
> > Alexandre.
> >
> > On Fri, Jun 4, 2010 at 4:59 AM, Bogdan-Andrei Iancu
> > <bogdan at voice-system.ro <mailto:bogdan at voice-system.ro>> wrote:
> >
> >     Hi Alexandre,
> >
> >     Could you please send an unified diff with your changes?
> >
> >     Regards,
> >     Bogdan
> >
> >     Alexandre Westfahl (アレックサンドル ウエスファル) wrote:
> >     > Hello,
> >     >
> >     > I am using OpenSIPS with auth_radius module to simulate to radius
> >     > client with my Diameter/Radius Gateway. With scripting variables I
> >     > succeeded for a part but I still have some problems. I change some
> >     > functions to make opensips and my requests fully compliant to
> >     RFC 5090.
> >     >
> >     > First, there is some bugs in names. For example, two variables have
> >     > the same name and one of them was with the wrong number to
> >     parse. Here
> >     > is a propose change:
> >     > pvar.c
> >     >
> >     > {{"an", (sizeof("an")-1)}, /* */
> >     > PVT_AUTH_NONCE, pv_get_authattr, 0,
> >     > 0, 0, pv_init_iname, 5},
> >     > {{"aR", (sizeof("aR")-1)}, /* */
> >     > PVT_AUTH_RESPONSE, pv_get_authattr, 0,
> >     > 0, 0, pv_init_iname, 6},
> >     >
> >     >
> >     > Second, I changed some functions in aaa_radius because I need high
> >     > customization (to make it compliant with RFC5090).
> >     > I changed "proxy_challenge" and I want to give as parameters
> >     realm and
> >     > nonce (nonce must be done on diameter server). I succeeded in
> making
> >     > static parameters but if I try this:
> >     >
> >     > xlog("realm: $var(realm), nonce: $var(nonce)\n");
> >     > proxy_challenge( "$var(realm)", "$var(nonce)");
> >     >
> >     > In xlog, everything is Ok but in proxy_challenge, I obtain
> variables
> >     > as they are, e.g."$var(realm)". It's hard to get into opensips
> >     source
> >     > in just one day but I found that there is a translator in
> >     auth_mod.c.
> >     > Here is the non controlled.
> >     >
> >     > {"proxy_challenge", (cmd_function)proxy_challenge, 2,
> >     > 0, 0, REQUEST_ROUTE},
> >     >
> >     > Obtained values are as I said before.
> >     >
> >     > If I try, to activate a translator:
> >     >
> >     > {"proxy_challenge", (cmd_function)proxy_challenge, 2,
> >     > fixup_pvar_pvar, 0, REQUEST_ROUTE},
> >     >
> >     > It's supposed to work but I obtain "N" for both values.
> >     >
> >     >
> >     > For information, here is my opensips.cfg:
> >     >
> >     > # We are in REGISTER part!
> >     > $var(method)="REGISTER";
> >     >
> >     >
> >     > if ($adu == NULL)
> >     > {
> >     > radius_send_auth("Frequest","challenge");
> >     > #Digest-Realm = $var(realm),Digest-Nonce = $var(nonce),Digest-Qop
> >     > = $var(qop),Digest-Algorithm = $var(algorithm)
> >     >
> >     > xlog("realm: $var(realm), nonce: $var(nonce)\n");
> >     >
> >     > proxy_challenge( "$var(realm)", "$var(nonce)");
> >     > exit;
> >     > }
> >     > else
> >     > {
> >     > radius_send_auth("request","result");
> >     > xlog( "SECOND REQUEST!!!!!!!!!!!!!!!\n");
> >     > }
> >     > xlog("**********************************OUT");
> >     >
> >     >
> >     > I changed all functions after proxy_challenge (like challenge...)
> to
> >     > give the nonce, don't ask for qop (always on) and don't manage
> nonce
> >     > index as it's not sip server job.
> >     >
> >     >
> >     > I hope I was clear in my questions.
> >     >
> >     > Thanks
> >     >
> >     > Best regards,
> >     > Alexandre Westfahl,
> >     > Keio University, Yokohama
> >     > Teraoka Lab.
> >     > Linux User: #458230
> >     > PGP: EACE5768
> >     >
> >
> ------------------------------------------------------------------------
> >     >
> >     > _______________________________________________
> >     > Devel mailing list
> >     > Devel at lists.opensips.org <mailto:Devel at lists.opensips.org>
> >     > http://lists.opensips.org/cgi-bin/mailman/listinfo/devel
> >     >
> >
> >
> >     --
> >     Bogdan-Andrei Iancu
> >     www.voice-system.ro <http://www.voice-system.ro>
> >
> >
> >     _______________________________________________
> >     Devel mailing list
> >     Devel at lists.opensips.org <mailto:Devel at lists.opensips.org>
> >     http://lists.opensips.org/cgi-bin/mailman/listinfo/devel
> >
> >
> >
> >
> > --
> > Alexandre Westfahl,
> > Keio University, Yokohama
> > Teraoka Lab.
> > Linux User: #458230
> > PGP: EACE5768
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > Devel mailing list
> > Devel at lists.opensips.org
> > http://lists.opensips.org/cgi-bin/mailman/listinfo/devel
> >
>
>
> --
> Bogdan-Andrei Iancu
> www.voice-system.ro
>
>
> _______________________________________________
> Devel mailing list
> Devel at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/devel
>



-- 
Alexandre Westfahl,
Keio University, Yokohama
Teraoka Lab.
Linux User: #458230
PGP: EACE5768
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.opensips.org/pipermail/devel/attachments/20100605/b2fc3c0e/attachment.htm 


More information about the Devel mailing list