Greetings, So I see from nabble and on the wiki that others have had problems with sqlalchemy and the hangup hook, but I appear to be having a more basic problem. I'm running FS 1.0.2, python 2.4.3, and SqlAlchemy 0.4.7 Here's an extension in my public.xml that works: <extension name="Python_Test_On_5186"> <condition field="destination_number" expression="^6468715186$"> <action application="set" data="group_confirm_file=voicemail/8000/vm-hello.wav" /> <action application="set" data="group_confirm_key=4" /> <action application="set" data="call_timeout=60" /> <action application="set" data="destination_number_python= ${python(callcontrol.routing.DummyRouteHandler)}" /> <action application="bridge" data="${destination_number_python}" /> </condition> </extension> With this silly DummyRouteHandler.py: import os from freeswitch import * #import sqlalchemy def fsapi(session, stream, env, args): stream.write('sofia/internal/1000%10.48.5.207') (Note the commented out sqlalchemy import. Uncommenting the import gets me an "error importing module" or "error reloading module" in the fs_cli output) Oooh, and just now trying to reproduce I got my first crash. Thoughts? Brian
Sent from my iPhone On Jan 28, 2009, at 6:41 PM, Brian Deacon <bdeacon@highergear.com> wrote:
Greetings,
So I see from nabble and on the wiki that others have had problems with sqlalchemy and the hangup hook, but I appear to be having a more basic problem.
I'm running FS 1.0.2, python 2.4.3, and SqlAlchemy 0.4.7
Here's an extension in my public.xml that works: <extension name="Python_Test_On_5186"> <condition field="destination_number" expression="^6468715186$"> <action application="set" data="group_confirm_file=voicemail/8000/vm-hello.wav" /> <action application="set" data="group_confirm_key=4" /> <action application="set" data="call_timeout=60" /> <action application="set" data="destination_number_python= ${python(callcontrol.routing.DummyRouteHandler)}" /> <action application="bridge" data="${destination_number_python}" /> </condition> </extension>
With this silly DummyRouteHandler.py: import os from freeswitch import * #import sqlalchemy
def fsapi(session, stream, env, args): stream.write('sofia/internal/1000%10.48.5.207')
(Note the commented out sqlalchemy import. Uncommenting the import gets me an "error importing module" or "error reloading module" in the fs_cli output)
Oooh, and just now trying to reproduce I got my first crash.
Thoughts?
Use Lua? ;) Seriously, Lua is a breeze to learn and is more stable than Python. Python is *not* designed to be embedded however Lua is designed precisely for that reason. Think WoW. Other than that I believe that your experiences with Python might help the devs uncover more issues. Please visit the "reporting bugs" page on the wiki and start collecting the information that will help them solve this one. -MC
Brian
_______________________________________________ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
There is a big chance some of your problems can come from your system copy of python. This is one of the reasons we were against using system libs because you need python built a certain way to work right with embedded code. If you really want to get to the bottom of it you may want to explore installing a non standard copy of python the way we used to do and compare results. On Wed, Jan 28, 2009 at 9:16 PM, Michael S Collins <msc@freeswitch.org>wrote:
Sent from my iPhone
On Jan 28, 2009, at 6:41 PM, Brian Deacon <bdeacon@highergear.com> wrote:
Greetings,
So I see from nabble and on the wiki that others have had problems with sqlalchemy and the hangup hook, but I appear to be having a more basic problem.
I'm running FS 1.0.2, python 2.4.3, and SqlAlchemy 0.4.7
Here's an extension in my public.xml that works: <extension name="Python_Test_On_5186"> <condition field="destination_number" expression="^6468715186$"> <action application="set" data="group_confirm_file=voicemail/8000/vm-hello.wav" /> <action application="set" data="group_confirm_key=4" /> <action application="set" data="call_timeout=60" /> <action application="set" data="destination_number_python= ${python(callcontrol.routing.DummyRouteHandler)}" /> <action application="bridge" data="${destination_number_python}" /> </condition> </extension>
With this silly DummyRouteHandler.py: import os from freeswitch import * #import sqlalchemy
def fsapi(session, stream, env, args): stream.write('sofia/internal/1000%10.48.5.207')
(Note the commented out sqlalchemy import. Uncommenting the import gets me an "error importing module" or "error reloading module" in the fs_cli output)
Oooh, and just now trying to reproduce I got my first crash.
Thoughts?
Use Lua? ;) Seriously, Lua is a breeze to learn and is more stable than Python. Python is *not* designed to be embedded however Lua is designed precisely for that reason. Think WoW.
Other than that I believe that your experiences with Python might help the devs uncover more issues. Please visit the "reporting bugs" page on the wiki and start collecting the information that will help them solve this one.
-MC
Brian
_______________________________________________ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
_______________________________________________ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
-- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400
On Thu, 2009-01-29 at 07:59 -0600, Anthony Minessale wrote:
There is a big chance some of your problems can come from your system copy of python. This is one of the reasons we were against using system libs because you need python built a certain way to work right with embedded code.
If you really want to get to the bottom of it you may want to explore installing a non standard copy of python the way we used to do and compare results.
I'm in the middle of trying an upgrade to python 2.5 to see if that makes a difference. But trying a "non-standard" build would be worth exploring. Can you point me in the right direction? Brian
We used to build python 2.5.1 and install it into the freeswitch prefix we did ./configure --prefix=/usr/local/freeswitch --enable-threads CFLAGSFORSHARED="-fPIC" But the makefile no longer will find that one so....... you could move your python out of the way on your box and try installing this as your system python instead. ./configure --prefix=/your/real/python/prefix --enable-threads CFLAGSFORSHARED="-fPIC" if you are really brave you could delete the Makefile in mod_python and put back the old one that builds and installs custom python for you into the FS prefix http://fisheye.freeswitch.org/browse/~raw,r=6393/FreeSWITCH/src/mod/language... the important thing is the --enable-threads and CFLAGSFORSHARED="-fPIC" on whatever one you use. On Thu, Jan 29, 2009 at 2:31 PM, Brian Deacon <bdeacon@highergear.com>wrote:
On Thu, 2009-01-29 at 07:59 -0600, Anthony Minessale wrote:
There is a big chance some of your problems can come from your system copy of python. This is one of the reasons we were against using system libs because you need python built a certain way to work right with embedded code.
If you really want to get to the bottom of it you may want to explore installing a non standard copy of python the way we used to do and compare results.
I'm in the middle of trying an upgrade to python 2.5 to see if that makes a difference. But trying a "non-standard" build would be worth exploring. Can you point me in the right direction?
Brian
_______________________________________________ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
-- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400
On Thu, 2009-01-29 at 14:49 -0600, Anthony Minessale wrote:
We used to build python 2.5.1 and install it into the freeswitch prefix
we did ./configure --prefix=/usr/local/freeswitch --enable-threads CFLAGSFORSHARED="-fPIC"
But the makefile no longer will find that one so.......
you could move your python out of the way on your box and try installing this as your system python instead.
./configure --prefix=/your/real/python/prefix --enable-threads CFLAGSFORSHARED="-fPIC"
if you are really brave you could delete the Makefile in mod_python and put back the old one that builds and installs custom python for you into the FS prefix
http://fisheye.freeswitch.org/browse/~raw,r=6393/FreeSWITCH/src/mod/language...
the important thing is the --enable-threads and CFLAGSFORSHARED="-fPIC" on whatever one you use.
So this is the error that gdb shows me, do you think this is the kind of thing that the "special" compile would clear up? 2009-01-29 15:57:12 [NOTICE] mod_python.c:107 eval_some_python() Invoking py module: callcontrol.routing.DummyRouteHandler 2009-01-29 15:57:12 [ERR] mod_python.c:121 eval_some_python() Error importing module Traceback (most recent call last): File "/usr/local/freeswitch/python/callcontrol/routing/DummyRouteHandler.py", line 19, in ? import sqlalchemy File "/usr/lib/python2.4/site-packages/sqlalchemy/__init__.py", line 8, in ? from sqlalchemy.types import \ File "/usr/lib/python2.4/site-packages/sqlalchemy/types.py", line 25, in ? import datetime as dt ImportError: /usr/lib/python2.4/lib-dynload/datetime.so: undefined symbol: _Py_ZeroStruct And I believe I understood the answer I got on IRC, but just want to confirm... If I remove my standard build of python 2.4 and do the special build of 2.5.4, I don't need to do anything more than bounce freeswitch? Or do I need to rebuild freeswitch so it builds mod_python against my new version of python? Thanks again, you guys have been quite helpful and responsive. I'm doubling what I'm paying you right now. :) Brian
for good measure i would rebuild just mod_python make mod_python-clean make mod_python-install On Thu, Jan 29, 2009 at 5:07 PM, Brian Deacon <bdeacon@highergear.com>wrote:
On Thu, 2009-01-29 at 14:49 -0600, Anthony Minessale wrote:
We used to build python 2.5.1 and install it into the freeswitch prefix
we did ./configure --prefix=/usr/local/freeswitch --enable-threads CFLAGSFORSHARED="-fPIC"
But the makefile no longer will find that one so.......
you could move your python out of the way on your box and try installing this as your system python instead.
./configure --prefix=/your/real/python/prefix --enable-threads CFLAGSFORSHARED="-fPIC"
if you are really brave you could delete the Makefile in mod_python and put back the old one that builds and installs custom python for you into the FS prefix
the important thing is the --enable-threads and CFLAGSFORSHARED="-fPIC" on whatever one you use.
So this is the error that gdb shows me, do you think this is the kind of thing that the "special" compile would clear up?
2009-01-29 15:57:12 [NOTICE] mod_python.c:107 eval_some_python() Invoking py module: callcontrol.routing.DummyRouteHandler 2009-01-29 15:57:12 [ERR] mod_python.c:121 eval_some_python() Error importing module Traceback (most recent call last): File "/usr/local/freeswitch/python/callcontrol/routing/DummyRouteHandler.py", line 19, in ? import sqlalchemy File "/usr/lib/python2.4/site-packages/sqlalchemy/__init__.py", line 8, in ? from sqlalchemy.types import \ File "/usr/lib/python2.4/site-packages/sqlalchemy/types.py", line 25, in ? import datetime as dt ImportError: /usr/lib/python2.4/lib-dynload/datetime.so: undefined symbol: _Py_ZeroStruct
And I believe I understood the answer I got on IRC, but just want to confirm... If I remove my standard build of python 2.4 and do the special build of 2.5.4, I don't need to do anything more than bounce freeswitch? Or do I need to rebuild freeswitch so it builds mod_python against my new version of python?
Thanks again, you guys have been quite helpful and responsive. I'm doubling what I'm paying you right now. :)
Brian
_______________________________________________ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
-- Anthony Minessale II FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/ AIM: anthm MSN:anthony_minessale@hotmail.com <MSN%3Aanthony_minessale@hotmail.com> GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com<PAYPAL%3Aanthony.minessale@gmail.com> IRC: irc.freenode.net #freeswitch FreeSWITCH Developer Conference sip:888@conference.freeswitch.org <sip%3A888@conference.freeswitch.org> iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org<googletalk%3Aconf%2B888@conference.freeswitch.org> pstn:213-799-1400
On Thu, 2009-01-29 at 17:39 -0600, Anthony Minessale wrote:
for good measure i would rebuild just mod_python
make mod_python-clean make mod_python-install
I've got the newly built python sitting in /usr/lib/python2.5, and the old one still in /usr/lib/python2.4. /usr/bin/python is now pointed to python2.5. After a ./configure in freeswitch, I notice that the mod_python Makefile has LOCAL_CFLAGS with a -I/usr/include/python2.5, but PYTHON_SITE_DIR is still set to /usr/lib/python2.4/site-packages I'm trying just altering that variable to 2.5, but worried that maybe other places are getting 2.4 set. How does the logic work for how that gets there? Is it just searching for the first /usr/lib/python*? Brian
My apologies that this is starting to turn into "teach the n00b how to compile stuff". (Not that that's keeping me from asking for help...) So I downloaded the 2.5.4 source tarball from python.org and ./configure --prefix=/usr --enable-threads CFLAGSFORSHARED="-fPIC" make make install I have a /usr/lib/python2.5 that looks kosher. I think I may have had to alter some of the hardlinks in /usr/bin because /usr/bin/python2.4 is still there. (So is /usr/lib/python2.4) I have trunk code from freeswitch. ./configure acts happy, but the mod_python Makefile looks ganked: LOCAL_CFLAGS = -I/usr/include/python2.5 -I/usr/include/python2.5 -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes LOCAL_LDFLAGS= -lpthread -ldl -lutil -lm -lpython2.5 LOCAL_OBJS=freeswitch_python.o mod_python_wrap.o include ../../../../build/modmake.rules LINK=$(CXXLINK) PYMOD=freeswitch PYTHON_SITE_DIR=/usr/lib/python2.4/site-packages That PYTHON_SITE_DIR is wrong, but the deal-breaker I get right now is that the -lpython2.5 for LDFLAGS is making it mad. I get an ld error "cannot find -lpython2.5" And a libpython2.5.so is conspicuously absent from my machine. This smells a little bit like I'm not compiling python correctly, for which I would not blame you as putting under the category of "not your problem" but I'll TRIPLE what I'm paying you if you can help lead me out of these woods. :) Brian On Thu, 2009-01-29 at 17:39 -0600, Anthony Minessale wrote:
for good measure i would rebuild just mod_python
make mod_python-clean make mod_python-install
On Thu, Jan 29, 2009 at 5:07 PM, Brian Deacon <bdeacon@highergear.com> wrote: On Thu, 2009-01-29 at 14:49 -0600, Anthony Minessale wrote: > We used to build python 2.5.1 and install it into the freeswitch > prefix > > we did ./configure --prefix=/usr/local/freeswitch > --enable-threads CFLAGSFORSHARED="-fPIC" > > But the makefile no longer will find that one so....... > > you could move your python out of the way on your box and try > installing this as your system python instead. > > ./configure --prefix=/your/real/python/prefix > --enable-threads CFLAGSFORSHARED="-fPIC" > > if you are really brave you could delete the Makefile in mod_python > and put back the old one > that builds and installs custom python for you into the FS prefix > > http://fisheye.freeswitch.org/browse/~raw,r=6393/FreeSWITCH/src/mod/language... > > > the important thing is the --enable-threads and > CFLAGSFORSHARED="-fPIC" on whatever one you use. >
So this is the error that gdb shows me, do you think this is the kind of thing that the "special" compile would clear up?
2009-01-29 15:57:12 [NOTICE] mod_python.c:107 eval_some_python() Invoking py module: callcontrol.routing.DummyRouteHandler 2009-01-29 15:57:12 [ERR] mod_python.c:121 eval_some_python() Error importing module Traceback (most recent call last): File "/usr/local/freeswitch/python/callcontrol/routing/DummyRouteHandler.py", line 19, in ? import sqlalchemy File "/usr/lib/python2.4/site-packages/sqlalchemy/__init__.py", line 8, in ? from sqlalchemy.types import \ File "/usr/lib/python2.4/site-packages/sqlalchemy/types.py", line 25, in ? import datetime as dt ImportError: /usr/lib/python2.4/lib-dynload/datetime.so: undefined symbol: _Py_ZeroStruct
And I believe I understood the answer I got on IRC, but just want to confirm... If I remove my standard build of python 2.4 and do the special build of 2.5.4, I don't need to do anything more than bounce freeswitch? Or do I need to rebuild freeswitch so it builds mod_python against my new version of python?
Thanks again, you guys have been quite helpful and responsive. I'm doubling what I'm paying you right now. :)
Brian
_______________________________________________ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
-- Anthony Minessale II
FreeSWITCH http://www.freeswitch.org/ ClueCon http://www.cluecon.com/
AIM: anthm MSN:anthony_minessale@hotmail.com GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com IRC: irc.freenode.net #freeswitch
FreeSWITCH Developer Conference sip:888@conference.freeswitch.org iax:guest@conference.freeswitch.org/888 googletalk:conf+888@conference.freeswitch.org pstn:213-799-1400 _______________________________________________ Freeswitch-users mailing list Freeswitch-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
On Wed, 2009-01-28 at 19:16 -0800, Michael S Collins wrote:
(Note the commented out sqlalchemy import. Uncommenting the import gets me an "error importing module" or "error reloading module" in the fs_cli output)
Oooh, and just now trying to reproduce I got my first crash.
Thoughts?
Use Lua? ;) Seriously, Lua is a breeze to learn and is more stable than Python. Python is *not* designed to be embedded however Lua is designed precisely for that reason. Think WoW.
Other than that I believe that your experiences with Python might help the devs uncover more issues. Please visit the "reporting bugs" page on the wiki and start collecting the information that will help them solve this one.
[Insert Smedley-cursing here.] Hmm, I think an investment in Lua here is going to be a hard sell. Would you expect the JavaScript implementation to be as robust as the Lua implementation? (And then I'll need to eliminate my ignorance on what javascript can do with databases when it's not sandboxed by a browser.) I'll see if I can dig up a usable stack trace for the python problem. My gdb-fu is weak. Brian
participants (3)
-
Anthony Minessale
-
Brian Deacon
-
Michael S Collins