[Kamailio-Users] [sr-dev] new feature: fine access to xml documents
Iñaki Baz Castillo
ibc at aliax.net
Thu Jun 25 11:31:52 CEST 2009
El Jueves, 25 de Junio de 2009, Daniel-Constantin Mierla escribió:
> Hello,
>
> several days ago I committed support for accessing components of xml
> documents using pseudo-variables based on XPath syntax. The new
> $xml(...) PV is implemented in the presence_xml module as it works with
> xml docs and links libxml2.
>
> Short description in the cookbook:
> https://sip-router.org/wiki/cookbooks/pseudo-variables/devel#presence_xml_p
>seudo-variables
>
> As an example:
> - publish has the body:
>
> <?xml version='1.0' encoding='UTF-8'?>
> <presence xmlns='urn:ietf:params:xml:ns:pidf'
> xmlns:dm='urn:ietf:params:xml:ns:pidf:data-model'
> xmlns:rpid='urn:ietf:params:xml:ns:pidf:rpid'
> xmlns:c='urn:ietf:params:xml:ns:pidf:cipid' entity='sip:daniel at asipto.com'>
> <tuple id='t8b484917'>
> <status><basic>open</basic></status>
> </tuple>
> <dm:person
> id='p7562ef60'><rpid:activities><rpid:unknown/></rpid:activities></dm:perso
>n> </presence>
>
> Getting the presence status:
>
> # this is needed because libxml2 cannot work with default no-prefix ns,
> so we alias the "p" prefix.
> modparam("presence_xml", "xml_ns", "p=urn:ietf:params:xml:ns:pidf")
>
> $xml(a=>doc) = $rb;
> $xml(a=>xpath:/p:presence/p:tuple/p:status/p:basic)
>
> Next is to update the presence modules to be able to work with the
> documents that have been updated in the config.
>
> Comments, opinions and improvements are welcome!
This is more than great!
It would make possible exotic routing decissions based on presence status...
or perhaps not yet? I understand that this makes possible to extract XML nodes
when processing a request, but would it be possible to extract them from the
"presentity" table?
A simpler approach for what I mean would be having a mini API to get presence
basic status (some module that connects to DB with "presentity" table):
if ( is_presence_basic_status_open($ru) ) {
...route the MESSAGE...
}
XD
--
Iñaki Baz Castillo <ibc at aliax.net>
More information about the Users
mailing list