Aller au contenu

« Astreinte » : différence entre les versions

De INDYWiki
Anthony (discussion | contributions)
Anthony (discussion | contributions)
Ligne 8 : Ligne 8 :
* On injecte les données d'astreinte dans l'extension qui reçoit habituellement les appels
* On injecte les données d'astreinte dans l'extension qui reçoit habituellement les appels


===Le script===
===Le script===
===Le script===


<pre>
<syntaxhighlight lang="csharp" line>
using System;
using System;
using System.Threading.Tasks;
using System.Threading.Tasks;
Ligne 30 : Ligne 31 :
             // --- AJOUT : Nommage de l'astreinte ---
             // --- AJOUT : Nommage de l'astreinte ---
             string prenomElu = "ASTREINTE";  
             string prenomElu = "ASTREINTE";  
             string nomElu = "ELU 6"; // Changez ceci pour chaque élu (ex: "DUPONT", "MAIRE", etc.)
             string nomElu = "ELU 6";  


             try
             try
Ligne 42 : Ligne 43 :
                     targetExt.SetProperty("MOBILENUMBER", mobileElu);
                     targetExt.SetProperty("MOBILENUMBER", mobileElu);


                     // 2. MISE À JOUR DU NOM (Affichage sur les téléphones)
                     // 2. MISE À JOUR DU NOM
                     targetExt.FirstName = prenomElu;
                     targetExt.FirstName = prenomElu;
                     targetExt.LastName = nomElu;
                     targetExt.LastName = nomElu;
Ligne 68 : Ligne 69 :
         }
         }
     }
     }
}</pre>
}
 
</syntaxhighlight>
===Installation===
===Installation===


[[Catégorie:3CX]]
[[Catégorie:3CX]]

Version du 1 avril 2026 à 17:07

par les statuts

Via script

Limite de la méthode précédente :

  • 4 profil d'astreinte maximum

Principe de cette méthode :

  • On injecte les données d'astreinte dans l'extension qui reçoit habituellement les appels

Le script

Le script

using System;
using System.Threading.Tasks;
using TCX.Configuration;
using CallFlow;
using System.Linq;
using System.Collections.Generic;

namespace dummy
{
    public class SetDynamicAstreinte : ScriptBase<SetDynamicAstreinte>
    {
        public override Task<bool> StartAsync()
        {
            string targetExtNum = "111"; 
            string mobileElu = "0743031843";
            string profileName = "Away"; 
            
            // --- AJOUT : Nommage de l'astreinte ---
            string prenomElu = "ASTREINTE"; 
            string nomElu = "ELU 6"; 

            try
            {
                IPhoneSystem ps = PhoneSystem.Root;
                Extension targetExt = ps.GetDNByNumber(targetExtNum) as Extension;

                if (targetExt != null)
                {
                    // 1. Mise à jour du numéro de mobile
                    targetExt.SetProperty("MOBILENUMBER", mobileElu);

                    // 2. MISE À JOUR DU NOM
                    targetExt.FirstName = prenomElu;
                    targetExt.LastName = nomElu;

                    // 3. Changement du profil de statut
                    var profile = targetExt.FwdProfiles.FirstOrDefault(p => p.Name.Equals(profileName, StringComparison.OrdinalIgnoreCase));
                    
                    if (profile != null)
                    {
                        targetExt.CurrentProfile = profile;
                    }

                    // 4. Sauvegarde globale
                    targetExt.ResetCurrentProfileOverride();
                    targetExt.Save();

                    return Task.FromResult(true);
                }
            }
            catch (Exception)
            {
                // Erreur silencieuse
            }
            return Task.FromResult(false);
        }
    }
}

Installation