Jabber/XMPP Protocol Namespaces

This is the official registry of Jabber/XMPP protocol namespaces as maintained by the XMPP Registrar. This registry contains only namespaces that are defined in the XMPP RFCs (published by the IETF) or in XMPP Extension Protocols that have advanced to a status of Active, Draft, or Final within the standards process of the XMPP Standards Foundation. Other namespaces may be in use within the Jabber/XMPP community, but are not added to this page until the relevant document meets the above criteria.

Last Updated: 2016-12-07

XML: http://xmpp.org/registrar/namespaces.xml

http://jabber.org/protocol/activityXEP-0108: User Activity
http://jabber.org/protocol/addressXEP-0033: Extended Stanza Addressing
http://jabber.org/protocol/ampXEP-0079: Advanced Message Processing
http://jabber.org/protocol/amp#errorsXEP-0079: Advanced Message Processing
http://jabber.org/protocol/bytestreamsXEP-0065: SOCKS5 Bytestreams
http://jabber.org/protocol/capsXEP-0115: Entity Capabilities
http://jabber.org/protocol/chatstatesXEP-0085: Chat State Notifications
http://jabber.org/protocol/commandsXEP-0050: Ad-Hoc Commands
http://jabber.org/protocol/compressXEP-0138: Stream Compression
http://jabber.org/protocol/disco#infoXEP-0030: Service Discovery
http://jabber.org/protocol/disco#itemsXEP-0030: Service Discovery
http://jabber.org/protocol/feature-negXEP-0020: Feature Negotiation
http://jabber.org/protocol/geolocXEP-0080: User Geolocation
http://jabber.org/protocol/http-authXEP-0070: Verifying HTTP Requests via XMPP
http://jabber.org/protocol/httpbindXEP-0124: Bidirectional-streams Over Synchronous HTTP
http://jabber.org/protocol/ibbXEP-0047: In-Band Bytestreams
http://jabber.org/protocol/moodXEP-0107: User Mood
http://jabber.org/protocol/mucXEP-0045: Multi-User Chat
http://jabber.org/protocol/muc#adminXEP-0045: Multi-User Chat
http://jabber.org/protocol/muc#ownerXEP-0045: Multi-User Chat
http://jabber.org/protocol/muc#userXEP-0045: Multi-User Chat
http://jabber.org/protocol/nickXEP-0172: User Nickname
http://jabber.org/protocol/offlineXEP-0013: Flexible Offline Message Retrieval
http://jabber.org/protocol/physlocXEP-0112: User Physical Location
http://jabber.org/protocol/pubsubXEP-0060: Publish-Subscribe
http://jabber.org/protocol/pubsub#errorsXEP-0060: Publish-Subscribe
http://jabber.org/protocol/pubsub#eventXEP-0060: Publish-Subscribe
http://jabber.org/protocol/pubsub#ownerXEP-0060: Publish-Subscribe
http://jabber.org/protocol/rcXEP-0146: Remote Controllling Clients
http://jabber.org/protocol/rosterxXEP-0144: Roster Item Exchange
http://jabber.org/protocol/sipubXEP-0137: Publishing SI Requests
http://jabber.org/protocol/soapXEP-0072: SOAP Over XMPP
http://jabber.org/protocol/soap#faultXEP-0072: SOAP Over XMPP
http://jabber.org/protocol/waitinglistXEP-0130: Waiting Lists
http://jabber.org/protocol/xhtml-imXEP-0071: XHTML-IM
http://jabber.org/protocol/xdata-layoutXEP-0141: Data Forms Layout
http://jabber.org/protocol/xdata-validateXEP-0122: Data Forms Validation
jabber:clientRFC 6121: XMPP IM
jabber:component:acceptXEP-0114: Existing Component Protocol
jabber:component:connectXEP-0114: Existing Component Protocol
jabber:iq:authXEP-0078: Non-SASL Authentication
jabber:iq:gatewayXEP-0100: Gateway Interaction
jabber:iq:lastXEP-0012: Last Activity
jabber:iq:oobXEP-0066: Out of Band Data
jabber:iq:privacyRFC 6121: XMPP IM
jabber:iq:privateXEP-0049: Private XML Storage
jabber:iq:registerXEP-0077: In-Band Registration
jabber:iq:rosterRFC 6121: XMPP IM
jabber:iq:rpcXEP-0009: Jabber-RPC
jabber:iq:searchXEP-0055: Jabber Search
jabber:iq:versionXEP-0092: Software Version
jabber:serverRFC 6121: XMPP IM
jabber:server:dialbackXEP-0220: Server Dialback
jabber:x:conferenceXEP-0249: Direct MUC Invitations
jabber:x:dataXEP-0004: Data Forms
jabber:x:encryptedXEP-0027: Current OpenPGP Usage
jabber:x:oobXEP-0066: Out of Band Data
jabber:x:signedXEP-0027: Current OpenPGP Usage
roster:delimiterXEP-0083: Nested Roster Groups
urn:ietf:params:xml:ns:xmpp-bindRFC 6120: XMPP Core
urn:ietf:params:xml:ns:xmpp-e2eRFC 3923: XMPP E2E
urn:ietf:params:xml:ns:xmpp-saslRFC 6120: XMPP Core
urn:ietf:params:xml:ns:xmpp-sessionRFC 6121: XMPP IM
urn:ietf:params:xml:ns:xmpp-stanzasRFC 6120: XMPP Core
urn:ietf:params:xml:ns:xmpp-streamsRFC 6120: XMPP Core
urn:ietf:params:xml:ns:xmpp-tlsRFC 6120: XMPP Core
urn:xmpp:archiveXEP-0136: Message Archiving
urn:xmpp:attention:0XEP-0224: Attention
urn:xmpp:avatar:dataXEP-0084: User Avatars
urn:xmpp:avatar:metadataXEP-0084: User Avatars
urn:xmpp:bidiXEP-0288: Bidirectional Server-to-Server Connections
urn:xmpp:bobXEP-0231: Bits of Binary
urn:xmpp:captchaXEP-0158: CAPTCHA Forms
urn:xmpp:delayXEP-0203: Delayed Delivery
urn:xmpp:errorsXEP-0182: Application-Specific Error Conditions
urn:xmpp:forward:0XEP-0297: Stanza Forwarding
urn:xmpp:jingle:1XEP-0166: Jingle
urn:xmpp:jingle:errors:1XEP-0166: Jingle
urn:xmpp:jingle:apps:dtls:0XEP-0320: Use of DTLS-SRTP in Jingle Sessions
urn:xmpp:jingle:apps:rtp:1XEP-0167: Jingle RTP Sessions
urn:xmpp:jingle:apps:rtp:errors:1XEP-0167: Jingle RTP Sessions
urn:xmpp:jingle:apps:rtp:info:1XEP-0167: Jingle RTP Sessions
urn:xmpp:jingle:apps:rtp:rtcp-fb:0XEP-0293: Jingle RTP Feedback Negotiation
urn:xmpp:jingle:apps:rtp:rtp-hdrext:0XEP-0294: Jingle RTP Header Extensions Negotiation
urn:xmpp:jingle:apps:rtp:zrtp:1XEP-0262: Use of ZRTP in Jingle RTP Sessions
urn:xmpp:jingle:transports:ibb:1XEP-0261: Jingle In-Band Bytestreams Transport Method
urn:xmpp:jingle:transports:ice-udp:1XEP-0176: Jingle ICE-UDP Transport Method
urn:xmpp:jingle:transports:raw-udp:1XEP-0176: Jingle ICE-UDP Transport Method
urn:xmpp:jingle:transports:s5b:1XEP-0260: Jingle SOCKS5 Bytestreams Transport Method
urn:xmpp:langtransXEP-0171: Language Translation
urn:xmpp:langtrans:itemsXEP-0171: Language Translation
urn:xmpp:media-elementXEP-0221: Data Forms Media Element
urn:xmpp:message-correct:0XEP-0308: Last Message Correction
urn:xmpp:pieXEP-0227: Portable Import/Export Format for XMPP-IM Servers
urn:xmpp:pingXEP-0199: XMPP Ping
urn:xmpp:reach:0XEP-0152: Reachability Addresses
urn:xmpp:receiptsXEP-0184: Message Receipts
urn:xmpp:rtt:0XEP-0301: In-Band Real Time Text
urn:xmpp:sec-label:0XEP-0258: Security Labels in XMPP
urn:xmpp:sec-label:catalog:2XEP-0258: Security Labels in XMPP
urn:xmpp:sec-label:ess:0XEP-0258: Security Labels in XMPP
urn:xmpp:sm:3XEP-0198: Stream Management
urn:xmpp:ssnXEP-0155: Stanza Session Negotiation
urn:xmpp:timeXEP-0202: Entity Time
urn:xmpp:xboshXEP-0206: XMPP Over BOSH
vcard-tempXEP-0054: vcard-temp
vcard-temp:x:updateXEP-0153: vCard-Based Avatars

Provisional Features

urn:xmpp:omemo:0XEP-0384: OMEMO Encryption
urn:xmpp:burner:0XEP-0383: Burner JIDs
urn:xmpp:spoiler:0XEP-0382: Spoiler messages

'Android > xmpp' 카테고리의 다른 글

xmpp smack 이용해서 pubsub 등록하기 예제  (0) 2017.01.25
openfire ssl 설정방법  (0) 2017.01.23
XMPP 예제 소스  (0) 2017.01.22
XMPP 그룹 채팅 흐름도..  (0) 2017.01.17
Xmpp 으로 할수 있는 내용 정리  (0) 2017.01.17

ConfigureForm form = new ConfigureForm(FormType.submit);


        PubSubManager manager = new PubSubManager(connection, "pubsub.my.openfire.server");

        Node myNode = manager.createNode("TestNode", form);


        SimplePayload payload = new SimplePayload("book","pubsub:test:book", "<book xmlns='pubsub:test:book'><title>Lord of the Rings</title></book>");

        Item<SimplePayload> item = new Item<SimplePayload>(itemId, payload);


        // Required to recieve the events being published



        // Publish item





Get node and listen (different user)


        Node eventNode = manager.getNode("TestNode");



'Android > xmpp' 카테고리의 다른 글

XMPP 프로토콜 이름 정리  (0) 2017.01.26
openfire ssl 설정방법  (0) 2017.01.23
XMPP 예제 소스  (0) 2017.01.22
XMPP 그룹 채팅 흐름도..  (0) 2017.01.17
Xmpp 으로 할수 있는 내용 정리  (0) 2017.01.17
출처 : https://www.ucert.co.kr/tech/sslinstall/openfire_all.html
1. 웹 콘솔 접속

1) 브라우저를 기동하여 openfire 콘솔에 접속(예. http://localhost:9090)

2. SSL정의 작성

1) 상단 탭 메뉴의 Server를 선택

2) 왼쪽 메뉴의 System Properties를 선택

3. SSL 설정 추가

1) JKS 파일을 ${openfire_HOME}/resources/security/에 파일을 복사하여 truststore와 keystore로 이름을 변경합니다.

* ${openfire_HOME} = openfire 설치 경로

2) Add new property 항목의 property Name:와 property Value:에 아래 내용을 추가

A) 공통 설정
가) Property Name : xmpp.socket.ssl.active
가) Property Value : true
나) Property Name : xmpp.socket.ssl.port
나) Property Value : 포트번호(예. 5223)
다) Property Name : xmpp.socket.ssl.storeType
다) Property Value : JKS

B) 서버 인증서 설정
라) Property Name : xmpp.socket.ssl.keystore
라) Property Value : resources/security/keystore
마) Property Name : xmpp.socket.ssl.keypass
마) Property Value : 패스워드(예. 123456)

C) CA 인증서 설정
바) Property Name : xmpp.socket.ssl.truststore
바) Property Value : resources/security/truststore
사) Property Name : xmpp.socket.ssl.trustpass
사) Property Value : 패스워드(예. 123456)

3. 추가 내용 확인

1) 정상적으로 등록 되어있는지 확인 합니다.

2) openfire를 재시작 합니다.

'Android > xmpp' 카테고리의 다른 글

XMPP 프로토콜 이름 정리  (0) 2017.01.26
xmpp smack 이용해서 pubsub 등록하기 예제  (0) 2017.01.25
XMPP 예제 소스  (0) 2017.01.22
XMPP 그룹 채팅 흐름도..  (0) 2017.01.17
Xmpp 으로 할수 있는 내용 정리  (0) 2017.01.17

출처 : http://forum.theorex.tech/t/xmpp-register-login-and-chat-simple-example/198

compile 'org.igniterealtime.smack:smack-android:4.2.0' compile 'org.igniterealtime.smack:smack-tcp:4.2.0' compile 'org.igniterealtime.smack:smack-im:4.2.0' compile 'org.igniterealtime.smack:smack-android-extensions:4.2.0'

public void getSrvDeliveryManager(Context context){ ServiceDiscoveryManager sdm = ServiceDiscoveryManager .getInstanceFor(XMPP.getInstance().connectAndLogin( context)); //sdm.addFeature("http://jabber.org/protocol/disco#info"); //sdm.addFeature("jabber:iq:privacy"); sdm.addFeature("jabber.org/protocol/si"); sdm.addFeature("http://jabber.org/protocol/si"); sdm.addFeature("http://jabber.org/protocol/disco#info"); sdm.addFeature("jabber:iq:privacy"); } public String getUserLocalPart(Context context){ return connectAndLogin(context).getUser().getLocalpart().toString(); } public EntityFullJid getUser(Context context){ return connectAndLogin(context).getUser(); } public Chat getThreadChat(Context context, String party1, String party2){ Chat chat = ChatManager.getInstanceFor( XMPP.getInstance().connectAndLogin(context)) .getThreadChat(party1 + "-" + party2); return chat; } public Chat createChat(Context context, EntityJid jid, String party1, String party2, ChatMessageListener messageListener){ Chat chat = ChatManager.getInstanceFor( XMPP.getInstance().connectAndLogin(context)) .createChat(jid, party1 + "-" + party2, messageListener); return chat; } public void sendPacket(Context context, Stanza packet){ try { connectAndLogin(context).sendStanza(packet); } catch (SmackException.NotConnectedException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } }


private UserLoginTask mAuthTask = null; private ChatManagerListener chatListener; private Chat chat; private Jid opt_jid; private ChatMessageListener messageListener; private StanzaListener packetListener; private boolean register(final String paramString1,final String paramString2) { try { XMPP.getInstance().register(paramString1, paramString2); return true; } catch (XMPPException localXMPPException) { localXMPPException.printStackTrace(); } catch (SmackException.NoResponseException e) { e.printStackTrace(); } catch (SmackException.NotConnectedException e) { e.printStackTrace(); } return false; } private boolean login(final String user,final String pass,final String username) { try { XMPP.getInstance().login(user, pass, username); sendBroadcast(new Intent("liveapp.loggedin")); return true; } catch (Exception e) { e.printStackTrace(); try { XMPP.getInstance() .login(user, pass, username); sendBroadcast(new Intent("liveapp.loggedin")); return true; } catch (XMPPException e1) { e1.printStackTrace(); } catch (SmackException e1) { e1.printStackTrace(); } catch (InterruptedException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); }catch (Exception e1){ e1.printStackTrace(); } } return false; } public class UserLoginTask extends AsyncTask<Void, Void, Boolean> { public UserLoginTask() { } protected Boolean doInBackground(Void... paramVarArgs) { String mEmail = "abc"; String mUsername = "abc"; String mPassword = "welcome"; if (register(mEmail, mPassword)) { try { XMPP.getInstance().close(); } catch (Exception e) { e.printStackTrace(); } } return login(mEmail, mPassword, mUsername); } protected void onCancelled() { mAuthTask = null; } @Override protected void onPreExecute() { super.onPreExecute(); } protected void onPostExecute(Boolean success) { mAuthTask = null; try { if (success) { messageListener = new ChatMessageListener() { @Override public void processMessage(Chat chat, Message message) { // here you will get only connected user by you } }; packetListener = new StanzaListener() { @Override public void processPacket(Stanza packet) throws SmackException.NotConnectedException, InterruptedException { if (packet instanceof Message) { final Message message = (Message) packet; // here you will get all messages send by anybody } } }; chatListener = new ChatManagerListener() { @Override public void chatCreated(Chat chatCreated, boolean local) { onChatCreated(chatCreated); } }; try { String opt_jidStr = "abc"; try { opt_jid = JidCreate.bareFrom(Localpart.from(opt_jidStr), Domainpart.from(HOST)); } catch (XmppStringprepException e) { e.printStackTrace(); } String addr1 = XMPP.getInstance().getUserLocalPart(getActivity()); String addr2 = opt_jid.toString(); if (addr1.compareTo(addr2) > 0) { String addr3 = addr2; addr2 = addr1; addr1 = addr3; } chat = XMPP.getInstance().getThreadChat(getActivity(), addr1, addr2); if (chat == null) { chat = XMPP.getInstance().createChat(getActivity(), (EntityJid) opt_jid, addr1, addr2, messageListener); PurplkiteLogs.logInfo(TAG, "chat value single chat 1 :" + chat); } else { chat.addMessageListener(messageListener); PurplkiteLogs.logInfo(TAG, "chat value single chat 2:" + chat); } } catch (Exception e) { e.printStackTrace(); } XMPP.getInstance().addStanzaListener(getActivity(), packetListener); XMPP.getInstance().addChatListener(getActivity(), chatListener); XMPP.getInstance().getSrvDeliveryManager(getActivity()); } else { } } catch (Exception e) { e.printStackTrace(); } } } /** * user attemptLogin for xmpp * */ private void attemptLogin() { if (mAuthTask != null) { return; } boolean cancel = false; View focusView = null; if (cancel) { focusView.requestFocus(); } else { try { mAuthTask = new UserLoginTask(); mAuthTask.execute((Void) null); } catch (Exception e) { } } } void onChatCreated(Chat chatCreated) { if (chat != null) { if (chat.getParticipant().getLocalpart().toString().equals( chatCreated.getParticipant().getLocalpart().toString())) { chat.removeMessageListener(messageListener); chat = chatCreated; chat.addMessageListener(messageListener); } } else { chat = chatCreated; chat.addMessageListener(messageListener); } } private void sendMessage(String message) { if (chat != null) { try { chat.sendMessage(message); } catch (SmackException.NotConnectedException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } } @Override public void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); try { XMPP.getInstance().removeChatListener(getActivity(), chatListener); if (chat != null && messageListener != null) { XMPP.getInstance().removeStanzaListener(getActivity(), packetListener); chat.removeMessageListener(messageListener); } } catch (Exception e) { e.printStackTrace(); } }

'Android > xmpp' 카테고리의 다른 글

xmpp smack 이용해서 pubsub 등록하기 예제  (0) 2017.01.25
openfire ssl 설정방법  (0) 2017.01.23
XMPP 그룹 채팅 흐름도..  (0) 2017.01.17
Xmpp 으로 할수 있는 내용 정리  (0) 2017.01.17
Android xmpp  (0) 2017.01.16

I think you are missing the implementation of auto accepting Group chat joining Request in your code.

Below code is working for AMACK group chat using Openfire Server

1. Creating XMPP Connection

    XMPPTCPConnection connection = new XMPPTCPConnection(config);
    connection.login(ID1, password1);
    Presence presence = new Presence(Presence.Type.available);

2. Creating Persistant Group Chat Room

    MultiUserChat chatRoom = new MultiUserChat(connection, "room786@conference.dishaserver");
    Form form = chatRoom.getConfigurationForm().createAnswerForm();
    form.setAnswer("muc#roomconfig_publicroom", true);
    form.setAnswer("muc#roomconfig_roomname", "room786");
    form.setAnswer("muc#roomconfig_persistentroom", true);

3. Sending invitation to ride participants

    MultiUserChat.addInvitationListener(connection, groupChatListener);
    chatRoom.invite("surya@dishaserver", "hi surya");

4. Auto accepting the request of RIDER to join group chat

    public class GroupChatListener implements InvitationListener{
    String nickname;

    public GroupChatListener(String nick)
        nickname = nick;

    public void invitationReceived(XMPPConnection con, String room,String inviter, String reason, String password, Message message)
        System.out.println(" Entered invitation handler... ");
            MultiUserChat chatRoom = new MultiUserChat(con, room);
        catch (NoResponseException | XMPPErrorException| NotConnectedException e)
        } catch (SmackException e)
        System.out.println(" Invitation Accepted... ");


5. Sending message to group chat members

private static void sendMessageToRoomOccupants(XMPPTCPConnection connection) throws NotConnectedException
    Message msg = new Message("room789@conference.dishaserver",Message.Type.groupchat);
    msg.setBody("This is nagarjuna friednds. Please join this room and let us have fun."); connection.sendPacket(msg);

6. Receiving the group chat message by ride users

MultiUserChat chatRoom = new MultiUserChat(connection, "room789@conference.dishaserver");
chatRoom.addMessageListener(new GroupChatMsgListener());

package com.disha.test;
import org.jivesoftware.smack.PacketListener;
import org.jivesoftware.smack.SmackException.NotConnectedException;
import org.jivesoftware.smack.packet.Packet;

public class GroupChatMsgListener implements PacketListener

    public void processPacket(Packet packet) throws NotConnectedException
        System.out.println(" Received group cht messages... ");
        System.out.println("from : "+packet.getFrom());
        System.out.println("to : "+packet.getTo());
shareimprove this a

'Android > xmpp' 카테고리의 다른 글

xmpp smack 이용해서 pubsub 등록하기 예제  (0) 2017.01.25
openfire ssl 설정방법  (0) 2017.01.23
XMPP 예제 소스  (0) 2017.01.22
Xmpp 으로 할수 있는 내용 정리  (0) 2017.01.17
Android xmpp  (0) 2017.01.16

What protocols do they use?

Application like Whats app,G-talk ,facebook etc they uses XMPP protocol for IM services.

What is XMPP?

The Extensible Messaging and Presence Protocol (XMPP) is an open technology for real-time communication, using the Extensible Markup Language (XML) as the base format for exchanging information. In essence, XMPP provides a way to send small pieces of XML from one entity to another in close to real time

As per latest version of specifications XMPP provides below services

  • Channel encryption [RFC3920]
  • Authentication [RFC3920]
  • Presence [RFC3921]
  • Contact lists [RFC3921]
  • One-to-one messaging [RFC3920]
  • Multi-party messaging [XEP-0045]
  • Notifications [XEP-0060]
  • Service discovery [XEP-0030]
  • Capabilities advertisement [XEP-0115]
  • Structured data forms [XEP-0004]
  • Workflow management [XEP-0050]
  • Peer-to-peer media sessions [XEP-0166]

This are the core services available in XMPP

Below are some Applications where XMPP can be used

  • Instant messaging
  • Groupchat
  • Gaming
  • Systems control
  • Geolocation
  • Middleware and cloud computing
  • Data syndication
  • Voice over IP (VoIP)
  • Identity services

Like HTTP XMPP also require server-client implementation

Below are some popular XMPP servers

  • Ejabberd
  • Openfire
  • Prosody
  • Tigase

You can find more information on xmpp server on this link

Different platform has their different XMPP client library you can more information on this link

If you want to implement XMPP client for android then you can use Smack 4.1 ,it is an open source XMPP client library written in java.

I have tried to list down basic feature of XMPP here but if you getting started with xmpp ,then there are lost of things to learn , free to ask any doubt regarding XMPP I will try my best .

Thank you

Note:: for the user who are still using aSmack should Upgrade to Smack 4.1 as aSmack has been deprecated!!

  • aSmack Deprecation Notice
  • aSmack to Smack Upgrade guide

'Android > xmpp' 카테고리의 다른 글

xmpp smack 이용해서 pubsub 등록하기 예제  (0) 2017.01.25
openfire ssl 설정방법  (0) 2017.01.23
XMPP 예제 소스  (0) 2017.01.22
XMPP 그룹 채팅 흐름도..  (0) 2017.01.17
Android xmpp  (0) 2017.01.16

XMPP 관련 자료 


'Android > xmpp' 카테고리의 다른 글

xmpp smack 이용해서 pubsub 등록하기 예제  (0) 2017.01.25
openfire ssl 설정방법  (0) 2017.01.23
XMPP 예제 소스  (0) 2017.01.22
XMPP 그룹 채팅 흐름도..  (0) 2017.01.17
Xmpp 으로 할수 있는 내용 정리  (0) 2017.01.17

+ Recent posts