08 Nov 2023, 00:00

Changer le numéro des partitions

MBR

En cas de suppression puis création de partition en milieu de disque, il peut arriver que les partitions ne soient plus numérotées dans l’ordre de leur positionnement sur le disque.

Bien que non gênante en fonctionnement, cette situation diminue la lisibilité du disque et augmente les risques de confusion lors de manipulations de partitions.

Pour remédier à ceci, on peut renuméroter les partitions dans leur ordre logique.

Pour les partitions MBR, il faut le faire à la main : on dumpe la table de partition, on la modifie, puis on la réécrit sur le disque.

dev=/dev/sdX

sudo sfdisk --dump ${dev} > sdX.bkp

nano sdX.bkp
# changer le chiffre

sudo sfdisk -f {dev} < sdX.bkp
# débrancher/rebrancher disque (ou reboot) pour forcer la relecture de la table de partition

Source

GPT

Pour les partitions GPT, voir cet article

17 Oct 2023, 00:00

Notes en vrac sur l'USB

Récap

USB 2.0 : 480Mbps théorique, soit ~ 60Mo/s théorique (souvent 30-45 en réalité)
4 broches

USB 3.0 : 5Gbps théorique, mais 4Gpbs “théoriques réels” car codage 8b/10b, donc 500Mo/s théoriques (en pratique ~450 Mo/s)
9 broches
3.0 = 3.1 Gen 1 = 3.2 Gen 1x1 = SS = SS-5

3.1 = 3.1 Gen 2 = 3.2 Gen 2x1 = SS-10 ; 10Gbps théoriques

3.2 = 3.2 Gen 2x2 = SS-20 ; 20 Gbps théoriques

USB 4.0 = SS-40 ; 40Gbps théoriques ; n’existe qu’en USB-C.

Identifier vitesse théorique d’un périph de stockage sous Linux

On peut bien sûr mesurer les débits via un transfert de fichier, ou fio, mais on peut aussi constater directement le débit via lsusb. Pour ceci, il faut déjà identifier l’USB-ID d’un matériel ; par exemple avec un boitier SATA-USB3 Orico, un lsusb nous donne :
Bus 003 Device 032: ID 152d:0576 JMicron Technology Corp. / JMicron USA Technology Corp. Gen1 SATA 6Gb/s Bridge

C’est donc l’identifiant 152d:0576 pour ce matériel. On le stocke :
usbid=152d:0576

On peut alors lancer lsusb -tv pour avoir l’arbre USB détaillé. La vitesse théorique d’un périphérique est indiquée en fin de ligne. L’USB-ID du matériel étant indiqué à la ligne suivante, on peut filter avec grep en récupérant la ligne précédente ainsi :
lsusb -tv | grep ${usbid} -B 1

Si on veut tester différents branchements sans toucher au clavier, on peut lancer un monitoring automatique avec :
watch -n 0.5 "lsusb -tv | grep ${usbid} -B 1"

On peut monitorer plusieurs appareils avec une commande du genre
watch -n 0.5 "lsusb -tv | grep -e ${usb1} -e ${usb2} -e ${usb3} -B 1"

Connecteurs et USB-C

Il y’a plusieurs connecteurs, USB-A, USB-B, mini-B, micro-B, etc. Les câbles peuvent être équipés de différents nombres de broches en fonction de leur utilisation prévue (courant uniquement, wattage possible, courant + données, USB-2, USB-3 etc)

L’USB-C, au même titre que les autres, est simplement un format physique. Ses possibilités théoriques sont + étendues, mais non garanties. Il est possible d’avoir un câble C <-> C qui ne fasse que le transfert de courant sans données, ou bien qui ne fonctionne qu’en USB-2. Un connecteur USB-C peut également faire transiter des signaux non-USB (DisplayPort, HDMI, jack, électricité jusqu’à 240W).
Un cable USB-C possède (jusqu’à ?) 24 broches. Contrairement à l’USB-A, il ne me semble pas possible d’identifier visuellement le capacités d’un câble USB-C.

On peut également avoir des adaptateurs USB-C vers un autre format. Les capacités de ceux-ci dépendent également de leur conception. Il est possible d’avoir un adaptateur C <-> A qui soit limité à la vitesse USB2, voire qui ne fasse que le courant.

Dans le cas d’adaptateurs C <-> A en USB3, il est possible que les performances dépendent du sens d’insertion de l’USB-C. Dans mon expérience, pour bénéficier de l’USB-3, il faut que l’ensemble de la chaîne respecte le sens “classique”, à savoir la partie pleine du connecteur mâle vers le bas. Si on renverse un connecteur USB-C, alors le débit pourrait n’être que 480Mbps (USB2).
Je suppose que ceci dépendra de la conception des adaptateurs.

SATA <-> USB

Selon la conception de la puce, il est possible que l’adaptateur soit vu même sans disque, ou bien qu’il nécessite le branchement d’un disque SATA pour être détecté. Penser à tester les 2.

05 Sep 2023, 00:00

Incohérence des adresses mails entre AD, OAC et EAC

Dans le cas d’une synchronisation d’un AD local vers Azure Active Directory (AAD), il peut arriver d’avoir une incohérence dans les adresses mail d’un utilisateur entre l’AD local, le Office Admin Center (OAC) et le Exchange Admin Center (EAC).

Par exemple, supposons que

  • nous avons un domaine local de type mondomaine.ville.entreprise.fr . Ce domaine n’est pas routable sur internet. Nous avons en plus un domaine monentreprise.com qui est routable sur internet et est le domaine utilisé pour les adresses mail
  • monentreprise.com a bien été ajouté comme UPN dans le domaine local
  • nous avons également créé entreprise.onmicrosoft.com chez Microsoft 365, et ajouté/validé le domaine monentreprise.com sur M365
  • le serveur local synchronise les utilisateurs vers AAD
  • l’utilisateur possède une license qui octroie une boîte mail

Dans le cas où, en local, dans “Utilisateurs et Ordinateurs AD” (ADUC), le “Nom d’ouverture de session de l’utilisateur” (UPN) est “@mondomaine.ville.entreprise.fr”, alors l’utilisateur apparaîtra comme “@entreprise.onmicrosoft.com” dans l’OAC et dans l’EAC. Les mails envoyés arriveront via la même adresse “onmicrosoft”. L’adresse “@monentreprise.com” apparaît normalement comme un alias, et les mails envoyés à cette adresse sont bien reçus.

Si on modifie le nom d’ouverture de session en “@monentreprise.com”, après synchronisation (et délai de qqs minutes), l’adresse sera modifiée dans l’OAC.
Selon les cas, l’adresse peut également être modifiée dans l’EAC, mais pas systématiquement. Dans le cas où elle reste en “onmicrosoft”, c’est que l’attribut “mail” en local (ADUC) est manquant.
Si on ajoute l’attribut “mail” et lui donnant la valeur “@monentreprise.com”, après synchronisation (et délai), alors elle sera bien mise à jour dans l’EAC, et les mails envoyés auront l’adresse correcte.

30 Jul 2023, 00:00

Live-USB Bookworm

Même procédure que pour buster avec quelques variations :

sudo aptitude install live-build live-tools
mkdir bookworm_live && cd bookworm_live
mkdir auto && cp /usr/share/doc/live-build/examples/auto/* ./auto/

config

Fichier auto/config

#!/bin/sh

set -e

lb config noauto \
	--architectures 'amd64' \
	--archive-areas 'main contrib non-free non-free-firmware' \
	--bootappend-live 'boot=live config locales=fr_FR.UTF-8 keyboard-layouts=fr' \
	--binary-images 'iso-hybrid' \
	--distribution 'bookworm' \
	--linux-flavours 'amd64' \
	--source 'false' \
	--backports 'true' \
	"${@}"

puis
lb config

Liste de paquets

Fichier config/package-lists/live.list.chroot

live-boot
live-config
live-config-systemd
systemd-sysv


#FIRMWARE
firmware-linux firmware-atheros firmware-b43-installer firmware-bnx2x firmware-brcm80211 firmware-iwlwifi firmware-libertas firmware-myricom firmware-netxen firmware-qlogic firmware-realtek broadcom-sta-dkms firmware-amd-graphics firmware-linux-nonfree

#UTILS
nmap rcconf gparted hfsprogs ntfs-3g hfsplus hfsutils dosfstools lightdm bash-completion chntpw dcfldd bootlogd less mesa-utils numlockx ethtool grub2 ssh gdisk testdisk iftop nethogs pm-utils dmraid aptitude apt-file smartmontools debootstrap pciutils usbutils cifs-utils e2fsprogs mtools screen lvm2 net-tools mdadm lsscsi haveged rng-tools cryptsetup efibootmgr efivar ncdu wireless-tools dnsutils git iperf iperf3 lshw pmount grub-efi-ia32-bin grub-pc-bin grub-efi-amd64-bin curl dislocker apfsprogs apfs-dkms ntp ntpdate vlan edac-utils zfsutils-linux zfs-dkms

# TEAMVIEWER
libqt5webkit5 qml-module-qtquick2 qml-module-qtquick-controls qml-module-qtquick-dialogs

# DESKTOP
hplip system-config-printer xsane simple-scan mate-desktop-environment caja-open-terminal mesa-utils firefox-esr-l10n-fr chromium-l10n pulseaudio pavucontrol pavumeter mate-media-common mate-media mate-settings-daemon-dev mate-settings-daemon-common mate-settings-daemon chromium engrampa unrar pluma bluez blueman pulseaudio-module-bluetooth gddrescue ddrescueview vlc rdesktop conky network-manager-gnome webcamoid cheese webp-pixbuf-loader

#

Backports et pinning

Fichier config/archives/backports.pref.chroot

## ZFS and dependencies from backports
Package: zfsutils-linux zfs-dkms libnvpair3linux libuutil3linux libzfs6linux
Pin: release o=Debian Backports
Pin-Priority: 600

## FIRMWARES FROM BACKPORTS
Package: firmware-amd-graphics firmware-linux-nonfree firmware-iwlwifi firmware-linux firmware-misc-nonfree firmware-ti-connectivity broadcom-sta-dkms
Pin: release o=Debian Backports,c=non-free-firmware
Pin-Priority: 600

Voir aussi notes pour Bullseye

Build

sudo lb bootstrap
sudo lb chroot

On peut éventuellement éditer le home du chroot, voir les notes pour Buster

sudo lb binary

09 Jul 2023, 00:00

WordPress, reverse proxy et https

Si on héberge un WordPress derrière un reverse proxy (dans mon cas jwilder-nginx+letsencrypt) qui gère le https et les certificats, WordPress verra le trafic en non-chiffré.
Il faut donc l’informer que le trafic est chiffré de manière externe, et qu’il doit modifier les URLs en https://.
Si je comprends bien, ceci se fait via la détection d’une en-tête définie par le reverse proxy.

Pour ceci, on ajoute dans le wp-config.php (dans le volume) :

//Load Balancer NGINX Proxy
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
    $_SERVER['HTTPS']='on';

19 Jun 2023, 00:00

Exchange online et Powershell

https://docs.microsoft.com/fr-fr/powershell/exchange/connect-to-exchange-online-powershell?view=exchange-ps

Installation

Install-Module ExchangeOnlineManagement
Import-Module ExchangeOnlineManagement

Si les message ModuleNotFound s’affiche, il faut installer ce module. Depuis mars 2020, il faut forcer TLS 1.2 au minimum, pour assurer l’installation correcte des modules et leurs dépendances :
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Si un message disant “L’éxécution de scripts est désactivée sur ce système”, il faut l’activer avec :
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
(à voir s’il est nécessaire de lancer PS en admin pour ça ?)

Connect-ExchangeOnline -UserPrincipalName user@domain.com
Si le nom fourni est un admin, il pourra consulter les statistiques des autres boîtes mail.

Si un message du genre
Impossible de charger le fichier ou l'assembly 'System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ou une de ses dépendances. Le fichier spécifié est introuvable.
s’affiche, il faut probablement installer une version + récente du framework DotNet (genre 4.8 ?)

Connection RPS (remote PowerShell) dépréciée :
Connect-ExchangeOnline -UseRPSSession

Limite de taille

La sortie de certaines commandes peut être tronquée (avec ...) si la fenêtre n’est pas assez large pour tout afficher, et ce même si on redirige la sortie vers un fichier. Pour avoir les lignes complètes, on peut utiliser | out-string -Width 999999 .

Lister les dossiers d’une boîte mail par ordre de taille

$mailbox = "user@domain.com"
(guillemets obligatoires)

Pour la taille de chaque dossier uniquement, sans les sous-dossiers :
Get-EXOMailboxFolderStatistics $mailbox | Select FolderPath,FolderSize,@{ name="FolderSizeBytes"; expression={((($_.FolderSize -replace '^(.*\()(.*)(\sbytes\))$','$2').Replace(',','')) -as [bigint])}}| Sort-Object -Property FolderSizeBytes -Descending | Out-String -Width 999999 | ft

Avec les sous-dossiers :
Get-EXOMailboxFolderStatistics $mailbox | Select FolderPath,FolderAndSubfolderSize,@{ name="FolderAndSubfolderSizeBytes"; expression={((($_.FolderAndSubfolderSize -replace '^(.*\()(.*)(\sbytes\))$','$2').Replace(',','')) -as [bigint])}}| Sort-Object -Property FolderAndSubfolderSizeBytes -Descending | Out-String -Width 999999 | ft

On peut le piper vers un fichier : > report.txt

Pour la boîte “Archivage en ligne” (in-place archive)

Il suffit de rajouter le paramètre -Archive à la commande Get-EXOMailboxFolderStatistics.

Afficher les infos générales d’une boîte mail

Get-EXOMailboxStatistics $mailbox

Lister les dossiers vides d’une boîte mail

Pour lister les dossiers qui sont vides, y compris les sous-dossiers :
Get-EXOMailboxFolderStatistics $mailbox | Where {$_.ItemsInFolderAndSubfolders -eq 0} | Select Identity | out-string -Width 999999

Uniquement dans un sous-dossier

Get-EXOMailboxFolderStatistics $mailbox | Where {$_.ItemsInFolderAndSubfolders -eq 0 -and $_.FolderPath -Match "/Boîte de réception/Mon sous-dossier" }

| Select FolderPath,FolderID,Identity

31 May 2023, 00:00

Noms des services

Pour faire la correspondance entre les noms réels services Windows et leur nom d’affichage (localisés), on peut utiliser la commande Powershell
Get-Service

On peut également rechercher avec un motif du genre
Get-Service -Name *wua*
pour chercher sur le nom ou
Get-Service -DisplayName *update* pour chercher sur le nom d’affichage. Aucune sensibilité à la casse.

24 May 2023, 00:00

Police fixe pour l'horloge de Mate

Par défaut, la police de l’horloge MATE est une police à espacement variable, ce qui cause un très léger mouvement de l’ensemble des icônes de la zone de notification. Pour la passer en police chasse fixe pour empêcher ceci, créer/éditer le fichier ~/.config/gtk-3.0/gtk.css et y coller ce bloc :

#clock-applet-button {
  font-family: monospace-regular;
}

Puis pkill mate-panel devrait recharger le panneau avec la modification.

Source

13 May 2023, 00:00

Créer ou recréer les fichiers de démarrage BIOS Windows 10

Situation initiale

Pour démarrer, Windows a besoin de certains fichiers de démarrage (et éventuellement secteurs de boot).
Voici comment créer ces fichiers de démarrage s’il sont manquants (par exemple la partition de démarrage a été effacée, ou bien on souhaite passer d’une partition unique à une partition de démarrage séparée).

On a :

  • 1 seule partition NTFS avec une install windows fonctionnelle (C:\Windows, C:\Users etc). Peut être une image. Peut provenir d’un disque MBR ou GPT
  • aucun fichier de démarrage

Note : avec cette méthode, il est possible de contourner la plupart des restrictions imposées à l’installation de Windows, on peut faire un peu ce que l’on veut. Par exemple démarrer en UEFI sur un disque (même NVMe) MBR, avoir une ESP (GPT) en NTFS, démarrer en BIOS sur un disque GPT etc… Je parle ici de la configuration attendue par MS.

Fichiers de démarrage BIOS

Les fichiers de démarrage Windows (10) consistent en :

  • Un dossier BOOT\ contenant :
    • des dossiers de langues type fr-fr
    • Fonts
    • Ressources
    • BCD
    • BCD.LOG (+1|2)
    • BOOTSTAT.DAT
    • bootuwf.dll
    • bootvhd.dll
    • memtest.exe
  • bootmgr
  • BOOTNXT
  • BOOTSECT.BAK

Ces fichiers peuvent être sur le disque C, ou bien sur une partition dédiée (nommée “Réservé au système” si créée automatiquement lors de l’installation de Windows). Cette partition doit posséder le flag boot.

Table de partition

Il faut une table de partition MBR, avec :

  • une partition de 500M (voire 1G) formatée en NTFS, de type “7” (HPFS/NTFS/exFAT) et avec le drapeau boot
  • la partition avec l’install Windows, de type “7” (HPFS/NTFS/exFAT)

(note : il ne me semble pas possible d’avoir une partition système en FAT32, le NTFS est nécessaire. On peut copier les fichiers de démarrage sur une partition FAT32 mais le disque ne bootera pas)
On peut consulter/modifier les types de partitions avec cfdisk.

Par souci de cohérence dans l’ordre des partitions, on peut s’assurer que la partition soit bien numérotée 2 dans la table de partition. Si elle est notée 1, on peut changer son numéro avec la procédure définie ici

Création des fichiers

On démarre ensuite sur une clé USB d’install de Windows 10 (en mode BIOS) -> Dépannage -> Invite de commande
On lance diskpart ; on vérifie les lettres affectées à chacune des partitions (ici C: pour la 500M et E: pour l’install).

list vol

On sort de diskpart, puis
bcdboot E:\Windows /s C: /l fr-fr /f bios

Pour vérifier la présence des fichiers, il faut la commande
dir /a:HS X:

Normalement ça doit démarrer avec la nouvelle partition !

Fichiers de démarrage EFI

Les fichiers de démarrage sont à peu près les même, avec des exécutables .efi. Ils seront dans [ESP]/EFI/Microsoft/Boot/.

Il faut une table de partition GPT, avec :

  • partition type ESP (drapeau esp sur Gparted) de 500M en FAT32
  • la partition avec l’install windows, de type Msft basic data (drapeau msftdata).

(note : il est possible que cela fonctionne même si la table de partition est de type MBR ; en ce cas il faut le flag boot sur la partition FAT32. On préferera toutefois le GPT)

Si la numérotation des partitions est dans le désordre, on peut suivre ces instructions.

Ensuite on démarre sur sur une USB d’install, Réparer le PC, invite de commande, vérifier la lettre de la partition contenant l’install (par exemple C: ), puis
bcdboot C:\Windows
pour mettre les fichiers sur la partition ESP. Ils seront mis aussi bien dans EFI/Microsoft/Boot que /EFI/Boot/bootx64.efi
On peut aussi affecter une lettre à une autre partition et spécifier le flag /s X:.
L’entrée BootOrder dans l’UEFI semble ajoutée lors d’un simple démarrage de Windows si elle est manquante ET si le flag boot/esp est positionné sur la partition ESP.

Si besoin, pour s’assurer de l’installation des éventuels pilotes nécessaires en cas de changement de disque, on peut forcer le démarrage en sans échec :
bcdedit /set {default} safeboot minimal

Lorsque l’on a redémarré en mode sans échec et que tout fonctionne, on peut désactiver ce mode avec
bcdedit /deletevalue {default} safeboot

Comportement à l’install de Windows

Si le partitionnement a été fait avant l’installation de Windows, alors :

  • en UEFI, les fichiers de démarrage seront mis dans la partition flaggée comme ESP
  • en BIOS, les fichiers de démarrage seront mis dans la partition flaggée boot ????

WinRE

Partition de récupération

GPT :
Pour pouvoir accéder à winRE pour dépanner un poste, il lui faut une partition de récupération. Cette partition doit nécessairement être située après la partition système. À la toute fin du disque c’est bien.
On peut créer cette partition via gparted, la formater en NTFS et lui affecter le flag “diag” ((+ hidden ?).

Création du WinRE

Lien MS
Lien forum MS pour diskpart

C’est la commande reagentc qui permet de gérer la récupération.
reagentc /info pour voir l’état du WinRE

S’il est désactivé, on peut l’activer via
reagentc /enable

Si il y a le message “Image WindowsRE introuvable”, c’est que le fichier C:\Windows\System32\Recovery\winre.wim est absent.
On peut le copier à cet emplacement depuis le contenu d’un fichier “install.wim” d’un media d’install (7zip fonctionne pour ouvrir un .wim)

On peut aussi demander à boot en mode winre la prochaine fois (sans interrompre 3 fois le démarrage) via
reagentc /boottore

24 Mar 2023, 00:00

Téléphonie via Teams

Vocabulaire

Auto-attendant = SVI (serveur vocal interactif, navigation à l’aide des touches)
Call queue = file attente (message/musique attente + transfert des appels aux agents)
PSTN = RTC (réseau téléphonique commuté)

Généralités

Pour pouvoir utiliser la téléphonie Teams, chaque utilisateur a besoin de :

  • une licence Teams Phone Standard (Téléphonie Teams) : nécessaire pour se connecter au réseau RTC MS
  • une licence forfait d’appel
  • un numéro de téléphone attribué

Une fois ces 3 conditions validées (et un certain délai éventuel), chaque utilisateur verra apparaître le pavé de numérotation dans Teams, section Appels.
Si le pavé n’apparaît pas, voir cette page.

Gérer les numéros de téléphone

Se fait via le Teams Admin Center (TAC) :

Voice -> Phone numbers

Nombre de numéros de tél disponibles :

Numéro User : (nombre de calling plans*1.1) + 10 + pay-as-you-go-licences
Numéro Service (Voice App) (payant pour les appelants) : 5
Numéro Service (gratuit pour les appelants) : ?

Dépassement du forfait et numéros payants

Pour pouvoir continuer à appeler lorsque les minutes de forfait sont épuisées, et pouvoir appeler des numéros spéciaux (082* etc.), il faut acheter des crédits de communication.
Une fois les crédits achetés, il faut affecter la licence Crédits de communication à chaque utilisateur qui doit pouvoir les utiliser.

Numéro de service

Aussi appelé “Voice App”.
Peut être partagé entre plusieurs utilisateurs.
Il faut un compte de ressources, un numéro affecté à l’usage Service (voice app), une licence (gratuite) Teamps Phone ressource Account (Teams système téléphonique utilisateur virtuel).

Teams Admin Center -> Voice -> Call queues
Ajouter, choisir le compte de ressource créé auparavant.
Une fois créé et les utilisateurs (“agents”) affectés, chacun d’eux pourra appeler en tant que ce numéro de service.

Délégation

Déléguer sa ligne à une ou plusieurs personnes leur permet de recevoir les appels et répondre au nom du délégueur.
Pour ça, c’est fait directement par le client :
Teams -> Paramètres -> General -> Gérer les délégués

Par défaut, le délégué appelle avec son propre numéro, à moins de cliquer sur la petite flèche à côté de Appeler.

Compte de ressources

TAC -> Voices -> Ressource accounts (-> Add)

Choisir “Call queue” pour associer (plus tard) ce compte de ressource à une file d’attente.
L’utilisateur sera alors créé, visible également dans le Office Admin Center.

Si on veut lui assigner un numéro de téléphone, il est nécessaire que cet utilisateur possède une licence (gratuite) de type “Téléphonie Microsoft Teams Standard - Utilisateur virtuel”.
Une fois la licence assignée, et quelques minutes écoulées, on peut lui assigner un numéro (qui doit être de type “Voice app”) via le bouton “Assign/Unassign”. Choisir “Calling Plan” si le plan d’appel est fourni par Microsoft.

Les modifications mettent quelques minutes à se propager.

Files d’attente

TAC -> Voice -> Call queues (-> Add)

Un appel sur une file d’attente sera réparti entre tous les utilisateurs appartenant à cette file d’attente.
Il y’a plusieurs stratégies (tous en même temps, le 1er dispo, le + longtemps inactif etc).

Il est nécessaire, à la création, de l’associer à un compte de ressource.

On peut ensuite affecter des utilisateurs (ou un Canal standard d’une Team - les canaux privés ne fonctionnent pas) à cette file d’attente : ce sont tous les utilisateurs qui seront sollicités lors d’un appel sur ce numéro.

Le “Conference Mode” permet apparemment de recevoir les appels plus rapidement, et ne semble être incompatible qu’avec Skype for Business.

Répondeur partagé (numéro de service)

Via un groupe créé manuellement

Créer un groupe Microsoft 365 (OAC -> Groupes -> Nouveau groupe M365).
Ajouter les personnes qui doivent recevoir le message en tant que membres.

Paramétrer la call queue pour rediriger les appels non-répondus vers un boite vocale partagée (shared voicemail) ; choisir celle du groupe précédemement créé
Les membres du groupe recevront les appels dans outlook, dans la section Groupes

Il faut toutefois ajouter chaque utilisteur manuellement au groupe ; je n’ai pas trouvé comment ajouter un groupe de sécurité à un groupe MS365.

Via une Team

Chaque équipe possède une adresse mail ; il faut la trouver dans Teams, et activer le transfert des mails aux membres de l’équipe ( -> Administrateur -> Teams -> Choisir l’équipe -> Paramètres -> “Envoyer des copies des emails aux membres” ).

Paramétrer la call queue pour rediriger les appels non-répondus vers l’adresse mail de l’équipe.
Ainsi chaque membre recevra un mail (contenant le message vocal en PJ).

Pour les voir dans Teams directement ??

https://dynamicconsulting.com/2020/06/02/shared-voicemail-displaying-in-teams/

Appels en tant que numéro de service

Pour forcer le changement du numéro affiché lors des appels sortants pour un utilisateur, dans le TAC :
Voice -> Caller ID policies

Ajouter une politique, choisir un numéro de service (ou compte de ressource) qui sera utilisé pour les appels sortants.

Ensuite, toujours dans le TAC, Users -> Manage Users, sélectionner tous les utilisateurs à modifier, Policies -> Edit -> Caller ID Policy et choisir la stratégie créée précedemment.

Il semble que l’on peut toujours appeler en tant que délégueur si la stratégie s’applique uniquement au délégué.

Rendre muet la sonnerie d’un appel

Dans le client Teams :
Paramètres -> Notifications -> Apparence et sons -> Désactiver "Faire jouer le son..."

https://answers.microsoft.com/en-us/msteams/forum/all/need-to-be-able-to-mute-incoming-calls-while-on-a/8366dd59-0573-4daa-b6c9-3c669adea0b3?page=2

Appeler en numéro masqué

Dans la stratégie Caller ID, c’est le paramètre “Override Caller ID Policy” (ou “EnableUserOverride” via powershell).
Elle n’override rien directement, elle permet à l’utilisateur final d’overrider (=passer en anonyme uniquement). Aucun effet si la stratégie passe déjà les appels en anonyme.

L’utilisateur final peut ensuite aller dans les paramètres de l’appli Teams -> Appels -> Identifiant de l’appelant.

Quelques minutes nécessaires pour appliquer le changement (~3-5 minutes selon mes tests)

https://learn.microsoft.com/en-us/microsoftteams/how-can-caller-id-be-used-in-your-organization#end-user-control-of-outbound-caller-id

Affectation à une stratégie en fonction d’un groupe de sécurité

TAC -> Voice -> (stratégie à définir) -> Group policy assignment
On peut choisir un groupe de sécurité puis une stratégie définie précédemment, et tous les membres du groupe recevront automatiquement la stratégie.

Enregistrer un appel

https://learn.microsoft.com/en-us/microsoftteams/cloud-recording

Enregistré dans onedrive

Powershell

Nécessite le module MicrosoftTeams

https://learn.microsoft.com/fr-fr/skypeforbusiness/set-up-your-computer-for-windows-powershell/download-and-install-the-skype-for-business-online-connector

Rapports

TAC -> Analytics & Reports -> usage reports

Les rapports PSTN usage indiquent tous les appels émis/reçus par les numéros gérés par Teams.
Le “Display Name” ou “Username” correspondent au numéro géré par Teams qui est concerné, que ce soit un appel entrant ou sortant.
Pour actualiser le rapport, il faut agir dessus, par exemple changer l’ordre de tri, ou générer un autre rapport puis re-générer le rapport souhaité.

Dans le cas d’un appel sortant,

  • le type sera “user-out”
  • si l’utilisateur a paramétré le numéro masqué, on verra quand même son nom dans le rapport, mais le “Caller ID” sera vide
  • si l’utilisateur appelle en tant que numéro de service, on verra quand même son nom, mais le “Caller ID” sera celui du numéro de service

Dans le cas d’un appel entrant,

  • si c’est un numéro de service qui reçoit, le type sera “ucap_in”
  • si c’est directement un numéro utilisateur qui reçoit, le type sera “user_in”
  • si l’appelant a masqué son numéro, le “Caller ID” sera vide

Liens divers

Présentation :
https://docs.microsoft.com/fr-fr/microsoftteams/what-is-phone-system-in-office-365
https://docs.microsoft.com/en-us/microsoftteams/what-is-phone-system-in-office-365 (anglais)

Fonctionnalités :
https://docs.microsoft.com/fr-fr/microsoftteams/here-s-what-you-get-with-phone-system
https://docs.microsoft.com/en-us/microsoftteams/here-s-what-you-get-with-phone-system (anglais)

Gestion des licenses :
https://docs.microsoft.com/fr-fr/microsoftteams/teams-add-on-licensing/virtual-user
https://docs.microsoft.com/en-us/microsoftteams/teams-add-on-licensing/virtual-user (anglais)
6.70€/util/mois

https://docs.microsoft.com/fr-fr/microsoftteams/teams-add-on-licensing/microsoft-teams-add-on-licensing?tabs=small-business
https://docs.microsoft.com/fr-fr/microsoftteams/set-up-calling-plans

Transférer numéros :
https://docs.microsoft.com/fr-fr/microsoftteams/phone-number-calling-plans/transfer-phone-numbers-to-teams
https://docs.microsoft.com/fr-fr/microsoftteams/phone-number-calling-plans/manually-submit-port-order (demande manuelle, car transfert auto non dispo pour la france)

Demande contact
https://info.microsoft.com/ww-landing-Contact-Me-Business-Voice-Contact-Me.html?lcid=en-us

Microsoft 365 business standard : 10.5€/mois/user
Office 365 E3 : 19.7€/mois/user