[OpenSER-Users] Re: Prepaid acounts CDRTool

Marc LEURENT lftsy at free.fr
Wed Aug 22 18:59:15 CEST 2007


I have downloaded the version 1.1.6 and 1.1.7
I have just done a ./configure --with-static-modules=python and make

but the make failed:
                 -pie  -o radiusd acct.lo auth.lo client.lo conffile.lo exec.lo files.lo log.lo mainconfig.lo modules.lo modcall.lo nas.lo proxy.lo
radiusd.lo radius_snmp.lo request_list.lo session.lo smux.lo threads.lo util.lo valuepair.lo version.lo timestr.lo xlat.lo      \
                -dlpreopen ../modules/rlm_python/rlm_python.la -lnsl -lresolv  -lpthread  ../lib/libradius.la   \
                -lltdl
libtool: link: cannot find the library `../modules/rlm_python/rlm_python.la' or unhandled argument `../modules/rlm_python/rlm_python.la'
make[4]: *** [radiusd] Error 1


and when I add a ./src/modules/rlm_python/configure, it's worse:
Sniff!!!!

=== configuring in src/modules/rlm_checkval (/home/mleurent/freeradius/official/freeradius-1.1.7/src/modules/rlm_checkval)
configure: running /bin/sh ./configure '--prefix=/usr/local'  '--with-static-modules=python' '--enable-ltdl-install=no' --cache-file=/dev/null --srcdir=.
configure: creating ./config.status
config.status: creating Makefile
./configure --with-static-modules=python  48.01s user 34.85s system 98% cpu 1:24.00 total
root at sd-7501:[/home/../freeradius-1.1.7]# ./src/modules/rlm_python/configure
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking how to run the C preprocessor... gcc -E
checking for python2.3... no
checking for python2.2... no
checking for python2.1... no
checking for python1.5... no
checking for python... python
checking for Python.h... yes
checking for Py_Initialize in -lpython2.4... yes
configure: creating ./config.status
config.status: creating Makefile


root at sd-7501:[/home/../freeradius-1.1.7]# make
Makefile:11: ../rules.mak: No such file or directory
make: *** No rule to make target `../rules.mak'.  Stop.
zsh: exit 2     make


Dan-Cristian Bogos a écrit :
> Ok,
> 
> it looks like something is messed-up.
> 
> If it is to build a fresh install of freeradius, I would rather
> recommend the following way:
> 
> 1. Grab the sources directly from freeradius website.
> 2. Clean your old installed libraries (from old freeradius install).
> 3. Type in your root folder: "./configure --with-static-modules=python"
> 4. Type: "./src/modules/rlm_python/configure"
> 5. Type: "make" and "make install in root folder.
> 
> Let me know if that works.
> DanB
> 
> On 8/22/07, Marc LEURENT <lftsy at free.fr> wrote:
>> Sorry for the error!
>> I have compiles freeradius doing:
>>
>> * I have installed freeradius from debian source: apt-get source freeradius
>> * I have added --with-experimetal-modules: in the debian/rules file => so the python module is compiled
>> * I have changed rlm_digest.c with the one you gave me
>> * I have changed the  src/modules/rlm_sql/drivers/rlm_sql_mysql/sql_mysql.c file to grant sql procedure
>> * I have build my package with dpkg-buildpackage -rfakeroot -uc -us
>> * I have modified the sql.conf and radiusd.conf file for CDRTool and the dictionary file
>>
>> memcache is loaded and listening, python-memcache and your module are installed
>>
>>
>> That's all
>>
>> Dan-Cristian Bogos a écrit :
>>> Marc,
>>>
>>> This is still an error from python, not my module. I think it has
>>> something to do with linking inside between C and python. What were
>>> the steps in your freeradius installation?
>>>
>>> DanB
>>>
>>> On 8/22/07, Marc LEURENT <lftsy at free.fr> wrote:
>>>> I have compiled the experimental modules, now the python module is working but I have an error with yours...
>>>> I have changed the rlm_digest.c and fixed the sql module to work with procedure
>>>>
>>>> rlm_sql (sql): Connected new DB handle, #4
>>>> Module: Instantiated sql (sql)
>>>> python_init done
>>>> Module: Loaded python
>>>>  python: mod_instantiate = "freeradius-cdrtool"
>>>>  python: func_instantiate = "instantiate"
>>>>  python: mod_authorize = "freeradius-cdrtool"
>>>>  python: func_authorize = "authorize"
>>>>  python: mod_authenticate = "(null)"
>>>>  python: func_authenticate = "(null)"
>>>>  python: mod_preacct = "(null)"
>>>>  python: func_preacct = "(null)"
>>>>  python: mod_accounting = "freeradius-cdrtool"
>>>>  python: func_accounting = "accounting"
>>>>  python: mod_checksimul = "(null)"
>>>>  python: func_checksimul = "(null)"
>>>>  python: mod_detach = "freeradius-cdrtool"
>>>>  python: func_detach = "detach"
>>>> exceptions.ImportError: /usr/lib/python2.4/lib-dynload/_socket.so: undefined symbol: _Py_TrueStruct
>>>> Failed to import python module "freeradius-cdrtool"
>>>> radiusd.conf[544]: python: Module instantiation failed.
>>>> radiusd.conf[1884] Unknown module "python".
>>>> radiusd.conf[1792] Failed to parse authorize section.
>>>> zsh: exit 1     freeradius -X
>>>>
>>>>
>>>>
>>>>
>>>> Dan-Cristian Bogos a écrit :
>>>>> You can get it from here:
>>>>> http://frad-cdrtool.sourceforge.net/rlm_digest.c
>>>>>
>>>>> DanB
>>>>>
>>>>> On 8/22/07, Marc LEURENT <lftsy at free.fr> wrote:
>>>>>> I haven't found this patch on http://sourceforge.net/projects/frad-cdrtool...
>>>>>> Where did you found it?
>>>>>> Thanks
>>>>>>
>>>>>> Dan-Cristian Bogos a écrit :
>>>>>>> Marc,
>>>>>>>
>>>>>>> I don't have this problem.
>>>>>>> I have compiled freeradius with rlm_python from sources.
>>>>>>>
>>>>>>> For problems with freeradius, I think the best would be to grab some
>>>>>>> support directly from their mailing list, since they are pretty
>>>>>>> helpful. Don't forget about patching also rlm_digest in order to
>>>>>>> sanitize the params coming from OpenSER in the authorization phase and
>>>>>>> not the authentication one. They promised for future releases to
>>>>>>> include this patch inside the distribution.
>>>>>>>
>>>>>>> Cheers,
>>>>>>> DanB
>>>>>>>
>>>>>>>
>>>>>>> On 8/22/07, Marc LEURENT <lftsy at free.fr> wrote:
>>>>>>>> I have corrected it: mea culpa
>>>>>>>>
>>>>>>>> But now I have a real trouble:
>>>>>>>> When I start freeradius, it said that it can't find rlm_python.so, but this is normal because we added --with-static-modules=python
>>>>>>>>
>>>>>>>>
>>>>>>>> Did you have thos problem?
>>>>>>>> Do you know how to correct it?
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>>
>>>>>>>> rlm_sql (sql): Connected new DB handle, #4
>>>>>>>> Module: Instantiated sql (sql)
>>>>>>>> radiusd.conf[544] Failed to link to module 'rlm_python': rlm_python.so: cannot open shared object file: No such file or directory
>>>>>>>> radiusd.conf[1884] Unknown module "python".
>>>>>>>> radiusd.conf[1792] Failed to parse authorize section.
>>>>>>>> zsh: exit 1     freeradius -X
>>>>>>>>
>>>>>>>>
>>>>>>>> Dan-Cristian Bogos a écrit :
>>>>>>>>> Hi Marc,
>>>>>>>>>
>>>>>>>>> it looks like you are getting some problems related to stored
>>>>>>>>> procedure in your mysql database. Did u install also the radius patch
>>>>>>>>> recommended by AG-Projects in order to work properly with stored
>>>>>>>>> procedures? On the sql side I cannot help you too much since I am
>>>>>>>>> using still the normal sql queries without stored procedures.
>>>>>>>>>
>>>>>>>>> DanB
>>>>>>>>>
>>>>>>>>> On 8/22/07, Marc LEURENT <lftsy at free.fr> wrote:
>>>>>>>>>> I have followed your advice, Freeradius is recompiled with rlm_python,
>>>>>>>>>> byt know, rlm_sql seems to encountered troubles
>>>>>>>>>> like :
>>>>>>>>>>
>>>>>>>>>> rlm_sql (sql): Reserving sql socket id: 2
>>>>>>>>>> rlm_sql_mysql: MYSQL check_error: 1312 received
>>>>>>>>>>
>>>>>>>>>> Any idea of how to repair this?
>>>>>>>>>> Thanks
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I have added this in my debian/rules file:
>>>>>>>>>>
>>>>>>>>>> modulelist=krb5 ldap sql_mysql sql_iodbc python
>>>>>>>>>> ...
>>>>>>>>>> ...
>>>>>>>>>>         ./configure \
>>>>>>>>>>                 $(confflags) \
>>>>>>>>>>                 --prefix=/usr \
>>>>>>>>>>                 ... \
>>>>>>>>>>                 --with-static-modules=python
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Here is my freeradius debug:
>>>>>>>>>>
>>>>>>>>>> rlm_detail: /var/log/freeradius/radacct/%{Client-IP-Address}/detail-%Y%m%d expands to /var/log/freeradius/radacct/127.0.0.1/detail-20070822
>>>>>>>>>>   modcall[accounting]: module "detail" returns ok for request 5
>>>>>>>>>>   modcall[accounting]: module "unix" returns noop for request 5
>>>>>>>>>> radius_xlat:  '/var/log/freeradius/radutmp'
>>>>>>>>>> radius_xlat:  ''
>>>>>>>>>>   modcall[accounting]: module "radutmp" returns ok for request 5
>>>>>>>>>> radius_xlat:  ''
>>>>>>>>>> radius_xlat:  '          CALL insert_radacct_record(                 'radius',                 '52f74a-c0a80101-0-4 at 192.168.95.79',
>>>>>>>>>> '36afb36cd5c82c34',                 'sip:101 at sd-7501.dedibox.fr:5060=3Buser=3Dphone',
>>>>>>>>>> 'sip:101 at sd-7501.dedibox.fr:5060=3Buser=3Dphone',                 '88.191.45.91',                 '5060',                 '2007-08-22 13:59:25',
>>>>>>>>>>            '0',                 '0',                 '0',                 '0',                 '',                 '',                 '200',
>>>>>>>>>>         'Sip-Session',                 '',                 '',                 '0',                 '0',                 '200',
>>>>>>>>>> 'INVITE',                 '',                 'c0a80101-5766ea7',                 'c0a80101-4e8244',                 '',                 '',
>>>>>>>>>>        '',                 'sip:0033677832974 at sd-7501.dedibox.fr:5060=3Buser=3Dphone',                 '',                 ''                 )'
>>>>>>>>>> rlm_sql (sql): Reserving sql socket id: 2
>>>>>>>>>> rlm_sql_mysql: MYSQL check_error: 1312 received
>>>>>>>>>> rlm_sql (sql): Couldn't insert SQL accounting START record - PROCEDURE radius.insert_radacct_record can't return a result set in the given context
>>>>>>>>>> radius_xlat:  ''
>>>>>>>>>> rlm_sql (sql): Released sql socket id: 2
>>>>>>>>>>   modcall[accounting]: module "sql" returns ok for request 5
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Dan-Cristian Bogos a écrit :
>>>>>>>>>>> Marc,
>>>>>>>>>>>
>>>>>>>>>>> I would suggest as first step reading about how  prepaid works in
>>>>>>>>>>> CDRTool. (see PREPAID.txt in doc folder).
>>>>>>>>>>>
>>>>>>>>>>> I personally use freeradius-cdrtool connector
>>>>>>>>>>> (sourceforge.net/projects/frad-cdrtool), which I have written in
>>>>>>>>>>> python and which needs rlm_python compiled into freeradius server.
>>>>>>>>>>>
>>>>>>>>>>> Have a look on all the info and let me know if u need any additional.
>>>>>>>>>>>
>>>>>>>>>>> Cheers,
>>>>>>>>>>> DanB
>>>>>>>>>>>
>>>>>>>>>>> On 8/20/07, Marc LEURENT <lftsy at free.fr> wrote:
>>>>>>>>>>>> No...
>>>>>>>>>>>> Is it possible to do it with openser or is it compulsory to use asterisk?
>>>>>>>>>>>> What do you use?
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Dan-Cristian Bogos a écrit :
>>>>>>>>>>>>> Hi there Marc,
>>>>>>>>>>>>>
>>>>>>>>>>>>> are you using any application which locks, unlocks the prepaid
>>>>>>>>>>>>> accounts, and instructs CDRTool to update the user's balance? Are you
>>>>>>>>>>>>> aware that CDRTool uses separate applications for prepaid and postpaid
>>>>>>>>>>>>> accounts?
>>>>>>>>>>>>>
>>>>>>>>>>>>> DanB




More information about the Users mailing list