YumYumYum YumYumYum - 11 months ago 50
Linux Question

FreeSwitch - how do i parse and take action using python?

I have this dial plan and i want to handle the dialed number using python. But its not working any idea?

default.xml (dialplan):

<extension name="Run Python">
<condition field="destination_number" expression="^(?:\+|00)(\d+)$">
<action application="set" data="effective_caller_id_number=${caller_id_number}"/>
<action application="python" data="a" />

a.py (main dialing number router):

import freeswitch
def handler(session, args):
consoleLog("INFO", "print this please >>>>>>>>>>>>>>!>>>>>>>>>>>>>>>>>>>>!>")

Not working, when call is made:

2013-09-13 22:55:49.645980 [NOTICE] mod_python.c:212 Invoking py module: a
2013-09-13 22:55:49.645980 [DEBUG] mod_python.c:281 Call python script
2013-09-13 22:55:49.645980 [DEBUG] mod_python.c:284 Finished calling python script
2013-09-13 22:55:49.645980 [ERR] mod_python.c:293 Error calling python script
2013-09-13 22:55:49.645980 [ERR] mod_python.c:164 Python Error by calling script "a": <type 'exceptions.NameError'>
Message: global name 'consoleLog' is not defined
Exception: None

Traceback (most recent call last)
File: "/usr/local/freeswitch/scripts/a.py", line 3, in handler

Answer Source

Python is telling you what the problem is: there's no such thing as consoleLog. Is this something defined in the freeswitch module? If so, you wantfreeswitch.consoleLog.