[OpenSIPS-Users] How to parse XML Body?

xaled xaled at web.de
Thu Jan 5 07:33:01 EST 2017


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:+1234567 at 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:+1234567 at 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:bogdan at opensips.org] 
Sent: Donnerstag, 5. Januar 2017 13:12
To: OpenSIPS users mailling list <users at lists.opensips.org>; xaled <xaled at 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-bounces at lists.opensips.org] On Behalf Of xaled
Sent: Donnerstag, 5. Januar 2017 12:22
To: 'OpenSIPS users mailling list'  <mailto:users at lists.opensips.org> <users at 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:bogdan at opensips.org] 
Sent: Donnerstag, 5. Januar 2017 12:19
To: OpenSIPS users mailling list <users at lists.opensips.org <mailto:users at lists.opensips.org> >; xaled <xaled at web.de <mailto:xaled at 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:bogdan at opensips.org] 
Sent: Donnerstag, 5. Januar 2017 11:39
To: OpenSIPS users mailling list  <mailto:users at lists.opensips.org> <users at lists.opensips.org>; xaled  <mailto:xaled at web.de> <xaled at 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 at lists.opensips.org <mailto:Users at lists.opensips.org> 
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

 






_______________________________________________
Users mailing list
Users at lists.opensips.org <mailto:Users at lists.opensips.org> 
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

 






_______________________________________________
Users mailing list
Users at lists.opensips.org <mailto:Users at lists.opensips.org> 
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20170105/79ac8f63/attachment-0001.html>


More information about the Users mailing list