Hi Bogdan,
$var(reg) = "/gml:Coordinates>(.*)<\/gml:Coordinates/\1/"; xlog("Position is $(rb[1]{re.subst,$var(reg)})\n"); 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. 2017-01-05T13:23:23.104982+01:00 ivr01 /usr/local/sbin/opensips[2227]: DBG:core:tr_eval_re: Trying to apply reg exp [/gml:Coordinates>(.*)<\/gml:Coordinates/\1/] on : [<?xml version="1.0" encoding="UTF-8"?>#015#012<presence xml ns="urn:ietf:params:xml:ns:pidf" xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10" xmlns:gml="urn:opengis:specificat ion:gml:schema-xsd:feature:v3.0" entity="pres:sip:+1234...@test.com">#015#012 <tuple id="PDT">#015#012 <s tatus>#015#012 <gp:geopriv>#015#012 <gp:location-info>#015#012 <gml:location>#015#012 <gml:Point gml: id="point1" srsName="epsg:4346">#015#012 <gml:Coordinates>12.32 34.24</gml:Coordinates>#015#012 </gml:P oint>#015#012 </gml:location>#015#012 </gp:location-info>#015#012 <gp:usage-rules>#015#012 <gp:retran smission-allowed>no</gp:retransmission-allowed>#015#012 <gp:retention-expiry />#015#012 </gp:usage-rules>#01 5#012 </gp:geopriv>#015#012 </status>#015#012 <timestamp>2016-8-02T04:13:23Z</timestamp>#015#012 </tuple>#015#0 12</presence>#015#012#015#012] 2017-01-05T13:23:23.107376+01:00 ivr01 /usr/local/sbin/opensips[2227]: DBG:core:tr_eval_re: we must compile the regexp 2017-01-05T13:23:23.107903+01:00 ivr01 /usr/local/sbin/opensips[2227]: DBG:core:subst_parser: ok, se is 0x7f39a 5d0a1f0 2017-01-05T13:23:23.108241+01:00 ivr01 /usr/local/sbin/opensips[2227]: DBG:core:subst_run: running. r=0 2017-01-05T13:23:23.111918+01:00 ivr01 /usr/local/sbin/opensips[2227]: DBG:core:subst_run: matched (404, 45): [ gml:Coordinates>12.32 34.24</gml:Coordinates] 2017-01-05T13:23:23.112380+01:00 ivr01 /usr/local/sbin/opensips[2227]: DBG:core:buf_init: initializing... 2017-01-05T13:23:23.112730+01:00 ivr01 /usr/local/sbin/opensips[2227]: Position is <?xml version="1.0" encoding ="UTF-8"?>#015#012<presence xmlns="urn:ietf:params:xml:ns:pidf" xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10" xm lns:gml="urn:opengis:specification:gml:schema-xsd:feature:v3.0" entity="pres:sip:+1234...@test.com">#015#0 12 <tuple id="PDT">#015#012 <status>#015#012 <gp:geopriv>#015#012 <gp:location-info>#015#012 <gml:locatio n>#015#012 <gml:Point gml:id="point1" srsName="epsg:4346">#015#012 <12.32 34.24>#015#012 </gml:Poi nt>#015#012 </gml:location>#015#012 </gp:location-info>#015#012 <gp:usage-rules>#015#012 <gp:retransm ission-allowed>no</gp:retransmission-allowed>#015#012 <gp:retention-expiry />#015#012 </gp:usage-rules>#015# 012 </gp:geopriv>#015#012 </status>#015#012 <timestamp>2016-8-02T04:13:23Z</timestamp>#015#012 </tuple>#015#012 </presence> Thanks From: Bogdan-Andrei Iancu [mailto:bog...@opensips.org] Sent: Donnerstag, 5. Januar 2017 13:12 To: OpenSIPS users mailling list <users@lists.opensips.org>; xaled <xa...@web.de> Subject: Re: [OpenSIPS-Users] How to parse XML Body? Try $var(reg) = "/gml:Coordinates>(.*)<\/gml:Coordinates/\1/"; Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-solutions.com On 05.01.2017 13:38, xaled wrote: Hi Bogdan, Well - almost enough ;) $var(reg) = "/gml:Coordinates>(.*)<//gml:Coordinates/\1/"; xlog("Position is $(rb[1]{re.subst,$var(reg)})\n"); 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/ 2017-01-05T12:28:34.923507+01:00 ivr01 /usr/local/sbin/opensips[32257]: ERROR:core:tr_eval_re: Can't compile regexp Thanks From: Users [mailto:users-boun...@lists.opensips.org] On Behalf Of xaled Sent: Donnerstag, 5. Januar 2017 12:22 To: 'OpenSIPS users mailling list' <mailto:users@lists.opensips.org> <users@lists.opensips.org> Subject: Re: [OpenSIPS-Users] How to parse XML Body? Hi Bogdan, that is enough for me! Thanks. From: Bogdan-Andrei Iancu [mailto:bog...@opensips.org] Sent: Donnerstag, 5. Januar 2017 12:19 To: OpenSIPS users mailling list <users@lists.opensips.org <mailto:users@lists.opensips.org> >; xaled <xa...@web.de <mailto:xa...@web.de> > Subject: Re: [OpenSIPS-Users] How to parse XML Body? You can use the $(rb[n]) to access a specific body part. see: http://www.opensips.org/Documentation/Script-CoreVar-2-2#toc65 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 : http://www.opensips.org/Documentation/Script-Tran-2-2#toc82 $var(reg) = "/gml:pos>(.*)<//gml:pos/\1/"; xlog("Position is $(rb[0]{re.subst,$var(reg)})\n"); Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-solutions.com On 05.01.2017 12:57, xaled wrote: Hi Bogdan; opensips-2.2.2 Thanks. From: Bogdan-Andrei Iancu [mailto:bog...@opensips.org] Sent: Donnerstag, 5. Januar 2017 11:39 To: OpenSIPS users mailling list <mailto:users@lists.opensips.org> <users@lists.opensips.org>; xaled <mailto:xa...@web.de> <xa...@web.de> Subject: Re: [OpenSIPS-Users] How to parse XML Body? Hi, What version of OpenSIPS are you using ? Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-solutions.com On 04.01.2017 21:19, xaled wrote: Hi, What is the best way to parse xml body in an INVITE request? 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. Content-Type: multipart/mixed;boundary=ssboundary-1_ Content-Type: application/pidf+xml … <gml:Coordinates>XYZ</gml:Coordinates> <gml:pos>XYZ</gml:pos> … _______________________________________________ Users mailing list Users@lists.opensips.org <mailto:Users@lists.opensips.org> http://lists.opensips.org/cgi-bin/mailman/listinfo/users _______________________________________________ Users mailing list Users@lists.opensips.org <mailto:Users@lists.opensips.org> http://lists.opensips.org/cgi-bin/mailman/listinfo/users _______________________________________________ Users mailing list Users@lists.opensips.org <mailto:Users@lists.opensips.org> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users