From orn@arnarson.net Wed Jun 11 19:47:35 2014 From: =?utf-8?q?=C3=96rn?= Arnarson To: sr-users@lists.kamailio.org Subject: Re: [SR-Users] kamailio and app_python Date: Wed, 11 Jun 2014 17:46:59 +0000 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1694933080==" --===============1694933080== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable I'm guessing that accessing pseudo-variables is still not possible in python? I haven't seen anything indicating so in any event. Could you confirm? Will probably switch to lua as well. On Wed, Oct 3, 2012 at 4:38 PM, Konstantin M. wrote: > Hello, > I can contribute a python part, but currently I'm a very busy at the moment. > I will write a patch to enable this ability (and many other features) as > soon as possible. > > > 2012/10/3 Daniel-Constantin Mierla >> >> Hello, >> >> the best would be to enhance the module to be able to get/set >> pseudo-variables. I am not a python guy at all, so I cannot help much, >> however I can assist with the C side in kamailio if someone starts >> development and has questions about PVs. >> >> Calling config functions with parameters from embedded interpreters >> exposes the risk of memory leaks, so it is better to avoid it. Anyhow, add= ed >> headers are not visible immediately (even when done form config file), >> unless you call msg_apply_changes(). >> >> As a workaround for now, I suggest you put your token somehow in request >> uri (e.g., a parameter). >> >> Cheers, >> Daniel >> >> >> On 10/1/12 9:53 AM, Victor Seva wrote: >>> >>> Hi, >>> >>> is there any way to return values from a call to python_exec function >>> orther than the default returned integer? >>> >>> Following code generates this error: >>> Oct 1 09:08:23 zskio /usr/sbin/kamailio[21789]: ERROR: app_python >>> [python_support.c:38]: python_exec2: Unhandled exception in the Python >>> code: >>> Oct 1 09:08:23 zskio /usr/sbin/kamailio[21789]: ERROR: app_python >>> [python_support.c:78]: #011RuntimeError: no such function >>> >>> if (!python_exec("get_provider", >>> $(var(clean_uri){s.prefixes}))) { >>> xlog("L_ERR","Can not choose a provider for >>> $rU\n"); >>> sl_send_reply("503","Can not choose a provider >>> for $rU"); >>> exit; >>> } >>> >>> >>> def get_provider(self, msg, param): >>> # snipped code... >>> result =3D self.util.get_provider(prefixes, position, mode) >>> if result is not None: >>> LM_ERR("mode: %s position: %d result: %s" % (mode, >>> position, result)) >>> # this raises error >>> msg.call_function('rewritehost', result['provider']['ip']) >>> return 1 >>> return -1 >>> >>> I tried to use headers as transport but this simple code does not work: >>> >>> Oct 1 09:45:31 zskio /usr/sbin/kamailio[22303]: ERROR: