要使用PHP控制FreeSWITCH服務器,您需要創建一個腳本,該腳本可以與FreeSWITCH的WebSocket API或Socket服務器通信
安裝FreeSWITCH:確保您已經在服務器上安裝了FreeSWITCH。如果尚未安裝,請參閱官方文檔以獲取有關安裝和配置的詳細信息:https://freeswitch.org/wiki/Download_FreeSWITCH
啟用WebSocket API:在FreeSWITCH中啟用WebSocket API。編輯/usr/local/etc/freeswitch/freeswitch.conf
文件,取消以下行的注釋:
mod_websocket = yes
然后重啟FreeSWITCH服務器以應用更改:
sudo systemctl restart freeswitch
freeswitch_control.php
的新PHP腳本,并使用以下示例代碼作為起點:<?php
// FreeSWITCH WebSocket服務器地址
$ws_host = "ws://localhost:8021";
// FreeSWITCH用戶名和密碼
$ws_user = "your_username";
$ws_pass = "your_password";
// 創建WebSocket連接
$ws = new WebSocket("ws://{$ws_host}");
// 連接到FreeSWITCH
if (!$ws->connect()) {
die("連接失敗: {$ws->error}");
}
// 登錄到FreeSWITCH
$login_response = $ws->send(json_encode([
"api",
"login",
"user" => $ws_user,
"password" => $ws_pass
]));
if ($login_response->status != 200) {
die("登錄失敗: {$login_response->data}");
}
// 發送命令到FreeSWITCH
$call_response = $ws->send(json_encode([
"api",
"originate",
"endpoint" => "your_endpoint",
"app" => "your_app",
"caller_id" => "your_caller_id"
]));
if ($call_response->status != 200) {
die("呼叫失敗: {$call_response->data}");
}
// 輸出響應數據
echo "呼叫創建成功: {$call_response->data}";
// 關閉WebSocket連接
$ws->close();
?>
請確保將your_username
、your_password
、your_endpoint
、your_app
和your_caller_id
替換為您的FreeSWITCH設置中的相應值。
php freeswitch_control.php
此腳本將連接到FreeSWITCH服務器,登錄并使用WebSocket API發起呼叫。您可以根據需要修改此腳本以執行其他操作,例如掛斷呼叫、發送DTMF信號等。
注意:在生產環境中使用WebSocket API時,請確保正確配置防火墻和網絡設置,以允許從PHP服務器到FreeSWITCH服務器的通信。