PDA

Voir la version complète : Asterisk et PHP



greg2901
23/12/2012, 15h53
Bonjour,

Je souhaiterais récupérer et afficher l'état de mes postes sip avec une page en PHP, si j'utilise ce genre de script:


<?php
$etat=`/usr/sbin/asterisk -rx 'sip show peers'`;
echo "$etat";
?>

Mon navigateur me répond:
Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?)

Mais si je tape /usr/sbin/asterisk -rx 'sip show peers' dans un shell en temps que root j'ai bien la réponse que je souhaite.

J'ai visiblement un problème de droit, mais j'avoues que je ne sais pas trop a qui autoriser quoi, mais je sais que donner a apache les droits de root c'est pas bien !!!

Une idée ??

gb56
23/12/2012, 16h56
Si apache est lancé par www-data et asterisk par l'utilisateur asterisk :

adduser www-data asterisk

puis relancer apache

greg2901
23/12/2012, 19h04
Bonjour,

Merci pour la reponse...
Je suis sous CentOS, je n'ai qu'un seul utilisateur Moi et root, j'ai mis mon utilisateur dans le groupe apache, mais je n'ai pas de groupe asterisk, je suis un peu perdu (j'ai pas la maitrise de linux, j'ai un windows mais je me soigne petit a petit...)

Bref ça ne marche pas, ou plutot je dois mal m'y prendre !!!

Comdif
23/12/2012, 23h35
Installer sudo si il n'est pas déjà installer et dans le fichier de conf
sudoers

# User privilege specification
www-data ALL=(ALL) NOPASSWD: ALL


On relance Apache ensuite
$etat=`sudo /usr/sbin/asterisk -rx 'sip show peers'`;
devrais faire son job

gb56
24/12/2012, 12h22
Installer sudo si il n'est pas déjà installer et dans le fichier de conf
sudoers

# User privilege specification
www-data ALL=(ALL) NOPASSWD: ALL


On relance Apache ensuite
$etat=`sudo /usr/sbin/asterisk -rx 'sip show peers'`;
devrais faire son job

Ca met la machine en "Open Bar" youpi !!!

Comdif
24/12/2012, 13h37
Ca met la machine en "Open Bar" youpi !!!

Ou est le problème pour un serveur téléphonique lan ?
à moins d'héberger une tribu de hakers oisifs sous son toit.

greg2901
24/12/2012, 16h17
Bonjour,

J'ai trouvé !!!

Dans asterisk.conf j'avait tout ça:

[files]
astctlpermissions = 0660
astctlowner = root
astctlgroup = apache
astctl = asterisk.ctl

en commantaire, aprés avoir supprimé les ; j'ai relancé asterisk et apache et tout baigne !!!

Merci pour votre aide !

Bonnes Fêtes a tous