There are currently 2 There is currently 1 XMLRPC APIs available from the sipXopenfire plugin.
...
NOTE : Calls are secured using BASIC Authentication
XML-RPC presence java clients provided by sipxecs (sipXopenfire project) can be used using the SHARED_SECRET
Here you can get and set someone's unified presence.
Example using curl CLI tool to get presence information
- getUnifiedPresenceInfo
This method returns XMPP information being given the sip extension, as described below
Step 1. Create a file called get-presence.xml with content, replace 200 with the SIP user id you wish to get presence information on
No Format |
---|
<?xml version="1.0"?>
<methodCall>
<methodName>presenceServer.getUnifiedPresenceInfo</methodName>
<params>
<param>
<value>
<string>2011</string>
</value>
</param>
</params>
</methodCall>
|
Step 2. Then run this command, replacing mypbx.example.com with the FQDN of your sipXecs system
No Format |
---|
curl \ -H "Content-Type: application/xml" \ -X POST \ --data-binary @get-presence.xml \ http://<user>:<password>@mypbx.example.com:9094/plugins/sipx-openfire-presence/status |
Returns as response something like:
No Format |
---|
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse xmlns:ex="http://ws.apache.org/xmlrpc/namespaces/extensions">
<params>
<param>
<value>
<struct>
<member>
<name>custom-presence-message</name>
<value></value>
</member>
<member>
<name>sip-id</name>
<value>2011</value>
</member>
<member>
<name>status-code</name>
<value>ok</value>
</member>
<member>
<name>unified-presence</name>
<value>available-for-both</value>
</member>
<member>
<name>jabber-id</name>
<value>mirceac@openuc.ezuce.com</value>
</member>
<member>
<name>xmpp-presence</name>
<value>AVAILABLE</value>
</member>
<member>
<name>sip-presence</name>
<value>IDLE</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
|
...
- getXMPPUsername(String emailAddress)
This method returns the xmpp username being given the email address saved in user-portal: contact information page
XML to send:
No Format |
---|
<?xml version="1.0"?>
<methodCall>
<methodName>presenceServer.getXmppUsername</methodName>
<params>
<param>
<value>
<string>mirceac@ezuce.com</string>
</value>
</param>
</params>
</methodCall>
|
Returns as response something like:
No Format |
---|
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse xmlns:ex="http://ws.apache.org/xmlrpc/namespaces/extensions">
<params>
<param>
<value>
<struct>
<member>
<name>sip-id</name>
<value>mirceac</value>
</member>
<member>
<name>status-code</name>
<value>ok</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
|
- getPresenceState(String xmppUsername)
XML to send:
...
This method returns the presence state being given the XMPP id
The string representation of the presence might be:
AVAILABLE, AWAY, BUSY, OFFLINE, CHAT, EXTENDED_AWAY
XML to send:
No Format |
---|
<?xml version="1.0"?> <methodCall> <methodName>presenceServer.getPresenceState</methodName> <params> <param> <value> <string>mirceac</string> </value> </param> </params> </methodCall> |
Returns as response something like:
No Format |
---|
<methodResponse xmlns:ex="http://ws.apache.org/xmlrpc/namespaces/extensions">
<params>
<param>
<value>
<struct>
<member>
<name>status-code</name>
<value>ok</value>
</member>
<member>
<name>xmpp-presence</name>
<value>AVAILABLE</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
</methodCall>
|
- setPresenceState(String xmppUsername, String xmppPresenceAsString)
XML to send:
...
This method changes the presence state of the given XMPP user id
The xmppPresenceAsString parameter can have the following String representations:
AVAILABLE, AWAY, BUSY, OFFLINE, CHAT, EXTENDED_AWAY
XML to send:
No Format |
---|
<?xml version="1.0"?>
<methodCall>
<methodName>presenceServer.setPresenceState</methodName>
<params>
<param>
<value>
<string>mirceac</string>
</value>
</param>
<param>
<value>
<string>AWAY</string>
</value>
</param>
</params>
</methodCall>
|
Retuns as response something like:
No Format |
---|
<methodResponse xmlns:ex="http://ws.apache.org/xmlrpc/namespaces/extensions">
<params>
<param>
<value>
<struct>
<member>
<name>status-code</name>
<value>ok</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
|
...
- setPresenceStatus(String id, String status)
This method sets the given status message of the given XMPP user id
XML to send:
No Format |
---|
<?xml version="1.0"?>
<methodCall>
<methodName>presenceServer.setPresenceStatus</methodName>
<params>
<param>
<value>
<string>mirceac</string>
</value>
</param>
<param>
<value>
<string>Here</string>
</value>
</param>
</params>
</methodCall>
|
It returns as response something like:
No Format |
---|
<methodResponse xmlns:ex="http://ws.apache.org/xmlrpc/namespaces/extensions">
<params>
<param>
<value>
<struct>
<member>
<name>status-code</name>
<value>ok</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
|
- public Map getPresenceStatus(String id)
This method returns the presence status message of the given XMPP user id
XML to send:
No Format |
---|
<?xml version="1.0"?>
<methodCall>
<methodName>presenceServer.getPresenceStatus</methodName>
<params>
<param>
<value>
<string>mirceac</string>
</value>
</param>
</params>
</methodCall>
|
It returns as response something like:
No Format |
---|
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse xmlns:ex="http://ws.apache.org/xmlrpc/namespaces/extensions">
<params>
<param>
<value>
<struct>
<member>
<name>custom-presence-message</name>
<value>Here</value>
</member>
<member>
<name>status-code</name>
<value>ok</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
|
- ping(String originator nameoriginatorName)
XML This method verifies if the XMPP server is up
XML to send:
No Format |
---|
<?xml version="1.0"?>
<methodCall>
<methodName>presenceServer.ping</methodName>
<params>
<param>
<value>
<string>mirceac</string>
</value>
</param>
</params>
</methodCall>
|
It returns something like:
No Format |
---|
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse xmlns:ex="http://ws.apache.org/xmlrpc/namespaces/extensions">
<params>
<param>
<value>
<struct>
<member>
<name>status-code</name>
<value>ok</value>
</member>
<member>
<name>instance-handle</name>
<value>of:821711375117195347</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
|
Chatroom
The relative path for this service is: sipx-openfire-presence/chatroom
Therefore, in this case the curl call will change into:
curl \
-H "Content-Type: application/xml" \
-X POST \
--data-binary @get-presence.xml \
http://<user>:<password>@mypbx.example.com:9094/plugins/sipx-openfire-presence/chatroom
...
- registerPresenceMonitor(String protocol, String serverUrl )
This method registers a listener to be notified when the presence changes