2 release and is now messaging_xmpp in the messaging framework. Let ' s Chat is a persistent messaging application that runs on Node. It supports Firebase and XMPP providing high performance at low cost. Right now if you want to implement an XMPP client on iOS -and not doing it from the scratch- your best chance is the XMPP Framework, a relatively robust, complex and poorly documented implementation, available in Github under a BSD license. Live Chat Server for your Web Site. • Introduction to XMPP. 1, Windows Store and Windows Desktop. IM Observatory Xmpp. Hope this may prove of some use to someone. The framework is divided into 2 parts: The xmpp core; The extensions (roster, XEP's, optional supporting utilities, etc) The xmpp core is the implementation of the xmpp specification. Problem Statement Messaging within mobile ad-hoc networks cannot rely on standard server-centric, TCP communications solutions. Also Check for Jobs with similar Skills and Titles Top Xmpp Bha Jobs* Free Alerts Shine. The following subject areas are covered in this book: • Introduction to XMPP • Introduction to the XMPP framework • Implementing all aspects of a real time XMPP application This book will guide you step by step in the development of a real time XMPP application that will support: • Rosters • Chat • Multiroom chat • File exchange. To do so, you need an XMPP account. Available for iPhone, Android, Windows Phone 8, Windows, Mac and Linux. xmppbot in PHP. The following subject areas are covered in this book:•Introduction to XMPP•Introduction to the XMPP framework•Implementing all aspects of a. NET Framework 4. js platform. ejabberd is known to be used by XMPP-related sites and a number of companies, either for providing an XMPP instant messaging service, as a meeting chat room service, or as middleware for other software (usually by means of the Publish-Subscribe service). © Saba Software, Inc. This article takes a look at how to create a 1-to-1 messaging app using ejabberd and erlang. Openfire ⭐ 1,819 A XMPP server licensed under the Open Source Apache License. I'm looking for a Drupal XMPP client that utilizes the theme layer. What is Hubot? Hubot is your friendly robot sidekick. - ALPHA release. There are plenty more features of Jabber/XMPP provided in the agsXMPP library, like creating your own Jabber server or creating your own packages. It quickly gained popularity among people learning to build XMPP chat systems targeting android devices. XMPP describes a way for multiple agents to communicate with each other in a distributed system. Templates, scripts, add-ons, and resources for your hybrid Ionic app. It provides an abstract event-driven asynchronous API over various transports such as TCP/IP and UDP/IP via Java NIO. Join our XMPP chat room to ask questions about Tails. 0 The node-xmpp project has released node-xmpp-core 5. 0, implementation code is under the Apache License 2. This book teaches you how to implement the XMPP framework, and develop a complete application like WhatsApp. Swift XMPP Client. A number of open-source implementations are available Variations of it are widely used in most instant messaging programs including Google, Skype, Facebook, …, many games Used in IoT and data centers for management. brutal: a multi-network asynchronous chat bot framework¶. You have full and exclusive access to the user's chat data Quick integration. Chat API: Chat API provides users the access to infrastructure of server. It receives around 11,905 visitors every month based on a global traffic rank of 1,140,759. Azure Bot Service provides an integrated environment that is purpose-built for bot development, enabling you to build, connect, test, deploy, and manage intelligent bots, all from one place. Akeni Jabber Client (XMPP) Corporate IM. Jitsi and the OSGi Framework OSGi is about modules Jitsi is a collection of OSGi bundles OSGi services representing the part of a bundle that is visible to everyone else a group of Java interfaces that allow use of a specific functionality 10 11. draft-ietf-xmpp-core-24. The top 25 public chat rooms on Jabber. It uses NIO for network communication, selectors, concurrent JDK framework, security library and so on. Here is a list of programs that support OTR. And the best thing about it: you don't have to write a single line of server-side code. That is all there is to creating a little Jabber Chat Client which looks like this: The corresponding screenshots of my chat partner using PSI: Summary. Tutorial example: OneChat. The following subject areas are covered in this book:•Introduction to XMPP•Introduction to the XMPP framework•Implementing all aspects of a. Mobile App Development & Android Projects for $750 - $1500. Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4. Just enough to get by with the chat basics. XMPP is based on. The XMPP certificate must include the XMPP domain and FQDN of the XMPP server as Subject Alternative Name (SAN) entries, in order to avoid certificate errors. js platform. Popular third party channels such as Slack, Facebook Messenger, Kik, etc. A Framework for Organic Growth; Thur. 05 Version of this port present on the latest quarterly branch. Net compack framework but not open source). 2 Receiving messages Receiving messages is a little bit more complicated than sending messages. Jitsi XMPP-SIP client. jxmpp - An Open Source XMPP Base Library written in Java #opensource. The Bot Framework Emulator uses an instance of the Web Chat control, which is only used in DirectLine, or embedded into web sites using a standard or custom configuration. How does iembot work?. Both XMPP and WebSockets can be used to implement instant messaging in a mobile app. I want to create a chat client application for iPhone. Many common protocols are supported, including AMQP, MQTT, STOMP and more. Psi, Pidgin, Trillian. Sebastiaan Deckers [email protected] It assumes a minimal working knowledge of the xmpp protocol. Chat; Android. Akeni Jabber Client ( XMPP) is an instant messaging client for Jabber ( XMPP) compliant coporate instant messaging IM servers. , history), the foundation, MUC uses and vision, and lots of discussion on federations. We are technology agnostic. slack-traductor - Slack bot to translate chat messages of any language into specified language Slack-Twitter - Node. Check the best results!. The core specifications for XMPP are developed at the Internet Engineering Task Force (IETF) - see RFC 6120, RFC 6121, and RFC 7622 (along with a WebSocket binding defined in RFC 7395). An XMPP Framework in Objective-C for the Mac and iOS development community. im or Tigase. Openfire is a real time collaboration (RTC) server licensed under the Open Source Apache License. 0 now has new features, a better design, and Google integration. build a xmpp chat client for Android platform with opensource libraries of opensource framework. Our SDK could be used for XMPP client, server and component development. Once I went through XMPP protocol, I found there already exists xmpp framework for Objective-C in Google Code, but it was a Mac App. It is customizable and offers an API to integrate it with your application. XMPP supports chat state notifications of conversations partners. , wrote the first version of Hubot to automate our company chat room. an elegant unit testing framework for C with support for mock objects. Professional xmpp programming with java script and jquery 1. It aims at usability, low overhead and security, and works on low-end Android devices starting with Android 2. This blog is designed to provide accurate information on the subject matter covered, However, the information in this blog is given with the understanding that, the author is not engaged in rendering legal, accounting, or professional services. 0 — February 13th, 2016 Changelog Released under the MIT License. Login ke XMPP. It receives around 11,905 visitors every month based on a global traffic rank of 1,140,759. Motivation: Adding chat functionality. com, itunes. Close(); Chat. It provides an abstract event-driven asynchronous API over various transports such as TCP/IP and UDP/IP via Java NIO. It supports Firebase and XMPP providing high performance at low cost. NET and Silverlight technologies. Each backend and client runs in a separate process, allowing for much greater security and resilience. The easiest way to get started is to use Cocoapods to integrate XMPPFramework in your own project. It provides a full framework that supports presence and also has good documentation. 200906301 An extensible instant messaging client based on the XMPP (Jabber) protocol. We have chosen to go ahead with second approach for current feature implementation. MQTT can be classified as a tool in the "Message Queue" category, while XMPP is grouped under "Container Tools". For instance the TLS support is broken (hopefully something easy enough to fix) so you won’t be able to connect to Google Talk for now. yaxim (Yet Another XMPP Instant Messenger) is a lean Jabber/XMPP client for Android. In Salut à Toi, XMPP has also been used to build a unique decentralized web framework (Libervia web framework). GUMP is a framework allowing. To implement instant messaging on a mobile app there are two major approaches that you could take. send MOTD from web interface to all users 3. All the codes and technologies of this tutorial will also be suitable for creating a chat app using Phonegap or any other cordova based development platform. Access the Button Sample page using the following navigation path: PeopleTools, MultiChannel Framework, Instant Messaging, Sample Pages, Button Sample. It is highly desirable to deploy one communication system that can support any environment. The MultiChannel Framework supports these IM network protocols for instant messaging: GTALK. Not surprisingly, this has a multitude of applications beyond traditional IM and the distribution of presence data. The Matrix XMPP is provided under two licenses, the GPL for open source project, and a commercial license for closed source projects. Developers of XMPP clients and specialized XMPP add-on services are advised to check the appropriate specifications for JID slots, localpart slots, and resourcepart slots in XMPP protocol extensions such as Service Discovery , Multi-User Chat , Publish-Subscribe , SOCKS5 Bytestreams , In-Band Registration , Roster Item Exchange , and Jingle. You use a view of these configuration records when capturing employee chat ID details and storing this information in the PERSON_IMCHAT record associated with the HCM personal data (PERSON Model). com Wrox Programmer to Programmer™quickly with the powerful XMPP protocol ProfessionalXMPP is a robust protocol used for a wide range of applications,including instant messaging, multi-user chat, voice and videoconferencing, collaborative spaces, real. Look at most relevant Ios sample code for chat using xmpp websites out of 164 Thousand at KeyOptimize. XMPP describes a way for multiple agents to communicate with each other in a distributed system. com, itunes. It quickly gained popularity among people learning to build XMPP chat systems targeting android devices. While not a client in and of itself, it provides all of the necessary back-end functions to make a CGI client or command-line pe. I do think XMPP suffers from too low a baseline of functionality (as do others on this thread seemingly), and I think that the various alternative group chat technologies on XMPP (e. stun4j – An implementation of the STUN and (hopefully soon) TURN protocols. For more list of available options see Converse. collab plugin depends upon) as an adapter, and code underneath to support such usage of the XMPP provider (i. The Microsoft. The included components are built on the rock-solid IP*Works! framework, which provides the web. Written in Java. For instance the TLS support is broken (hopefully something easy enough to fix) so you won’t be able to connect to Google Talk for now. Not surprisingly, this has a multitude of applications beyond traditional Instant Messaging (IM) and the distribution of Presence data. I discovered the application is now retired so I am publishing these. Currently, we offer DNS service which is designed to. XMPP is the Extensible Messaging and Presence Protocol, an XML wire protocol for real-time communication that emerged from the Jabber open-source community. Complete XMPP Server set-up with android and iOS chat apps, Beginner to Advanced - Easy XMPP Chat Server Installation and configure Android , iOS, Windows/Mac/Linux Chat apps. Chat SDK - Open source mobile Chat framework for Firebase and XMPP Chat SDK is a free open source instant messaging platform for iOS and Android. The node-xmpp project has released node-xmpp-core 5. XMPP provides the messaging fabric that underlies some of the biggest Instant Messaging networks in the world, including Google Talk (GTalk) - which is also available from within GMail - and Facebook Chat. "Adobe sees Conversational AI as foundational to providing the personalized experiences for each of our users. XMPP is the Extensible Messaging and Presence Protocol standardized by the IETF. S-chat is XMPP-based corporate messenger for Windows platform. A WebRTC client is also provided (see Sylk client). Openfire ⭐ 1,819 A XMPP server licensed under the Open Source Apache License. Could anybody help me please?. It supports Firebase and XMPP providing high performance at low cost. Net compack framework but not open source). It lacks some protocol-specific features like the folder sharing available from Yahoo. js ecosystem to Titanium. collab plugin depends upon) as an adapter, and code underneath to support such usage of the XMPP provider (i. 3 (Jabber XMPP Library in PHP) comes with 15 XMPP extensions including XEP-0045 a. It receives around 11,905 visitors every month based on a global traffic rank of 1,140,759. The XMPP Chat SDK is a fully featured white label XMPP messenger for iOS. Score:5 Activity:5 Min SDK:15 Target SDK:15 Java File:17 Manifest File:1 ; IMChat-Android-App XMPP Chat Application Score:4 Activity:1 Min SDK:8 Target SDK:15 Java File:1 Manifest File:1. This section shows how to use Visual Studio 2017 and SignalR 2 to create an empty ASP. XMPP Framework is a holder that provides xmpp functionality to Drupal. It should be kind of customer support chat window, the live chat window. Felgo is a cross-platform SDK for rapid, native app & game development for iOS, Android, Desktop & Embedded. While XMPP provides a generalized, extensible framework for exchanging XML data, it is used mainly for the purpose of building instant messaging and presence applications that meet the requirements of RFC 2779. XMPP is also used to implement few other services like Group Chat, Gaming, System Controls, etc. *It should be noted that with Openfire, no chat is possible yet. ACE3 contains an extensive settings framework that allows you to tweak the modification without having to mess around with deleting PBOs. The Bing channel allows users to discover and chat with your bot directly in the Bing search result page. In this tutorial, I'll show you how to leverage Firebase UI to create a group chat app you can share with your friends. XMPP is an important building block for handling 1:1 instant messaging, multi-user chat, and presence. Prosody These servers each use a different technology stack and have their own strengths and weaknesses. SamePlace Instant Messenger for Linux v. Open source - Live Support chat for your website. Using a hosted backend as a service or using XMPP. Tigase Messenger for Android - mobile chat client to use with XMPP services and servers. I am thinking about using the Smack jabber framework to implement the jabber side of things and for the rest mimicking what JSONRPCServlet. register and create a new user 2. js middleware to create a reading and writing Twitter client out of Slack slack-vote - A Node-based voting/polling integration for Slack using custom outgoing webhooks. NET MVC 5 application, add the SignalR library, and create the chat application. Kestrel: An XMPP-Based Framework for Many Task Computing Applications Lance Stout, Michael A. 0 The node-xmpp project has released node-xmpp-core 5. js platform. I find myself giving paid support to many happy learners since then. 3 - Updated Oct 22, 2018 - 9 stars react-native-basic-xmpp. Starters Ionic starter apps, pre-built and ready to go. Live Chat's leap is big on the se. Fork of XMPP Library for React Native. XMPP - Extensible Messaging and Presence Protocol - Golem. Any open source library like agsXMPP(supports. The Cover Pages is a comprehensive Web-accessible reference collection supporting the SGML/XML family of (meta) markup language standards and their application. All of our commercial. Server side we deploy openfire running on 3 servers with hazelcast plugin. Problem Statement Messaging within mobile ad-hoc networks cannot rely on standard server-centric, TCP communications solutions. without TLS/SSL. ijabbar' to the page footer region. I decided to create my own XMPP client application which would allow me to have a full two-way communication. A close application to IM is group or multi-party messaging or the development of multi-user chat rooms. Server: we have used an open-source XMPP chat server called OpenFire to set up , chat server in our localhost. While there is a free download with limited features, the paid version is where the framework really shines. Developers of XMPP clients and specialized XMPP add-on services are advised to check the appropriate specifications for JID slots, localpart slots, and resourcepart slots in XMPP protocol extensions such as Service Discovery , Multi-User Chat , Publish-Subscribe , SOCKS5 Bytestreams , In-Band Registration , Roster Item Exchange , and Jingle. Recently we implemented XMPP (or Jabber) support into our IoT Device Management Framework. Client: we are build this in ionic cordova using Strophe. Welcome to ejabberd, your superpowerful messaging framework. Where to begin? to create XMPP chat client in Windows Phone 7. Openfire is a real time collaboration (RTC) server licensed under the Open Source Apache License. MatriX is available for the full. Because WebRTC is a peer-to-peer protocol, multi-user experiences become exponentially. Fluux XMPP is a clean slate implementation, with the following goals in mind: Focus on simplicity, by hiding XMPP technical details and exposing only chat oriented methods. Backend as a service / Messaging as a service There are a large number of companies offering real. XMPP frameworks are no different, and the equivalent to writing "Hello World" in XMPP is creating an echo bot, a simple XMPP client that simply returns any message it receives to the. These define custom behaviors that expose new functionality, alter existing functionality, or suggest best practices when using the protocol. I want to create a chat client application for iPhone. Apache Vysper¶. XMPP server is a communication protocol specifically designed for messaging which enables the application development. An evaluation of serverless group chat. The framework is divided into 2 parts: The xmpp core; The extensions (roster, XEP's, optional supporting utilities, etc) The xmpp core is the implementation of the xmpp specification. Deploying the XMPP driver. While XMPP provides a generalized, extensible framework for exchanging XML data, it is used mainly for the purpose of building instant messaging and presence applications that meet the requirements of RFC 2779. It is intended as a development framework for XMPP protocol extensions. com, github. Mobile App Development & Android Projects for $750 - $1500. Set it up for your company, organisation, or just your family and friends. The included components are built on the rock-solid IP*Works! framework, which provides the web. Login ke XMPP. you can do it by connecting XMPP server. yaxim · yax. Now we encountered following problem: the client connection and authentication takes about 2 sec. This paper presents a framework based on XMPP to simplify the application development process in IoT and to provide a reliable communication mechanism between objects and the Cloud [14]. Slack is where work flows. The SAP Portal comes with a build-in chat application. Xabber - XMPP client for Android. Complete XMPP Server set-up with android and iOS chat apps, Beginner to Advanced - Easy XMPP Chat Server Installation and configure Android , iOS, Windows/Mac/Linux Chat apps. From the person-to-person chat window if you click on "Group Chat", everything works (the group chat is created and people can join it). NET Framework,. This article takes a look at how to create a 1-to-1 messaging app using ejabberd and erlang. The top-level base class for all Cisco AJAX XMPP Library objects is the JWBase class. Developers of XMPP clients and specialized XMPP add-on services are advised to check the appropriate specifications for JID slots, localpart slots, and resourcepart slots in XMPP protocol extensions such as Service Discovery , Multi-User Chat , Publish-Subscribe , SOCKS5 Bytestreams , In-Band Registration , Roster Item Exchange , and Jingle. Hence supporting web side may result on adding some new impl classes with smack. Using the Button Sample Page. The following are key reasons. Out-of-band binary channels are often used with XMPP. Also, explore the installation and setting up erlang on Ubuntu. Currently, the built-in Virtual Ticket Media Player chat interface is the only public way to enter the Artist’s chatroom though support for other clients is planned. Users are automatically registered and associated w/ Drupal users, and it also automatically synchronizes User Relationships. GUMP is a framework allowing. without TLS/SSL. Secure chat on iOS, Android, and Computer. It uses the XMPP protocol and can be managed via a web interface. 3 - Updated Oct 22, 2018 - 9 stars react-native-basic-xmpp. The latest achievements in the field of cryptography, data transmission/reception methods and the user interface creation were used in the development of the current XMPP / ICQ client. Download Presentation XMPP 通訊協定簡介 An Image/Link below is provided (as is) to download presentation. So you can be on AOL Instant Messenger, and I can be on Google Talk, but we can add each other to our buddy lists and communicate. OpenFire 3. XMPP is an open standards protocol that allows for the exchanging of messages and presence information in real-time. py and 2019 SitePoint Pty. Our unmatched scalability and flexibility means you can build a world-class conversational product, customized to your app with minimum distraction. With minimal syntax it is possible to include widgets like the ones shown on the left in your apps:. While not a client in and of itself, it provides all of the necessary back-end functions to make a CGI client or command-line pe. NET Framework is a software component which can be added to the Microsoft Windows operating system. jxmpp - An Open Source XMPP Base Library written in Java #opensource. With Skype, Kik, Whatsapp, BBM, and all other chat providers begin wiretapped and logged chatting securely online. xmpp @ chat. What is REST? One key thing to remember is to add rest_framework to the INSTALLED_APPS list in marine/settings. The Library's key feature: it enables access to XMPP functionality from the. 3 - Updated Oct 22, 2018 - 9 stars react-native-basic-xmpp. So you want to set up your own private chat network for friends or family, or maybe your company uses the major chat providers like AIM, Yahoo, MSN, or Google for interoffice communication, but you want more control and to keep the network traffic inside your LAN. Look at most relevant Ios xmpp chat websites out of 532 Thousand at KeyOptimize. It is basically a intermediate between the two or more clients. makeContainer("xmpp. 2 XMPP SOLUTION FRAMEWORK XMPP is implemented using a client-server design. XMPP frameworks are no different, and the equivalent to writing "Hello World" in XMPP is creating an echo bot, a simple XMPP client that simply returns any message it receives to the original sender. The main framework provides functions that allow the user too do xmpp actions and send and retrieve information depending on the function called. XMPP chat server for Android and iOS App. tv Using an External XMPP Client. Example: XMPP Chat as a Domain Edge Service XMPP Server Chat client Chat clientclient Mobile Node Mobile Node Mobile Node Mobile Node Mobile Node Mobile Node Mobile Node XMPP Edge Service MANET Broker Chat client r Ch t-Classic XMPP-TCP transport-Client/Server Control/Discovery-Enhanced XMPP-Multi-hop capable-UDP transport or NORM reliable. The following subject areas are covered in this book:. ) XMPP_CONVERSEJS_AUTH Authentication type for ConverseJS (prebind is not supported so login is the only option) XMPP_CONVERSEJS_SETTINGS dictionary of settings passed to converse. We are programming on an iOS Chat Application based on the XMPP Robbie Hanson framework at the moment. slack-traductor - Slack bot to translate chat messages of any language into specified language Slack-Twitter - Node. Tigase Jabber/XMPP Server is Open Source and Free (GPLv3) Java server using all available features in last JDKs. Problem Statement Messaging within mobile ad-hoc networks cannot rely on standard server-centric, TCP communications solutions. It takes a bit to get your head around it, but once you have some basics covered its quite a rewarding library to work with. /* * Most part of this class is copyright Google. Using the Button Sample Page. Streaming XML with Jabber/XMPP. js middleware to create a reading and writing Twitter client out of Slack slack-vote - A Node-based voting/polling integration for Slack using custom outgoing webhooks. We will build a Swift XMPP client built on XMPP Framework, using xmpp-messenger-ios and JSQMessageViewControllerSwift. It supports Firebase and XMPP providing high performance at low cost. IM Observatory Xmpp. Chat SDK - Open source mobile Chat framework for Firebase and XMPP Chat SDK is a free open source instant messaging platform for iOS and Android. XMPP (Extensible Messaging and Presence Protocol) is an open standard IM protocol, most notably utilized by Google Talk. I wanted to integrate XMPP chat for my Play framework web app. How to Chat on Livecoding. NET languages, such as VB. The server ejabbered is already installed The user registration is already made from back-end Function: - login fr. Page 2 of 3. All rights reserved. It was originally developed as a framework to support instant messaging and presence applications within enterprise environments. NET Framework, and can connect to the Jabber Extensible Communications Platform (Jabber XCP) as either a client or a component. Can anyone explain what XMPP is and how we can use it within our chat application?. XMPP - Extensible Messaging and Presence Protocol - Golem. The thoughts that we have in our your mind play a huge role in the…. xmpp chat im messaging jabber; MatriX XMPP library for the full. This is the client version Servlet. The Web Chat channel is pre. js middleware to create a reading and writing Twitter client out of Slack slack-vote - A Node-based voting/polling integration for Slack using custom outgoing webhooks. net xmpp sdk and Matrix is the best and the easiest to use. The XMPP certificate must include the XMPP domain and FQDN of the XMPP server as Subject Alternative Name (SAN) entries, in order to avoid certificate errors. All of our commercial. Read "Practical XMPP" by Lloyd Watkin available from Rakuten Kobo. This web site is dedicated to help you use and develop for ejabberd XMPP messaging server. Mobile App Development & iPhone Projects for $750 - $1500. You need to enter your XMPP server details, details of your user's XMPP account and XMPP id of the customer support executive sitting somewhere else on an XMPP client. com, itunes. Am developing a chat application using Xmpp framework and open fire as server. It is highly desirable to deploy one communication system that can support any environment. The proposed approach tries to enhance security of existing open XMPP based chat server. Or with any XMPP client using the address xmpp:[email protected] com, shubhank101. without TLS/SSL. XMPP is an important building block for handling 1:1 instant messaging, multi-user chat, and presence. Bot Framework is extremely flexible. I compiled it successfully on Windows 95/XP, BeOS, AtheOS, FreeBSD, GNU/Hurd, and GNU/Linux 32. [STANDARDS-TRACK]. de Von einer Sicherheitslücke in einem beliebten Performance-Framework sind auch Dienste wie Facebook, Das Chat-Protokoll Jabber. The server ejabbered is already installed The user registration is already made from back-end Function: - login fr. Jitsi is a core part of the Tiki Suite. To accomplish this, follow these steps: define a user tag, example: u01 ;. Chat Program Java is a continuous communication between two systems. Server side we deploy openfire running on 3 servers with hazelcast plugin. Getting Started with XMPPFramework. Web and desktop clients. Domain for multi user chats (default converence. These are. Might not have too much activity since 2008. Now we encountered following problem: the client connection and authentication takes about 2 sec. Now, this -or any other- XMPP client require an XMPP server to manage the chat sessions; besides the. The easiest way to get started is to use Cocoapods to integrate XMPPFramework in your own project. I've read that the XMPP framework is one of the best to use for this.
Post a Comment