<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><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",serif;
color:black;}
tt
{mso-style-priority:99;
font-family:"Courier New",serif;}
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-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]--></head><body bgcolor=white lang=DE link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>Hi Bogdan, <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US style='color:#1F497D'>$var(reg) = "/gml:Coordinates>(.*)<\/gml:Coordinates/\1/";<o:p></o:p></span></p><p class=MsoNormal style='margin-left:35.4pt'><span lang=EN-US style='color:#1F497D'>xlog("Position is $(rb[1]{re.subst,$var(reg)})\n");<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>DBG:core:subst_run:matched shows the needed XML element, but not the value. The xlog output shows the whole XML body without gml:Coordinates. <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>2017-01-05T13:23:23.104982+01:00 ivr01 /usr/local/sbin/opensips[2227]: DBG:core:tr_eval_re: Trying to apply reg<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>exp [/gml:Coordinates>(.*)<\/gml:Coordinates/\1/] on : [<?xml version="1.0" encoding="UTF-8"?>#015#012<presence xml<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>ns="urn:ietf:params:xml:ns:pidf" xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10" xmlns:gml="urn:opengis:specificat<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>ion:gml:schema-xsd:feature:v3.0" entity="pres:sip:+1234567@test.com">#015#012 <tuple id="PDT">#015#012 <s<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>tatus>#015#012 <gp:geopriv>#015#012 <gp:location-info>#015#012 <gml:location>#015#012 <gml:Point gml:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>id="point1" srsName="epsg:4346">#015#012 <gml:Coordinates>12.32 34.24</gml:Coordinates>#015#012 </gml:P<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>oint>#015#012 </gml:location>#015#012 </gp:location-info>#015#012 <gp:usage-rules>#015#012 <gp:retran<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>smission-allowed>no</gp:retransmission-allowed>#015#012 <gp:retention-expiry />#015#012 </gp:usage-rules>#01<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>5#012 </gp:geopriv>#015#012 </status>#015#012 <timestamp>2016-8-02T04:13:23Z</timestamp>#015#012 </tuple>#015#0<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>12</presence>#015#012#015#012]<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>2017-01-05T13:23:23.107376+01:00 ivr01 /usr/local/sbin/opensips[2227]: DBG:core:tr_eval_re: we must compile the<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'> regexp<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>2017-01-05T13:23:23.107903+01:00 ivr01 /usr/local/sbin/opensips[2227]: DBG:core:subst_parser: ok, se is 0x7f39a<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>5d0a1f0<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>2017-01-05T13:23:23.108241+01:00 ivr01 /usr/local/sbin/opensips[2227]: DBG:core:subst_run: running. r=0<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>2017-01-05T13:23:23.111918+01:00 ivr01 /usr/local/sbin/opensips[2227]: DBG:core:subst_run: matched (404, 45): [<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>gml:Coordinates>12.32 34.24</gml:Coordinates]<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>2017-01-05T13:23:23.112380+01:00 ivr01 /usr/local/sbin/opensips[2227]: DBG:core:buf_init: initializing...<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>2017-01-05T13:23:23.112730+01:00 ivr01 /usr/local/sbin/opensips[2227]: Position is <?xml version="1.0" encoding<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>="UTF-8"?>#015#012<presence xmlns="urn:ietf:params:xml:ns:pidf" xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10" xm<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>lns:gml="urn:opengis:specification:gml:schema-xsd:feature:v3.0" entity="pres:sip:+1234567@test.com">#015#0<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>12 <tuple id="PDT">#015#012 <status>#015#012 <gp:geopriv>#015#012 <gp:location-info>#015#012 <gml:locatio<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>n>#015#012 <gml:Point gml:id="point1" srsName="epsg:4346">#015#012 <12.32 34.24>#015#012 </gml:Poi<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>nt>#015#012 </gml:location>#015#012 </gp:location-info>#015#012 <gp:usage-rules>#015#012 <gp:retransm<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>ission-allowed>no</gp:retransmission-allowed>#015#012 <gp:retention-expiry />#015#012 </gp:usage-rules>#015#<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>012 </gp:geopriv>#015#012 </status>#015#012 <timestamp>2016-8-02T04:13:23Z</timestamp>#015#012 </tuple>#015#012<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'></presence><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>Thanks<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'><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 lang=EN-US style='color:windowtext;mso-fareast-language:DE'>From:</span></b><span lang=EN-US style='color:windowtext;mso-fareast-language:DE'> Bogdan-Andrei Iancu [mailto:bogdan@opensips.org] <br><b>Sent:</b> Donnerstag, 5. Januar 2017 13:12<br><b>To:</b> OpenSIPS users mailling list <users@lists.opensips.org>; xaled <xaled@web.de><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>Try $var(reg) = "/gml:Coordinates>(.*)<\/gml:Coordinates/\1/";<br><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 href="http://www.opensips-solutions.com">http://www.opensips-solutions.com</a><o:p></o:p></pre><div><p class=MsoNormal>On 05.01.2017 13:38, xaled wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>Hi Bogdan,</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>Well - almost enough ;)</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US style='color:#1F497D'>$var(reg) = "/gml:Coordinates>(.*)<//gml:Coordinates/\1/";</span><o:p></o:p></p><p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US style='color:#1F497D'>xlog("Position is $(rb[1]{re.subst,$var(reg)})\n");</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>2017-01-05T12:28:34.923153+01:00 ivr01 /usr/local/sbin/opensips[32257]: ERROR:core:subst_parser: unknown flag m in /gml:Coordinates>(.*)<//gml:Coordinates/\1/</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>2017-01-05T12:28:34.923507+01:00 ivr01 /usr/local/sbin/opensips[32257]: ERROR:core:tr_eval_re: Can't compile regexp</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'>Thanks</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 lang=EN-US style='color:windowtext;mso-fareast-language:DE'>From:</span></b><span lang=EN-US style='color:windowtext;mso-fareast-language:DE'> Users [<a href="mailto:users-bounces@lists.opensips.org">mailto:users-bounces@lists.opensips.org</a>] <b>On Behalf Of </b>xaled<br><b>Sent:</b> Donnerstag, 5. Januar 2017 12:22<br><b>To:</b> 'OpenSIPS users mailling list' <a href="mailto:users@lists.opensips.org"><users@lists.opensips.org></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><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 lang=EN-US style='color:#1F497D'>that is enough for me!</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal><span style='color:#1F497D'>Thanks.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'> </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 lang=EN-US style='color:windowtext;mso-fareast-language:DE'>From:</span></b><span lang=EN-US style='color:windowtext;mso-fareast-language:DE'> Bogdan-Andrei Iancu [<a href="mailto:bogdan@opensips.org">mailto:bogdan@opensips.org</a>] <br><b>Sent:</b> Donnerstag, 5. Januar 2017 12:19<br><b>To:</b> OpenSIPS users mailling list <<a href="mailto:users@lists.opensips.org">users@lists.opensips.org</a>>; xaled <<a 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'><tt><span style='font-size:10.0pt'>You can use the $(rb[n]) to access a specific body part. see:</span></tt><span style='font-size:10.0pt;font-family:"Courier New",serif'><br><tt> <a href="http://www.opensips.org/Documentation/Script-CoreVar-2-2#toc65">http://www.opensips.org/Documentation/Script-CoreVar-2-2#toc65</a></tt><br><br><tt>Once you get the XML body, you can use some regexp in order to extract the needed info from the the XML (unfortunately thers is no way to parse XML at script level). See the "re" transformation :</tt></span><br><tt><span style='font-size:10.0pt'> <a href="http://www.opensips.org/Documentation/Script-Tran-2-2#toc82">http://www.opensips.org/Documentation/Script-Tran-2-2#toc82</a></span></tt><br><br> $var(reg) = "/gml:pos>(.*)<<span lang=EN-US>//gml:pos</span>/\1/";<br> xlog("Position is $(rb[0]{re.subst,$var(reg)})\n");<br><br><tt><span style='font-size:10.0pt'>Regards,</span></tt><o:p></o:p></p><pre>Bogdan-Andrei Iancu<o:p></o:p></pre><pre>OpenSIPS Founder and Developer<o:p></o:p></pre><pre><a href="http://www.opensips-solutions.com">http://www.opensips-solutions.com</a><o:p></o:p></pre><div><p class=MsoNormal>On 05.01.2017 12:57, 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'>opensips-2.2.2</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'>Thanks.</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 lang=EN-US style='color:windowtext;mso-fareast-language:DE'>From:</span></b><span lang=EN-US style='color:windowtext;mso-fareast-language:DE'> Bogdan-Andrei Iancu [<a href="mailto:bogdan@opensips.org">mailto:bogdan@opensips.org</a>] <br><b>Sent:</b> Donnerstag, 5. Januar 2017 11:39<br><b>To:</b> OpenSIPS users mailling list <a href="mailto:users@lists.opensips.org"><users@lists.opensips.org></a>; xaled <a 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'><tt><span style='font-size:10.0pt'>Hi,</span></tt><span style='font-size:10.0pt;font-family:"Courier New",serif'><br><br><tt>What version of OpenSIPS are you using ?</tt><br><br><tt>Regards,</tt><br><br><br></span><o:p></o:p></p><pre>Bogdan-Andrei Iancu<o:p></o:p></pre><pre>OpenSIPS Founder and Developer<o:p></o:p></pre><pre><a href="http://www.opensips-solutions.com">http://www.opensips-solutions.com</a><o:p></o:p></pre><div><p class=MsoNormal>On 04.01.2017 21:19, xaled wrote:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span lang=EN-US>Hi,</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US>What is the best way to parse xml body in an INVITE request? </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US>I want to access geographic location information gml:Coordinates or gml:pos from xml body and do some routing. I’ve seen the emergency module, but it is too specific to be useful in my basic scenario.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US>Content-Type: multipart/mixed;boundary=ssboundary-1_</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US>Content-Type: application/pidf+xml</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US>…</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US> <gml:Coordinates>XYZ</gml:Coordinates></span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US> <gml:pos>XYZ</gml:pos></span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US>…</span><o:p></o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'><span style='font-size:12.0pt'><br><br><br><br></span><o:p></o:p></p><pre>_______________________________________________<o:p></o:p></pre><pre>Users mailing list<o:p></o:p></pre><pre><a href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a><o:p></o:p></pre><pre><a 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'> </span><o:p></o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'><span style='font-size:12.0pt'><br><br><br></span><o:p></o:p></p><pre>_______________________________________________<o:p></o:p></pre><pre>Users mailing list<o:p></o:p></pre><pre><a href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a><o:p></o:p></pre><pre><a 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'> </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 href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a><o:p></o:p></pre><pre><a 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></body></html>