Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Getting started page #766

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file removed static/images/docs/Technical_Layers_2019_V3.png
Binary file not shown.
Binary file added static/images/docs/Technical_Layers_2019_V3.webp
Binary file not shown.
2 changes: 1 addition & 1 deletion website/docs/api/_category_.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"label": "API",
"position": 2,
"position": 5,
"link": {
"type": "generated-index",
"description": "Learn about the many APIs available."
Expand Down
2 changes: 1 addition & 1 deletion website/docs/contribute/_category_.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"label": "Contribute",
"position": 4,
"position": 6,
"link": {
"type": "generated-index",
"description": "There are many ways to contribute to the project. Find out how you can help!"
Expand Down
146 changes: 146 additions & 0 deletions website/docs/getting-started.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
---
sidebar_position: 2
id: getting-started
title: Getting started
description: Getting Started
slug: /getting-started
---

## Requirements

### Minimum

Here are the system minimum requirements if you just want to try out a Wazo Platform instance:

- CPU: 1 CPU is enough for a test server
- Memory: 2 GB of memory is a tight minimum for a test server
- Storage: 8 GB is comfortable for a test server, except if you plan to use large firmware files
for physical phones.

### Production

Here are the expected resources for a small production installation of around 50 users:

- 2 CPU minimum
- 4 GB RAM minimum
- 50 GB storage minimum

## Procedure

To install the Unified Communication use case in an all-in-one setup, do the following steps:

1. Install a Debian 11 Bullseye system with a default locale with an UTF-8 charset.
2. Run the following commands as root on the Debian system to provision sudo, git and Ansible:

```shell
apt update
apt install -yq sudo git ansible curl
```

**Note:** Ansible is a suite of software tools that enables infrastructure as code. It is
open-source and the suite includes software provisioning, configuration management, and
application deployment functionality. https://en.wikipedia.org/wiki/Ansible_(software)

3. Extract the Wazo Platform installer

```shell
git clone https://github.com/wazo-platform/wazo-ansible.git
cd wazo-ansible
```

4. (optional) By default, Wazo Platform will install the development version. To install the latest
stable version

```shell
ansible_tag=wazo-$(curl https://mirror.wazo.community/version/stable)
git checkout $ansible_tag
```

5. Install the Wazo Platform installer dependency

```shell
ansible-galaxy install -r requirements-postgresql.yml
```

6. Edit the file `inventories/uc-engine` to add your preferences and passwords. The various
variables that can be customized are described at https://github.com/wazo-platform/wazo-ansible/blob/master/README.md#variables

By default, Wazo Platform will install the development version. To install the latest stable
version, activate the following settings in `inventories/uc-engine`:

```ini
[uc_engine:vars]
wazo_distribution = pelican-bullseye
wazo_distribution_upgrade = pelican-bullseye
```

If you want to install the web user interface, activate the following in your
`inventories/uc-engine`:

```ini
[uc_ui:children]
uc_engine_host
```

The following variables allow you to create the `root` account at installation time, to be able
to use the web user interface and an API user to be able to use the REST APIs:

```ini
[uc_engine:vars]
engine_api_configure_wizard = true
engine_api_root_password = <YOUR_ROOT_PASSWORD>
api_client_name = <YOUR_API_USERNAME>
api_client_password = <YOUR_API_PASSWORD>
```

Note: this API user will only have permissions for configuration REST API (wazo-confd).

7. Launch the installation by running the following command:

```shell
ansible-playbook -i inventories/uc-engine uc-engine.yml
```

8. Once the installation completed, execute the following command to verify that all the Wazo
services (wazo-plugind, wazo-webhookd, ...) are up and running:
```shell
wazo-service status
```

## Use the REST API

You may now use the REST API from outside your system (here `wazo.example.com`).

1. Get an authentication token for 1 hour:

Execute from the Debian system:

```shell
wazo-auth-cli token create --auth-user <YOUR_API_USERNAME> --auth-password <YOUR_API_PASSWORD>
```

Or with `curl` from anywhere:

```shell
curl -k -X POST -u <YOUR_API_USERNAME>:<YOUR_API_PASSWORD> -H 'Content-Type: application/json' -d '{"expiration": 3600}' https://wazo.example.com/api/auth/0.1/token
```

2. Use any REST API you want.

Note: You must replace `<YOUR_TOKEN>` with the authentication token

To obtain the version of Wazo:

```shell
curl -k -X GET -H 'X-Auth-Token: <YOUR_TOKEN>' -H 'Content-Type: application/json' https://wazo.example.com/api/confd/1.1/infos
```

To list the telephony users configured on the system:

```shell
curl -k -X GET -H 'X-Auth-Token: <YOUR_TOKEN>' -H 'Content-Type: application/json' https://wazo.example.com/api/confd/1.1/users
```

## Optional post-install steps

You may now follow the [optional post-install steps](post-installation).
30 changes: 27 additions & 3 deletions website/docs/intro.md → website/docs/intro.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,17 @@ description: Introducing Wazo Platform
slug: /intro
---

import useBaseUrl from '@docusaurus/useBaseUrl';
import ThemedImage from '@theme/ThemedImage';

# Introduction

Wazo Platform allows developers to build solutions that fit any business and technical
requirements. Fully open source and based on open Source components, Wazo Platform aims to
provide all the building blocks to create a full-featured, carrier-grade, Programmable
Telecom Infrastructure.

Wazo Platform is an Open Source project allowing to <strong>build carrier grade programmable IP communication infrastructures</strong>.
This Open Source project allows you to <strong>build carrier grade programmable IP communication infrastructures</strong>.
You can pick and choose the components you need to build your infrastructures with class 5 features like
<strong>audio and video calls</strong>, chat, call centers, conferences, voicemail, etc.

Expand All @@ -36,11 +39,32 @@ Wazo Platform is defined by 4 layers:
- Services and Debian: [wazo-auth](./wazo-auth), [wazo-webhookd](./wazo-webhookd), [wazo-websocketd](./wazo-websocketd), nginx, rabbitmq, postgresql

<br/>
![Technical layers](../static/images/docs/Technical_Layers_2019_V3.png)

{/* @TODO: make this image readable on dark theme */}
<ThemedImage
alt="Docusaurus themed image"
sources={{
light: useBaseUrl('images/docs/Technical_Layers_2019_V3.webp'),
dark: useBaseUrl('images/docs/Technical_Layers_2019_V3.webp'),
}}
/>

## History

Wazo is a fork of XiVO, which was created in 2005 in France by Sylvain Boily and the company
Proformatique. In 2010, Proformatique merged with Avencall, and Avencall acquired the copyright and
trademark of XiVO.

Sylvain then moved to Quebec City and founded Proformatique, Inc. where the XiVO core development
team worked from 2011 until November 2016.

In November 2016, Proformatique Inc. was shut down and the development team
[forked XiVO to create Wazo](/blog/introducing-wazo). Its first release, Wazo 16.16, was released in
December 2016.

## License

You may copy, distribute and modify the software as long as you track changes/dates in source files.
Any modifications to our software including (via compiler) GPL-licensed code must also be made available under the GPL along with build & install instructions.

More details at [tldrlegal.com](<https://tldrlegal.com/license/gnu-general-public-license-v3-(gpl-3)>)
More details at [tldrlegal.com](https://tldrlegal.com/license/gnu-general-public-license-v3-(gpl-3))
99 changes: 99 additions & 0 deletions website/docs/post-installation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
---
sidebar_position: 3
id: post-installation
title: Post Installation
description: Post installation
slug: /post-installation
---

Here are a few configuration options that are commonly changed once the installation is completed.
Please note that these changes are optional.

## Display called name on internal calls

When you call internally another phone of the system you would like your phone to display the name
of the called person (instead of the dialed number only).

To achieve this you must enable the `trust_id_inbound` option of you SIP endpoint. This can be
achived on all endpoints on a tenant by modifying the `global` SIP template for that tenant:

- `PUT /endpoints/sip/templates/<global_template_uuid>`

```json
{
...
"endpoint_section_options": [
["trust_id_inbound", "yes"],
["send_rpid", "yes"]
],
...
}
```

## Incoming caller number display {#callerid-num-normalization}

The caller ID number on incoming calls depends on what is sent by your operator. You can modify it
via the file `/etc/xivo/asterisk/xivo_in_callerid.conf`.

**Note**: The reverse directory lookup use the caller ID number **after** it has been modified by
`xivo_in_callerid.conf`

### Examples:

- If you use a prefix to dial outgoing numbers (like a 0) you should add a 0 to all the `add =`
sections,
- You may want to display incoming numbers in E.164 format. For example, you can change the
`[national1]` section to:

```ini
callerid = ^0[1-9]\d{8}$
strip = 1
add = +33
```

To enable the changes you have to restart wazo-agid:

```shell
service wazo-agid restart
```

## Time and date

- Configure your locale and default time zone device template with `wazo-provd` endpoint
`/provd/cfg_mgr/config` by editing the default template
- If needed, reconfigure your timezone for the system:

```shell
dpkg-reconfigure tzdata
```

## Codecs

You should also select default codecs. It obviously depends on the telco links, the country, the
phones, the usage, etc. Here is a typical example for Europe (the main goal in this example is to
select _only_ `alaw` instead of both `alaw` and `ulaw` by default):

- Modify the `global` PJSIP template for you tenant

`PUT /endpoints/sip/templates/<global_template_uuid>`

```json
{
...
"endpoint_section_options": [
["allow", "!all,alaw,g722,g729,h264"],
...
],
...
}
```

- `PUT /asterisk/iax/general`

```json
{
...
"allow": "alaw,g722,g729,h264",
...
}
```
2 changes: 1 addition & 1 deletion website/docs/tutorials/_category_.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"label": "Tutorials",
"position": 3,
"position": 5,
"link": {
"type": "generated-index",
"description": "Learn how to leverage the power of the platform to build your own applications."
Expand Down
2 changes: 1 addition & 1 deletion website/src/pages/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ function HomepageHeader() {
<div className={styles.buttons}>
<Link
className="button button--secondary button--lg"
to="/docs/intro"
to="/docs/getting-started"
>
Get started
</Link>
Expand Down