ITSkillsCenter
Business Digital

Enregistrement légal des appels et conformité CEDEAO sur FreePBX 2026

13 min de lecture

📍 Article principal : Asterisk + FreePBX en production pour PME ouest-africaine. Ce tutoriel aborde la dimension juridique et technique de l’enregistrement des appels téléphoniques dans le cadre CEDEAO.

L’enregistrement des appels n’est pas une fonctionnalité optionnelle pour un service client professionnel — c’est devenu une obligation contractuelle dans la finance, l’assurance, la santé et même le e-commerce premium. La difficulté pour une PME sénégalaise, ivoirienne ou malienne tient à la conformité légale : chaque pays de la CEDEAO a son propre cadre de protection des données personnelles, ses obligations d’information et ses durées de conservation. Ce tutoriel traduit ces exigences en configuration concrète sur FreePBX 17, depuis l’activation de l’enregistrement jusqu’au stockage chiffré sur S3-compatible avec rotation automatique.

Cadre juridique applicable en CEDEAO

Au Sénégal, la loi n° 2008-12 du 25 janvier 2008 sur la protection des données à caractère personnel encadre tout traitement, y compris l’enregistrement des appels. La Commission de Protection des Données Personnelles (CDP) doit être informée du traitement via une déclaration. Le consentement explicite des deux parties (appelant et opérateur) est requis sauf exception légale (preuve d’une transaction commerciale, lutte contre la fraude, qualité du service avec finalité explicite). La durée de conservation est limitée à ce qui est nécessaire — généralement 6 mois, prolongeable à 5 ans pour les services financiers.

En Côte d’Ivoire, la loi n° 2013-450 du 19 juin 2013 sur la protection des données personnelles confie le rôle de régulation à l’ARTCI (Autorité de Régulation des Télécommunications de Côte d’Ivoire). Les obligations sont similaires : information préalable, durée proportionnée, sécurité des données.

Au Mali, la loi n° 2013-015 du 21 mai 2013 régit les mêmes principes, complétée par les directives de l’AMRTP (Autorité Malienne de Régulation des Télécommunications, des TIC et des Postes). Au Burkina Faso, la loi n° 010-2004 et la CIL (Commission de l’Informatique et des Libertés) jouent un rôle équivalent.

L’Acte additionnel A/SA.1/01/10 de la CEDEAO du 16 février 2010 relatif à la protection des données à caractère personnel harmonise ces cadres au niveau régional. Concrètement, le tronc commun pour tout enregistrement licite : information préalable de l’appelant, finalité explicite et limitée, sécurité technique et organisationnelle, droit d’accès et de rectification, durée de conservation justifiée.

Prérequis techniques

  • FreePBX 17 ou Asterisk 21+ déjà sécurisé (voir tutoriel sécurisation)
  • Trunk SIP fonctionnel (voir tutoriel SIP trunk) et IVR opérationnel (voir tutoriel IVR multilingue)
  • Serveur de stockage S3-compatible (MinIO local, Hetzner Storage Box, Bunny Storage, AWS S3 Frankfurt)
  • Volume disque dédié de 50 à 500 Go selon le trafic
  • Niveau : avancé (juridique + technique)
  • Temps estimé : 4 à 8 heures

Étape 1 — Information préalable des appelants

L’obligation la plus systématiquement oubliée est aussi la plus simple à corriger : prévenir l’appelant que la conversation peut être enregistrée. Cette annonce doit être placée dès l’IVR principal, avant tout choix DTMF, dans toutes les langues proposées. La formulation type : « Pour des raisons de qualité de service et de traçabilité, votre appel pourra être enregistré. Si vous ne le souhaitez pas, raccrochez ou tapez sur l’étoile à tout moment. »

Concrètement, ajouter cette annonce dans le fichier welcome.wav de chaque langue (français, wolof, bambara) ou créer un fichier dédié recording_notice.wav joué juste avant le menu principal. Pour permettre l’opt-out via la touche étoile, configurer dans extensions_custom.conf :

[recording-optout]
exten => *,1,Set(__MIXMONITOR_ENABLED=no)
exten => *,n,Playback(custom/recording_disabled)
exten => *,n,Goto(ivr-1,s,1)

Pour les appels sortants, l’agent doit informer verbalement le client en début de conversation. Cette obligation est documentée dans le contrat de travail des agents et inscrite dans le script d’accueil affiché à l’écran.

Étape 2 — Activer l’enregistrement par groupe d’appel

FreePBX 17 propose plusieurs niveaux d’activation de l’enregistrement : par extension, par queue, par route entrante. La meilleure pratique consiste à activer par queue (file d’attente) pour le service client et le commercial, et à laisser l’enregistrement désactivé par défaut sur les extensions personnelles des dirigeants ou de la comptabilité.

Naviguer dans Applications → Queues → éditer la queue concernée → Call Recording: Force. La valeur Force enregistre tous les appels passant par cette queue, Yes active l’enregistrement seulement si l’agent appuie sur le code DTMF d’enregistrement (par défaut *1), Don’t Care respecte la configuration de l’extension destinataire.

Pour une route entrante directement (sans queue), aller dans Connectivity → Inbound Routes → Call Recording → Force. Le format d’enregistrement préféré est wav (qualité maximale) ou mp3 (compromis taille/qualité). Pour économiser l’espace, opter pour wav49 (GSM 6.10 dans wrapper WAV) ou opus directement : 8 fois plus compact que wav PCM avec une qualité comparable pour la voix.

Étape 3 — Stocker hors du serveur Asterisk

Par défaut, Asterisk enregistre dans /var/spool/asterisk/monitor/. À 5 000 minutes d’appels par mois en wav, on consomme 5 Go — supportable mais qui s’accumule en quelques mois. La bonne pratique est de déplacer les enregistrements quotidiennement vers un stockage S3-compatible chiffré, et de purger les enregistrements anciens du serveur principal.

Installer rclone qui parle S3 nativement et supporte le chiffrement côté client :

curl https://rclone.org/install.sh | bash
rclone config
# Créer un remote S3 (par exemple "minio_appels")
# Puis créer un remote crypt par-dessus :
# n) New remote → name: appels_chiffres
# Storage: crypt
# Remote: minio_appels:bucket-appels
# Encrypt the filenames: true (option standard)
# Filename encoding: base32 (compatible S3)

Le chiffrement crypt de rclone applique une couche AES-256 sur les fichiers et les noms de fichiers avant l’envoi vers S3. Même si le bucket est compromis, les enregistrements restent illisibles sans la passphrase.

Créer un script /usr/local/bin/sync_appels.sh exécuté chaque nuit par cron :

#!/bin/bash
set -e
MONITOR_DIR="/var/spool/asterisk/monitor"
LOG="/var/log/sync_appels.log"

# Synchroniser les fichiers de plus de 24h vers S3 chiffré
find "$MONITOR_DIR" -type f -mtime +1 -name "*.wav" | while read f; do
  rel=$(realpath --relative-to="$MONITOR_DIR" "$f")
  rclone copyto "$f" "appels_chiffres:appels/$rel" \
    --log-file="$LOG" --log-level INFO
  if [ $? -eq 0 ]; then
    rm -f "$f"
  fi
done

# Supprimer les enregistrements stockés depuis plus de 6 mois
rclone delete "appels_chiffres:appels" --min-age 180d --log-file="$LOG"

Activer dans crontab : 0 2 * * * /usr/local/bin/sync_appels.sh. Le script tourne à 2h du matin, déplace les enregistrements de plus de 24h vers le bucket chiffré et purge les enregistrements de plus de 180 jours conformément à une politique standard. Pour le secteur financier au Sénégal, étendre cette durée à 5 ans (--min-age 1825d) selon les exigences BCEAO.

Étape 4 — Anonymisation et droit d’accès

Le droit d’accès est garanti par les lois CEDEAO : un appelant peut demander à écouter les enregistrements le concernant et à les faire effacer. L’identification dans la base CDR se fait par numéro appelant, mais ce numéro peut être partagé. Pour répondre proprement à une demande, croiser CDR et enregistrement par uniqueid.

Configurer le format de nommage des fichiers d’enregistrement pour inclure le uniqueid Asterisk dans Settings → Advanced Settings → Call Recording Format : auto-${UNIQUEID}-${CALLERID(num)}-${EXTEN}-${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}. Ce format permet de retrouver instantanément un appel par n’importe quel critère.

Lorsqu’un appelant exerce son droit d’effacement, identifier les fichiers concernés via la base CDR (requête sur src = numéro), puis supprimer côté S3 chiffré : rclone delete appels_chiffres:appels --include "*${UNIQUEID}*". Conserver une trace de la demande dans un journal d’audit pour 3 ans (preuve de bon traitement de la demande), tout en s’assurant que le journal lui-même ne contient pas de données personnelles re-identifiantes.

Étape 5 — Documenter le registre de traitement

Les autorités de régulation peuvent demander à tout moment le registre des traitements de données personnelles. Tenir un document écrit avec, pour chaque traitement (enregistrement des appels en l’occurrence) :

  • Finalité : amélioration de la qualité du service client, traçabilité contractuelle, lutte contre la fraude
  • Données collectées : numéro appelant, numéro destinataire, durée, date/heure, contenu audio
  • Base légale : consentement (information préalable), exécution contractuelle, intérêt légitime
  • Durée de conservation : 6 mois (180 jours) standard, 5 ans pour services financiers
  • Mesures de sécurité : chiffrement AES-256 au repos, transit TLS, accès limité aux superviseurs nominativement autorisés, journal d’accès
  • Sous-traitants : hébergeur S3-compatible, opérateur SIP trunk
  • Transferts hors zone CEDEAO : si stockage Hetzner Falkenstein, mention de l’adéquation Allemagne/UE et mécanisme de transfert

Au Sénégal, déposer ce registre auprès de la CDP via leur portail en ligne. En Côte d’Ivoire, démarche similaire auprès de l’ARTCI. Dans tous les pays, conserver une copie signée par le DPO ou le responsable du traitement.

Désigner un DPO et formaliser la gouvernance

Pour une PME au-delà de 25 salariés ou qui traite des données sensibles (santé, religion, opinions politiques, données financières), la désignation d’un Délégué à la Protection des Données est une obligation explicite au Sénégal et fortement recommandée dans tous les pays CEDEAO. Le DPO peut être interne (un cadre formé) ou externe mutualisé chez un cabinet spécialisé — plusieurs cabinets dakarois et abidjanais proposent un service DPO partagé pour 250 000 à 800 000 XOF par an selon la taille de la PME.

Les missions concrètes du DPO autour de la centrale téléphonique : validation initiale du registre des traitements, revue trimestrielle des accès aux enregistrements, traitement des demandes d’accès et d’effacement reçues par les appelants (réponse sous 30 jours conformément à la loi), point de contact avec la CDP ou l’ARTCI en cas de demande d’enquête, formation annuelle des agents qui manipulent les enregistrements. Outiller le DPO avec un journal d’audit numérique signé : chaque accès aux enregistrements génère une entrée immuable dans une table append-only (par exemple chiffrée et horodatée via AWS KMS ou un module HSM local).

Audit annuel de conformité

Une fois par an, exécuter un audit interne ou externe pour vérifier que la politique de conservation est respectée. Cinq vérifications à effectuer : les enregistrements ne dépassent pas la durée déclarée (un échantillon aléatoire de 50 fichiers anciens doit révéler zéro fichier au-delà du seuil), les accès aux enregistrements sont tracés et nominatifs (le journal d’audit doit montrer qui a écouté quoi et quand), les sauvegardes sont chiffrées et accessibles (un test de restauration doit produire un fichier audible), les agents sont à jour de leur formation (preuve écrite signée), et l’IVR diffuse bien l’annonce préalable (test en appelant chaque DID principal).

L’audit produit un rapport signé conservé pendant 5 ans, qui constituera la première pièce demandée en cas de contrôle de la CDP, de l’ARTCI ou de l’AMRTP. Pour les services financiers réglementés par la BCEAO, ajouter un audit annuel spécifique sur les enregistrements liés à des transactions, avec validation par le Commissaire aux comptes.

Réponse à une réquisition judiciaire

Une PME peut recevoir une réquisition judiciaire portant sur des enregistrements téléphoniques — affaire commerciale, plainte client, enquête de la gendarmerie ou de la police économique. La procédure correcte : vérifier que la réquisition est formelle (papier à en-tête, signature du juge ou du procureur, référence d’enquête), confirmer auprès de l’avocat de la PME avant toute remise, extraire uniquement les enregistrements précisément demandés (pas plus large que la réquisition), produire un PV de remise daté et signé.

Côté technique, le script de réponse doit savoir extraire un range de dates et un numéro précis. Avec la convention de nommage préconisée plus haut (uniqueid, callerid, exten, timestamp), une commande rclone simple isole les fichiers : rclone copy appels_chiffres:appels /tmp/requisition --include "*22177*-20260315*" --include "*22177*-20260316*". Les fichiers récupérés sont rechiffrés sur une clé USB chiffrée VeraCrypt avant remise physique aux autorités, accompagnés d’un PV qui atteste de l’intégrité (hash SHA-256 de chaque fichier inclus).

Conserver une copie scellée de la réquisition et du PV de remise pendant 10 ans dans le coffre de la PME. Cela protège juridiquement en cas de remise en cause ultérieure de la procédure de transmission.

Erreurs fréquentes

ErreurCauseSolution
Enregistrements non chiffrés sur S3 publicBucket mal configuré ou pas de couche cryptUtiliser rclone crypt et bucket privé, vérifier policy AWS/MinIO
Pas d’annonce préalable, plainte CDPIVR sans avertissementAjouter recording_notice.wav en début d’IVR dans toutes les langues
Durée de conservation indéfiniePas de purge automatiqueCron rclone delete --min-age 180d quotidien
Impossible de retrouver un appel pour exercer un droitFormat de nom de fichier sans uniqueidConfigurer le format avec ${UNIQUEID} en première position
Violation contractuelle BCEAO sur duréeConservation 6 mois alors que 5 ans requis pour les banquesDistinguer les politiques de rétention par catégorie de service

Adaptation au contexte ouest-africain

Trois spécificités à intégrer. D’abord, la BCEAO impose pour les institutions financières de l’UEMOA une conservation de 5 ans des enregistrements de transactions, y compris audio quand l’appel est l’instrument de la transaction. Ensuite, certaines administrations exigent un stockage sur le territoire national : vérifier auprès du régulateur si un MinIO local sur Dakar ou Abidjan est imposé. Enfin, prévoir l’accès même en cas de panne internet : garder une copie locale chiffrée des 30 derniers jours sur un disque externe USB-C ou un NAS Synology DS224+ posé dans le local technique.

Notification de violation de données

En cas de fuite ou de compromission des enregistrements, les lois CEDEAO imposent une notification rapide à l’autorité compétente — 72 heures au Sénégal et en Côte d’Ivoire. Préparer en amont une procédure documentée qui couvre les trois étapes : confinement immédiat (isoler le serveur compromis, révoquer les accès), évaluation de l’impact (combien d’enregistrements concernés, identifiables, sensibles), notification formelle à la CDP ou à l’ARTCI avec description de l’incident, des données touchées et des mesures correctives engagées.

La notification doit aussi être faite aux personnes concernées si la fuite est susceptible d’engendrer un risque élevé pour leurs droits — appeler ou écrire individuellement à chaque appelant dont l’enregistrement a été potentiellement exposé. Pour faciliter cette démarche, conserver dans la base CDR un index par numéro appelant qui permet d’identifier rapidement la liste exhaustive des personnes touchées par la fenêtre temporelle de la fuite.

Pour aller plus loin

🔝 Retour à l’article principal : Asterisk + FreePBX en production pour PME ouest-africaine. Tutoriels précédents : SIP trunk Sonatel/Orange CI, sécurisation toll-fraud, IVR multilingue.

Texte officiel de la loi sénégalaise sur la CDP Sénégal, autorité ivoirienne ARTCI, documentation MixMonitor sur docs.asterisk.org, rclone crypt sur rclone.org/crypt.

Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité