Room PushesΒΆ

Room pushes will happen whenever:

  1. A room changes name, privacy, or archived state
  2. A new room is added to the group
  3. A room is removed from the group.

Clients should return a normal IQ response when sent a room push to confirm that they received the push.

Room deletes will contain a status attribute set to deleted:

<!-- Room deleted -->
 <iq to='1_2@chat.hipchat.com' type='set'>
   <query xmlns='http://hipchat.com/protocol/muc#room'>
     <item status='deleted' jid='1_test_room@conf.hipchat.com'/>
   </query>
 </iq>

If a room has been added or changed, its push will contain the room’s metadata on the item element:

<!-- Room added or changed -->
<iq to='1_2@chat.hipchat.com' type='set'>
    <query xmlns='http://hipchat.com/protocol/muc#room'>
        <item jid='1_test_room@conf.hipchat.com' name='Test Room'>
            <id>2</id>
            <topic>O hai</topic>
            <privacy>private</privacy>
            <owner>1_2@chat.hipchat.com</owner>
            <guest_url/>
            <num_participants>0</num_participants>
        </item>
    </query>
</iq>

If a room has been archived it will appear exactly like a normal modification, except that it will include an is_archived element:

<!-- Room archived -->
<iq to='1_1@chat.hipchat.com' type='set'>
    <query xmlns='http://hipchat.com/protocol/muc#room'>
        <item jid='1_some_room@conf.hipchat.com' name='Some room'>
            <id>3</id>
            <topic>Wat</topic>
            <privacy>public</privacy>
            <owner>1_1@chat.hipchat.com</owner>
            <guest_url/>
            <num_participants>1</num_participants>
            <is_archived/>
            <last_active>1406243278</last_active>
        </item>
    </query>
</iq>