# Stun and Ejabberd monitoring

# Ejabberd API

## Overview

The Ejabberd API provides RESTful endpoints for managing and monitoring XMPP server operations within CONTROL. All requests require HTTP basic authentication and use JSON for request/response payloads.

## Authentication

All API endpoints require basic authentication using admin credentials:

- **Username**: `root@control-xmpp-dev.zequenze.com`
- **Password**: Your admin API token
- **Base URL**: `https://127.0.0.1:5443/api/`

## API Endpoints

### Get Registered Stats Hosts

Retrieves statistics for registered hosts, including online user counts.

**Endpoint**: `/stats_host`

**Request Parameters**:
- `name` - The statistic name (e.g., "onlineusers")
- `host` - The XMPP host domain

**Example**:
```bash
curl -k --basic --user root@control-xmpp-dev.zequenze.com:6N3Zne3ByoSCnZ3d46Gerf452nxLBcNp \
     -H 'Content-Type: application/json' \
     -d '{ "name": "onlineusers", "host": "control-xmpp-dev.zequenze.com" }' \
     'https://127.0.0.1:5443/api/stats_host'
```

### Get Connected Users

Returns a list of all currently connected users.

**Endpoint**: `/connected_users`

**Example**:
```bash
curl -k --basic --user root@control-xmpp-dev.zequenze.com:6N3Zne3ByoSCnZ3d46Gerf452nxLBcNp \
     'https://127.0.0.1:5443/api/connected_users'
```

### Get Registered Users

Retrieves all registered users for a specific host.

**Endpoint**: `/registered_users`

**Request Parameters**:
- `host` - The XMPP host domain

**Example**:
```bash
curl -k --basic --user root@control-xmpp-dev.zequenze.com:6N3Zne3ByoSCnZ3d46Gerf452nxLBcNp \
     -H 'Content-Type: application/json' \
     -d '{ "host": "control-xmpp-dev.zequenze.com" }' \
     'https://127.0.0.1:5443/api/registered_users'
```

### Get Connected Users Info

Returns detailed information about all connected users.

**Endpoint**: `/connected_users_info`

**Example**:
```bash
curl -k --basic --user root@control-xmpp-dev.zequenze.com:6N3Zne3ByoSCnZ3d46Gerf452nxLBcNp \
     'https://127.0.0.1:5443/api/connected_users_info'
```

### Get User Presence

Retrieves the presence status for a specific user.

**Endpoint**: `/get_presence`

**Request Parameters**:
- `user` - The username
- `host` - The XMPP host domain

**Example**:
```bash
curl -k --basic --user root@control-xmpp-dev.zequenze.com:6N3Zne3ByoSCnZ3d46Gerf452nxLBcNp \
     -H 'Content-Type: application/json' \
     -d '{ "user": "hy400219100000286", "host": "control-xmpp-dev.zequenze.com" }' \
     'https://127.0.0.1:5443/api/get_presence'
```

### Get User Session Info

Returns detailed session information for a specific user.

**Endpoint**: `/user_sessions_info`

**Request Parameters**:
- `user` - The username
- `host` - The XMPP host domain

**Example**:
```bash
curl -k --basic --user root@control-xmpp-dev.zequenze.com:6N3Zne3ByoSCnZ3d46Gerf452nxLBcNp \
     -H 'Content-Type: application/json' \
     -d '{ "user": "hy400219100000286", "host": "control-xmpp-dev.zequenze.com" }' \
     'https://127.0.0.1:5443/api/user_sessions_info'
```

### Get User Resources

Retrieves all active resources (connections) for a specific user.

**Endpoint**: `/user_resources`

**Request Parameters**:
- `user` - The username
- `host` - The XMPP host domain

**Example**:
```bash
curl -k --basic --user root@control-xmpp-dev.zequenze.com:6N3Zne3ByoSCnZ3d46Gerf452nxLBcNp \
     -H 'Content-Type: application/json' \
     -d '{ "user": "hy400219100000286", "host": "control-xmpp-dev.zequenze.com" }' \
     'https://127.0.0.1:5443/api/user_resources'
```