hızlı başlangıç: Telefon çağrısı

Uygulamanıza PSTN çağrısı eklemek için SDK 'Yı çağıran Iletişim hizmetlerini kullanarak Azure Iletişim Hizmetleri 'ni kullanmaya başlayın.

Önemli

Azure Iletişim Hizmetleri acil durum çağrılmasını desteklemez

Azure Iletişim Hizmetleri ' giden sesli arama hizmetleri, acil durum hizmetlerine iletişim kurmak için kullanılamaz. Acil durum çağrılarını yerleştirmek için geleneksel telefon hizmetini korumanız gerekir.

Örnek Kod

Bu hızlı başlangıç için GitHub 'da son kodu bulun

Önkoşullar

Ayarlanıyor

Yeni bir Node.js uygulaması oluşturma

Terminal veya komut pencerenizi açın, uygulamanız için yeni bir dizin oluşturun ve bu dizine gidin.

mkdir calling-quickstart && cd calling-quickstart

npm init -yDosya üzerinde varsayılan ayarlarla birpackage.jsoluşturmak için öğesini çalıştırın.

npm init -y

Paketi yükler

npm installJavaScript için SDK 'Yı çağıran Azure Iletişim hizmetlerini yüklemek için komutunu kullanın.

npm install @azure/communication-common --save
npm install @azure/communication-calling@1.1.0 --save

Bu hızlı başlangıç için aşağıdaki WebPack sürümleri önerilir:

"webpack": "^4.42.0",
"webpack-cli": "^3.3.11",
"webpack-dev-server": "^3.10.3"

--saveSeçeneği, kitaplığı dosyadaki package.js bir bağımlılık olarak listeler.

Uygulama çerçevesini ayarlama

Bu hızlı başlangıç, uygulama varlıklarını paketleyip Web Pack kullanır. WebPack, WebPack-CLI ve WebPack-dev-Server NPM paketlerini yüklemek için aşağıdaki komutu çalıştırın ve bunları üzerindepackage.js geliştirme bağımlılıkları olarak listeleyin:

npm install webpack@4.42.0 webpack-cli@3.3.11 webpack-dev-server@3.10.3 --save-dev

Projenizin kök dizininde bir index.html dosyası oluşturun. Bu dosyayı, kullanıcının çağrı yerleştirmesini sağlayacak temel bir düzen yapılandırmak için kullanacağız.

Kod şu şekildedir:

<!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="./bundle.js"></script>
  </body>
</html>

Bu hızlı başlangıç için uygulama mantığını içeren client.js adlı projenizin kök dizininde bir dosya oluşturun. Çağıran istemciyi içeri aktarmak ve iş mantığımızı ekleyebilmemiz için DOM öğelerine başvurular almak için aşağıdaki kodu ekleyin.

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 PSTN scope>');
    callAgent = await callClient.createCallAgent(tokenCredential);
  //  callPhoneButton.disabled = false;
}

init();

Telefon çağrısı Başlat

Iletişim Hizmetleri kaynağında edindiğiniz telefon numarasını belirtin; Bu, çağrıyı başlatmak için kullanılır:

Uyarı

Telefon numaralarının E. 164 uluslararası standart biçiminde sağlanması gerektiğini unutmayın. (ör.: + 12223334444)

Tıklandığında verdiğiniz telefon numarası için bir çağrı başlatmak üzere bir olay işleyicisi ekleyin 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;
});

Telefon çağrısını Sonlandır

Tıklandığında geçerli çağrıyı sonlandırmak için bir olay dinleyicisi ekleyin hangUpPhoneButton :

hangUpPhoneButton.addEventListener("click", () => {
  // end the current call
  call.hangUp({
    forEveryone: true
  });

  // toggle button states
  hangUpPhoneButton.disabled = true;
  callPhoneButton.disabled = false;
});

forEveryoneÖzelliği tüm çağrı katılımcıları için çağrıyı sonlandırır.

Kodu çalıştırma

webpack-dev-serverUygulamanızı derlemek ve çalıştırmak için kullanın. Uygulama konağını yerel bir Web sunucusuna eklemek için aşağıdaki komutu çalıştırın:

npx webpack-dev-server --entry ./client.js --output bundle.js --debug --devtool inline-source-map

Tarayıcınızı açın ve adresine gidin http://localhost:8080/ . Şunları görmeniz gerekir:

Tamamlanan JavaScript uygulamasının ekran görüntüsü.

Eklenen metin alanına bir telefon numarası girerek ve telefon görüşmesini Başlat düğmesine tıklayarak gerçek telefon numarasına bir çağrı yerleştirebilirsiniz.

Uyarı

Telefon numaralarının E. 164 uluslararası standart biçiminde sağlanması gerektiğini unutmayın. (ör.: + 12223334444)

Önemli

Azure Iletişim Hizmetleri acil durum çağrılmasını desteklemez

Azure Iletişim Hizmetleri ' giden sesli arama hizmetleri, acil durum hizmetlerine iletişim kurmak için kullanılamaz. Acil durum çağrılarını yerleştirmek için geleneksel telefon hizmetini korumanız gerekir.

Örnek Kod

Bu hızlı başlangıç için GitHub 'da son kodu bulun

Önkoşullar

Önkoşul denetimi

  • Iletişim Hizmetleri kaynağınız ile ilişkili telefon numaralarını görüntülemek için Azure Portaloturum açın, iletişim hizmetleri kaynağınızı bulun ve sol gezinti bölmesinden telefon numaraları sekmesini açın.

Ayarlanıyor

Uygulamanıza PSTN işlevselliği ekleyin

PhoneNumber MainActivity. Java' yı değiştirerek türü uygulamanıza ekleyin:

import com.azure.android.communication.common.PhoneNumberIdentifier;

Telefon çağrısı Başlat

Iletişim Hizmetleri kaynağınızın içinden aldığınız telefon numarasını belirtin. Bu, çağrıyı başlatmak için kullanılacaktır:

Uyarı

Telefon numaralarının E. 164 uluslararası standart biçiminde sağlanması gerektiğini unutmayın. (ör.: + 12223334444)

startCall() MainActivity. Java içindeki olay işleyicisini, telefon çağrılarını işleyecek şekilde değiştirin:

    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);
    }

Uygulamayı başlatın ve yankı bot 'ı çağırın

Uygulama artık araç çubuğunda "uygulama Çalıştır" düğmesi kullanılarak başlatılabilir (SHIFT + F10). Eklenen metin alanına bir telefon numarası girerek ve çağrı düğmesine tıklayarak telefon araması yapabilirsiniz.

Uyarı

Telefon numaralarının E. 164 uluslararası standart biçiminde sağlanması gerektiğini unutmayın. (ör.: + 12223334444)

Tamamlanmış uygulamayı gösteren ekran görüntüsü.

Önemli

Azure Iletişim Hizmetleri acil durum çağrılmasını desteklemez

Azure Iletişim Hizmetleri ' giden sesli arama hizmetleri, acil durum hizmetlerine iletişim kurmak için kullanılamaz. Acil durum çağrılarını yerleştirmek için geleneksel telefon hizmetini korumanız gerekir.

Önkoşullar

Önkoşul denetimi

  • İletişim Hizmetleri kaynağınız ile ilişkili telefon numaralarını görüntülemek için Azure portal'da oturum açın,İletişim Hizmetleri kaynağınızı bulun ve sol gezinti bölmesinden telefon numaraları sekmesini açın.
  • iOS için Çağırma SDK'sı ile Azure İletişim Hizmetleri ve çalıştırabilirsiniz:

Ayarlama

Telefonla arama başlatma

İletişim Hizmetleri kaynağında, çağrıyı başlatmak için kullanılacak olan telefon numarasını belirtin:

Uyarı

Telefon numaralarının E.164 uluslararası standart biçiminde sağlanmalıdır. (örn. +12223334444)

Çağrıyı startCall Başlat düğmesine basıldığında gerçekleştirilecek olay işleyicisini değiştirme:

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")
                    }
                }
            }
        }
    }

Kodu çalıştırma

Ürün Çalıştırması'yı seçerek veya > (⌘-R) klavye kısayolunu kullanarak iOS simülatöründe uygulama derleme ve çalıştırma.

Hızlı başlangıç uygulamasının son görünüm ve hisleri

Eklenen metin alanına bir telefon numarası sağlayarak ve Çağrıyı Başlat düğmesine tıklayarak bir telefon çağrısında bulundurabilirsiniz.

Uyarı

Telefon numaralarının E.164 uluslararası standart biçiminde sağlanmalıdır. (örn. +12223334444)

Not

İlk kez bir çağrıda bulunurken sistem sizden mikrofona erişmeniz istenir. Üretim uygulamasında API'yi kullanarak izin durumunu denetlemeli ve izin verilmeden uygulamanın davranışını uygun AVAudioSession bir şekilde güncelleştirebilirsiniz.

Kaynakları temizleme

Bir Iletişim Hizmetleri aboneliğini temizleyip kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, onunla ilişkili diğer tüm kaynakları da siler. Kaynakları Temizlemehakkında daha fazla bilgi edinin.

Sonraki adımlar

Daha fazla bilgi için aşağıdaki makaleleri inceleyin: