MUC Service is a plugin to manage the chat rooms over the REST/HTTP interface.
It is possible to get a XML based overview over all or filtered chat rooms and also to Create / Update / Delete chat rooms.
To provide a standard way of accessing the data the MUC Service
is using REST.
| HTTP Method | Usage |
|---|---|
| GET | Receive a read-only data |
| PUT | Overwrite an existing resource |
| POST | Creates a new resource |
| DELETE | Deletes the given resource |
All REST Endpoint are secured by Basic HTTP Authentication.
To access the endpoints is that required to send the Username and Password of a Openfire Admin account in your header request.
E.g. Header: Authorization: Basic YWRtaW46MTIzNDU= (username: admin / password: 12345)
Example for Jersey Client
Client c = Client.create();
c.addFilter(new HTTPBasicAuthFilter(user, password));
Endpoint to get all chat rooms
Payload: none
Return value: Chatrooms
| Parameter | Parameter Type | Description | Default value |
|---|---|---|---|
| servicename | @QueryParam | The name of the Group Chat Service | conference |
| type | @QueryParam | public: Only as List Room in Directory set rooms all: All rooms. |
public |
| search | @QueryParam | Search/Filter by room name. This act like the wildcard search %String% |
Header: Authorization: Basic YWRtaW46MTIzNDU=
GET http://example.org:9090/plugins/mucservice/chatrooms
GET http://example.org:9090/plugins/mucservice/chatrooms?type=all
GET http://example.org:9090/plugins/mucservice/chatrooms?type=all&servicename=privateconf
GET http://example.org:9090/plugins/mucservice/chatrooms?search=test
Endpoint to get information over specific chat room
Payload: none
Return value: Chatroom
| Parameter | Parameter Type | Description | Default value |
|---|---|---|---|
| roomname | @Path | Exact room name | |
| servicename | @QueryParam | The name of the Group Chat Service | conference |
Header: Authorization: Basic YWRtaW46MTIzNDU=
GET http://example.org:9090/plugins/mucservice/chatrooms/test
GET http://example.org:9090/plugins/mucservice/chatrooms/test?servicename=privateconf
Endpoint to get all participants with a role of specified room.
Payload: none
Return value: Participants
| Parameter | Parameter Type | Description | Default value |
|---|---|---|---|
| roomname | @Path | Exact room name | |
| servicename | @QueryParam | The name of the Group Chat Service | conference |
Header: Authorization: Basic YWRtaW46MTIzNDU=
GET http://example.org:9090/plugins/mucservice/chatrooms/room1/participants
Endpoint to create a new chat room.
Payload: Chatroom
Return value: void
| Parameter | Parameter Type | Description | Default value |
|---|---|---|---|
| servicename | @QueryParam | The name of the Group Chat Service | conference |
Header: Authorization: Basic YWRtaW46MTIzNDU=
Header: Content-Type: application/xml
POST http://example.org:9090/plugins/mucservice/chatrooms
Payload:
<chatRoom>
<broadcastPresenceRoles>
<broadcastPresenceRole>moderator</broadcastPresenceRole>
<broadcastPresenceRole>participant</broadcastPresenceRole>
<broadcastPresenceRole>visitor</broadcastPresenceRole>
</broadcastPresenceRoles>
<canAnyoneDiscoverJID>false</canAnyoneDiscoverJID>
<canChangeNickname>false</canChangeNickname>
<canOccupantsChangeSubject>false</canOccupantsChangeSubject>
<canOccupantsInvite>false</canOccupantsInvite>
<creationDate>2014-02-12T15:52:37.592+01:00</creationDate>
<description>Global Chat Room</description>
<logEnabled>true</logEnabled>
<loginRestrictedToNickname>false</loginRestrictedToNickname>
<maxUsers>0</maxUsers>
<membersOnly>false</membersOnly>
<moderated>false</moderated>
<naturalName>global-1</naturalName>
<owners>
<owner>admin@localhost</owner>
</owners>
<password>test</password>
<persistent>true</persistent>
<publicRoom>true</publicRoom>
<registrationEnabled>false</registrationEnabled>
<roomName>global</roomName>
</chatRoom>
Endpoint to delete a chat room.
Payload: void
Return value: void
| Parameter | Parameter Type | Description | Default value |
|---|---|---|---|
| roomname | @Path | Exact room name | |
| servicename | @QueryParam | The name of the Group Chat Service | conference |
Header: Authorization: Basic YWRtaW46MTIzNDU=
DELETE http://example.org:9090/plugins/mucservice/chatrooms/testroom
DELETE http://example.org:9090/plugins/mucservice/chatrooms/testroom?servicename=privateconf
Endpoint to update a chat room.
Payload: Chatroom
Return value: void
| Parameter | Parameter Type | Description | Default value |
|---|---|---|---|
| roomname | @Path | Exact room name | |
| servicename | @QueryParam | The name of the Group Chat Service | conference |
Header: Authorization: Basic YWRtaW46MTIzNDU=
Header: Content-Type application/xml
PUT http://example.org:9090/plugins/mucservice/chatrooms/global
Payload:
<chatRoom>
<admins>
<admin>admin@localhost</admin>
</admins>
<broadcastPresenceRoles/>
<members>
<member>member1@localhost</member>
<member>member2@localhost</member>
</members>
<outcasts>
<outcast>outcast1@localhost</outcast>
</outcasts>
<owners>
<owner>owner@localhost</owner>
</owners>
<canAnyoneDiscoverJID>false</canAnyoneDiscoverJID>
<canChangeNickname>false</canChangeNickname>
<canOccupantsChangeSubject>false</canOccupantsChangeSubject>
<canOccupantsInvite>false</canOccupantsInvite>
<creationDate>2014-02-12T15:52:37.592+01:00</creationDate>
<description>Global Chat Room edit</description>
<logEnabled>true</logEnabled>
<loginRestrictedToNickname>false</loginRestrictedToNickname>
<maxUsers>0</maxUsers>
<membersOnly>false</membersOnly>
<moderated>false</moderated>
<naturalName>global-2</naturalName>
<password>test</password>
<persistent>true</persistent>
<publicRoom>true</publicRoom>
<registrationEnabled>false</registrationEnabled>
<roomName>global</roomName>
</chatRoom>