mirror of https://github.com/bjc/prosody
parent
59c09fa604
commit
6b8d5f97ed
@ -0,0 +1,114 @@ |
||||
# MUC: Room registration and reserved nicknames |
||||
|
||||
[Client] Romeo |
||||
jid: user@localhost |
||||
password: password |
||||
|
||||
[Client] Juliet |
||||
jid: user2@localhost |
||||
password: password |
||||
|
||||
----- |
||||
|
||||
Romeo connects |
||||
|
||||
Romeo sends: |
||||
<presence to="room@conference.localhost/Romeo"> |
||||
<x xmlns="http://jabber.org/protocol/muc"/> |
||||
</presence> |
||||
|
||||
Romeo receives: |
||||
<presence from='room@conference.localhost/Romeo'> |
||||
<x xmlns='http://jabber.org/protocol/muc#user'> |
||||
<status code='201'/> |
||||
<item jid="${Romeo's full JID}" affiliation='owner' role='moderator'/> |
||||
<status code='110'/> |
||||
</x> |
||||
</presence> |
||||
|
||||
Romeo receives: |
||||
<message type='groupchat' from='room@conference.localhost'><subject/></message> |
||||
|
||||
# Submit config form, set the room to members-only |
||||
Romeo sends: |
||||
<iq id='config1' to='room@conference.localhost' type='set'> |
||||
<query xmlns='http://jabber.org/protocol/muc#owner'> |
||||
<x xmlns='jabber:x:data' type='submit'> |
||||
<field var='FORM_TYPE'> |
||||
<value>http://jabber.org/protocol/muc#roomconfig</value> |
||||
</field> |
||||
<field var='muc#roomconfig_membersonly'> |
||||
<value>1</value> |
||||
</field> |
||||
</x> |
||||
</query> |
||||
</iq> |
||||
|
||||
Romeo receives: |
||||
<iq id="config1" from="room@conference.localhost" type="result"> |
||||
</iq> |
||||
|
||||
# Romeo adds Juliet to the member list |
||||
Romeo sends: |
||||
<iq id='member1' to='room@conference.localhost' type='set'> |
||||
<query xmlns='http://jabber.org/protocol/muc#admin'> |
||||
<item affiliation='member' jid="${Juliet's JID}" /> |
||||
</query> |
||||
</iq> |
||||
|
||||
Romeo receives: |
||||
<message from='room@conference.localhost'> |
||||
<x xmlns='http://jabber.org/protocol/muc#user'> |
||||
<item jid="${Juliet's JID}" affiliation='member' /> |
||||
</x> |
||||
</message> |
||||
|
||||
Romeo receives: |
||||
<iq from='room@conference.localhost' id='member1' type='result'/> |
||||
|
||||
# Juliet connects, and joins the room |
||||
Juliet connects |
||||
|
||||
Juliet sends: |
||||
<presence to="room@conference.localhost/Juliet"> |
||||
<x xmlns="http://jabber.org/protocol/muc"/> |
||||
</presence> |
||||
|
||||
Juliet receives: |
||||
<presence from="room@conference.localhost/Romeo" /> |
||||
|
||||
Juliet receives: |
||||
<presence from="room@conference.localhost/Juliet" /> |
||||
|
||||
Juliet receives: |
||||
<message type='groupchat' from='room@conference.localhost'><subject/></message> |
||||
|
||||
Romeo receives: |
||||
<presence from="room@conference.localhost/Juliet" /> |
||||
|
||||
|
||||
# Romeo removes Juliet's membership status |
||||
Romeo sends: |
||||
<iq id='member2' to='room@conference.localhost' type='set'> |
||||
<query xmlns='http://jabber.org/protocol/muc#admin'> |
||||
<item affiliation='none' jid="${Juliet's JID}" /> |
||||
</query> |
||||
</iq> |
||||
|
||||
# As a non-member, Juliet must now be removed from the room |
||||
Romeo receives: |
||||
<presence type='unavailable' from='room@conference.localhost/Juliet'> |
||||
<x xmlns='http://jabber.org/protocol/muc#user'> |
||||
<status code='321'/> |
||||
<item role='none' jid="${Juliet's full JID}" affiliation='none'> |
||||
<actor nick='Romeo' jid="${Romeo's full JID}"/> |
||||
</item> |
||||
</x> |
||||
</presence> |
||||
|
||||
Romeo receives: |
||||
<iq id='member2' type='result'/> |
||||
|
||||
Romeo disconnects |
||||
|
||||
Juliet disconnects |
||||
@ -0,0 +1,122 @@ |
||||
# MUC: Room registration and reserved nicknames |
||||
|
||||
[Client] Romeo |
||||
jid: user@localhost |
||||
password: password |
||||
|
||||
[Client] Juliet |
||||
jid: user2@localhost |
||||
password: password |
||||
|
||||
----- |
||||
|
||||
Romeo connects |
||||
|
||||
Romeo sends: |
||||
<presence to="room@conference.localhost/Romeo"> |
||||
<x xmlns="http://jabber.org/protocol/muc"/> |
||||
</presence> |
||||
|
||||
Romeo receives: |
||||
<presence from='room@conference.localhost/Romeo'> |
||||
<x xmlns='http://jabber.org/protocol/muc#user'> |
||||
<status code='201'/> |
||||
<item jid="${Romeo's full JID}" affiliation='owner' role='moderator'/> |
||||
<status code='110'/> |
||||
</x> |
||||
</presence> |
||||
|
||||
Romeo receives: |
||||
<message type='groupchat' from='room@conference.localhost'><subject/></message> |
||||
|
||||
# Submit config form, set the room to members-only |
||||
Romeo sends: |
||||
<iq id='config1' to='room@conference.localhost' type='set'> |
||||
<query xmlns='http://jabber.org/protocol/muc#owner'> |
||||
<x xmlns='jabber:x:data' type='submit'> |
||||
<field var='FORM_TYPE'> |
||||
<value>http://jabber.org/protocol/muc#roomconfig</value> |
||||
</field> |
||||
<field var='muc#roomconfig_membersonly'> |
||||
<value>1</value> |
||||
</field> |
||||
</x> |
||||
</query> |
||||
</iq> |
||||
|
||||
Romeo receives: |
||||
<iq id="config1" from="room@conference.localhost" type="result"> |
||||
</iq> |
||||
|
||||
# Romeo adds Juliet to the member list |
||||
Romeo sends: |
||||
<iq id='member1' to='room@conference.localhost' type='set'> |
||||
<query xmlns='http://jabber.org/protocol/muc#admin'> |
||||
<item affiliation='member' jid="${Juliet's JID}" /> |
||||
</query> |
||||
</iq> |
||||
|
||||
Romeo receives: |
||||
<message from='room@conference.localhost'> |
||||
<x xmlns='http://jabber.org/protocol/muc#user'> |
||||
<item jid="${Juliet's JID}" affiliation='member' /> |
||||
</x> |
||||
</message> |
||||
|
||||
Romeo receives: |
||||
<iq from='room@conference.localhost' id='member1' type='result'/> |
||||
|
||||
# Juliet connects, and joins the room |
||||
Juliet connects |
||||
|
||||
Juliet sends: |
||||
<presence to="room@conference.localhost/Juliet"> |
||||
<x xmlns="http://jabber.org/protocol/muc"/> |
||||
</presence> |
||||
|
||||
Juliet receives: |
||||
<presence from="room@conference.localhost/Romeo" /> |
||||
|
||||
Juliet receives: |
||||
<presence from="room@conference.localhost/Juliet" /> |
||||
|
||||
Juliet receives: |
||||
<message type='groupchat' from='room@conference.localhost'><subject/></message> |
||||
|
||||
Romeo receives: |
||||
<presence from="room@conference.localhost/Juliet" /> |
||||
|
||||
|
||||
# Tired of Romeo's company, Juliet unregisters from the room |
||||
|
||||
Juliet sends: |
||||
<iq type='set' to='room@conference.localhost' id='unreg1'> |
||||
<query xmlns='jabber:iq:register'> |
||||
<remove/> |
||||
</query> |
||||
</iq> |
||||
|
||||
Juliet receives: |
||||
<presence type='unavailable' from='room@conference.localhost/Juliet'> |
||||
<x xmlns='http://jabber.org/protocol/muc#user'> |
||||
<status code='321'/> |
||||
<item affiliation='none' role='none' jid="${Juliet's full JID}" /> |
||||
<status code='110'/> |
||||
</x> |
||||
</presence> |
||||
|
||||
Juliet receives: |
||||
<iq type='result' from='room@conference.localhost' id='unreg1'/> |
||||
|
||||
Romeo receives: |
||||
<presence type='unavailable' from='room@conference.localhost/Juliet'> |
||||
<x xmlns='http://jabber.org/protocol/muc#user'> |
||||
<status code='321'/> |
||||
<item affiliation='none' role='none' jid="${Juliet's full JID}" /> |
||||
</x> |
||||
</presence> |
||||
|
||||
|
||||
Romeo disconnects |
||||
|
||||
Juliet disconnects |
||||
Loading…
Reference in new issue