For sake of correctness, as I tried to figure out again searching the
web what the actual issue, the conflict seems to be with XPATH
specifications that don't define default xmlns scope, they have NULL
scope for no-prefix tags which is not the same as the default xmlns. Not
100% sure, as I didn't want to waste to much time, but looks more like
this one.
Cheers,
Daniel
On 10.02.22 16:52, Daniel-Constantin Mierla wrote:
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(a)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/