2016-06-17 3 views
0

こんにちは、私はアスタリスクのフレーム作業に取り組んでいます。私はmeetme会議で音声メッセージを再生することができるPHPスクリプトを書いています。アスタリスク*再生PHPスクリプトを作成していますが、fwrite()のパイプが破損しています

何とか私のPHPスクリプトがエラーを返した:ここ

ERROR[27555]: utils.c:1390 ast_careful_fwrite: fwrite() returned error: Broken pipe 

は私のPHPスクリプトです:

<?PHP 


set_time_limit(0); 

$filename = $_GET['click']; 

$socket = fsockopen("127.0.0.1","5038", $errno, $errstr, 10); 

if (!$socket) { echo "$errstr ($errno)\n"; 
echo fgets($socket).'<br>';} 

else { 
fputs($socket, "Action: Login\r\n"); 
fputs($socket, "UserName: myasterisk\r\n"); 
fputs($socket, "Secret: *****\r\n\r\n"); 
fputs($socket, "Action: Command\r\n"); 
// fputs($socket, "Command: sip show peers\r\n\r\n"); 
fputs($socket, "Command: meetme(2500,p)\r\n\r\n"); 
fputs($socket, "Command: Playback($filename)\r\n\r\n"); 
fputs($socket, "Command: Hangup()\r\n\r\n"); 
fputs($socket, "Action: Logoff\r\n\r\n"); 

echo fgets($socket).'<br>'; 

fclose($socket); 
} 
error_reporting(E_ALL); 

?> 

私は間違いを犯しています場所を確認してください。このスクリプトを私のダイヤルプランに実行するにはどうすればmeetme会議に入り、このスクリプトを実行してオーディオを再生することができますか。

答えて

0

ログアウトが正しく機能していることを確認してください。ログオフする前に接続を切断しているように見えます。

詳細:

http://forums.asterisk.org/viewtopic.php?f=1&t=75713

更新:

おそらく問題は、AMIソケットからすべてを読んでいないということです。たとえば、次のコードを試してみてください。

<?php 

set_time_limit(0); 

$filename = $_GET['click']; 

$socket = fsockopen("127.0.0.1","5038", $errno, $errstr, $timeout); 
fputs($socket, "Action: Login\r\n"); 
fputs($socket, "UserName: myasterisk\r\n"); 
fputs($socket, "Secret: *****\r\n\r\n"); 
fputs($socket, "Command: meetme(2500,p)\r\n\r\n"); 
fputs($socket, "Command: Playback($filename)\r\n\r\n"); 
fputs($socket, "Command: Hangup()\r\n\r\n"); 
fputs($socket, "Action: Logoff\r\n\r\n"); 
while (!feof($socket)) { 
    $wrets .= fread($socket, 8192); 
} 
fclose($socket); 
echo <<<ASTERISKMANAGEREND 
ASTERISK MANAGER OUTPUT: 
$wrets 
ASTERISKMANAGEREND; 
?> 
+0

どこから接続を終了する必要があるか教えてください。私はすべての可能性を試したが、サムのエラーを取得して.. ??? –

+0

私は接続を閉じるすべての可能性を試しています。あなたが適切に閉じることができる例を示してください。 –

関連する問題