[OpenSER-Users] Re: Prepaid acounts CDRTool

Marc LEURENT lftsy at free.fr
Wed Aug 22 17:03:36 CEST 2007


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