Sommaire

Asterisk et les bases de données

1. La base de données AstDB

Le stockage de données au sein même du plan de numérotation, à l’aide de fonction et de variables, atteint vite ses limites en terme d’exploitation.

Asterisk permet de stocker des valeurs à l’aide d’une base de données interne, AstDB (Asterisk DataBase) qui est au format Berkeley.

Les données sont sauvegardées dans des familles et sont identifiées par des clés. Celles-ci sont uniques par famille.

Il faut noter que les données de la base sont persistantes dans le sens où elles demeurent accessibles depuis n’importe où dans le plan de numérotation même après un reboot du serveur. La base est stockée dans /var/lib/asterisk/astdb.

Les postes connectés sont stockés dans la base AstDB (clé SIP / Registry).

a. AstDB dans le plan de numérotation

Exemple : Écriture d’une valeur dans la clé prenom de la famille utilisateur

${prenom}=Zoe
exten => s, 1, Set(DB(utilisateur/prenom=${prenom})

Exemple : Lecture de la valeur de la clé prenom de la famille utilisateur

exten => s, 1, Set(prenom=${DB(utilisateur/prenom)})
exten => s, 2, NoOP($prenom)

b. Commandes AstDB

DBdel(famille/clé) : supprime une clé de la base.

DBdeltree(famille) : supprime une famille de la base.

DBget(variable=famille/clé) : recherche une valeur dans la base.

DBput(famille/clé=valeur) : enregistre une valeur dans ...