快速入門:電話號碼的輸出通話

使用通訊服務通話 SDK 將 PSTN 通話新增至您的應用程式,以開始使用 Azure 通訊服務。

重要

Azure 通訊服務 僅支援 美國、波多黎各、加拿大、丹麥和英國的緊急電話。

Azure 通訊服務 語音電話(PSTN)可用來撥打 美國、波多黎各和加拿大的緊急號碼911,在丹麥撥打緊急號碼112,並在英國撥打緊急號碼999和112。 Azure 通訊服務 目前不支援從這些國家或地區以外撥打這些緊急號碼,或撥入其他國家或地區的緊急服務。

範例程式碼

在 GitHub 上 尋找本快速入門的完成程式代碼

注意

您可以使用 Azure 通訊服務 UI 連結庫來存取電話號碼的輸出通話。 UI 連結庫可讓開發人員只使用幾行程式代碼,將已啟用 PSTN 的呼叫用戶端新增至其應用程式中。

必要條件

設定

建立新的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>
      &nbsp;
      <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 應用程式:

Screenshot of the completed JavaScript Application.

您可以在新增的文字欄位中提供電話號碼,然後按兩下 [開始 電話 通話] 按鈕,以撥打真實電話號碼。

重要

Azure 通訊服務 僅支援 美國、波多黎各、加拿大、丹麥和英國的緊急電話。

Azure 通訊服務 語音電話(PSTN)可用來撥打 美國、波多黎各和加拿大的緊急號碼911,在丹麥撥打緊急號碼112,並在英國撥打緊急號碼999和112。 Azure 通訊服務 目前不支援從這些國家或地區外撥打這些緊急號碼,或撥接其他國家或地區的緊急服務。

範例程式碼

在 GitHub 上 尋找本快速入門的完成程式代碼

必要條件

先決條件檢查

  • 若要檢視與通訊服務資源相關聯的電話號碼,請登入 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)

Screenshot showing the completed application.

重要

Azure 通訊服務 僅支援 美國、波多黎各、加拿大、丹麥和英國的緊急電話。

Azure 通訊服務 語音電話(PSTN)可用來撥打 美國、波多黎各和加拿大的緊急號碼 911,在丹麥撥打緊急號碼 112,並在英國撥打緊急號碼 999 和 112。 Azure 通訊服務 目前不支援從這些國家或地區外部撥打這些緊急號碼,或撥入其他國家或地區的緊急服務。

必要條件

先決條件檢查

  • 若要檢視與通訊服務資源相關聯的電話號碼,請登入 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 模擬器上建置並執行您的應用程式。

Final look and feel of the quick start app

您可以在新增的文字欄位中提供電話號碼,然後按兩下 [開始通話] 按鈕來撥打電話

警告

請注意,電話號碼應以 E.164 國際標準格式提供。 (例如: +12223334444)

注意

第一次撥打電話時,系統會提示您存取麥克風。 在生產應用程式中,您應該使用 AVAudioSession API 檢查許可權狀態 ,並在未授與許可權時正常更新應用程式的行為。

清除資源

如果您想要清除並移除通訊服務訂用帳戶,您可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。 深入瞭解清除 資源

下一步

如需詳細資訊,請參閱下列文章: