tuto:ipasserelle:telephonie:generer_contacts_polycom

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
tuto:ipasserelle:telephonie:generer_contacts_polycom [19/07/2012 16:58]
dani créée
tuto:ipasserelle:telephonie:generer_contacts_polycom [23/09/2013 13:05] (Version actuelle)
dani
Ligne 1: Ligne 1:
 ====== Génération des contacts pour les Polycom depuis la base des utilisateurs SME ====== ====== Génération des contacts pour les Polycom depuis la base des utilisateurs SME ======
  
-Voilà un petit scripts pour générer un fichier XML de contacts pour les polycoms (IP33x, IP650). Pour cela, il faut que les utilisateurs sur votre SME ait l'attribut Extension portant leur numéros interne, par exemple+Voilà un petit scripts pour générer un fichier XML de contacts pour les polycoms (IP33x, IP650). Pour cela, il faut que les utilisateurs sur votre SME aient l'attribut Extension portant leur numéros interne, par exemple
  
 <code bash> <code bash>
Ligne 14: Ligne 14:
 use Encode; use Encode;
  
-my $= esmith::AccountsDB->open_ro();+my $acc = esmith::AccountsDB->open_ro();
  
 my $pos = 5; my $pos = 5;
Ligne 24: Ligne 24:
 '; ';
  
-foreach my $u ($a->users){+my %ext; 
 +my %ln; 
 +my %fn; 
 +my %bw; 
 + 
 +foreach my $u ($acc->users){
     my $login = $u->key;     my $login = $u->key;
-    next unless ($a->is_user_in_group($login, 'agence'));+    # Want to skip specific users ? 
 +    #next if($login =~ m/^sophie|jerome$/); 
 +    # Only include members of specific groups ? 
 +    next unless ( 
 +        $acc->is_user_in_group($login, 'agence'|| 
 +        $acc->is_user_in_group($login, 'group1') || 
 +        $acc->is_user_in_group($login, 'equipe'
 +    );
     my $pass = $u->prop('PasswordSet') || 'no';     my $pass = $u->prop('PasswordSet') || 'no';
-    next unless $pass eq 'yes'; +    next unless ($pass eq 'yes')
-    my $ext = $u->prop('Extension') || ''; +    $ext{$login} = $u->prop('Extension') || ''; 
-    next unless ($ext =~ m/^\d+$/); +    $bw{$login} = 1; 
-    my $ln = unac_string(decode('utf-8',($u->prop('LastName') || ''))); +    # Use Phone number if extension is not available 
-    my $fn = unac_string(decode('utf-8',($u->prop('FirstName') || $login)));+    # But cleanup this number 
 +    if ($ext{$login} eq ''){ 
 +        $ext{$login} = $u->prop('Phone') || ''; 
 +        $ext{$login} =~ s/^\+33\(0\)/0/; 
 +        $ext{$login} =~ s/\s//g; 
 +        # Don't monitor line state for external numbers 
 +        $bw{$login} = 0; 
 +    } 
 +    unless ($ext{$login} =~ m/^\d+$/)
 +        # Want to list users which hasn't any phone specified ? 
 +        # print "<!-- $login n'a pas de numero -->\n"; 
 +        next
 +    
 +    $ln{$login} = unac_string(decode('utf-8',($u->prop('LastName') || ''))); 
 +    $fn{$login} = unac_string(decode('utf-8',($u->prop('FirstName') || $login))); 
 +
 +foreach (sort { lc($ln{$a}) cmp lc($ln{$b}) } keys %ln){
     print "        <item>     print "        <item>
-            <ln>$ln</ln> +            <ln>$ln{$_}</ln> 
-            <fn>$fn</fn> +            <fn>$fn{$_}</fn> 
-            <lb>$ln $fn</lb> +            <lb>$ln{$_} $fn{$_}</lb> 
-            <ct>$ext</ct>+            <ct>$ext{$_}</ct>
             <sd>$pos</sd>             <sd>$pos</sd>
-            <bw>1</bw>+            <bw>$bw{$_}</bw>
         </item>         </item>
 "; ";
Ligne 50: Ligne 78:
  
 Il ne reste plus qu'à ajuster deux trois trucs, dans cet exemple: Il ne reste plus qu'à ajuster deux trois trucs, dans cet exemple:
-  * Seuls les utilisateurs membre du groupe "agence" et ayant un mot de passe configuré seront mis dans la liste+  * Seuls les utilisateurs membre du groupe "agence" ou "group1" ou "equipe" et ayant un mot de passe configuré seront mis dans la liste
   * Le premier contacts sera en position 5 (qui correspond au premier emplacement sur la première extension sur les Polycom IP650)   * Le premier contacts sera en position 5 (qui correspond au premier emplacement sur la première extension sur les Polycom IP650)
   * Tous les accents seront supprimés (ils posent souvent plus de problèmes qu'autres chose)   * Tous les accents seront supprimés (ils posent souvent plus de problèmes qu'autres chose)
  • tuto/ipasserelle/telephonie/generer_contacts_polycom.1342709933.txt.gz
  • Dernière modification: 19/07/2012 16:58
  • de dani