1 /*
2  * Jicofo, the Jitsi Conference Focus.
3  *
4  * Copyright @ 2015 Atlassian Pty Ltd
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *     http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18 package org.jitsi.protocol.xmpp;
19 
20 import net.java.sip.communicator.service.protocol.*;
21 
22 import org.jivesoftware.smack.packet.*;
23 import org.jxmpp.jid.*;
24 
25 /**
26  * XMPP extended interface of {@link ChatRoomMember}.
27  *
28  * @author Pawel Domas
29  */
30 public interface XmppChatMember
31     extends ChatRoomMember
32 {
33     /**
34      * Returns the JID of the user (outside the MUC), i.e. the "real" JID.
35      */
getJid()36     Jid getJid();
37 
38     /**
39      * Returns the user's MUC address.
40      */
getOccupantJid()41     EntityFullJid getOccupantJid();
42 
43     /**
44      * Returns number based on the order of joining of the members in the room.
45      * @return number based on the order of joining of the members in the room.
46      */
getJoinOrderNumber()47     int getJoinOrderNumber();
48 
49     /**
50      * Obtains the last MUC <tt>Presence</tt> seen for this chat member.
51      * @return the last {@link Presence} packet received for this
52      *         <tt>XmppChatMember</tt> or <tt>null</tt> if we haven't received
53      *         it yet.
54      */
getPresence()55     Presence getPresence();
56 
57     /**
58      * Check for video muted status.
59      * @return <tt>true</tt> if the user has video muted, <tt>false</tt> when
60      *         video is not muted or <tt>null</tt> if the status is unknown.
61      */
hasVideoMuted()62     Boolean hasVideoMuted();
63 
64     /**
65      * Tells if this <tt>XmppChatMember</tt> is a robot(SIP gateway,
66      * recorder component etc.).
67      * @return <tt>true</tt> if this MUC member is a robot or <tt>false</tt>
68      * otherwise.
69      */
isRobot()70     boolean isRobot();
71 
72     /**
73      * Gets the region (e.g. "us-east") of this {@link XmppChatMember}.
74      */
getRegion()75     String getRegion();
76 
77     /**
78      * Gets the statistics id if any.
79      * @return the statistics ID for this member.
80      */
getStatsId()81     String getStatsId();
82 }
83