Daniel,

Many thanks!

Your "replace" solution looks more elegant than just remove the whole string.

Regards,
Igor
Le 10.02.2022 à 16:52, Daniel-Constantin Mierla a écrit :

Hello,

actually the problem is the mess SIMPLE RFC authors made with XML namespaces, by not setting and not using a prefix for them, otherwise the #012 is end-of-line printed by syslog as octal character.

The solutions:

1) replace "xmlns=" with something else like "xyzwq=":

$xml(body=>doc) = $(rb{s.replace,xmlns=,xyzwq=})

and use xpath without concerning of xml namespaces prefix.

2) register a prefix for the namespace using xml_ns parameter from xmlops module and use that prefix in xpath expressions.

See a past discussion on the mailing list:

   - https://lists.kamailio.org/pipermail/sr-users/2010-December/066690.html

Cheers,
Daniel

On 10.02.22 16:25, Igor Olhovskiy wrote:

Hello

Just to add, when I'm trying to dump $rb to logs, I'm getting this line

<?xml version="1.0"?>#012<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" version="0" state="full" entity="sip:88881@dev.company">#012  <dialog id="f-XGMVyeO0" direction="recipient">#012    <state>terminated</state>#012  </dialog>#012</dialog-info>

So, I expect problem is in this #012 + extra spaces. Is there a way to clean it up in an easy way?

Regards,
Igor
Le 10.02.2022 à 16:01, Igor Olhovskiy a écrit :

Hello,

I'm trying to get state of endpoint from PUBLISH message in a most simple way using xmlops module

Trying to make this

$xml(body=>doc) = $rb;
log("L_ERR", "$rU is now in state $xml(body=>xpath:/dialog-info/dialog/state)\n");

XML in PUBLISH itself

<?xml version="1.0"?>
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" version="0" state="full" entity="sip:88881@dev.company">
  <dialog id="v6qmEYf5yI" direction="initiator">
    <state>confirmed</state>
  </dialog>
</dialog-info>


Actual text in log is

... <script>: 88881 is now in state

Means it's empty. xmlops module is loaded with no parameters. Tried also string

$xml(body=>xpath:/dialog-info/dialog/state/text())

-> same result

What am I missing here?

kamailio 5.4.6

-- 
Thanks in advance,
Igor

__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions
  * sr-users@lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the sender!
Edit mailing list options or unsubscribe:
  * https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
-- 
Daniel-Constantin Mierla -- www.asipto.com
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - Online
  Feb 21-24, 2022 (America Timezone)
  * https://www.asipto.com/sw/kamailio-advanced-training-online/