2012-08-07 68 views
1

我們有星號服務器和GSM網關。我需要知道在當前時間呼叫星號的電話號碼。現在我可以用命令core show channels得到SIP,但我不知道如何獲取電話號碼。 我使用phpAGI庫:星號。 PHP。如果我知道SIP,如何獲得電話號碼?

$agi_manager = new AGI_AsteriskManager(null, $agi_config); 
$connect = $agi_manager->connect(); 
$result = $agi_manager->command('core show channels'); 

回答

1

「核心節目頻道」輸出的第一行是信道ID。使用它來發出命令core show channel <id>(在頻道結束處沒有'),以查看有關頻道的更多信息,包括主叫方號碼。

foreach(explode("\n", $result) as $line) { 
    $cols = explode(" ", $line); 
    $result2 = $agi_manager->command('core show channel '.$col[0]); 
    if(preg_match('/Connected Line ID:\s*(\d+)/', $result2, $matches) { 
     printf("Phone number: %s\n", $matches[1]); 
    } 
    else { 
     printf("No phone number found for SIP Channel ID %s\n", $col[0]); 
    } 
} 

與Asterisk 1.8測試,您的版本可能會得到不同的結果。只需檢查core show channel的示例輸出。

+0

非常感謝! – Ildar 2012-08-08 04:56:52