Xivo Carnet d'adresse : Différence entre versions

De SLM - MediaWiki
 
(Une révision intermédiaire par le même utilisateur non affichée)
Ligne 1 : Ligne 1 :
== M900 ==
+
== Présentation ==
=== Présentation ===
 
 
L'annuaire Wazo n'est pas pris en charge sur les bornes M900 en raison d'une URL Trop grande.
 
L'annuaire Wazo n'est pas pris en charge sur les bornes M900 en raison d'une URL Trop grande.
  
Ligne 12 : Ligne 11 :
  
 
Environnement de test:
 
Environnement de test:
Wazo version: 23.1
+
* Wazo version: 23.1
Borne M900 version: 530.2
+
* Borne M900 version: 530.2
M85 version: 530.2
+
* M85 version: 530.2
  
=== M900 - Phonebook ===
+
== M900 - Phonebook ==
 
Les bornes M900 peuvent gérer le répertoire distant de 4manières.
 
Les bornes M900 peuvent gérer le répertoire distant de 4manières.
 
* Local
 
* Local
Ligne 23 : Ligne 22 :
 
* XML MiniBrowser Server
 
* XML MiniBrowser Server
  
==== Local ====
+
=== Local ===
 
Ce mode télécharge le répertoire à une intervalle prédéfini et le stock dans sa mémoire.
 
Ce mode télécharge le répertoire à une intervalle prédéfini et le stock dans sa mémoire.
 
les téléphones récupère le répertoire sur la borne.
 
les téléphones récupère le répertoire sur la borne.
Ligne 29 : Ligne 28 :
 
Documentation: https://service.snom.com/display/wiki/How+to+use+the+Local+Central+Directory+on+M300%2C+M700%2C+M900+DECT+base
 
Documentation: https://service.snom.com/display/wiki/How+to+use+the+Local+Central+Directory+on+M300%2C+M700%2C+M900+DECT+base
  
==== LDAP ====
+
=== LDAP ===
 
L'annuaire central du serveur LDAP permet de configurer tous les paramètres spécifiques à LDAP afin d'effectuer des recherches sur un serveur LDAP
 
L'annuaire central du serveur LDAP permet de configurer tous les paramètres spécifiques à LDAP afin d'effectuer des recherches sur un serveur LDAP
  
==== XML Server ====
+
=== XML Server ===
 
Le choix XML server est  spécifique à Broadsoft , ce type de carnet d'adresses utilise une API propriétaire Broadsoft nommée XSI pour accéder aux répertoires.
 
Le choix XML server est  spécifique à Broadsoft , ce type de carnet d'adresses utilise une API propriétaire Broadsoft nommée XSI pour accéder aux répertoires.
  
==== XML MiniBrowser Server ====
+
=== XML MiniBrowser Server ===
 
Dans ce mode, rien n'est stocké sur la borne,
 
Dans ce mode, rien n'est stocké sur la borne,
  
 
Quand un téléphone souhaite accéder à l'annuaire, il fait une requête http vers le serveur distant et télécharge le répertoire.
 
Quand un téléphone souhaite accéder à l'annuaire, il fait une requête http vers le serveur distant et télécharge le répertoire.
  
==== Choix du type de serveur ====
+
=== Choix du type de serveur ===
 
De base, wazo est fait pour fonctionner avec XML Minibrowser Server, mais lors de mes différents test j'ai pu constater qu'un annuaire de plus de 160 contacts n'était pas accepté.
 
De base, wazo est fait pour fonctionner avec XML Minibrowser Server, mais lors de mes différents test j'ai pu constater qu'un annuaire de plus de 160 contacts n'était pas accepté.
  
 
Le mode Local n'ayant pas cette limitation nous adapteront le fichier xml afin de lui convenir.
 
Le mode Local n'ayant pas cette limitation nous adapteront le fichier xml afin de lui convenir.
  
===Configuration du serveur===
+
==Configuration du serveur==
==== VM ====
+
=== VM ===
 
Dans mon cas, je suis parti avec une VM:
 
Dans mon cas, je suis parti avec une VM:
 
* Stockage: 4Go
 
* Stockage: 4Go
Ligne 53 : Ligne 52 :
 
Sur laquelle j'ai installé une Debian 11.6 minimal avec serveur web (apache2)
 
Sur laquelle j'ai installé une Debian 11.6 minimal avec serveur web (apache2)
  
==== Script ====
+
=== Script ===
 
Nous allons installer 2 scripts
 
Nous allons installer 2 scripts
 
# Télécharger les répertoires
 
# Télécharger les répertoires
Ligne 60 : Ligne 59 :
 
  mkdir /etc/phonebook
 
  mkdir /etc/phonebook
  
===== Télécharger les répertoires =====
+
==== Télécharger les répertoires ====
 
  vi /etc/phonebook/download.sh
 
  vi /etc/phonebook/download.sh
  
Ligne 73 : Ligne 72 :
 
wget -O /var/www/html/phonebook-nfr01.xml "http://wazo01.telecom-ci.net:9498/0.1/directories/lookup/default/snom?xivo_user_uuid=e5d6a27c-fa64-4a7b-9939-53cfd8018cdf&term"</nowiki>
 
wget -O /var/www/html/phonebook-nfr01.xml "http://wazo01.telecom-ci.net:9498/0.1/directories/lookup/default/snom?xivo_user_uuid=e5d6a27c-fa64-4a7b-9939-53cfd8018cdf&term"</nowiki>
  
===== Adapter les répertoires =====
+
Donner les droits d'exécution
 +
chmod +x /etc/phonebook/download.sh
 +
==== Adapter les répertoires ====
 
  vi /etc/phonebook/custom.sh
 
  vi /etc/phonebook/custom.sh
  
Ligne 98 : Ligne 99 :
 
sed -i 's/Telephone>/number>/' /var/www/html/phonebook-*</nowiki>
 
sed -i 's/Telephone>/number>/' /var/www/html/phonebook-*</nowiki>
  
===== Planifier l'exécution des scripts =====
+
Donner les droits d'exécution
 +
chmod +x /etc/phonebook/custom.sh
 +
 
 +
==== Planifier l'exécution des scripts ====
 
Dans l'exemple ci-dessous les répertoires seront mis à jours toute les 5 minutes
 
Dans l'exemple ci-dessous les répertoires seront mis à jours toute les 5 minutes
 
  crontab -e
 
  crontab -e
Ligne 108 : Ligne 112 :
 
*/5 * * * * sh /etc/phonebook/custom.sh  > /dev/null
 
*/5 * * * * sh /etc/phonebook/custom.sh  > /dev/null
  
=== Configuration des bornes snom ===
+
== Configuration des bornes snom ==
==== Méthode Manuel ====
+
=== Méthode Manuel ===
 
Voici les paramètres à configurer sur la borne maitre afin que la borne à télécharger son annuaire toute les 5minutes
 
Voici les paramètres à configurer sur la borne maitre afin que la borne à télécharger son annuaire toute les 5minutes
  
 
Attention, si le provisionning est activé avec une configuration différente, les paramètres seront écrasés.
 
Attention, si le provisionning est activé avec une configuration différente, les paramètres seront écrasés.
 +
 +
PI: Le bouton "charger" permet de vider le répertoire actuel
  
 
[[Fichier:wazo-m900snom-manuel.jpg]]
 
[[Fichier:wazo-m900snom-manuel.jpg]]
  
==== Autoprovisionning Wazo ====
+
=== Autoprovisionning Wazo ===
  
 
La méthode "propre" est de créer une template custom pour la borne M900
 
La méthode "propre" est de créer une template custom pour la borne M900
Ligne 205 : Ligne 211 :
  
 
Une fois la borne autoprovisionner, vous devrez vous connecter sur la borne maitre et renseigner le nom du fichier xml (phonebook-nomduclient.xml)
 
Une fois la borne autoprovisionner, vous devrez vous connecter sur la borne maitre et renseigner le nom du fichier xml (phonebook-nomduclient.xml)
 
 
  
 
[[Fichier:wazo-m900snom-auto.jpg]]
 
[[Fichier:wazo-m900snom-auto.jpg]]

Version actuelle datée du 3 avril 2023 à 08:27

Présentation

L'annuaire Wazo n'est pas pris en charge sur les bornes M900 en raison d'une URL Trop grande.

Wazo-m900snom-limitation.jpg

Après vérification, la raison communiqué par l'éditeur wazo est exact :).

J'ai tenté de contourner cette limitation via une redirection 301, mais sans succès.

La seconde approche, qui elle fonctionne, est de télécharger ce répertoire et de le mettre à disposition sur un autre serveur avec une URL de taille accepté par les bornes.

Environnement de test:

  • Wazo version: 23.1
  • Borne M900 version: 530.2
  • M85 version: 530.2

M900 - Phonebook

Les bornes M900 peuvent gérer le répertoire distant de 4manières.

  • Local
  • LDAP
  • XML Server
  • XML MiniBrowser Server

Local

Ce mode télécharge le répertoire à une intervalle prédéfini et le stock dans sa mémoire. les téléphones récupère le répertoire sur la borne.

Documentation: https://service.snom.com/display/wiki/How+to+use+the+Local+Central+Directory+on+M300%2C+M700%2C+M900+DECT+base

LDAP

L'annuaire central du serveur LDAP permet de configurer tous les paramètres spécifiques à LDAP afin d'effectuer des recherches sur un serveur LDAP

XML Server

Le choix XML server est spécifique à Broadsoft , ce type de carnet d'adresses utilise une API propriétaire Broadsoft nommée XSI pour accéder aux répertoires.

XML MiniBrowser Server

Dans ce mode, rien n'est stocké sur la borne,

Quand un téléphone souhaite accéder à l'annuaire, il fait une requête http vers le serveur distant et télécharge le répertoire.

Choix du type de serveur

De base, wazo est fait pour fonctionner avec XML Minibrowser Server, mais lors de mes différents test j'ai pu constater qu'un annuaire de plus de 160 contacts n'était pas accepté.

Le mode Local n'ayant pas cette limitation nous adapteront le fichier xml afin de lui convenir.

Configuration du serveur

VM

Dans mon cas, je suis parti avec une VM:

  • Stockage: 4Go
  • Rem: 1024Mo

Sur laquelle j'ai installé une Debian 11.6 minimal avec serveur web (apache2)

Script

Nous allons installer 2 scripts

  1. Télécharger les répertoires
  2. Adapter les répertoires télécharger
mkdir /etc/phonebook

Télécharger les répertoires

vi /etc/phonebook/download.sh
#!/bin/bash
# Scrypt lancé par crontab

###Template (supprimer le # de la ligne wget)
# Nom du client
# wget -O /var/www/html/phonebook-nomduclient.xml "url ou chercher le répertoire wazo"

# TCI NFR01
wget -O /var/www/html/phonebook-nfr01.xml "http://wazo01.telecom-ci.net:9498/0.1/directories/lookup/default/snom?xivo_user_uuid=e5d6a27c-fa64-4a7b-9939-53cfd8018cdf&term"

Donner les droits d'exécution

chmod +x /etc/phonebook/download.sh

Adapter les répertoires

vi /etc/phonebook/custom.sh
#!/bin/bash
# Scrypt lancé par crontab

sleep 5

#Remplacer les caractères non apprecié
sed -i 's/'/ /' /var/www/html/phonebook-*
sed -i 'y/_àçéèêëîïôöùüÂÇÉÈÊËÎÏÔÖÙÜ/ aceeeeiioouuACEEEEIIOOUU/' /var/www/html/phonebook-*

## Adapter au format Tbook
sed -i 's#/SnomIPPhoneDirectory#/tbook#' /var/www/html/phonebook-*
sed -i 's/SnomIPPhoneDirectory/tbook complete="true"/' /var/www/html/phonebook-*

sed -i 's#/DirectoryEntry#/item#' /var/www/html/phonebook-*
sed -i 's/DirectoryEntry/item context="active" type="colleagues"/' /var/www/html/phonebook-*

sed -i 's#/Name>#/name>#' /var/www/html/phonebook-*
sed -i 's/Name>/name>/' /var/www/html/phonebook-*

sed -i 's#/Telephone>#/number>#' /var/www/html/phonebook-*
sed -i 's/Telephone>/number>/' /var/www/html/phonebook-*

Donner les droits d'exécution

chmod +x /etc/phonebook/custom.sh

Planifier l'exécution des scripts

Dans l'exemple ci-dessous les répertoires seront mis à jours toute les 5 minutes

crontab -e
  1. Télécharger les répertoires
  • /5 * * * * sh /etc/phonebook/download.sh > /dev/null
  1. Adapter les répertoires
  • /5 * * * * sh /etc/phonebook/custom.sh > /dev/null

Configuration des bornes snom

Méthode Manuel

Voici les paramètres à configurer sur la borne maitre afin que la borne à télécharger son annuaire toute les 5minutes

Attention, si le provisionning est activé avec une configuration différente, les paramètres seront écrasés.

PI: Le bouton "charger" permet de vider le répertoire actuel

Wazo-m900snom-manuel.jpg

Autoprovisionning Wazo

La méthode "propre" est de créer une template custom pour la borne M900

ci dessous un lien vers la documentation wazo:

https://wazo-platform.org/documentation/overview/provisioning-admin.html

Les champs nous intéressant sont: en ligne 56 le type de repertoire (O = Local, 1 LDAP, 2 XML Server, 3 XML browser server)

<phonebook_server_location perm="R">0</phonebook_server_location>

en ligne 57 l'adresse du serveur

<phonebook_location perm="R">https://phonebook.slemoal.fr/</phonebook_location>

le nouveau fichier M900.tpl devra ressembler à celui la:

<?xml version="1.0" encoding="utf-8" ?>
<settings>
    <phone-settings>
    {%- if vlan_enabled %}
        <vlan_id>{{ vlan_id }}</vlan_id>
        <vlan_qos>{{ vlan_priority|d('0') }}</vlan_qos>
    {%- else %}
        <vlan_id></vlan_id>
        <vlan_qos></vlan_qos>
    {%- endif %}

        <codec_tos>184</codec_tos>
        <codec_priority_list perm="R">pcma,pcmu,g722,g729,telephone-event</codec_priority_list>
        <signaling_tos>184</signaling_tos>

    {%- if admin_username %}
        <http_user>{{ admin_username|e }}</http_user>
    {%- else %}
        <http_user>guest</http_user>
    {%- endif %}

    {%- if admin_password %}
        <admin_mode_password>{{ admin_password|e }}</admin_mode_password>
        <http_pass>{{ admin_password|e }}</http_pass>
    {%- else %}
        <admin_mode_password>12345</admin_mode_password>
        <http_pass>guest</http_pass>
    {%- endif %}

    {%- if ntp_enabled %}
        <ntp_server>{{ ntp_ip }}</ntp_server>
    {%- else %}
        <ntp_server></ntp_server>
    {%- endif %}

    {%- for server in XX_servers.values() %}
        <srv_sip_server_alias idx="{{ server['id'] }}">Wazo {{ server['id'] }}</srv_sip_server_alias>
        <user_host idx="{{ server['id'] }}">{{ server['proxy_ip'] }}</user_host>
        <srv_srtp_auth idx="{{ server['id'] }}">off</srv_srtp_auth>
        <user_dtmf_info idx="{{ server['id'] }}">{{ server['dtmf_mode'] }}</user_dtmf_info>
    {%- endfor %}

    {%- for line_no, line in sip_lines.items() %}
        <user_active idx="{{ line_no }}">on</user_active>
        <user_name idx="{{ line_no }}">{{ line['username']|e }}</user_name>
        <user_pname idx="{{ line_no }}">{{ line['auth_username']|e }}</user_pname>
        <user_pass idx="{{ line_no }}">{{ line['password']|e }}</user_pass>
        <user_realname idx="{{ line_no }}">{{ line['display_name']|e }}</user_realname>
        <user_mailbox idx="{{ line_no }}">{{ line['voicemail'] }}</user_mailbox>
        <subscr_sip_hs_idx idx="{{ line_no }}">{{ line_no }}</subscr_sip_hs_idx>
        <subscr_dect_ac_code idx="{{ line_no }}">{{ "{0:0>4}".format(line_no) }}</subscr_dect_ac_code>
        <subscr_sip_ua_data_server_id idx="{{ line_no }}">{{ line['XX_server_id'] }}</subscr_sip_ua_data_server_id>
        <codec_priority_list idx="{{ line_no }}" perm="R">pcma,pcmu,g722,g729,telephone-event</codec_priority_list>
    {%- endfor %}

    {% if XX_xivo_phonebook_url -%}
        <phonebook_server_location perm="R">0</phonebook_server_location>
        <phonebook_location perm="R">https://phonebook.slemoal.fr/</phonebook_location>
    {% endif -%}

    {%- if XX_lang %}
        <language>{{ XX_lang[0] }}</language>
        <web_language>{{ XX_lang[0] }}</web_language>
        <tone_scheme>{{ XX_lang[1] }}</tone_scheme>
    {%- endif %}

    {% block settings_suffix %}{% endblock %}
    </phone-settings>
</settings>

Une fois la borne autoprovisionner, vous devrez vous connecter sur la borne maitre et renseigner le nom du fichier xml (phonebook-nomduclient.xml)

Wazo-m900snom-auto.jpg