Aller au contenu

« Astreinte » : différence entre les versions

De INDYWiki
Anthony (discussion | contributions)
Anthony (discussion | contributions)
Ligne 21 : Ligne 21 :


Principe de cette méthode :  
Principe de cette méthode :  
* On injecte les données d'astreinte dans l'extension qui reçoit habituellement les appels
* On définit dans un script le paramétrage vu dans la méthode sans script :
*#statut
*#numéro d'astreinte
*#nom astreinte
*#prénom astreinte
 
===Déclaration du script===
[[Fichier:2026-04-02 17h11 35.png|vignette]]
Rendez-vous dans :
 
Admin / Intégrations / Scripts d'appels / + Ajouter personnalisé
 
#Donner un nom au traitement de l'appel. Exemple : '''astreinte_weekend'''
#Créer un code de raccourci, ce qui permettra d'exécuter le script simplement en appelant ce code, et in fine par une BLF. Exemple : '''*99'''
#OK
#Coller dans le champ script le script paramétré ( voir section suivante )
#Sauvegarder
#Un message doit indiquer '''Compilation réussie !'''
 
 
 


===Le script===
===Le script===
<syntaxhighlight lang="csharp" line highlight="14-16,19-20">
<syntaxhighlight lang="csharp" line highlight="14-16,19-20">
using System;
using System;

Version du 2 avril 2026 à 17:20

par les statuts

Dans les réglages de l'extension qui accueille les appels :

  1. Réglages
  2. Transfert d'appels
  3. Choisir le statut de l'extension à activer pour enclencher le renvoi vers l'astreinte. Dans l'exemple Absent. Pas l'état Disponible évidemment.
  4. Dans "Transférer les appels externes à", choisir Numéro externe
  5. Saisir le numéro de l'astreinte
  6. Cocher Rebond

Limite / contrainte : si les astreintes tournent, avant chaque période d'astreinte, il faut faire ce cheminement pour que le bon numéro de mobile soit paramétré

Via script

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

  • 4 profils d'astreinte maximum
  • Nécessite de manipuler l'application WEB

Principe de cette méthode :

  • On définit dans un script le paramétrage vu dans la méthode sans script :
    1. statut
    2. numéro d'astreinte
    3. nom astreinte
    4. prénom astreinte

Déclaration du script

Rendez-vous dans :

Admin / Intégrations / Scripts d'appels / + Ajouter personnalisé
  1. Donner un nom au traitement de l'appel. Exemple : astreinte_weekend
  2. Créer un code de raccourci, ce qui permettra d'exécuter le script simplement en appelant ce code, et in fine par une BLF. Exemple : *99
  3. OK
  4. Coller dans le champ script le script paramétré ( voir section suivante )
  5. Sauvegarder
  6. Un message doit indiquer Compilation réussie !



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 = "100"; 
            string mobileElu = "0601020304";
            string profileName = "Away"; 
            
            // Nommage de l'astreinte
            string prenomElu = "ASTREINTE"; 
            string nomElu = "ELU"; 

            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