[SR-Users] kamailio and app_python

Daniel-Constantin Mierla miconda at gmail.com
Wed Oct 3 12:40:16 CEST 2012


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, 
added 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 = 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: <script>: No header
>
>                  if (!is_present_hf("X-Test-header")) {
>                          xlog("L_ERROR", "No header\n");
>                  }
>                  else {
>                          xlog("L_INFO", "Header added\n");
>                  }
>
>      def test_set_header(self, msg):
>          msg.call_function('append_hf', 'X-Test-header: test\r\n')
>          return 1
>
> Thanks in advance.
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

-- 
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio Advanced Training, Berlin, Nov 5-8, 2012 - http://asipto.com/u/kat
Kamailio Advanced Training, Miami, USA, Nov 12-14, 2012 - http://asipto.com/u/katu




More information about the sr-users mailing list