Aller au contenu

« Astreinte » : différence entre les versions

De INDYWiki
Anthony (discussion | contributions)
Anthony (discussion | contributions)
mAucun résumé des modifications
 
(31 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
== par les statuts ==
== par le statut ==
== via script==
Dans les réglages de l'extension qui accueille les appels :
[[Fichier:2026-04-02 16h03 02.png|vignette]]
#Réglages
#Transfert d'appels
#Choisir le statut de l'extension à activer pour enclencher le renvoi vers l'astreinte. Dans l'exemple '''Absent'''. Pas l'état '''Disponible''' évidemment.
#Dans "Transférer les appels externes à", choisir '''Numéro externe'''
#Saisir le numéro de l'astreinte
#Cocher '''Rebond'''


<pre>
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é
*4 profils d'astreinte maximum
*Nécessite de manipuler l'application WEB
 
== Par le statut + script==
===Principe===
On paramètre le statut choisi pour l'astreinte en renvoi vers '''mon mobile'''. Un script viendra modifier le statut de l'extension cible ainsi que son numéro de contact mobile, prénom et nom. Ce script déclenchable par l'appel à un code court, paramétrable si on le souhaite sur une BLF.
===Paramétrage du statut de l'extension vers '''mon mobile'''===
[[Fichier:2026-04-03 13h29 01.png|vignette]]
#Réglages
#Transfert d'appels
#Choisir le statut de l'extension à activer pour enclencher le renvoi vers l'astreinte. Dans l'exemple '''Absent'''. Pas l'état '''Disponible''' évidemment.
#Dans "Transférer les appels externes à", choisir '''Mon mobile'''
#Cocher '''Rebond'''
 
===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===
 
L'éxécution du script va modifier l'extension '''targetExtNum ''', il va le basculer sur le statut '''profileName ''', modifier son mobile de contact '''mobileElu ''', son nom et prénom.
 
Il faut donc seulement modifier les lignes surlignés dans le code ci-dessous :
 
<syntaxhighlight lang="csharp" line highlight="14-16,19-20">
using System;
using System;
using System.Threading.Tasks;
using System.Threading.Tasks;
Ligne 16 : Ligne 62 :
         public override Task<bool> StartAsync()
         public override Task<bool> StartAsync()
         {
         {
             string targetExtNum = "111";  
             string targetExtNum = "100";  
             string mobileElu = "0743031843";
             string mobileElu = "0601020304";
             string profileName = "Away";  
             string profileName = "Away";  
              
              
             // --- AJOUT : Nommage de l'astreinte ---
             // 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";  


             try
             try
Ligne 34 : Ligne 80 :
                     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 60 : Ligne 106 :
         }
         }
     }
     }
}</pre>
}
</syntaxhighlight>
 
====Table de correspondance des profileName====
 
{| class="wikitable"
|-
! Dans 3CX!! Dans le script
|-
| Disponible|| Available
|-
| Absent|| Away
|-
| Ne pas déranger|| Out of office
|-
| Custom 1|| Custom 1
|-
| Custom 2|| Custom 2
|}
 
===Configuration concrète===
 
Il faut choisir un statut autre que "Disponible" qui sera activé pour l'astreinte, "Away" pour cet exemple
 
On a besoin de gérer deux astreintes. Le poste Accueil reçoit les appels en temps normal
 
{| class="wikitable"
|+ Texte de la légende
|-
|'''Marcel Patulacci''' || '''Jean-Michel Apeuprè'''|| '''Poste accueil ''' hors période d'astreinte
|-
| <syntaxhighlight lang="csharp" line highlight="3-5,8-9">
public override Task<bool> StartAsync()
        {
            string targetExtNum = "100";
            string mobileElu = "0699999999";
            string profileName = "Away";
 
            // Nommage de l'astreinte
            string prenomElu = "Marcel";
            string nomElu = "Patulacci";
 
            try
</syntaxhighlight> || <syntaxhighlight lang="csharp" line highlight="3-5,8-9">
public override Task<bool> StartAsync()
        {
            string targetExtNum = "100";
            string mobileElu = "0688888888";
            string profileName = "Away";
 
            // Nommage de l'astreinte
            string prenomElu = "Jean-Michel";
            string nomElu = "Apeuprè";
 
            try
</syntaxhighlight>|| <syntaxhighlight lang="csharp" line highlight="3-5,8-9">
public override Task<bool> StartAsync()
        {
            string targetExtNum = "100";
            string mobileElu = "";
            string profileName = "Available";
 
            // Nommage de l'astreinte
            string prenomElu = "Accueil";
            string nomElu = "";
 
            try
</syntaxhighlight>
|}
 
Une fois les 3 scripts produits, passer à l'étape [[Astreinte#Déclaration_du_script|Déclaration du script]] qui va permettre d'affecter un code court à chaque script.
Exemple :
* *90 pour hors période d'astreinte
* *91 pour Jean-Michel
* *92 pour Marcel
 
On peut communiquer les codes aux personnes habilitées à gérer le système d'astreinte et aller jusqu'à paramétrer des BLF pour faciliter la vie d'une secrétaire par exemple.


{{Valide|v20}}
[[Catégorie:3CX]]
[[Catégorie:3CX]]

Dernière version du 3 avril 2026 à 13:38

par le statut

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é
  • 4 profils d'astreinte maximum
  • Nécessite de manipuler l'application WEB

Par le statut + script

Principe

On paramètre le statut choisi pour l'astreinte en renvoi vers mon mobile. Un script viendra modifier le statut de l'extension cible ainsi que son numéro de contact mobile, prénom et nom. Ce script déclenchable par l'appel à un code court, paramétrable si on le souhaite sur une BLF.

Paramétrage du statut de l'extension vers mon mobile

  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 Mon mobile
  5. Cocher Rebond

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

L'éxécution du script va modifier l'extension targetExtNum , il va le basculer sur le statut profileName , modifier son mobile de contact mobileElu , son nom et prénom.

Il faut donc seulement modifier les lignes surlignés dans le code ci-dessous :

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);
        }
    }
}

Table de correspondance des profileName

Dans 3CX Dans le script
Disponible Available
Absent Away
Ne pas déranger Out of office
Custom 1 Custom 1
Custom 2 Custom 2

Configuration concrète

Il faut choisir un statut autre que "Disponible" qui sera activé pour l'astreinte, "Away" pour cet exemple

On a besoin de gérer deux astreintes. Le poste Accueil reçoit les appels en temps normal

Texte de la légende
Marcel Patulacci Jean-Michel Apeuprè Poste accueil hors période d'astreinte
public override Task<bool> StartAsync()
        {
            string targetExtNum = "100"; 
            string mobileElu = "0699999999";
            string profileName = "Away"; 

            // Nommage de l'astreinte
            string prenomElu = "Marcel"; 
            string nomElu = "Patulacci"; 

            try
public override Task<bool> StartAsync()
        {
            string targetExtNum = "100"; 
            string mobileElu = "0688888888";
            string profileName = "Away"; 

            // Nommage de l'astreinte
            string prenomElu = "Jean-Michel"; 
            string nomElu = "Apeuprè"; 

            try
public override Task<bool> StartAsync()
        {
            string targetExtNum = "100"; 
            string mobileElu = "";
            string profileName = "Available"; 

            // Nommage de l'astreinte
            string prenomElu = "Accueil"; 
            string nomElu = ""; 

            try

Une fois les 3 scripts produits, passer à l'étape Déclaration du script qui va permettre d'affecter un code court à chaque script. Exemple :

  • *90 pour hors période d'astreinte
  • *91 pour Jean-Michel
  • *92 pour Marcel

On peut communiquer les codes aux personnes habilitées à gérer le système d'astreinte et aller jusqu'à paramétrer des BLF pour faciliter la vie d'une secrétaire par exemple.

Valide v20