# XMPP client daemon

## XMPP

### XMPP Core

Ensures granted subscription before delivering messages

### XEPs

#### XEP-0030: Service Discovery

Answers to `http://jabber.org/protocol/disco#info` query.
Answers to `http://jabber.org/protocol/disco#items` query.

At start send self-discovery to server.

#### XEP-0045: Multi-User Chat

Enters to all MUC in `account.chatrooms` at start.

#### XEP-0050: Ad-Hoc Commands

Answers empty commands list. (Awaiting for implementation in xmpp_parser).

#### XEP-0092: Software Version

Answers version.

#### XEP-0163: Personal Eventing Protocol

Checks if own server supports it.

#### XEP-0199: XMPP Ping

Sends ping each `account.ping` seconds to XMPP server.

Sends ping to any JID.

Answers to incoming pings.

#### XEP-0203: Delayed Delivery

Ignores delayed messages.

## HTTP API

### Sending messages

```
curl http://localhost:8083/ -H "X-XMPP-To: some@domain.org" -d "Test"
```

### Sending pings

```
curl http://localhost:8083/ping -H "X-XMPP-To: some@domain.org"
```

### Sending messages to MUC

```
curl http://localhost:8083/ -H "X-XMPP-Muc: smac" -d "Test"
```

### Setting status

```
curl http://localhost:8083/ -H "X-XMPP-Presence: chat" -d "Test"
```

### Setting status to MUC

```
curl http://localhost:8083/ -H "X-XMPP-Muc: smac" -H "X-XMPP-Presence: chat" -d "Test"
```