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

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révision Les deux révisions suivantes
tuto:ipasserelle:telephonie:generer_contacts_polycom [19/07/2012 16:59]
dani
tuto:ipasserelle:telephonie:generer_contacts_polycom [24/07/2012 16:02]
dani
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.txt
  • Dernière modification: 23/09/2013 13:05
  • de dani