Résolution d’un Bug d’Affichage de l’IVR dans Issabel PBX

Introduction

Issabel PBX est une solution largement utilisée pour la gestion des systèmes de télécommunications en entreprise, offrant notamment des fonctionnalités comme les menus IVR (Interactive Voice Response). Cependant, certains utilisateurs ont signalé un problème d’affichage de l’IVR lorsque plusieurs extensions sont ajoutées. Ce bug peut entraîner des dysfonctionnements de l’interface web, rendant la gestion des menus IVR difficile, voire impossible. Cet article détaille le problème et fournit une solution pratique pour le résoudre.

Description du Problème

Le problème se manifeste lorsqu’un utilisateur configure un grand nombre d’options (souvent plus de 15) dans un menu IVR via l’interface web d’Issabel. À partir de ce moment, la page de gestion de l’IVR peut devenir blanche, certaines options disparaissent ou l’application peut planter. La cause de ce problème réside dans une manipulation incorrecte du HTML via une expression régulière dans le fichier de configuration d’Issabel.

Analyse Technique

Le bug est lié à une section spécifique du code PHP dans le fichier /var/www/html/modules/pbxadmin/libs/contentIssabelPBX.php. Voici le code incriminé (ligne 470) :

if (isset($_REQUEST['display']) && $_REQUEST['display'] == 'ivr') {
    $return_CONFIG_HTML = preg_replace(
        '|</tr>\s*(<table .*?</table><img .* id="add_entrie">)\s*<tr>|s',
        '</tr><tr><td colspan="2">$1</td></tr><tr>',
        $return_CONFIG_HTML);
}

Cette portion de code utilise une expression régulière pour reformater le HTML de la page IVR. Cependant, lorsque le nombre d’options IVR devient trop important, cela provoque des erreurs d’affichage, rendant la page inutilisable.

Solution Apportée

La solution consiste à commenter cette section de code, ce qui empêchera la manipulation incorrecte du HTML. Cette modification ne doit être effectuée que si vous rencontrez ce problème spécifique. Voici les étapes à suivre :

  1. Localisation du Fichier PHP : Ouvrez le fichier /var/www/html/modules/pbxadmin/libs/contentIssabelPBX.php dans un éditeur de texte.
  2. Commenter le Code : Modifiez le fichier en commentant les lignes suivantes pour empêcher leur exécution :
   // if (isset($_REQUEST['display']) && $_REQUEST['display'] == 'ivr') {
   //     $return_CONFIG_HTML = preg_replace(
   //         '|</tr>\s*(<table .*?</table><img .* id="add_entrie">)\s*<tr>|s',
   //         '</tr><tr><td colspan="2">$1</td></tr><tr>',
   //         $return_CONFIG_HTML);
   // }
  1. Sauvegarder et Redémarrer : Une fois les modifications effectuées, sauvegardez le fichier et redémarrez les services d’Issabel pour que les changements prennent effet.

Conséquences de la Solution

En commentant cette partie du code, vous évitez les manipulations incorrectes du HTML, permettant ainsi à l’interface IVR de fonctionner correctement même avec un grand nombre d’options. Cela résout le problème d’affichage et vous permet de gérer vos IVR sans difficultés via l’interface web d’Issabel.

Conclusion

Ce problème d’affichage dans Issabel PBX est causé par une manipulation inappropriée du HTML via une expression régulière dans le fichier contentIssabelPBX.php. Heureusement, la solution est simple : commenter les lignes de code problématiques. Cette modification doit être effectuée uniquement si vous rencontrez ce problème spécifique. En suivant ces étapes, vous pouvez restaurer la fonctionnalité complète de l’interface IVR, même avec de nombreuses extensions configurées. Cette méthode a été confirmée par plusieurs utilisateurs sur les forums d’Issabel et constitue un correctif efficace pour ce problème particulier.

Pour plus de détails, consultez la discussion originale ici : Issabel IVR Problem Visualization.