2016-10-28 69 views
-3

我想過濾來自Asterisk Manager Interface的事件,以便僅顯示PHP網頁上的調用和調用信息。 這是代碼,它什麼都不顯示。我已經試過這個修改後的字符串,而正常文本循環,它效果很好。PHP從Asterisk Manager接口(AMI)修改web顯示事件

<?php 

$socket = fsockopen("127.0.0.1","5038", $errno, $errstr, 10); 
if (!$socket){ 
    echo "$errstr ($errno)\n"; 
       } 
    else{ 
fputs($socket, "action: login\r\n"); 
fputs($socket, "username: asterisk\r\n"); 
fputs($socket, "secret: zxczxc\r\n\r\n"); 
fputs($socket, "action: Waitevent\r\n"); 
$wrets=fgets($socket,128); 

while(($buffer = fgets($socket,4096)) !== false) 
    { $p1=strpos($buffer,"Newchannel"); 
    if($p1 > 0) 
    echo "Calling ID ="; 
    echo substr($buffer,$p1+4,4); 
    } 
} 
} 
?> 

這裏是不用修改事件的結果:

enter image description here

+1

那麼問題是什麼?在你的代碼中找到bug - 這裏是offtopic,參見規則。 – arheops

+0

謝謝你回答我的問題。對不起,我是新手,我還不清楚。我的問題是使用while循環修改AMI事件不起作用。訪問時,網頁不顯示任何內容。我已經試過這個循環與正常的文本文件來修改文本,它運作良好。 –

+0

沒有人會爲你調試,對不起。做消息輸出到日誌文件,輸出你的行爲,查看所有結果。 – arheops

回答