Thanks Dan!! I have successfully compiled freeradius 1.1.6 with the rlm_python compiled statically! So the freeradius-cdrtool module works!!
My problem is that is cannot find the destination whereas it's in the Canonical-URI, so that with To=None, it cannot calculate the max session time But in the radacct database, there is the Canonical-URI
A Parsing problem? Stange, I don't know where to search for it
Aug 23 16:57:23 sd-7501 CDRTool[20011]: MaxSessionTime From=101@sd-7501.dedibox.fr To=None Duration=7200 Lock=1 Aug 23 16:57:23 sd-7501 CDRTool[20011]: Load last minute: 5 calls @ 0.04 cps, memory: 10.13 MB Aug 23 16:57:23 sd-7501 CDRTool[20011]: Call to none, no limit imposed Aug 23 16:57:23 sd-7501 CDRTool[20011]: GetBalance From=101@sd-7501.dedibox.fr Aug 23 16:57:23 sd-7501 CDRTool[20011]: Customer : 101@sd-7501.dedibox.fr Aug 23 16:57:23 sd-7501 CDRTool[20011]: Balance : 1000.0000 Aug 23 16:57:23 sd-7501 CDRTool[20011]: MaxSessionTime From=101@sd-7501.dedibox.fr To=None Duration=7200 Lock=1 Aug 23 16:57:23 sd-7501 CDRTool[20011]: Call to none, no limit imposed Aug 23 16:57:23 sd-7501 CDRTool[20011]: GetBalance From=101@sd-7501.dedibox.fr Aug 23 16:57:23 sd-7501 CDRTool[20011]: Customer : 101@sd-7501.dedibox.fr Aug 23 16:57:23 sd-7501 CDRTool[20011]: Balance : 1000.0000 Aug 23 16:57:24 sd-7501 CDRTool[20011]: MaxSessionTime From=101@sd-7501.dedibox.fr To=None Duration=7200 Lock=1 Aug 23 16:57:24 sd-7501 CDRTool[20011]: Call to none, no limit imposed Aug 23 16:57:24 sd-7501 CDRTool[20011]: GetBalance From=101@sd-7501.dedibox.fr Aug 23 16:57:24 sd-7501 CDRTool[20011]: Customer : 101@sd-7501.dedibox.fr Aug 23 16:57:24 sd-7501 CDRTool[20011]: Balance : 1000.0000 Aug 23 16:57:45 sd-7501 CDRTool[20011]: DebitBalance From=None To=sip:0033677832974@sd-7501.dedibox.fr:5060;user=phone Duration=0 Aug 23 16:57:45 sd-7501 CDRTool[20011]: Warning: Account none is not prepaid
rad_recv: Accounting-Request packet from host 127.0.0.1:59701, id=79, length=318 Acct-Status-Type = Failed Service-Type = Sip-Session Sip-Response-Code = 487 Sip-Method = INVITE Event-Timestamp = "Aug 23 2007 16:51:33 CEST" Sip-From-Tag = "c0a80101-29f6f83" Sip-To-Tag = "c0a80101-29f6daa" Acct-Session-Id = "2f12a585-c0a80101-0-1f@192.168.95.79" Sip-Src-IP = "81.57.0.22" Sip-Src-Port = "62854" Canonical-URI = "sip:0033677832974@sd-7501.dedibox.fr:5060;user=phone" Billing-Party = "sip:101@sd-7501.dedibox.fr:5060;user=phone" SIP-Proxy-IP = "88.191.45.91" User-Agent = "THOMSON ST2030 hw0 fw1.56 00-0E-50-4E-AF-C4" NAS-Port = 5060 Acct-Delay-Time = 0 NAS-IP-Address = 127.0.0.1 Processing the preacct section of radiusd.conf
Dan-Cristian Bogos a écrit :
Marc,
try this (as I have written in freeradius list) - should work fine if u follow the exact steps. I am compiling it statically since this was the building policy recommended by developers:
- Grab the sources and unpack them (1.1.7 version)
- After unpacking, run from within the source folder: ./configure --with-static-modules=python make
- Your make will stop here: "libtool: link: cannot find the library
`../modules/rlm_python/rlm_python.la' or unhandled argument `../modules/rlm_python/rlm_python.la'" 4. Go into ./src/modules/rlm_python 5. run ./configure + make + make install 6. Go back to root of sources and run again make + make install.
Hope that will do, DanB
On 8/23/07, Marc LEURENT lftsy@free.fr wrote:
I'm receiving freeradius-users@lists.freeradius.org Did you sent it there?
I have posted some message there and some developpers said that rlm_python shouldn't be compiled statically... And that I should use the experimental module option. So I don't know what to do in order to get your module working
PS: I have tested it in console with python directly, Congratulations!! It works perfectly
Dan-Cristian Bogos a écrit :
SOLVED, check the freeradius list, I have posted there the solution.
DanB
On 8/23/07, Marc LEURENT lftsy@free.fr wrote:
I have copied the missing radpaths.h from 1.1.7 source, but there is still an error! (libradius.la) Why is ir so important de compile de python module statically??
Can we compile the experimental modules??
rlm_python.c: At top level: rlm_python.c:244: warning: function declaration isn't a prototype rlm_python.c: In function 'python_load_function': rlm_python.c:456: warning: passing argument 2 of 'PyObject_GetAttrString' discards qualifiers from pointer target type gcc -g -O2 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -Wall -D_GNU_SOURCE -g -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -W -Wredundant-decls -Wundef -I/home/mleurent/freeradius/official/freeradius-1.1.6/src/include -I/usr/include/python2.4 -c rlm_python.c -o rlm_python.o >/dev/null 2>&1 /home/mleurent/freeradius/official/freeradius-1.1.6/libtool --mode=link gcc -release 1.1.6 \ -module -static -o rlm_python.la \ -rpath /usr/local/lib rlm_python.lo rlm_python.c /home/mleurent/freeradius/official/freeradius-1.1.6/src/lib/libradius.la \ -L/usr/lib/python2.4/config -lpthread -ldl -lutil -lpython2.4 -lm -lnsl -lresolv -lpthread libtool: link: cannot find the library `/home/mleurent/freeradius/official/freeradius-1.1.6/src/lib/libradius.la' or unhandled argument `/home/mleurent/freeradius/official/freeradius-1.1.6/src/lib/libradius.la' make: *** [rlm_python.la] Error 1 zsh: exit 2 make
Dan-Cristian Bogos a écrit :
Ok, try a trick then,
- in root folder type:
./configure --with-static-modules=python
- go in ./src/modules/rlm_python/ and try after the installation
procedure: ./configure + make + make install 3. Go back to root folder and try again the installation procedure (./configure --with-static-modules=python + make + make install).
Let me know how it goes.
DanB
On 8/23/07, Marc LEURENT lftsy@free.fr wrote:
I cannot do it! Sniff again
SCREEN):root@sd-7501:[/home/../freeradius-1.1.6]# cd src/modules/rlm_python (SCREEN):root@sd-7501:[~mleurent/../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
(SCREEN):root@sd-7501:[~mleurent/../rlm_python]# make ../rules.mak:24: ../../../Make.inc: No such file or directory make: *** No rule to make target `../../../Make.inc'. Stop. zsh: exit 2 make
Dan-Cristian Bogos a écrit : > Hi Marc, > > it looks like there has been some changes with freeradius 1.7 since > this one does not install for me either. It says :" ibtool: link: > cannot find the library > `/usr/local/src/freeradius/freeradius-1.1.7/src/lib/libradius.la' or > unhandled argument > `/usr/local/src/freeradius/freeradius-1.1.7/src/lib/libradius.la'". On > a manual search I could see that this library is not longer included > with the sources. I will try asking the guys from freeradius about the > changes necessary to work. > In the mean time, if u want to give it a try, here is how I have > installed from freeradius 1.6: > 1. Download the sources: "wget > ftp://ftp.freeradius.org/pub/radius/freeradius-1.1.6.tar.gz" > 2. Extract and get into the source folder. > 3. Go to ./src/modules/rlm_python/ > 4. Install the sources statically: (./configure + make + make install). > 5. Go back to root folder for the sources > 6. ./configure --with-static-modules=python > 7. make + make install. > > Hope that would do for you. > > Cheers, > DanB > > On 8/22/07, Marc LEURENT lftsy@free.fr wrote: >> I have another error with freeradius 1.1.7 from source, I don't know why it cannot find the module... >> I'll check tomorrow >> Yhanks for your help Dan, have a pleasant evening >> >> rlm_sql_mysql: Starting connect to MySQL server for #3 >> rlm_sql (sql): Connected new DB handle, #3 >> rlm_sql (sql): starting 4 >> rlm_sql (sql): Attempting to connect rlm_sql_mysql #4 >> rlm_sql_mysql: Starting connect to MySQL server for #4 >> 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" >> rlm_python:python_load_function: module 'freeradius-cdrtool' is not found >> rlm_python:EXCEPT:exceptions.ImportError: /usr/lib/python2.4/lib-dynload/_socket.so: undefined symbol: _Py_TrueStruct >> rlm_python:python_load_function: failed to import python function 'freeradius-cdrtool.instantiate' >> radiusd.conf[541]: python: Module instantiation failed. >> radiusd.conf[1900] Unknown module "python". >> radiusd.conf[1803] Failed to parse authorize section. >> zsh: exit 1 radiusd -X >> >> >> >> Dan-Cristian Bogos a écrit : >>> You are getting this error because the interpreter does not accept "-" >>> in the name. I didn't need to import it in the interpreter and there >>> will be no use since radiusd package is available only within >>> freeradius process. >>> >>> Thxs, >>> DanB >>> >>> On 8/22/07, Marc LEURENT lftsy@free.fr wrote: >>>> Do you have this error? >>>> When I try to load your module in mython, I have this error because of the dash.. >>>> >>>> >>>> root@sd-7501:[/home/../freeradius-cdrtool-1.0]# python >>>> Python 2.4.4 (#2, Apr 5 2007, 20:11:18) >>>> [GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2 >>>> Type "help", "copyright", "credits" or "license" for more information. >>>>>>> import freeradius-cdrtool >>>> File "<stdin>", line 1 >>>> import freeradius-cdrtool >>>> ^ >>>> SyntaxError: invalid syntax >>>>>>> import setup >>>> usage: [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] >>>> or: --help [cmd1 cmd2 ...] >>>> or: --help-commands >>>> or: cmd --help >>>> >>>> error: no commands supplied >>>> zsh: exit 1 python >>>> >>>> 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@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@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@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@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@192.168.95.79', >>>>>>>>>>>> '36afb36cd5c82c34', 'sip:101@sd-7501.dedibox.fr:5060=3Buser=3Dphone', >>>>>>>>>>>> 'sip:101@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@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@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 >>> _______________________________________________ >>> Users mailing list >>> Users@openser.org >>> http://openser.org/cgi-bin/mailman/listinfo/users
Marc,
When a new call is generated, openser will send an radius-authorize packet to freeradius. This one will pass the request and parameters to the connector. The To uri will be extracted from Digest-URI, so nothing to do with Canonical-URI. U must make sure that your digest uri is presented properly (sanitized by rlm_digest module). You should easily find what is wrong by running the radius server in debug mode (radiusd -X) and check for messages coming out with label: "rlm_python [freeradius-cdrtool]:" . There should be enough info for debug. In the case of Accounting-Start packet, the connector will check whether u have Canonical-URI or Called-Station-Id and the first one found will be used as destination. At accounting Stop phase all the parameters will be extracted from the memory based on a key, so there should not matter. The only requirement is that the canonical-uri should be the same as your original authenticated request, so it should correctly debit the balance. This was bit dirty fix but I have used it for cases when u are not sending to field at all. If something else is required, I can easily change the policy. Please consider that the cdrtool prepaid application works in parallel with cdr matching one so you could have prepaid perfectly deducting balance but still have no proper cdr generation and opposite.
Cheers, DanB
On 8/23/07, Marc LEURENT lftsy@free.fr wrote:
Thanks Dan!! I have successfully compiled freeradius 1.1.6 with the rlm_python compiled statically! So the freeradius-cdrtool module works!!
My problem is that is cannot find the destination whereas it's in the Canonical-URI, so that with To=None, it cannot calculate the max session time But in the radacct database, there is the Canonical-URI
A Parsing problem? Stange, I don't know where to search for it
Aug 23 16:57:23 sd-7501 CDRTool[20011]: MaxSessionTime From=101@sd-7501.dedibox.fr To=None Duration=7200 Lock=1 Aug 23 16:57:23 sd-7501 CDRTool[20011]: Load last minute: 5 calls @ 0.04 cps, memory: 10.13 MB Aug 23 16:57:23 sd-7501 CDRTool[20011]: Call to none, no limit imposed Aug 23 16:57:23 sd-7501 CDRTool[20011]: GetBalance From=101@sd-7501.dedibox.fr Aug 23 16:57:23 sd-7501 CDRTool[20011]: Customer : 101@sd-7501.dedibox.fr Aug 23 16:57:23 sd-7501 CDRTool[20011]: Balance : 1000.0000 Aug 23 16:57:23 sd-7501 CDRTool[20011]: MaxSessionTime From=101@sd-7501.dedibox.fr To=None Duration=7200 Lock=1 Aug 23 16:57:23 sd-7501 CDRTool[20011]: Call to none, no limit imposed Aug 23 16:57:23 sd-7501 CDRTool[20011]: GetBalance From=101@sd-7501.dedibox.fr Aug 23 16:57:23 sd-7501 CDRTool[20011]: Customer : 101@sd-7501.dedibox.fr Aug 23 16:57:23 sd-7501 CDRTool[20011]: Balance : 1000.0000 Aug 23 16:57:24 sd-7501 CDRTool[20011]: MaxSessionTime From=101@sd-7501.dedibox.fr To=None Duration=7200 Lock=1 Aug 23 16:57:24 sd-7501 CDRTool[20011]: Call to none, no limit imposed Aug 23 16:57:24 sd-7501 CDRTool[20011]: GetBalance From=101@sd-7501.dedibox.fr Aug 23 16:57:24 sd-7501 CDRTool[20011]: Customer : 101@sd-7501.dedibox.fr Aug 23 16:57:24 sd-7501 CDRTool[20011]: Balance : 1000.0000 Aug 23 16:57:45 sd-7501 CDRTool[20011]: DebitBalance From=None To=sip:0033677832974@sd-7501.dedibox.fr:5060;user=phone Duration=0 Aug 23 16:57:45 sd-7501 CDRTool[20011]: Warning: Account none is not prepaid
rad_recv: Accounting-Request packet from host 127.0.0.1:59701, id=79, length=318 Acct-Status-Type = Failed Service-Type = Sip-Session Sip-Response-Code = 487 Sip-Method = INVITE Event-Timestamp = "Aug 23 2007 16:51:33 CEST" Sip-From-Tag = "c0a80101-29f6f83" Sip-To-Tag = "c0a80101-29f6daa" Acct-Session-Id = "2f12a585-c0a80101-0-1f@192.168.95.79" Sip-Src-IP = "81.57.0.22" Sip-Src-Port = "62854" Canonical-URI = "sip:0033677832974@sd-7501.dedibox.fr:5060;user=phone" Billing-Party = "sip:101@sd-7501.dedibox.fr:5060;user=phone" SIP-Proxy-IP = "88.191.45.91" User-Agent = "THOMSON ST2030 hw0 fw1.56 00-0E-50-4E-AF-C4" NAS-Port = 5060 Acct-Delay-Time = 0 NAS-IP-Address = 127.0.0.1 Processing the preacct section of radiusd.conf
Dan-Cristian Bogos a écrit :
Marc,
try this (as I have written in freeradius list) - should work fine if u follow the exact steps. I am compiling it statically since this was the building policy recommended by developers:
- Grab the sources and unpack them (1.1.7 version)
- After unpacking, run from within the source folder: ./configure --with-static-modules=python make
- Your make will stop here: "libtool: link: cannot find the library
`../modules/rlm_python/rlm_python.la' or unhandled argument `../modules/rlm_python/rlm_python.la'" 4. Go into ./src/modules/rlm_python 5. run ./configure + make + make install 6. Go back to root of sources and run again make + make install.
Hope that will do, DanB
On 8/23/07, Marc LEURENT lftsy@free.fr wrote:
I'm receiving freeradius-users@lists.freeradius.org Did you sent it there?
I have posted some message there and some developpers said that rlm_python shouldn't be compiled statically... And that I should use the experimental module option. So I don't know what to do in order to get your module working
PS: I have tested it in console with python directly, Congratulations!! It works perfectly
Dan-Cristian Bogos a écrit :
SOLVED, check the freeradius list, I have posted there the solution.
DanB
On 8/23/07, Marc LEURENT lftsy@free.fr wrote:
I have copied the missing radpaths.h from 1.1.7 source, but there is still an error! (libradius.la) Why is ir so important de compile de python module statically??
Can we compile the experimental modules??
rlm_python.c: At top level: rlm_python.c:244: warning: function declaration isn't a prototype rlm_python.c: In function 'python_load_function': rlm_python.c:456: warning: passing argument 2 of 'PyObject_GetAttrString' discards qualifiers from pointer target type gcc -g -O2 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -Wall -D_GNU_SOURCE -g -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -W -Wredundant-decls -Wundef -I/home/mleurent/freeradius/official/freeradius-1.1.6/src/include -I/usr/include/python2.4 -c rlm_python.c -o rlm_python.o >/dev/null 2>&1 /home/mleurent/freeradius/official/freeradius-1.1.6/libtool --mode=link gcc -release 1.1.6 \ -module -static -o rlm_python.la \ -rpath /usr/local/lib rlm_python.lo rlm_python.c /home/mleurent/freeradius/official/freeradius-1.1.6/src/lib/libradius.la \ -L/usr/lib/python2.4/config -lpthread -ldl -lutil -lpython2.4 -lm -lnsl -lresolv -lpthread libtool: link: cannot find the library `/home/mleurent/freeradius/official/freeradius-1.1.6/src/lib/libradius.la' or unhandled argument `/home/mleurent/freeradius/official/freeradius-1.1.6/src/lib/libradius.la' make: *** [rlm_python.la] Error 1 zsh: exit 2 make
Dan-Cristian Bogos a écrit :
Ok, try a trick then,
- in root folder type:
./configure --with-static-modules=python
- go in ./src/modules/rlm_python/ and try after the installation
procedure: ./configure + make + make install 3. Go back to root folder and try again the installation procedure (./configure --with-static-modules=python + make + make install).
Let me know how it goes.
DanB
On 8/23/07, Marc LEURENT lftsy@free.fr wrote: > I cannot do it! > Sniff again > > SCREEN):root@sd-7501:[/home/../freeradius-1.1.6]# cd src/modules/rlm_python > (SCREEN):root@sd-7501:[~mleurent/../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 > > (SCREEN):root@sd-7501:[~mleurent/../rlm_python]# make > ../rules.mak:24: ../../../Make.inc: No such file or directory > make: *** No rule to make target `../../../Make.inc'. Stop. > zsh: exit 2 make > > > Dan-Cristian Bogos a écrit : >> Hi Marc, >> >> it looks like there has been some changes with freeradius 1.7 since >> this one does not install for me either. It says :" ibtool: link: >> cannot find the library >> `/usr/local/src/freeradius/freeradius-1.1.7/src/lib/libradius.la' or >> unhandled argument >> `/usr/local/src/freeradius/freeradius-1.1.7/src/lib/libradius.la'". On >> a manual search I could see that this library is not longer included >> with the sources. I will try asking the guys from freeradius about the >> changes necessary to work. >> In the mean time, if u want to give it a try, here is how I have >> installed from freeradius 1.6: >> 1. Download the sources: "wget >> ftp://ftp.freeradius.org/pub/radius/freeradius-1.1.6.tar.gz" >> 2. Extract and get into the source folder. >> 3. Go to ./src/modules/rlm_python/ >> 4. Install the sources statically: (./configure + make + make install). >> 5. Go back to root folder for the sources >> 6. ./configure --with-static-modules=python >> 7. make + make install. >> >> Hope that would do for you. >> >> Cheers, >> DanB >> >> On 8/22/07, Marc LEURENT lftsy@free.fr wrote: >>> I have another error with freeradius 1.1.7 from source, I don't know why it cannot find the module... >>> I'll check tomorrow >>> Yhanks for your help Dan, have a pleasant evening >>> >>> rlm_sql_mysql: Starting connect to MySQL server for #3 >>> rlm_sql (sql): Connected new DB handle, #3 >>> rlm_sql (sql): starting 4 >>> rlm_sql (sql): Attempting to connect rlm_sql_mysql #4 >>> rlm_sql_mysql: Starting connect to MySQL server for #4 >>> 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" >>> rlm_python:python_load_function: module 'freeradius-cdrtool' is not found >>> rlm_python:EXCEPT:exceptions.ImportError: /usr/lib/python2.4/lib-dynload/_socket.so: undefined symbol: _Py_TrueStruct >>> rlm_python:python_load_function: failed to import python function 'freeradius-cdrtool.instantiate' >>> radiusd.conf[541]: python: Module instantiation failed. >>> radiusd.conf[1900] Unknown module "python". >>> radiusd.conf[1803] Failed to parse authorize section. >>> zsh: exit 1 radiusd -X >>> >>> >>> >>> Dan-Cristian Bogos a écrit : >>>> You are getting this error because the interpreter does not accept "-" >>>> in the name. I didn't need to import it in the interpreter and there >>>> will be no use since radiusd package is available only within >>>> freeradius process. >>>> >>>> Thxs, >>>> DanB >>>> >>>> On 8/22/07, Marc LEURENT lftsy@free.fr wrote: >>>>> Do you have this error? >>>>> When I try to load your module in mython, I have this error because of the dash.. >>>>> >>>>> >>>>> root@sd-7501:[/home/../freeradius-cdrtool-1.0]# python >>>>> Python 2.4.4 (#2, Apr 5 2007, 20:11:18) >>>>> [GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2 >>>>> Type "help", "copyright", "credits" or "license" for more information. >>>>>>>> import freeradius-cdrtool >>>>> File "<stdin>", line 1 >>>>> import freeradius-cdrtool >>>>> ^ >>>>> SyntaxError: invalid syntax >>>>>>>> import setup >>>>> usage: [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] >>>>> or: --help [cmd1 cmd2 ...] >>>>> or: --help-commands >>>>> or: cmd --help >>>>> >>>>> error: no commands supplied >>>>> zsh: exit 1 python >>>>> >>>>> 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@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@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@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@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@192.168.95.79', >>>>>>>>>>>>> '36afb36cd5c82c34', 'sip:101@sd-7501.dedibox.fr:5060=3Buser=3Dphone', >>>>>>>>>>>>> 'sip:101@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@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@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 >>>> _______________________________________________ >>>> Users mailing list >>>> Users@openser.org >>>> http://openser.org/cgi-bin/mailman/listinfo/users