快速入門:電話號碼的輸出通話
使用通訊服務通話 SDK 將 PSTN 通話新增至您的應用程式,以開始使用 Azure 通訊服務。
重要
Azure 通訊服務 僅支援 美國、波多黎各、加拿大、丹麥和英國的緊急電話。
Azure 通訊服務 語音電話(PSTN)可用來撥打 美國、波多黎各和加拿大的緊急號碼911,在丹麥撥打緊急號碼112,並在英國撥打緊急號碼999和112。 Azure 通訊服務 目前不支援從這些國家或地區以外撥打這些緊急號碼,或撥入其他國家或地區的緊急服務。
範例程式碼
在 GitHub 上 尋找本快速入門的完成程式代碼
注意
您可以使用 Azure 通訊服務 UI 連結庫來存取電話號碼的輸出通話。 UI 連結庫可讓開發人員只使用幾行程式代碼,將已啟用 PSTN 的呼叫用戶端新增至其應用程式中。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- 已部署通訊服務資源。 建立通訊服務資源。
- 在通訊服務資源中取得的電話號碼,或已設定 Azure 通訊服務 直接路由。 如果您有免費的訂用帳戶,您可以 取得試用電話號碼。
User Access Token
開啟通話用戶端的 。 如需如何取得的詳細資訊User Access Token
設定
建立新的Node.js應用程式
開啟終端機或命令視窗,為您的應用程式建立新的目錄,然後流覽至該目錄。
mkdir calling-quickstart
cd calling-quickstart
執行 npm init -y
以使用預設設定建立 package.json 檔案。
npm init -y
Install the package
npm install
使用 命令來安裝 Azure 通訊服務呼叫 SDK for JavaScript。
npm install @azure/communication-common --save
npm install @azure/communication-calling --save
選項--save
會將連結庫列為package.json檔案中的相依性。
設定應用程式架構
本快速入門會使用包裹來組合應用程式資產。 執行下列命令以安裝它,並將它列為package.json中的開發相依性:
npm install parcel --save-dev
在專案的根目錄中建立 index.html 檔案。 我們將使用此檔案來設定基本版面配置,讓使用者可以撥打電話。
程式碼如下:
<!DOCTYPE html>
<html>
<head>
<title>Communication Client - Calling Sample</title>
</head>
<body>
<h4>Azure Communication Services</h4>
<h1>Calling Quickstart</h1>
<input
id="callee-phone-input"
type="text"
placeholder="Who would you like to call?"
style="margin-bottom:1em; width: 230px;"
/>
<div>
<button id="call-phone-button" type="button">
Start Call
</button>
<button id="hang-up-phone-button" type="button" disabled="true">
Hang Up
</button>
</div>
<script src="./app.js" type="module"></script>
</body>
</html>
在名為 app.js 的專案根目錄中建立檔案,以包含本快速入門的應用程式邏輯。 新增下列程式代碼以匯入呼叫用戶端並取得 DOM 元素的參考,以便我們可以附加商業規則。
import { CallClient, CallAgent } from "@azure/communication-calling";
import { AzureCommunicationTokenCredential } from '@azure/communication-common';
let call;
let callAgent;
const calleePhoneInput = document.getElementById("callee-phone-input");
const callPhoneButton = document.getElementById("call-phone-button");
const hangUpPhoneButton = document.getElementById("hang-up-phone-button");
async function init() {
const callClient = new CallClient();
const tokenCredential = new AzureCommunicationTokenCredential('<USER ACCESS TOKEN with VoIP scope>');
callAgent = await callClient.createCallAgent(tokenCredential);
//callPhoneButton.disabled = false;
}
init();
開始撥打電話
指定您在通訊服務資源中取得的電話號碼,以用來啟動通話:
警告
電話 數位應以 E.164 國際標準格式提供。 (例如: +12223334444)
新增事件處理程式,以起始您按兩下時 callPhoneButton
所提供的電話號碼呼叫:
callPhoneButton.addEventListener("click", () => {
// start a call to phone
const phoneToCall = calleePhoneInput.value;
call = callAgent.startCall(
[{phoneNumber: phoneToCall}], { alternateCallerId: {phoneNumber: 'YOUR AZURE REGISTERED PHONE NUMBER HERE: +12223334444'}
});
// toggle button states
hangUpPhoneButton.disabled = false;
callPhoneButton.disabled = true;
});
結束通話通話
新增事件接聽程式,以在按兩下 時 hangUpPhoneButton
結束目前的呼叫:
hangUpPhoneButton.addEventListener("click", () => {
// end the current call
call.hangUp({
forEveryone: true
});
// toggle button states
hangUpPhoneButton.disabled = true;
callPhoneButton.disabled = false;
});
屬性會 forEveryone
結束所有通話參與者的呼叫。
執行程式碼
使用 命令 npx parcel index.html
來建置並執行您的應用程式。
請開啟瀏覽器,然後瀏覽至 http://localhost:1234/
。 您應該看到下列 Web 應用程式:
您可以在新增的文字欄位中提供電話號碼,然後按兩下 [開始 電話 通話] 按鈕,以撥打真實電話號碼。
重要
Azure 通訊服務 僅支援 美國、波多黎各、加拿大、丹麥和英國的緊急電話。
Azure 通訊服務 語音電話(PSTN)可用來撥打 美國、波多黎各和加拿大的緊急號碼911,在丹麥撥打緊急號碼112,並在英國撥打緊急號碼999和112。 Azure 通訊服務 目前不支援從這些國家或地區外撥打這些緊急號碼,或撥接其他國家或地區的緊急服務。
範例程式碼
在 GitHub 上 尋找本快速入門的完成程式代碼
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- 已部署通訊服務資源。 建立通訊服務資源。
- 在通訊服務資源中取得的電話號碼,或已設定 Azure 通訊服務 直接路由。 如果您有免費的訂用帳戶,您可以 取得試用電話號碼。
User Access Token
開啟通話用戶端的 。 如需如何取得的詳細資訊User Access Token
- 完成快速入門,以 開始使用將呼叫新增至您的應用程式
先決條件檢查
- 若要檢視與通訊服務資源相關聯的電話號碼,請登入 Azure 入口網站,找出您的通訊服務資源,然後從左側瀏覽窗格開啟 [電話號碼] 索引卷標。
設定
將 PSTN 功能新增至您的應用程式
修改 MainActivity.java,將PhoneNumber
類型新增至您的應用程式:
import com.azure.android.communication.common.PhoneNumberIdentifier;
開始撥打電話
指定您在通訊服務資源內取得的電話號碼。 此號碼會作為來電者標識碼來啟動通話:
警告
請注意,電話號碼應以 E.164 國際標準格式提供。 (例如: +12223334444)
修改 startCall()
MainActivity.java 中的事件處理程式,以便處理電話:
private void startCall() {
EditText calleePhoneView = findViewById(R.id.callee_id);
String calleePhone = calleePhoneView.getText().toString();
PhoneNumberIdentifier callerPhone = new PhoneNumberIdentifier("+12223334444");
StartCallOptions options = new StartCallOptions();
options.setAlternateCallerId(callerPhone);
options.setVideoOptions(new VideoOptions(null));
call = agent.startCall(
getApplicationContext(),
new PhoneNumberIdentifier[] {new PhoneNumberIdentifier(calleePhone)},
options);
}
啟動應用程式並呼叫 Echo Bot
現在可以使用工具列上的 [執行應用程式] 按鈕來啟動應用程式(Shift+F10)。 若要撥打電話,請在新增的文字欄位中提供電話號碼,然後選取 [ 通話 ] 按鈕。
警告
請注意,電話號碼應以 E.164 國際標準格式提供。 (例如: +12223334444)
重要
Azure 通訊服務 僅支援 美國、波多黎各、加拿大、丹麥和英國的緊急電話。
Azure 通訊服務 語音電話(PSTN)可用來撥打 美國、波多黎各和加拿大的緊急號碼 911,在丹麥撥打緊急號碼 112,並在英國撥打緊急號碼 999 和 112。 Azure 通訊服務 目前不支援從這些國家或地區外部撥打這些緊急號碼,或撥入其他國家或地區的緊急服務。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- 已部署通訊服務資源。 建立通訊服務資源。
- 在通訊服務資源中取得的電話號碼,或已設定 Azure 通訊服務 直接路由。 如果您有免費的訂用帳戶,您可以 取得試用電話號碼。
User Access Token
開啟通話用戶端的 。 如需如何取得的詳細資訊User Access Token
- 完成快速入門,以 開始使用將呼叫新增至您的應用程式
先決條件檢查
- 若要檢視與通訊服務資源相關聯的電話號碼,請登入 Azure 入口網站,找出您的通訊服務資源,然後從左瀏覽窗格開啟 [電話號碼] 索引標籤。
- 您可以使用適用於 iOS 的 Azure 通訊服務 呼叫 SDK 來建置並執行您的應用程式:
設定
開始撥打電話
指定您在通訊服務資源中取得的電話號碼,以用來啟動通話:
警告
請注意,電話號碼應以 E.164 國際標準格式提供。 (例如: +12223334444)
變更 startCall
點選 [ 開始呼叫 ] 按鈕時所執行的事件處理程式:
func startCall() {
// Ask permissions
AVAudioSession.sharedInstance().requestRecordPermission { (granted) in
if granted {
let startCallOptions = StartCallOptions()
startCallOptions.alternateCallerId = PhoneNumberIdentifier(phoneNumber: "<YOUR AZURE REGISTERED PHONE NUMBER>")
self.callAgent!.startCall(participants: [PhoneNumberIdentifier(phoneNumber: self.callee)], options: startCallOptions) { (call, error) in
if (error == nil) {
self.call = call
} else {
print("Failed to get call object")
}
}
}
}
}
執行程式碼
您可以選取 [產品>執行] 或使用 [⌘-R] 鍵盤快捷方式,在 iOS 模擬器上建置並執行您的應用程式。
您可以在新增的文字欄位中提供電話號碼,然後按兩下 [開始通話] 按鈕來撥打電話 。
警告
請注意,電話號碼應以 E.164 國際標準格式提供。 (例如: +12223334444)
注意
第一次撥打電話時,系統會提示您存取麥克風。 在生產應用程式中,您應該使用 AVAudioSession
API 檢查許可權狀態 ,並在未授與許可權時正常更新應用程式的行為。
清除資源
如果您想要清除並移除通訊服務訂用帳戶,您可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。 深入瞭解清除 資源。
下一步
如需詳細資訊,請參閱下列文章: