Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
tuto:ipasserelle:telephonie:page_de_callback [16/11/2010 19:36] dani [Installation des paquets nécessaires] |
tuto:ipasserelle:telephonie:page_de_callback [12/07/2012 18:35] dani Page moved from page_de_callback to tuto:ipasserelle:telephonie:page_de_callback |
||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
Ce tuto vous permet de créer une petite page de callback simple. Une fois cette page en place, vous pouvez vous connecter sur < | Ce tuto vous permet de créer une petite page de callback simple. Une fois cette page en place, vous pouvez vous connecter sur < | ||
- | * Le premier est le numéro sur lequel votre serveur | + | * Le premier est le numéro sur lequel votre serveur doit vous appeler |
* le second est le numéro de téléphone de la personne que vous souhaitez appeler | * le second est le numéro de téléphone de la personne que vous souhaitez appeler | ||
- | * | + | |
Asterisk se chargera de vous appeler, puis d' | Asterisk se chargera de vous appeler, puis d' | ||
- | ===== Installation des paquets nécessaires ===== | ||
- | <code bash> | ||
- | yum --enablerepo=fws --enablerepo=rpmforge install perl-Asterisk-AMI | ||
- | </ | ||
===== Mise en place du script ===== | ===== Mise en place du script ===== | ||
<code bash> | <code bash> | ||
- | mkdir -p /opt/callback/ | + | yum install smeserver-callback |
- | cat <<' | + | |
- | # | + | |
- | + | ||
- | use Asterisk:: | + | |
- | use CGI qw/: | + | |
- | + | ||
- | my $q = new CGI; | + | |
- | + | ||
- | print $q-> | + | |
- | $q-> | + | |
- | $q-> | + | |
- | $q-> | + | |
- | " | + | |
- | " | + | |
- | $q-> | + | |
- | $q-> | + | |
- | $q-> | + | |
- | + | ||
- | + | ||
- | if ($q-> | + | |
- | my $nback = $q-> | + | |
- | my $ndest = $q-> | + | |
- | + | ||
- | $nback =~ s/ | + | |
- | $ndest =~ s/ | + | |
- | + | ||
- | unless (($nback =~ m/^\d+$/) && ($ndest =~ m/ | + | |
- | print $q-> | + | |
- | die ('bad number' | + | |
- | } | + | |
- | + | ||
- | my $astman = Asterisk:: | + | |
- | PeerPort => ' | + | |
- | Username => ' | + | |
- | Secret | + | |
- | ); | + | |
- | + | ||
- | die " | + | |
- | + | ||
- | my $response = $astman-> | + | |
- | Channel => " | + | |
- | Context => ' | + | |
- | CallerID => $ndest, | + | |
- | Exten => $ndest, | + | |
- | Priority => 1}); | + | |
- | + | ||
- | } | + | |
- | EOF | + | |
- | chown root:www / | + | |
- | chmod 750 / | + | |
</ | </ | ||
- | ===== Création d'un utilisateur pour l' | + | Puis |
<code bash> | <code bash> | ||
- | cat << | + | signal-event webapps-update |
- | [callback] | + | |
- | secret = __SECRET__ | + | |
- | deny=0.0.0.0/ | + | |
- | permit=127.0.0.1/ | + | |
- | read = system, | + | |
- | write = system, | + | |
- | EOF | + | |
</ | </ | ||
- | ===== Génération d'un mot de passe aléatoire | + | ===== Paramètrage |
- | On va maintenant créer un mot de passe parfaitement aléatoire pour cet utilisateur callback (et remplacer les __SECRET__) | + | Le script peut se configurer via la DB SME. Les propriété suivantes sont disponibles: |
- | <code bash> | + | * Host: le nom ou l'adresse IP du serveur Asterisk (localhost par défaut) |
- | openssl rand -base64 60 | tr -c -d '[:alnum:]' | + | * Port: le port du manager (5038 par défaut) |
- | chmod 600 ~/ | + | * User: le num de l'utilisateur pour se connecter au manager (callback |
- | export SECRET=$(cat ~/ | + | * Secret: le mot de passe pour se connecter au manager |
- | sed -i -e " | + | * access: peut être private (par défaut) ou public. Ce paramètre contrôle depuis où cette page sera accessible |
- | sed -i -e " | + | * AliasOnPrimary: |
- | unset SECRET | + | * RequireSSL yes (par défaut) ou no. Contrôle l' |
- | rm -f ~/callback.secret | + | * status: enabled (par défaut) ou disabled. Permet de désactiver la page |
- | </ | + | |
- | ===== Configuration apache | + | ===== Création d'un virtualhost |
- | Il ne reste plus qu'on configurer apache pour rendre ce script accessible | + | |
- | <code bash> | + | |
- | mkdir -p / | + | |
- | cat <<EOF > / | + | |
- | ScriptAlias /callback / | + | Voilà comment créer un virtualhost, protégé par LemonLDAP:: |
- | < | + | |
- | order deny,allow | + | |
- | deny from all | + | |
- | allow from all | + | |
- | Options ExecCGI | + | |
- | AllowOverride None | + | |
- | AuthName " | + | |
- | AuthType Basic | + | |
- | AuthExternal pwauth | + | |
- | require user admin user1 user2 | + | |
- | Satisfy all | + | |
- | </ | + | |
- | EOF | + | <code bash> |
+ | db domains set callback.$(db configuration get DomainName) domain Content Primary Description "page de callback" | ||
+ | signal-event domain-create callback.$(db configuration get DomainName) | ||
</ | </ | ||
- | En remplaçant admin user1 user2 par la liste des utilisateurs qui doivent y avoir accès (require valid-user pour que n' | ||
- | |||
- | Reste plus qu'à étendre les templates et tester | ||
+ | Il ne reste qu'à désactiver l' | ||
<code bash> | <code bash> | ||
- | expand-template / | + | db configuration setprop callback AliasOnPrimary disabled |
- | sv t / | + | signal-event webapps-update |
</ | </ |