<li><aclass="reference internal"href="#install-the-development-and-front-end-dependencies"id="id19">Install the development and front-end dependencies</a></li>
<li><aclass="reference internal"href="#with-amd-and-require-js-recommended"id="id20">With AMD and require.js (recommended)</a></li>
<li><aclass="reference internal"href="#without-amd-and-require-js"id="id21">Without AMD and require.js</a></li>
<li><aclass="reference internal"href="#before-submitting-a-pull-request"id="id22">Before submitting a pull request</a><ul>
<li><aclass="reference internal"href="#add-tests-for-your-bugfix-or-feature"id="id23">Add tests for your bugfix or feature</a></li>
<li><aclass="reference internal"href="#check-that-the-tests-pass"id="id24">Check that the tests pass</a></li>
<li><aclass="reference internal"href="#check-your-code-for-errors-or-bad-habits-by-running-jshint"id="id25">Check your code for errors or bad habits by running JSHint</a></li>
<li><aclass="reference internal"href="#install-the-development-and-front-end-dependencies"id="id21">Install the development and front-end dependencies</a></li>
<li><aclass="reference internal"href="#with-amd-and-require-js-recommended"id="id22">With AMD and require.js (recommended)</a></li>
<li><aclass="reference internal"href="#without-amd-and-require-js"id="id23">Without AMD and require.js</a></li>
<li><aclass="reference internal"href="#before-submitting-a-pull-request"id="id24">Before submitting a pull request</a><ul>
<li><aclass="reference internal"href="#add-tests-for-your-bugfix-or-feature"id="id25">Add tests for your bugfix or feature</a></li>
<li><aclass="reference internal"href="#check-that-the-tests-pass"id="id26">Check that the tests pass</a></li>
<li><aclass="reference internal"href="#check-your-code-for-errors-or-bad-habits-by-running-jshint"id="id27">Check your code for errors or bad habits by running JSHint</a></li>
<h1><aclass="toc-backref"href="#id5">Quickstart (to get a demo up and running)</a><aclass="headerlink"href="#quickstart-to-get-a-demo-up-and-running"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#id7">Quickstart (to get a demo up and running)</a><aclass="headerlink"href="#quickstart-to-get-a-demo-up-and-running"title="Permalink to this headline">¶</a></h1>
<p>When you download a specific release of <em>Converse.js</em> there will be two minified files inside the zip file.</p>
<ulclass="simple">
<li>converse.min.js</li>
<li>converse.min.css</li>
<li>builds/converse.min.js</li>
<li>css/converse.min.css</li>
</ul>
<p>You can include these two files inside the <em><head></em> element of your website via the <em>script</em> and <em>link</em>
<h1><aclass="toc-backref"href="#id6">Introduction</a><aclass="headerlink"href="#introduction"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#id8">Introduction</a><aclass="headerlink"href="#introduction"title="Permalink to this headline">¶</a></h1>
<p>Even though you can connect to public XMPP servers on the <aclass="reference external"href="http://conversejs.org">conversejs.org</a>
website, <em>Converse.js</em> is not really meant to be a “Software-as-a-service” (SaaS)
webchat.</p>
<p>Instead, its goal is to provide the means for website owners to add a tightly
integrated instant messaging service to their own sites.</p>
integrated instant messaging service to their own websites.</p>
<p>As a website owner, you are expected to host <em>Converse.js</em> yourself, and to do some legwork to
properly configure and integrate it into your site.</p>
<p>The benefit in doing this, is that your users have a much more streamlined and integrated
...
...
@@ -210,9 +211,9 @@ code.</p>
requirements.</p>
</div>
<divclass="section"id="what-you-will-need">
<h1><aclass="toc-backref"href="#id7">What you will need</a><aclass="headerlink"href="#what-you-will-need"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#id9">What you will need</a><aclass="headerlink"href="#what-you-will-need"title="Permalink to this headline">¶</a></h1>
<divclass="section"id="an-xmpp-jabber-server">
<h2><aclass="toc-backref"href="#id8">An XMPP/Jabber server</a><aclass="headerlink"href="#an-xmpp-jabber-server"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id10">An XMPP/Jabber server</a><aclass="headerlink"href="#an-xmpp-jabber-server"title="Permalink to this headline">¶</a></h2>
<p><em>Converse.js</em> implements <aclass="reference external"href="https://en.wikipedia.org/wiki/Xmpp">XMPP</a> as its messaging protocol, and therefore needs
to connect to an XMPP/Jabber server (Jabber is really just a synonym for XMPP).</p>
<p>You can connect to public XMPP servers like <ttclass="docutils literal"><spanclass="pre">jabber.org</span></tt> but if you want to
...
...
@@ -220,8 +221,8 @@ have <a class="reference internal" href="#session-support">Session Support</a> y
<p>You can find a list of public XMPP servers/providers on <aclass="reference external"href="http://xmpp.net">xmpp.net</a> and a list of
servers that you can set up yourself on <aclass="reference external"href="http://xmpp.org/xmpp-software/servers/">xmpp.org</a>.</p>
</div>
<divclass="section"id="connection-manager">
<h2><aclass="toc-backref"href="#id9">Connection Manager</a><aclass="headerlink"href="#connection-manager"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id11">A BOSH Connection Manager</a><aclass="headerlink"href="#a-bosh-connection-manager"title="Permalink to this headline">¶</a></h2>
<p>Your website and <em>Converse.js</em> use <aclass="reference external"href="https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol">HTTP</a> as protocol to communicate with
the webserver. HTTP connections are stateless and usually shortlived.</p>
<p><aclass="reference external"href="https://en.wikipedia.org/wiki/Xmpp">XMPP</a> on the other hand, is the protocol that enables instant messaging, and
...
...
@@ -229,16 +230,20 @@ its connections are stateful and usually longer.</p>
<p>To enable a web application like <em>Converse.js</em> to communicate with an XMPP
server, we need a proxy in the middle that can act as a bridge between the two
<p>This is the job of a connection manager. A connection manager can be either a
standalone application or part of an XMPP server. <aclass="reference external"href="http://www.ejabberd.im">ejabberd</a> for example,
includes a connection manager (but you have to enable it).</p>
<p>The demo on the <aclass="reference external"href="http://conversejs.org">Converse.js homepage</a> uses a a connection manager located at <aclass="reference external"href="https://bind.conversejs.org">https://bind.conversejs.org</a>.
This connection manager is for testing purposes only, please don’t use it in
production.</p>
standalone application or part of an XMPP server. Popular XMPP servers such as
<aclass="reference external"href="http://www.ejabberd.im">ejabberd</a>, <aclass="reference external"href="http://prosody.im/doc/setting_up_bosh">prosody</a> and
<aclass="reference external"href="http://www.igniterealtime.org/projects/openfire/">openfire</a> all include their own connection managers
(but you usually have to enable them in the configuration).</p>
<p>Standalone connection managers also exist, see for example <aclass="reference external"href="https://github.com/twonds/punjab">Punjab</a>.</p>
<p>The demo on the <aclass="reference external"href="http://conversejs.org">Converse.js homepage</a> uses a connection manager located at <aclass="reference external"href="https://bind.conversejs.org">https://bind.conversejs.org</a>.
This connection manager is available for testing purposes only, please don’t use it in production.</p>
<h3><aclass="toc-backref"href="#id10">Overcoming cross-domain request restrictions</a><aclass="headerlink"href="#overcoming-cross-domain-request-restrictions"title="Permalink to this headline">¶</a></h3>
<p>The domain of the <em>Converse.js</em> demo is <em>conversejs.org</em>, but the domain of the connection manager is <em>opkode.im</em>.
HTTP requests are made by <em>Converse.js</em> to the connection manager via XmlHttpRequests (XHR).
<h3><aclass="toc-backref"href="#id12">Overcoming cross-domain request restrictions</a><aclass="headerlink"href="#overcoming-cross-domain-request-restrictions"title="Permalink to this headline">¶</a></h3>
<p>Lets say your domain is <em>example.org</em>, but the domain of your connection
manager is <em>example.com</em>.</p>
<p>HTTP requests are made by <em>Converse.js</em> to the connection manager via XmlHttpRequests (XHR).
Until recently, it was not possible to make such requests to a different domain
than the one currently being served (to prevent XSS attacks).</p>
<p>Luckily there is now a standard called <aclass="reference external"href="https://en.wikipedia.org/wiki/Cross-origin_resource_sharing">CORS</a> (Cross-origin resource sharing), which enables exactly that.
...
...
@@ -287,9 +292,9 @@ the cross-domain restriction is <tt class="docutils literal"><span class="pre">m
<h2><aclass="toc-backref"href="#id11">Server-side authentication</a><aclass="headerlink"href="#server-side-authentication"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id13">Server-side authentication</a><aclass="headerlink"href="#server-side-authentication"title="Permalink to this headline">¶</a></h2>
<spanid="session-support"></span><h3><aclass="toc-backref"href="#id12">Prebinding and Single Session Support</a><aclass="headerlink"href="#prebinding-and-single-session-support"title="Permalink to this headline">¶</a></h3>
<spanid="session-support"></span><h3><aclass="toc-backref"href="#id14">Prebinding and Single Session Support</a><aclass="headerlink"href="#prebinding-and-single-session-support"title="Permalink to this headline">¶</a></h3>
<p>It’s possible to enable single-site login, whereby users already
authenticated in your website will also automatically be logged in on the chat server,</p>
<p>This session should also persist across page loads. In other words, we don’t
...
...
@@ -347,7 +352,7 @@ Additionally you need to pass in valid <strong>jid</strong>, <strong>sid</strong
<h3><aclass="toc-backref"href="#id13">Example code for server-side prebinding</a><aclass="headerlink"href="#example-code-for-server-side-prebinding"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id15">Example code for server-side prebinding</a><aclass="headerlink"href="#example-code-for-server-side-prebinding"title="Permalink to this headline">¶</a></h3>
<ul>
<li><dlclass="first docutils">
<dt>PHP:</dt>
...
...
@@ -364,55 +369,6 @@ Michael Weibel and the folks from Candy chat.</p>
</li>
</ul>
</div>
<divclass="section"id="setting-up-a-bosh-server">
<h3><aclass="toc-backref"href="#id14">Setting up a BOSH server</a><aclass="headerlink"href="#setting-up-a-bosh-server"title="Permalink to this headline">¶</a></h3>
<p>The <aclass="reference external"href="http://movim.eu/">Movim</a> project wiki has a very thorough page on setting up a BOSH server for
<h2><aclass="toc-backref"href="#id15">Facebook integration</a><aclass="headerlink"href="#facebook-integration"title="Permalink to this headline">¶</a></h2>
<divclass="admonition note">
<pclass="first admonition-title">Note</p>
<pclass="last">It should be possible to integrate Converse.js with Facebook chat, and
below I’ll provide some tips and documentation on how to achieve this. That
said, I don’t have a Facebook account and therefore haven’t tried to do
this myself. Feedback and patches from people who have succesfully done this
will be appreciated.</p>
</div>
<p>Converse.js uses <aclass="reference external"href="http://strophe.im/strophejs">Strophe.js</a> to connect and
communicate with the XMPP server. One nice thing about Strophe.js is that it
can be extended via <aclass="reference external"href="http://github.com/strophe/strophejs-plugins">plugins</a>.</p>
<p>Here is a <aclass="reference external"href="https://github.com/kissrobber/turedsocial/blob/master/strophe-plugins/src/facebook.js">plugin for authenticating with facebook</a>.</p>
<p>You will need your own BOSH connection manager to act as a proxy between
Converse.js/Strophe.js and Facebook’s XMPP server. That is because Facebook’s
XMPP server doesn’t support BOSH natively.</p>
<p>The BOSH connection manager that I make available for
although there are quite a few other options available as well.</p>
<p>When you configure Converse.js, via its <ttclass="docutils literal"><spanclass="pre">initialize</span></tt> method, you must specify the
<aclass="reference internal"href="#bosh-service-url">bosh_service_url</a> value, which is to be your BOSH connection manager.</p>
<p>Please note, to enable Facebook integration, you’ll have to
get your hands dirty and modify Converse.js’s code, so that it calls the
<ttclass="docutils literal"><spanclass="pre">facebookConnect</span></tt> method of the plugin above.</p>
<p>The plugin above gives the following code example for you to meditate upon:</p>
<divclass="highlight-python"><divclass="highlight"><pre>connection = new Strophe.Connection("http://localhost:5280/bosh");
connection.facebookConnect(
"12345@chat.facebook.com",
onConnectFacebook,
300,
1,
'5e64a30272af065bd72258c565a03f2f',
'8147a27e4a7f9b55ffc85c2683f9529a',
FB.getSession().session_key
);
</pre></div>
</div>
<p>The connection is already created inside Converse.js, so the
<ttclass="docutils literal"><spanclass="pre">facebookConnect</span></tt> method needs to also be called from there.</p>
<p>If someone submits a sane patch that does the above, I’ll be happy to merge it.
Until then, people will have to do this themselves.</p>
</div>
</div>
<divclass="section"id="features">
...
...
@@ -439,15 +395,29 @@ secure crypto.</p>
Converse.js in order to avoid most eavesdroppers, if you need serious
communications privacy, then you’re much better off using native software.</p>
</div>
<divclass="section"id="sound-notifications">
<h2><aclass="toc-backref"href="#id18">Sound Notifications</a><aclass="headerlink"href="#sound-notifications"title="Permalink to this headline">¶</a></h2>
<p>From version 0.8.1 Converse.js can play a sound notification when you receive a
message.</p>
<p>For more info, please see the <aclass="reference internal"href="#play-sounds">play_sounds</a> configuration setting.</p>
</div>
<divclass="section"id="multilingual-support">
<h2><aclass="toc-backref"href="#id19">Multilingual Support</a><aclass="headerlink"href="#multilingual-support"title="Permalink to this headline">¶</a></h2>
<p>Converse.js is translated into multiple languages. The default build,
<ttclass="docutils literal"><spanclass="pre">converse.min.js</span></tt>, includes all languages.</p>
<p>Languages increase the size of the Converse.js significantly.</p>
<p>If you only need one, or a subset of the available languages, it’s better to
make a custom build which includes only those languages that you need.</p>
</div>
</div>
<divclass="section"id="development">
<h1><aclass="toc-backref"href="#id18">Development</a><aclass="headerlink"href="#development"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#id20">Development</a><aclass="headerlink"href="#development"title="Permalink to this headline">¶</a></h1>
<p>If you want to work with the non-minified Javascript and CSS files you’ll soon
notice that there are references to a missing <em>components</em> folder. Please
follow the instructions below to create this folder and fetch Converse’s
<h2><aclass="toc-backref"href="#id19">Install the development and front-end dependencies</a><aclass="headerlink"href="#install-the-development-and-front-end-dependencies"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id21">Install the development and front-end dependencies</a><aclass="headerlink"href="#install-the-development-and-front-end-dependencies"title="Permalink to this headline">¶</a></h2>
<p>We use development tools (<aclass="reference external"href="http://gruntjs.com">Grunt</a> and <aclass="reference external"href="http://bower.io">Bower</a>)
which depend on Node.js and npm (the Node package manager).</p>
<p>If you don’t have Node.js installed, you can download and install the latest
...
...
@@ -486,7 +456,7 @@ Converse.js directly depends and which will be loaded in the browser.</p>
<h2><aclass="toc-backref"href="#id20">With AMD and require.js (recommended)</a><aclass="headerlink"href="#with-amd-and-require-js-recommended"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id22">With AMD and require.js (recommended)</a><aclass="headerlink"href="#with-amd-and-require-js-recommended"title="Permalink to this headline">¶</a></h2>
<p>Converse.js uses <aclass="reference external"href="http://requirejs.org">require.js</a> to asynchronously load dependencies.</p>
<p>If you want to develop or customize converse.js, you’ll want to load the
non-minified javascript files.</p>
...
...
@@ -500,7 +470,7 @@ attribute on the <em>script</em> tag), which will in turn cause converse.js to b
<h2><aclass="toc-backref"href="#id21">Without AMD and require.js</a><aclass="headerlink"href="#without-amd-and-require-js"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id23">Without AMD and require.js</a><aclass="headerlink"href="#without-amd-and-require-js"title="Permalink to this headline">¶</a></h2>
<p>Converse.js can also be used without require.js. If you for some reason prefer
<h2><aclass="toc-backref"href="#id22">Before submitting a pull request</a><aclass="headerlink"href="#before-submitting-a-pull-request"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id24">Before submitting a pull request</a><aclass="headerlink"href="#before-submitting-a-pull-request"title="Permalink to this headline">¶</a></h2>
<h3><aclass="toc-backref"href="#id23">Add tests for your bugfix or feature</a><aclass="headerlink"href="#add-tests-for-your-bugfix-or-feature"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id25">Add tests for your bugfix or feature</a><aclass="headerlink"href="#add-tests-for-your-bugfix-or-feature"title="Permalink to this headline">¶</a></h3>
<p>Add a test for any bug fixed or feature added. We use Jasmine
for testing.</p>
<p>Take a look at <ttclass="docutils literal"><spanclass="pre">tests.html</span></tt> and <ttclass="docutils literal"><spanclass="pre">spec/MainSpec.js</span></tt> to see how
...
...
@@ -519,7 +489,7 @@ the tests are implemented.</p>
<aclass="reference external"href="http://opkode.com/contact">contact me</a> and I’ll be happy to help.</p>
<h3><aclass="toc-backref"href="#id24">Check that the tests pass</a><aclass="headerlink"href="#check-that-the-tests-pass"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id26">Check that the tests pass</a><aclass="headerlink"href="#check-that-the-tests-pass"title="Permalink to this headline">¶</a></h3>
<p>Check that the Jasmine tests complete sucessfully. Open
<h3><aclass="toc-backref"href="#id25">Check your code for errors or bad habits by running JSHint</a><aclass="headerlink"href="#check-your-code-for-errors-or-bad-habits-by-running-jshint"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id27">Check your code for errors or bad habits by running JSHint</a><aclass="headerlink"href="#check-your-code-for-errors-or-bad-habits-by-running-jshint"title="Permalink to this headline">¶</a></h3>
<p><aclass="reference external"href="http://jshint.com">JSHint</a> will do a static analysis of your code and hightlight potential errors
<h3><aclass="toc-backref"href="#id27">Minifying Javascript and CSS</a><aclass="headerlink"href="#minifying-javascript-and-css"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id29">Minifying Javascript and CSS</a><aclass="headerlink"href="#minifying-javascript-and-css"title="Permalink to this headline">¶</a></h3>
<p>Please make sure to read the section <aclass="reference internal"href="#development">Development</a> and that you have installed
all development dependencies (long story short, you can run <ttclass="docutils literal"><spanclass="pre">npm</span><spanclass="pre">install</span></tt>
and then <ttclass="docutils literal"><spanclass="pre">grunt</span><spanclass="pre">fetch</span></tt>).</p>
...
...
@@ -562,7 +532,7 @@ using <a class="reference external" href="https://github.com/jrburke/almond">alm
</div>
</div>
<divclass="section"id="translations">
<h2><aclass="toc-backref"href="#id28">Translations</a><aclass="headerlink"href="#translations"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id30">Translations</a><aclass="headerlink"href="#translations"title="Permalink to this headline">¶</a></h2>
<divclass="admonition note">
<pclass="first admonition-title">Note</p>
<pclass="last">Translations take up a lot of space and will bloat your minified file.
...
...
@@ -645,11 +615,11 @@ those hoops you had to jump through.</p>
</div>
</div>
<divclass="section"id="troubleshooting">
<h1><aclass="toc-backref"href="#id29">Troubleshooting</a><aclass="headerlink"href="#troubleshooting"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#id31">Troubleshooting</a><aclass="headerlink"href="#troubleshooting"title="Permalink to this headline">¶</a></h1>
<h2><aclass="toc-backref"href="#id30">Conflicts with other Javascript libraries</a><aclass="headerlink"href="#conflicts-with-other-javascript-libraries"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id32">Conflicts with other Javascript libraries</a><aclass="headerlink"href="#conflicts-with-other-javascript-libraries"title="Permalink to this headline">¶</a></h2>
<divclass="section"id="problem">
<h3><aclass="toc-backref"href="#id31">Problem:</a><aclass="headerlink"href="#problem"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id33">Problem:</a><aclass="headerlink"href="#problem"title="Permalink to this headline">¶</a></h3>
<p>You are using other Javascript libraries (like JQuery plugins), and
get errors like these in your browser console:</p>
<divclass="highlight-python"><divclass="highlight"><pre>Uncaught TypeError: Object [object Object] has no method 'xxx' from example.js
...
...
@@ -657,7 +627,7 @@ get errors like these in your browser console:</p>
</div>
</div>
<divclass="section"id="solution">
<h3><aclass="toc-backref"href="#id32">Solution:</a><aclass="headerlink"href="#solution"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id34">Solution:</a><aclass="headerlink"href="#solution"title="Permalink to this headline">¶</a></h3>
<p>First, find out which object is referred to by <ttclass="docutils literal"><spanclass="pre">Object</span><spanclass="pre">[object</span><spanclass="pre">Object]</span></tt>.</p>
<p>It will probably be the jQuery object <ttclass="docutils literal"><spanclass="pre">$</span></tt> or perhaps the underscore.js object <ttclass="docutils literal"><spanclass="pre">_</span></tt>.</p>
<p>For the purpose of demonstration, I’m going to assume its <ttclass="docutils literal"><spanclass="pre">$</span></tt>, but the same
...
...
@@ -699,11 +669,11 @@ jQuery plugins must load after jQuery).</p>
</div>
</div>
<divclass="section"id="events">
<h1><aclass="toc-backref"href="#id33">Events</a><aclass="headerlink"href="#events"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#id35">Events</a><aclass="headerlink"href="#events"title="Permalink to this headline">¶</a></h1>
<p>Converse.js emits events to which you can subscribe from your own Javascript.</p>
<p>Concerning events, the following methods are available:</p>
<divclass="section"id="event-methods">
<h2><aclass="toc-backref"href="#id34">Event Methods</a><aclass="headerlink"href="#event-methods"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id36">Event Methods</a><aclass="headerlink"href="#event-methods"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id35">Event Types</a><aclass="headerlink"href="#event-types"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id37">Event Types</a><aclass="headerlink"href="#event-types"title="Permalink to this headline">¶</a></h2>
<p>Here are the different events that are emitted:</p>
<tableborder="1"class="docutils">
<colgroup>
...
...
@@ -833,7 +803,7 @@ exactly once.</p>
</div>
</div>
<divclass="section"id="configuration">
<h1><aclass="toc-backref"href="#id36">Configuration</a><aclass="headerlink"href="#configuration"title="Permalink to this headline">¶</a></h1>
<h1><aclass="toc-backref"href="#id38">Configuration</a><aclass="headerlink"href="#configuration"title="Permalink to this headline">¶</a></h1>
<p>The included minified JS and CSS files can be used for demoing or testing, but
you’ll want to configure <em>Converse.js</em> to suit your needs before you deploy it
on your website.</p>
...
...
@@ -847,9 +817,9 @@ all the available configuration settings.</p>
JS file so that it will include the new settings. Please refer to the
<aclass="reference internal"href="#minification">Minification</a> section for more info on how to do this.</p>
<divclass="section"id="configuration-variables">
<h2><aclass="toc-backref"href="#id37">Configuration variables</a><aclass="headerlink"href="#configuration-variables"title="Permalink to this headline">¶</a></h2>
<h2><aclass="toc-backref"href="#id39">Configuration variables</a><aclass="headerlink"href="#configuration-variables"title="Permalink to this headline">¶</a></h2>
<divclass="section"id="allow-contact-requests">
<h3><aclass="toc-backref"href="#id38">allow_contact_requests</a><aclass="headerlink"href="#allow-contact-requests"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id40">allow_contact_requests</a><aclass="headerlink"href="#allow-contact-requests"title="Permalink to this headline">¶</a></h3>
<p>Support for <aclass="reference external"href="https://xmpp.org/extensions/xep-0280.html">XEP-0280: Message Carbons</a></p>
</div>
<divclass="section"id="expose-rid-and-sid">
<h3><aclass="toc-backref"href="#id49">expose_rid_and_sid</a><aclass="headerlink"href="#expose-rid-and-sid"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id51">expose_rid_and_sid</a><aclass="headerlink"href="#expose-rid-and-sid"title="Permalink to this headline">¶</a></h3>
<p>Hide the <ttclass="docutils literal"><spanclass="pre">server</span></tt> input field of the form inside the <ttclass="docutils literal"><spanclass="pre">Room</span></tt> panel of the
controlbox. Useful if you want to restrict users to a specific XMPP server of
your choosing.</p>
</div>
<divclass="section"id="i18n">
<h3><aclass="toc-backref"href="#id53">i18n</a><aclass="headerlink"href="#i18n"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id55">i18n</a><aclass="headerlink"href="#i18n"title="Permalink to this headline">¶</a></h3>
<p>Specify the locale/language. The language must be in the <ttclass="docutils literal"><spanclass="pre">locales</span></tt> object. Refer to
<ttclass="docutils literal"><spanclass="pre">./locale/locales.js</span></tt> to see which locales are supported.</p>
</div>
<divclass="section"id="play-sounds">
<h3><aclass="toc-backref"href="#id56">play_sounds</a><aclass="headerlink"href="#play-sounds"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id56">show_controlbox_by_default</a><aclass="headerlink"href="#show-controlbox-by-default"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id59">show_controlbox_by_default</a><aclass="headerlink"href="#show-controlbox-by-default"title="Permalink to this headline">¶</a></h3>
<p>The “controlbox” refers to the special chatbox containing your contacts roster,
status widget, chatrooms and other controls.</p>
...
...
@@ -999,13 +980,13 @@ the page with class <em>toggle-controlbox</em>.</p>
page load.</p>
</div>
<divclass="section"id="show-only-online-users">
<h3><aclass="toc-backref"href="#id57">show_only_online_users</a><aclass="headerlink"href="#show-only-online-users"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id60">show_only_online_users</a><aclass="headerlink"href="#show-only-online-users"title="Permalink to this headline">¶</a></h3>
<p>This option determines the type of <aclass="reference external"href="https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage">storage</a>
...
...
@@ -1018,20 +999,20 @@ it’s closed, the data is cleared.</p>
<p>Data in localStorage on the other hand is kept indefinitely.</p>
</div>
<divclass="section"id="use-otr-by-default">
<h3><aclass="toc-backref"href="#id59">use_otr_by_default</a><aclass="headerlink"href="#use-otr-by-default"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id62">use_otr_by_default</a><aclass="headerlink"href="#use-otr-by-default"title="Permalink to this headline">¶</a></h3>
<p>Determines whether the XMPP server will be queried for roster contacts’ VCards
or not. VCards contain extra personal information such as your fullname and
avatar image.</p>
</div>
<divclass="section"id="visible-toolbar-buttons">
<h3><aclass="toc-backref"href="#id61">visible_toolbar_buttons</a><aclass="headerlink"href="#visible-toolbar-buttons"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id64">visible_toolbar_buttons</a><aclass="headerlink"href="#visible-toolbar-buttons"title="Permalink to this headline">¶</a></h3>
@@ -1081,7 +1062,7 @@ When the call button is pressed, it will emit an event that can be used by a thi
remote server.</p>
</div>
<divclass="section"id="xhr-custom-status-url">
<h3><aclass="toc-backref"href="#id63">xhr_custom_status_url</a><aclass="headerlink"href="#xhr-custom-status-url"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id66">xhr_custom_status_url</a><aclass="headerlink"href="#xhr-custom-status-url"title="Permalink to this headline">¶</a></h3>
<divclass="admonition note">
<pclass="first admonition-title">Note</p>
<pclass="last">XHR stands for XMLHTTPRequest, and is meant here in the AJAX sense (Asynchronous Javascript and XML).</p>
...
...
@@ -1093,7 +1074,7 @@ message will be made.</p>
<p>The message itself is sent in the request under the key <ttclass="docutils literal"><spanclass="pre">msg</span></tt>.</p>
</div>
<divclass="section"id="xhr-user-search">
<h3><aclass="toc-backref"href="#id64">xhr_user_search</a><aclass="headerlink"href="#xhr-user-search"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id67">xhr_user_search</a><aclass="headerlink"href="#xhr-user-search"title="Permalink to this headline">¶</a></h3>
corresponds to a matched user and needs the keys <ttclass="docutils literal"><spanclass="pre">id</span></tt> and <ttclass="docutils literal"><spanclass="pre">fullname</span></tt>.</p>
</div>
<divclass="section"id="xhr-user-search-url">
<h3><aclass="toc-backref"href="#id65">xhr_user_search_url</a><aclass="headerlink"href="#xhr-user-search-url"title="Permalink to this headline">¶</a></h3>
<h3><aclass="toc-backref"href="#id68">xhr_user_search_url</a><aclass="headerlink"href="#xhr-user-search-url"title="Permalink to this headline">¶</a></h3>
<divclass="admonition note">
<pclass="first admonition-title">Note</p>
<pclass="last">XHR stands for XMLHTTPRequest, and is meant here in the AJAX sense (Asynchronous Javascript and XML).</p>
Search.setIndex({envversion:42,terms:{all:0,partial:0,queri:0,lack:0,webchat:0,follow:0,row:0,privat:0,middl:0,sensit:0,punjab:0,elsewher:0,vcard:0,buddi:0,under:0,sens:0,spec:0,sent:0,global:0,everi:0,string:0,fals:0,multi:0,mechan:0,jack:0,veri:0,retriev:0,tri:0,button:0,messagetext:0,list:0,previou:0,correct:0,"try":0,item:0,sane:0,pleas:0,prevent:0,almond:0,focu:0,past:0,second:0,download:0,further:0,port:0,folk:0,even:0,index:0,hide:0,appear:0,section:0,abl:0,access:0,delet:0,version:0,"new":0,net:0,"public":0,widget:0,themselv:0,messagexml:0,gener:0,here:0,bodi:0,typeerror:0,let:0,modifi:0,valu:0,box:0,great:0,convers:0,mysit:0,reason:0,fetch:0,implement:0,sorri:0,chanc:0,via:0,although:0,danger:0,primit:0,prefer:0,ask:0,href:0,fake:0,sessionstorag:0,establish:0,from:0,zip:0,commun:0,doubl:0,two:0,websit:0,few:0,stylesheet:0,call:0,msg:0,until:0,tightli:0,more:0,emoticon:0,peopl:0,line:0,notic:0,particular:0,cach:0,must:0,account:0,word:0,room:0,work:0,uniqu:0,dev:0,xhr:0,can:0,lc_messag:0,purpos:0,root:0,blogpost:0,control:0,getsess:0,give:0,challeng:0,share:0,templat:0,critic:0,proprietari:0,explor:0,onlin:0,callbuttonclick:0,occup:0,multipl:0,goal:0,turn:0,anoth:0,deniabl:0,write:0,how:0,bosh_serv:0,sid:0,roster:0,verifi:0,perspect:0,updat:0,npm:0,regener:0,product:0,resourc:0,after:0,usabl:0,callback:0,underscor:0,data:0,demonstr:0,man:0,repo:0,"short":0,attempt:0,practic:0,third:0,bind:0,secur:0,credenti:0,correspond:0,django:0,caus:0,inform:0,allow:0,parti:0,order:0,talk:0,feedback:0,chatbox:0,chatroomopen:0,over:0,move:0,becaus:0,chatboxopen:0,telephon:0,through:0,reconnect:0,paramet:0,streamlin:0,jid:0,"8147a27e4a7f9b55ffc85c2683f9529a":0,render:0,fit:0,fix:0,better:0,window:0,pend:0,persist:0,hidden:0,main:0,might:0,them:0,"return":0,thei:0,python:0,initi:0,rewriterul:0,instead:0,now:0,jump:0,name:0,edit:0,drop:0,crypto:0,separ:0,achiev:0,ejabberd:0,each:0,mean:0,either:0,harm:0,chatboxfocus:0,michael:0,individu:0,idea:0,realli:0,"static":0,expect:0,our:0,happen:0,extract:0,special:0,out:0,shown:0,"3rd":0,space:0,open:0,proxy_pass:0,rel:0,internet:0,got:0,plural:0,factori:0,po2json:0,model:0,proxi:0,insid:0,state:0,standard:0,standalon:0,ajax:0,put:0,succesfulli:0,afterward:0,could:0,keep:0,thing:0,perhap:0,imposs:0,first:0,origin:0,softwar:0,directli:0,malici:0,onc:0,hoop:0,lastnam:0,number:0,yourself:0,instruct:0,alreadi:0,done:0,owner:0,custom:0,miss:0,suffic:0,differ:0,top:0,attack:0,messag:0,attach:0,stori:0,jed:0,privaci:0,listen:0,luckili:0,assign:0,consol:0,option:0,tool:0,specifi:0,part:0,bower:0,exactli:0,than:0,serv:0,wide:0,kind:0,bloat:0,provid:0,remov:0,project:0,bridg:0,seriou:0,someothersit:0,browser:0,pre:0,analysi:0,sai:0,saa:0,session_kei:0,ani:0,packag:0,have:0,moffitt:0,element:0,issu:0,min:0,latter:0,thorough:0,click:0,note:0,also:0,contact:0,take:0,which:0,therefor:0,sure:0,though:0,unsur:0,who:0,reach:0,most:0,eavesdropp:0,homepag:0,"class":0,don:0,url:0,clear:0,doe:0,runtim:0,statuschang:0,pars:0,latest:0,xdomainrequest:0,devdepend:0,show:0,german:0,text:0,buddystatuschang:0,server_nam:0,identifi:0,fine:0,find:0,help:0,xml:0,current:0,onli:0,grunt:0,locat:0,execut:0,releas:0,stanza:0,haven:0,busi:0,folder:0,local:0,meant:0,stop:0,soon:0,opkod:0,nativ:0,cannot:0,cryptographi:0,enabl:0,emb:0,mainspec:0,patch:0,remot:0,contain:0,where:0,wiki:0,chatboxclos:0,stroph:0,see:0,bare:0,result:0,close:0,calendar:0,eventnam:0,best:0,concern:0,jqueri:0,statu:0,said:0,kei:0,inconveni:0,someth:0,written:0,muc:0,between:0,awai:0,experi:0,jasmin:0,across:0,attribut:0,altern:0,perfect:0,appreci:0,extend:0,screen:0,were:0,conjunct:0,job:0,entir:0,otherwis:0,"5e64a30272af065bd72258c565a03f2f":0,group:0,both:0,cor:0,instant:0,shortliv:0,conversej:0,etc:0,instanc:0,grain:0,mani:0,login:0,com:0,load:0,simpli:0,pot:0,solv:0,non:0,deploi:0,carbon:0,assum:0,malleabl:0,backend:0,quit:0,sucessfulli:0,addition:0,rebuild:0,due:0,been:0,compon:0,json:0,much:0,toolbar:0,subscrib:0,modern:0,fire:0,imag:0,xxx:0,rubi:0,convert:0,togeth:0,input:0,otr:0,plausibl:0,present:0,"case":0,myself:0,ident:0,look:0,gnu:0,servic:0,plugin:0,messagesend:0,defin:0,"while":0,abov:0,howev:0,hightlight:0,increment:0,helper:0,readi:0,site:0,itself:0,incom:0,rid:0,pat:0,harsh:0,minim:0,receiv:0,media:0,make:0,format:0,same:0,webpag:0,onconnectfacebook:0,html:0,unexpectedli:0,chatroom:0,document:0,medit:0,complet:0,signon:0,http:0,webserv:0,optim:0,upon:0,someon:0,hand:0,fairli:0,"50kb":0,user:0,uncaught:0,php:0,cssmin:0,recent:0,weibel:0,stateless:0,kept:0,bewar:0,firstli:0,markup:0,well:0,thought:0,person:0,client:0,command:0,wherebi:0,thi:0,choos:0,everyth:0,usual:0,plural_form:0,protocol:0,just:0,when:0,xep:0,file:0,languag:0,previous:0,web:0,fraught:0,xmlhttprequest:0,expos:0,field:0,extra:0,had:0,desktop:0,non_amd:0,versa:0,appli:0,els:0,match:0,build:0,applic:0,secreci:0,read:0,traffic:0,know:0,press:0,xss:0,like:0,specif:0,should:0,reload:0,manual:0,benefit:0,api:0,avatar:0,choic:0,output:0,page:0,candi:0,indefinit:0,facebookconnect:0,revers:0,chatboxtoggl:0,deal:0,nplural:0,some:0,back:0,bottom:0,avoid:0,deploy:0,rewriteengin:0,track:0,allow_otr:0,inject:0,localhost:0,refer:0,somehow:0,plu:0,object:0,host:0,repositori:0,post:0,panel:0,src:0,about:0,firstnam:0,controlbox:0,unfortun:0,stand:0,act:0,own:0,curiou:0,within:0,encod:0,automat:0,right:0,empti:0,wrap:0,chang:0,merg:0,git:0,log:0,wai:0,pictur:0,aren:0,transfer:0,"long":0,happi:0,avail:0,trigger:0,localstorag:0,includ:0,lot:0,suit:0,forward:0,"function":0,head:0,properli:0,form:0,bundl:0,maxim:0,link:0,buddystatusmessagechang:0,synonym:0,cryptograph:0,inlin:0,"true":0,bug:0,congratul:0,requirej:0,info:0,made:0,dirti:0,locale_data:0,possibl:0,whether:0,asynchron:0,below:0,those:0,toggl:0,legwork:0,emit:0,constant:0,creat:0,movim:0,decrypt:0,doesn:0,mode:0,msgmerg:0,exist:0,chat:0,face:0,probabl:0,tab:0,want:0,tip:0,detail:0,gettext:0,statusmessagechang:0,"default":0,valid:0,rememb:0,varieti:0,servernam:0,nice:0,node:0,intend:0,determin:0,duck:0,org:0,consid:0,stai:0,lang:0,longer:0,vice:0,directori:0,virtualhost:0,getjson:0,rule:0,ignor:0,token:0,potenti:0,time:0},objtypes:{},objnames:{},filenames:["index"],titles:["Quickstart (to get a demo up and running)"],objects:{},titleterms:{roster_group:0,code:0,xmpp:0,session:0,jshint:0,depend:0,singl:0,configur:0,apach:0,add:0,anim:0,get:0,end:0,amd:0,nginx:0,facebook:0,front:0,requir:0,introduct:0,troubleshoot:0,authent:0,server:0,bad:0,integr:0,debug:0,side:0,domain:0,set:0,habit:0,xhr_user_search_url:0,connect:0,pass:0,fullnam:0,event:0,librari:0,variabl:0,what:0,storag:0,xhr_custom_statu:0,content:0,show_only_online_us:0,use_otr_by_default:0,overcom:0,method:0,run:0,hide_muc_serv:0,javascript:0,visible_toolbar_button:0,bosh:0,xhr_custom_status_url:0,cache_otr_kei:0,manag:0,solut:0,restrict:0,auto_list_room:0,instal:0,jabber:0,your:0,script:0,support:0,submit:0,recommend:0,type:0,show_controlbox_by_default:0,minifi:0,translat:0,i18n:0,pull:0,bugfix:0,exampl:0,record:0,error:0,auto_reconnect:0,problem:0,featur:0,quickstart:0,forward_messag:0,demo:0,auto_subscrib:0,tag:0,tabl:0,need:0,check:0,bosh_service_url:0,prebind:0,develop:0,message_carbon:0,minif:0,cross:0,other:0,test:0,expose_rid_and_sid:0,you:0,css:0,befor:0,allow_contact_request:0,encrypt:0,xhr_user_search:0,off:0,use_vcard:0,request:0,allow_muc:0,without:0,conflict:0}})
\ No newline at end of file
Search.setIndex({envversion:42,terms:{all:0,partial:0,queri:0,lack:0,webchat:0,mp3:0,follow:0,row:0,privat:0,middl:0,sensit:0,punjab:0,elsewher:0,vcard:0,buddi:0,under:0,sens:0,spec:0,sent:0,global:0,everi:0,string:0,fals:0,multi:0,mechan:0,jack:0,veri:0,retriev:0,tri:[],button:0,messagetext:0,list:0,previou:0,correct:0,"try":0,item:0,sane:[],pleas:0,prevent:0,almond:0,prosodi:0,focu:0,past:0,second:0,download:0,further:0,port:0,folk:0,even:0,index:0,hide:0,appear:0,section:0,abl:0,access:0,delet:0,version:0,"new":0,net:0,"public":0,widget:0,themselv:[],messagexml:0,gener:0,here:0,bodi:0,typeerror:0,let:0,modifi:[],valu:0,box:0,great:0,convers:0,mysit:0,reason:0,fetch:0,implement:0,sorri:0,chanc:0,via:0,although:0,danger:0,primit:0,prefer:0,ask:0,href:0,fake:0,sessionstorag:0,establish:0,from:0,zip:0,commun:0,doubl:0,two:0,websit:0,few:[],stylesheet:0,call:0,msg:0,until:0,tightli:0,more:0,emoticon:0,peopl:[],line:0,notic:0,particular:0,cach:0,must:0,account:[],word:0,room:0,work:0,uniqu:0,dev:0,xhr:0,can:0,lc_messag:0,purpos:0,root:0,blogpost:0,control:0,getsess:[],give:0,challeng:0,share:0,templat:0,critic:0,proprietari:0,explor:0,onlin:0,callbuttonclick:0,occup:0,cours:0,multipl:0,goal:0,turn:0,anoth:0,deniabl:0,write:0,how:0,bosh_serv:[],sid:0,roster:0,verifi:0,perspect:0,updat:0,npm:0,regener:0,product:0,resourc:0,after:0,usabl:0,callback:0,mai:0,underscor:0,data:0,demonstr:0,man:0,repo:0,"short":0,attempt:0,practic:0,third:0,bind:0,secur:0,credenti:0,correspond:0,django:0,caus:0,inform:0,allow:0,parti:0,order:0,talk:0,feedback:[],chatbox:0,chatroomopen:0,over:0,move:0,becaus:0,chatboxopen:0,telephon:0,through:0,reconnect:0,paramet:0,streamlin:0,jid:0,"8147a27e4a7f9b55ffc85c2683f9529a":[],render:0,fit:0,fix:0,better:0,window:0,pend:0,persist:0,hidden:0,main:0,might:0,them:0,"return":0,thei:0,python:0,initi:0,rewriterul:0,instead:0,now:0,jump:0,name:0,edit:0,drop:0,crypto:0,separ:0,achiev:0,ejabberd:0,each:0,mean:0,subset:0,harm:0,chatboxfocus:0,michael:0,individu:0,idea:0,realli:0,"static":0,expect:0,our:0,happen:0,extract:0,special:0,out:0,shown:0,"3rd":0,space:0,open:0,proxy_pass:0,rel:0,internet:0,got:0,plural:0,factori:0,po2json:0,model:0,proxi:0,insid:0,state:0,standard:0,standalon:0,ajax:0,put:0,succesfulli:0,afterward:0,could:0,keep:0,thing:[],perhap:0,imposs:0,first:0,origin:0,softwar:0,directli:0,malici:0,onc:0,hoop:0,lastnam:0,number:0,yourself:0,instruct:0,alreadi:0,done:0,owner:0,custom:0,miss:0,suffic:0,size:0,differ:0,convent:0,top:0,attack:0,messag:0,attach:0,stori:0,jed:0,privaci:0,listen:0,luckili:0,assign:0,consol:0,option:0,tool:0,specifi:0,part:0,pars:0,ogg:0,exactli:0,than:0,serv:0,wide:[],kind:0,bloat:0,provid:0,remov:0,project:0,bridg:0,seriou:0,someothersit:0,browser:0,pre:0,analysi:0,sai:0,saa:0,session_kei:[],ani:0,packag:0,have:0,moffitt:0,element:0,issu:0,min:0,latter:0,yoursit:0,thorough:[],click:0,note:[],also:0,contact:0,take:0,which:0,therefor:0,sure:0,though:0,unsur:0,who:[],reach:0,most:0,plai:0,eavesdropp:0,homepag:0,"class":0,don:0,url:0,clear:0,doe:[],runtim:0,statuschang:0,bower:0,latest:0,xdomainrequest:0,devdepend:0,show:0,german:0,text:0,buddystatuschang:0,server_nam:0,identifi:0,fine:0,find:0,help:0,xml:0,current:0,onli:0,grunt:0,locat:0,execut:0,releas:0,stanza:0,haven:[],busi:0,folder:0,local:0,meant:0,stop:0,soon:0,opkod:[],nativ:0,cannot:0,cryptographi:0,increas:0,neither:0,enabl:0,emb:0,mainspec:0,patch:[],remot:0,contain:0,where:0,wiki:[],chatboxclos:0,stroph:0,see:0,bare:0,result:0,close:0,calendar:0,eventnam:0,best:0,concern:0,jqueri:0,statu:0,said:[],kei:0,inconveni:0,someth:0,written:0,muc:0,between:0,awai:0,experi:0,jasmin:0,across:0,attribut:0,altern:0,perfect:0,appreci:[],extend:0,screen:0,were:0,conjunct:0,job:0,entir:0,otherwis:0,"5e64a30272af065bd72258c565a03f2f":[],group:0,both:0,cor:0,instant:0,shortliv:0,conversej:0,avatar:0,etc:0,instanc:0,grain:0,mani:0,login:0,com:0,load:0,simpli:0,pot:0,solv:0,non:0,deploi:0,carbon:0,assum:0,malleabl:0,backend:0,quit:[],sucessfulli:0,addition:0,rebuild:0,due:0,been:0,compon:0,json:0,much:0,toolbar:0,subscrib:0,modern:0,fire:0,imag:0,xxx:0,rubi:0,convert:0,togeth:0,input:0,otr:0,plausibl:0,present:0,"case":0,myself:[],ident:0,look:0,gnu:0,servic:0,plugin:0,messagesend:0,defin:0,"while":0,abov:[],howev:0,hightlight:0,increment:0,helper:0,readi:0,site:0,itself:0,incom:0,rid:0,pat:0,harsh:0,minim:0,receiv:0,media:0,make:0,format:0,same:0,webpag:0,onconnectfacebook:[],html:0,unexpectedli:0,chatroom:0,document:[],medit:[],complet:0,signon:0,http:0,webserv:0,optim:0,upon:0,someon:[],hand:0,fairli:0,"50kb":0,user:0,uncaught:0,php:0,cssmin:0,recent:0,weibel:0,stateless:0,kept:0,bewar:0,firstli:0,markup:0,well:0,thought:0,person:0,client:0,command:0,wherebi:0,thi:0,choos:0,everyth:0,usual:0,plural_form:0,protocol:0,just:0,when:0,xep:0,file:0,languag:0,previous:0,web:0,fraught:0,xmlhttprequest:0,expos:0,field:0,extra:0,had:0,desktop:0,non_amd:0,versa:0,appli:0,els:0,match:0,build:0,applic:0,secreci:0,read:0,traffic:0,know:0,press:0,xss:0,like:0,specif:0,should:0,reload:0,manual:0,benefit:0,api:0,either:0,choic:0,popular:0,output:0,page:0,candi:0,indefinit:0,facebookconnect:[],revers:0,chatboxtoggl:0,deal:0,nplural:0,some:0,back:0,openfir:0,bottom:0,avoid:0,deploy:0,rewriteengin:0,track:0,allow_otr:0,inject:0,localhost:[],refer:0,somehow:0,plu:0,object:0,msg_receiv:0,host:0,repositori:0,post:0,panel:0,src:0,about:0,firstnam:0,controlbox:0,unfortun:0,stand:0,act:0,own:0,curiou:0,within:0,encod:0,automat:0,right:0,empti:0,wrap:0,chang:0,merg:[],git:0,log:0,wai:0,pictur:0,aren:0,transfer:0,"long":0,happi:0,avail:0,trigger:0,localstorag:0,includ:0,lot:0,suit:0,forward:0,"function":0,head:0,properli:0,form:0,bundl:0,maxim:0,link:0,buddystatusmessagechang:0,synonym:0,cryptograph:0,inlin:0,"true":0,bug:0,congratul:0,requirej:0,info:0,made:0,dirti:[],locale_data:0,possibl:0,whether:0,asynchron:0,below:0,those:0,toggl:0,legwork:0,emit:0,significantli:0,constant:0,creat:0,movim:[],decrypt:0,doesn:[],mode:0,msgmerg:0,exist:0,chat:0,face:0,probabl:0,tab:0,want:0,tip:[],detail:0,gettext:0,statusmessagechang:0,"default":0,valid:0,rememb:0,varieti:[],servernam:0,nice:0,node:0,intend:0,determin:0,duck:0,org:0,consid:0,stai:0,lang:0,longer:0,vice:0,directori:0,virtualhost:0,getjson:0,rule:0,ignor:0,token:0,potenti:0,time:0},objtypes:{},objnames:{},filenames:["index"],titles:["Quickstart (to get a demo up and running)"],objects:{},titleterms:{roster_group:0,multilingu:0,code:0,xmpp:0,session:0,jshint:0,depend:0,singl:0,configur:0,apach:0,add:0,anim:0,get:0,end:0,amd:0,nginx:0,facebook:[],front:0,requir:0,introduct:0,troubleshoot:0,authent:0,server:0,play_sound:0,bad:0,integr:[],debug:0,side:0,domain:0,set:[],habit:0,xhr_user_search_url:0,connect:0,pass:0,fullnam:0,event:0,librari:0,variabl:0,what:0,storag:0,xhr_custom_statu:0,content:0,show_only_online_us:0,use_otr_by_default:0,overcom:0,method:0,run:0,hide_muc_serv:0,javascript:0,visible_toolbar_button:0,bosh:0,xhr_custom_status_url:0,cache_otr_kei:0,manag:0,solut:0,restrict:0,auto_list_room:0,instal:0,jabber:0,your:0,script:0,support:0,submit:0,recommend:0,type:0,show_controlbox_by_default:0,notif:0,minifi:0,translat:0,i18n:0,sound:0,pull:0,bugfix:0,exampl:0,record:0,error:0,auto_reconnect:0,problem:0,featur:0,quickstart:0,forward_messag:0,demo:0,auto_subscrib:0,tag:0,tabl:0,need:0,check:0,bosh_service_url:0,prebind:0,develop:0,message_carbon:0,minif:0,cross:0,other:0,test:0,expose_rid_and_sid:0,you:0,css:0,befor:0,allow_contact_request:0,encrypt:0,xhr_user_search:0,off:0,use_vcard:0,request:0,allow_muc:0,without:0,conflict:0}})