tuto:ipasserelle:telephonie:generer_contacts_polycom

Ceci est une ancienne révision du document !


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

db accounts setprop user1 Extension 130
#!/usr/bin/perl -w
 
use esmith::AccountsDB;
use Text::Unaccent::PurePerl qw(unac_string);
use Encode;
 
my $acc = esmith::AccountsDB->open_ro();
 
my $pos = 5;
 
print '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- $RCSfile: 000000000000-directory~.xml,v $  $Revision: 1.3 $ -->
<directory>
    <item_list>
';
 
my %ext;
my %ln;
my %fn;
 
# Get user info (name, phone number) from the account DB
foreach my $u ($acc->users){
    my $login = $u->key;
    next unless ($acc->is_user_in_group($login, 'agence'));
    my $pass = $u->prop('PasswordSet') || 'no';
    next unless ($pass eq 'yes');
    $ext{$login} = $u->prop('Extension') || '';
    next unless ($ext{$login} =~ m/^\d+$/);
    $ln{$login} = unac_string(decode('utf-8',($u->prop('LastName') || '')));
    $fn{$login} = unac_string(decode('utf-8',($u->prop('FirstName') || $login)));
}
 
# Sort by lastname
foreach (sort { lc($ln{$a}) cmp lc($ln{$b}) } keys %ln){
    print "        <item>
            <ln>$ln{$_}</ln>
            <fn>$fn{$_}</fn>
            <lb>$ln{$_} $fn{$_}</lb>
            <ct>$ext{$_}</ct>
            <sd>$pos</sd>
            <bw>1</bw>
        </item>
";
    $pos++;
}
 
print "    </item_list>
</directory>";

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
  • 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)
  • tuto/ipasserelle/telephonie/generer_contacts_polycom.1343136279.txt.gz
  • Dernière modification: 24/07/2012 15:24
  • de dani