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:[email protected]">#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:[email protected]">#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:[email protected]]
Sent: Donnerstag, 5. Januar 2017 13:12
To: OpenSIPS users mailling list <[email protected]>; xaled
<[email protected]>
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:[email protected]] On Behalf Of xaled
Sent: Donnerstag, 5. Januar 2017 12:22
To: 'OpenSIPS users mailling list' <mailto:[email protected]>
<[email protected]>
Subject: Re: [OpenSIPS-Users] How to parse XML Body?
Hi Bogdan,
that is enough for me!
Thanks.
From: Bogdan-Andrei Iancu [mailto:[email protected]]
Sent: Donnerstag, 5. Januar 2017 12:19
To: OpenSIPS users mailling list <[email protected]
<mailto:[email protected]> >; xaled <[email protected] <mailto:[email protected]> >
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:[email protected]]
Sent: Donnerstag, 5. Januar 2017 11:39
To: OpenSIPS users mailling list <mailto:[email protected]>
<[email protected]>; xaled <mailto:[email protected]> <[email protected]>
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
[email protected] <mailto:[email protected]>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
[email protected] <mailto:[email protected]>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
[email protected] <mailto:[email protected]>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users