problème avec fsockopen()

problème avec fsockopen() - PHP - Programmation

Marsh Posté le 17-07-2009 à 11:56:15    

Salut a tous
 
Pour me loguer à asterisk avec ma page php j'utilise fsockopen() et voilà le script
 

Code :
  1. <?php
  2. $socket = fsockopen("172.20.3.1","5038", $errno, $errstr, $timeout);
  3. fputs($socket, "Action: Login\r\n" );
  4. fputs($socket, "UserName: user\r\n" );
  5. fputs($socket, "Secret: xxxxx\r\n\r\n" );
  6. ?>


 
Mais j'obtiens cette erreur:  

Code :
  1. Warning: fsockopen() [function.fsockopen]: unable to connect to 172.20.3.1:5038 (Connection timed out) in /var/www/henry/henpier/site/asterisk/test.php on line 4
  2. Warning: fputs(): supplied argument is not a valid stream resource in /var/www/henry/henpier/site/asterisk/test.php on line 5
  3. Warning: fputs(): supplied argument is not a valid stream resource in /var/www/henry/henpier/site/asterisk/test.php on line 6
  4. Warning: fputs(): supplied argument is not a valid stream resource in /var/www/henry/henpier/site/asterisk/test.php on line 7


 
Le problème semble venir de fsockopen().
Le serveur web et astersik sont 2 serveurs sur 2 machine différentes.
 
Sur le serveur web j'arrive me connecter en Telnet sur le l'interface d'astersik sur le port 5038 donc pas de problème de permission, le problème viens pas non plus du script car j'ai installé un serveur astersik sur le serveur web et pas de problème pour me loguer en local donc, le problème viens quand je veux me loguer sur un serveur asterisk distant. Auriez vous une idée du problème? Merci beaucoup
 
 

Reply

Marsh Posté le 17-07-2009 à 11:56:15   

Reply

Marsh Posté le 17-07-2009 à 13:08:35    

Vois avec ton hébergeur s'il n'y a pas de restriction sur la fonction.


---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile
Reply

Marsh Posté le 17-07-2009 à 13:23:05    

bien l'hébergeur c'est mon serveur dédié. y aurait des restrictions possible alors?

Reply

Marsh Posté le 17-07-2009 à 14:18:12    

Avec cette ligne  :  
$socket = fsockopen("172.20.3.1","5038", $errno, $errstr, $timeout);
 
tu récupère $errstr qui selon php.net : Le message d'erreur, sous la forme d'une chaîne de caractères.  
 
Un p'ti echo de $errstr  pourrait peut-etre aider
 
Sinon un "fsockopen php.ini" dans google, en effet comme la pensé "aideinfo" une restriction de ton hébergeur (comprendre du fichier php.ini , que dans ton cas tu peux modifier)
 


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Marsh Posté le 17-07-2009 à 15:09:08    

Bon j'ai regardé sur google, j'ai bien allow_url_fopen = On.
Et je trouve pas les restriction que vous parlez, car quand je tente une connexion en local pas de problème mais le problème viens quand je tente une connexion distant.

Reply

Marsh Posté le 17-07-2009 à 16:21:21    

Question conne :  
T'es sûr que ton adresse 172.20.3.1 écoute le port 5038? Genre t'as pas un firewall ou une règle NAT qui pourrait emmerder?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 17-07-2009 à 17:01:35    

oui j'en suis sûr car j'arrive a me connecter en telnet sur le manager avec le serveur qui héberge le script donc le problème viens surement de php.

Reply

Marsh Posté le 17-07-2009 à 17:14:35    

C'est bon on a trouvé le problème sur le forum asterisk-france.net.
 
Je n'avais pas initialiser la variable timeout.  
 
Merci encore de votre aide.

Reply

Marsh Posté le 17-07-2009 à 18:11:22    

La prochaine fois, merci de nous communiquer le contenu des variables


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 18-07-2009 à 13:15:32    

un tcpdump sur le serveur asterisk aurait pu aidé aussi peut etre


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed