[SR-Users] KEMI - Set message body to Bytes / Prevent parsing PV?
Daniel-Constantin Mierla
miconda at gmail.com
Tue Apr 13 09:56:40 CEST 2021
Hello,
using KSR.pvx.evalx("$uac_req(body)", "$smsbody") works fine as long as
there is no '$...' inside $smsbody, because the second parameter is
evaluated twice for variables. That's the reason I gave the example with
$$(smsbody), so first time $$ is evaluate to $, resulting in $(smsbody),
which is then evaluated again.
Cheers,
Daniel
On 12.04.21 23:46, Nick wrote:
> Thanks Daniel,
>
> KSR.pvx.evalx was exactly what I needed,
>
> I was able to set the UAC request body to an existing PV without
> evaluating it in Python,
> KSR.pvx.evalx("$uac_req(body)", "$smsbody");
>
> Thanks again,
> Nick
>
> On Mon, Apr 12, 2021 at 6:21 PM Daniel-Constantin Mierla
> <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>
> Hello,
>
> On 11.04.21 05:23, Nick wrote:
>> Hi all,
>>
>> I'm trying in KEMI & Python to set a Pseudo Variable to the value
>> of another PV (simple enough) but the value of the PV is not a
>> string or an integer,
>>
>> For example the SMSops
>> <https://github.com/kamailio/kamailio/tree/master/src/modules/smsops>
>> module has a PV called $smsbody which I need to set the message
>> body to equal in UAC, but I'm not able to load it to set it as
>> the message body,
>>
>> In my Python file I have:
>> smsbody = KSR.pv.get("$smsbody")
>>
>> Which leads to:
>> kamailio[226069]: UnicodeDecodeError: 'utf-8' codec can't decode
>> byte 0x91 in position 7: invalid start byte
>> kamailio[226069]: 2(226069) DEBUG: app_python3 [apy_kemi.c:112]:
>> sr_kemi_config_engine_python(): execution of route type 1 with no
>> name returned -1
>>
>> *Is there a way to set a PV in Kemi without actually
>> interpreting it?*
>> *
>> *
>> *Is there a way to run an arbitrary line of native Kamailio
>> config from Kemi like KSR.x.modf? *
>>
>> In reality all I need to do is:
>> $uac_req(body) = $smsbody;
>>
>> Would work fine in the native config, but the equivalent in Kemi
>> tries to parse the contents and fails, so can't set the body.
>
> this seems to be some limitation coming from embedding Python with
> string parameters for functions.
>
> Can you try:
>
> KSR.pvx.evalx("$uac_req(body)", "$$(smsbody)");
>
> Note the $$ in second parameter, because it is the same as:
>
> *
> https://kamailio.org/docs/modules/devel/modules/pv.html#pv.f.pv_evalx
> <https://kamailio.org/docs/modules/devel/modules/pv.html#pv.f.pv_evalx>
>
> Cheers,
> Daniel
>
> --
> Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com>
> www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda>
> Kamailio Advanced Training - Online
> May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
> * https://www.asipto.com/sw/kamailio-advanced-training-online/ <https://www.asipto.com/sw/kamailio-advanced-training-online/>
>
--
Daniel-Constantin Mierla -- www.asipto.com
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - Online
May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
* https://www.asipto.com/sw/kamailio-advanced-training-online/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20210413/e33c134c/attachment.htm>
More information about the sr-users
mailing list