<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<tt>Hi<tt>,<br>
<br>
<tt>There was a small typo in my regexp<tt>. The correct one is:<br>
</tt></tt></tt></tt><br>
$var(reg) =
"/(.*)gml:Coordinates>(.*)<\/gml:Coordinates(.*)/\2/s";<br>
xlog("Position is $(rb[1]{re.subst,$var(reg)})\n");<br>
<br>
I tried it and it does the job. <br>
<br>
Regarding the usability of the $rb variable, yes you have a point. I
was thinking of something like $rb(mime)[idx] to access also per
mime.<br>
<br>
Best regards,<br>
<br>
<pre class="moz-signature" cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a class="moz-txt-link-freetext" href="http://www.opensips-solutions.com">http://www.opensips-solutions.com</a></pre>
<div class="moz-cite-prefix">On 01/13/2017 12:04 PM, xaled wrote:<br>
</div>
<blockquote cite="mid:009101d26d84$72050d10$560f2730$@web.de"
type="cite">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
color:black;
mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";
color:black;}
tt
{mso-style-priority:99;
font-family:"Courier New";}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:Consolas;
color:black;}
span.EmailStyle20
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.EmailStyle21
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle22
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle23
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle24
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle25
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle26
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">Hi Bogdan,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">thank
you for looking at this issue. This regex does not work. I
tried different combinations of the idea but it just not
getting there. <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">2017-01-13T11:02:42.287766+01:00
ivr01 /usr/local/sbin/opensips[24845]: DBG:core:tr_eval_re:
we must compile the regexp<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">2017-01-13T11:02:42.288116+01:00
ivr01 /usr/local/sbin/opensips[24845]:
WARNING:core:parse_repl: \/ unknown escape in
(.*)<\/gml:Coordinates(.*)/\2/s<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">2017-01-13T11:02:42.288464+01:00
ivr01 /usr/local/sbin/opensips[24845]:
ERROR:core:subst_parser: unknown flag . in
(.*)/gml:Coordinates>(.*)<\/gml:Coordin<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">ates(.*)/\2/s<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">2017-01-13T11:02:42.288787+01:00
ivr01 /usr/local/sbin/opensips[24845]:
ERROR:core:tr_eval_re: Can't compile regexp<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">I
managed to get it running with perl:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">use
OpenSIPS qw ( log );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">use
OpenSIPS::Constants;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">use
OpenSIPS::Message;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">sub
parsePIDFLO {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">
my $m = shift;<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:35.4pt"><span
style="color:#1F497D" lang="EN-US">my $body =
$m->getBody();<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:35.4pt"><span
style="color:#1F497D" lang="EN-US">($coord) = $body =~
/Coordinates>(.*)</;<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:35.4pt"><span
style="color:#1F497D" lang="EN-US">my ($long, $lat) = split(
/\s+/, $coord );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">Btw
it would be great to be able to address the xml body by
something like this:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">rb[application/pidf+xml]
or rb["application/pidf+xml"] otherwise if bodies come in
different order rb[1] would not work.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">Thanks<o:p></o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1
1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span
style="color:windowtext;mso-fareast-language:DE"
lang="EN-US">From:</span></b><span
style="color:windowtext;mso-fareast-language:DE"
lang="EN-US"> Bogdan-Andrei Iancu
[<a class="moz-txt-link-freetext" href="mailto:bogdan@opensips.org">mailto:bogdan@opensips.org</a>] <br>
<b>Sent:</b> Mittwoch, 11. Januar 2017 11:05<br>
<b>To:</b> OpenSIPS users mailling list
<a class="moz-txt-link-rfc2396E" href="mailto:users@lists.opensips.org"><users@lists.opensips.org></a>; asd asd
<a class="moz-txt-link-rfc2396E" href="mailto:xaled@web.de"><xaled@web.de></a><br>
<b>Subject:</b> Re: [OpenSIPS-Users] How to parse XML
Body?<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hi,<br>
<br>
Please try<br>
<br>
$var(reg) =
"(.*)/gml:Coordinates>(.*)<\/gml:Coordinates(.*)/\2/s";<br>
xlog("Position is $(rb[1]{re.subst,$var(reg)})\n");<br>
<br>
Regards,<br>
<br>
<span style="font-size:12.0pt;mso-fareast-language:DE"><o:p></o:p></span></p>
<pre>Bogdan-Andrei Iancu<o:p></o:p></pre>
<pre>OpenSIPS Founder and Developer<o:p></o:p></pre>
<pre><a moz-do-not-send="true" href="http://www.opensips-solutions.com">http://www.opensips-solutions.com</a><o:p></o:p></pre>
<div>
<p class="MsoNormal">On 01/06/2017 05:44 PM, xaled wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:#1F497D">Hi Bogdan,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">can
you give any hints on how to get the Coordinates values
and not the whole xml body from the regex subst?</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">Sorry
for being not clever enough to figure it out myself.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">Thanks
</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">Hi
Bogdan, </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal" style="text-indent:35.4pt"><span
style="color:#1F497D" lang="EN-US">$var(reg) =
"/gml:Coordinates>(.*)<\/gml:Coordinates/\1/";</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span
style="color:#1F497D" lang="EN-US">xlog("Position is
$(rb[1]{re.subst,$var(reg)})\n");</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">DBG:core:subst_run:matched
shows the needed XML element with value, but not the value
alone. The xlog output shows the whole XML body without
gml:Coordinates. </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">2017-01-05T13:23:23.104982+01:00
ivr01 /usr/local/sbin/opensips[2227]: DBG:core:tr_eval_re:
Trying to apply reg</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">exp
[/gml:Coordinates>(.*)<\/gml:Coordinates/\1/] on :
[<?xml version="1.0"
encoding="UTF-8"?>#015#012<presence xml</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">ns="urn:ietf:params:xml:ns:pidf"
xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10"
xmlns:gml="urn:opengis:specificat</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">ion:gml:schema-xsd:feature:v3.0"
entity=<a moz-do-not-send="true"
href="mailto:pres:sip:+1234567@test.com">"pres:sip:+1234567@test.com"</a>>#015#012
<tuple id="PDT">#015#012 <s</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">tatus>#015#012
<gp:geopriv>#015#012
<gp:location-info>#015#012
<gml:location>#015#012 <gml:Point gml:</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">id="point1"
srsName="epsg:4346">#015#012
<gml:Coordinates>12.32
34.24</gml:Coordinates>#015#012 </gml:P</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">oint>#015#012
</gml:location>#015#012
</gp:location-info>#015#012
<gp:usage-rules>#015#012 <gp:retran</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">smission-allowed>no</gp:retransmission-allowed>#015#012
<gp:retention-expiry />#015#012
</gp:usage-rules>#01</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">5#012
</gp:geopriv>#015#012 </status>#015#012
<timestamp>2016-8-02T04:13:23Z</timestamp>#015#012
</tuple>#015#0</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">12</presence>#015#012#015#012]</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">2017-01-05T13:23:23.107376+01:00
ivr01 /usr/local/sbin/opensips[2227]: DBG:core:tr_eval_re:
we must compile the</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">regexp</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">2017-01-05T13:23:23.107903+01:00
ivr01 /usr/local/sbin/opensips[2227]:
DBG:core:subst_parser: ok, se is 0x7f39a</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">5d0a1f0</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">2017-01-05T13:23:23.108241+01:00
ivr01 /usr/local/sbin/opensips[2227]: DBG:core:subst_run:
running. r=0</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">2017-01-05T13:23:23.111918+01:00
ivr01 /usr/local/sbin/opensips[2227]: DBG:core:subst_run:
matched (404, 45): [</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">gml:Coordinates>12.32
34.24</gml:Coordinates]</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">2017-01-05T13:23:23.112380+01:00
ivr01 /usr/local/sbin/opensips[2227]: DBG:core:buf_init:
initializing...</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">2017-01-05T13:23:23.112730+01:00
ivr01 /usr/local/sbin/opensips[2227]: Position is <?xml
version="1.0" encoding</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">="UTF-8"?>#015#012<presence
xmlns="urn:ietf:params:xml:ns:pidf"
xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10" xm</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">lns:gml="urn:opengis:specification:gml:schema-xsd:feature:v3.0"
entity=<a moz-do-not-send="true"
href="mailto:pres:sip:+1234567@test.com">"pres:sip:+1234567@test.com"</a>>#015#0</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">12
<tuple id="PDT">#015#012 <status>#015#012
<gp:geopriv>#015#012
<gp:location-info>#015#012 <gml:locatio</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">n>#015#012
<gml:Point gml:id="point1"
srsName="epsg:4346">#015#012 <12.32
34.24>#015#012 </gml:Poi</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">nt>#015#012
</gml:location>#015#012
</gp:location-info>#015#012
<gp:usage-rules>#015#012 <gp:retransm</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">ission-allowed>no</gp:retransmission-allowed>#015#012
<gp:retention-expiry />#015#012
</gp:usage-rules>#015#</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">012
</gp:geopriv>#015#012 </status>#015#012
<timestamp>2016-8-02T04:13:23Z</timestamp>#015#012
</tuple>#015#012</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"></presence></span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US">Thanks</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D" lang="EN-US"> </span><o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1
1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span
style="color:windowtext;mso-fareast-language:DE"
lang="EN-US">From:</span></b><span
style="color:windowtext;mso-fareast-language:DE"
lang="EN-US"> Bogdan-Andrei Iancu [<a
moz-do-not-send="true"
href="mailto:bogdan@opensips.org"><a class="moz-txt-link-freetext" href="mailto:bogdan@opensips.org">mailto:bogdan@opensips.org</a></a>]
<br>
<b>Sent:</b> Donnerstag, 5. Januar 2017 13:12<br>
<b>To:</b> OpenSIPS users mailling list <<a
moz-do-not-send="true"
href="mailto:users@lists.opensips.org"><a class="moz-txt-link-abbreviated" href="mailto:users@lists.opensips.org">users@lists.opensips.org</a></a>>;
xaled <<a moz-do-not-send="true"
href="mailto:xaled@web.de">xaled@web.de</a>><br>
<b>Subject:</b> Re: [OpenSIPS-Users] How to parse XML
Body?</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt">Try
$var(reg) =
"/gml:Coordinates>(.*)<\/gml:Coordinates/\1/";<br>
<br>
<br>
<o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:12.0pt"> </span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:12.0pt;font-family:"Times New
Roman",serif;mso-fareast-language:DE"><br>
<br>
<br>
<o:p></o:p></span></p>
<pre>_______________________________________________<o:p></o:p></pre>
<pre>Users mailing list<o:p></o:p></pre>
<pre><a moz-do-not-send="true" href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a><o:p></o:p></pre>
<pre><a moz-do-not-send="true" href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><o:p></o:p></pre>
</blockquote>
<p class="MsoNormal"><span
style="font-size:12.0pt;font-family:"Times New
Roman",serif;mso-fareast-language:DE"><o:p> </o:p></span></p>
</div>
</blockquote>
<br>
</body>
</html>