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
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, IgorLe 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 stateMeans 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/
-- 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/