Leer en inglés

Compartir vía


Inicio rápido: agregar llamadas de emergencia

Elección de una plataforma

Agregue llamadas de emergencia a la aplicación habilitada para RTC mediante el SDK de llamadas de Azure Communication Services.

Importante

Azure Communication Services admite llamadas de emergencia a números de emergencia solo en Estados Unidos, Puerto Rico, Canadá, Dinamarca, el Reino Unido y Australia.

El uso de las llamadas de voz de Azure Communication Services (RTC) puede ser utilizado para marcar el número de emergencia 911 en Estados Unidos, Puerto Rico y Canadá, el número de emergencia 112 en Dinamarca y los números de emergencia 000 en Australia, 999 y 112 en el Reino Unido. Azure Communication Services no admite actualmente la marcación de esos números de emergencia desde fuera de esos países o regiones, ni la marcación de servicios de emergencia en otros países o regiones.

Requisitos previos

Consideraciones importantes

  • La capacidad de marcar un número de emergencia y de recibir una llamada de respuesta puede ser un requisito para la aplicación. Compruebe los requisitos de llamadas de emergencia con su asesor legal.

  • Microsoft usa códigos de país o región según el estándar ISO 3166-1 alfa-2.

  • Los códigos ISO admitidos son US (Estados Unidos), PR (Puerto Rico), CA (Canadá), GB (Reino Unido) y DK (Dinamarca) únicamente.

  • Si no proporciona el código ISO de país o región al SDK de llamadas de Azure Communication Services, Microsoft usa la dirección IP para determinar el país o región del autor de la llamada.

    En caso de que la dirección IP no pueda proporcionar una geolocalización confiable (por ejemplo, si el usuario se encuentra en una red privada virtual), se debe establecer el código ISO del país o región que realiza la llamada mediante la API en el SDK de llamadas.

  • Si los usuarios están marcando desde un territorio de EE. UU. (por ejemplo, Guam, Islas Vírgenes de los EE. UU., Islas Marianas del Norte o Samoa Americana), se debe establecer el código ISO en US.

  • La marcación de emergencia está fuera del ámbito para el enrutamiento directo de Azure Communication Services.

  • Para obtener información sobre la facturación del servicio de emergencia en Azure Communication Services, consulte la página de precios.

Configuración de un botón de prueba

Reemplace el código de index.html por el siguiente fragmento de código. Agrega un nuevo botón para probar las llamadas de emergencia.

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>
      <button id="emergency-button" type="button">
        933 Test Call
      </button>
    </div>
    <script src="./bundle.js"></script>
  </body>
</html>

Especificación del país o región

Especifique el código ISO del país o región donde se encuentra el autor de la llamada. Para obtener una lista de los códigos ISO admitidos, consulte el artículo conceptual sobre las llamadas de emergencia.

En el archivo client.js, agregue el código siguiente para recuperar el botón de emergencia que creó en index.html:

JavaScript
const emergencyButton = document.getElementById("emergency-button");

Reemplace la función init para agregar un campo durante la creación de callAgent para especificar el país o región de emergencia:

JavaScript
async function init() {
    const callClient = new CallClient();
    const tokenCredential = new AzureCommunicationTokenCredential('<USER ACCESS TOKEN with PSTN scope>');
    callAgent = await callClient.createCallAgent(tokenCredential, {
                emergencyCallOptions: {"countryCode": "<COUNTRY CODE>"}
            });
  //  callPhoneButton.disabled = false;
}

Adición de funcionalidad al botón de llamada

Para agregar funcionalidad al botón de llamada de emergencia, agregue el código siguiente al archivo client.js. Se asigna un identificador de llamada temporal para la llamada de emergencia, independientemente de si se proporciona o no el parámetro alternateCallerId.

JavaScript
emergencyButton.addEventListener("click", () => {
  const phoneToCall = "933";
  call = callAgent.startCall(
    [{phoneNumber: phoneToCall}]);
  // toggle button states
  hangUpPhoneButton.disabled = false;
  callPhoneButton.disabled = true;
});

Importante

El número 933 es un servicio de llamada de prueba. Puede usarlo para probar los servicios de llamadas de emergencia sin interrumpir los servicios de llamadas de emergencia en directo al 911. En situaciones de emergencia reales, debe marcar el 911.

Ejecución de la aplicación y realización de una llamada

Use webpack-dev-server para compilar y ejecutar la aplicación. Ejecute el siguiente comando para agrupar el host de aplicación en un servidor web local:

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

Abra el explorador y vaya a http://localhost:8080/. Aparece la aplicación web completada.

Captura de pantalla de una aplicación de llamada completada en JavaScript.

Para hacer una llamada al 933, seleccione el botón 933 Test Call.

Importante

Azure Communication Services admite llamadas de emergencia a números de emergencia solo en Estados Unidos, Puerto Rico, Canadá, Dinamarca, el Reino Unido y Australia.

El uso de las llamadas de voz de Azure Communication Services (RTC) puede ser utilizado para marcar el número de emergencia 911 en Estados Unidos, Puerto Rico y Canadá, el número de emergencia 112 en Dinamarca y los números de emergencia 000 en Australia, 999 y 112 en el Reino Unido. Azure Communication Services no admite actualmente la marcación de esos números de emergencia desde fuera de esos países o regiones, ni la marcación de servicios de emergencia en otros países o regiones.

Requisitos previos

Consideraciones importantes

  • La capacidad de marcar un número de emergencia y de recibir una llamada de respuesta puede ser un requisito para la aplicación. Compruebe los requisitos de llamadas de emergencia con su asesor legal.

  • Microsoft usa códigos de país o región según el estándar ISO 3166-1 alfa-2.

  • Los códigos ISO admitidos son US (Estados Unidos), PR (Puerto Rico), CA (Canadá), GB (Reino Unido) y DK (Dinamarca) únicamente.

  • Si no proporciona el código ISO de país o región al SDK de llamadas de Azure Communication Services, Microsoft usa la dirección IP para determinar el país o región del autor de la llamada.

    En caso de que la dirección IP no pueda proporcionar una geolocalización confiable (por ejemplo, si el usuario se encuentra en una red privada virtual), se debe establecer el código ISO del país o región que realiza la llamada mediante la API en el SDK de llamadas.

  • Si los usuarios están marcando desde un territorio de EE. UU. (por ejemplo, Guam, Islas Vírgenes de los EE. UU., Islas Marianas del Norte o Samoa Americana), se debe establecer el código ISO en US.

  • La marcación de emergencia está fuera del ámbito para el enrutamiento directo de Azure Communication Services.

  • Para obtener información sobre la facturación del servicio de emergencia en Azure Communication Services, consulte la página de precios.

Configuración de un botón de prueba

Reemplace el código de app/src/main/res/layout/activity_main.xml por el siguiente fragmento de código. Agrega un nuevo botón para probar las llamadas de emergencia.

XML
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/callee_id"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="Callee Id"
        android:inputType="textPersonName"
        android:layout_marginTop="100dp"
        android:layout_marginHorizontal="20dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="46dp"
        android:gravity="center"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent">

        <Button
            android:id="@+id/call_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Call" />

        <Button
            android:id="@+id/emergency_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="933 Test Call" />
    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

Especificación del país o región

Especifique el código ISO del país o región donde se encuentra el autor de la llamada. Para obtener una lista de los códigos ISO admitidos, consulte el artículo conceptual sobre las llamadas de emergencia.

En el archivo MainActivity.java, agregue el código siguiente al método onCreate para recuperar el botón de emergencia que creó en activity_main.xml:

Java
Button emergencyButton = findViewById(R.id.emergency_button);
emergencyButton.setOnClickListener(l->emergencyCall());

Modifique createAgent para especificar el país o región de emergencia:

Java
private void createAgent() {
    String userToken = "<User_Access_Token>";

    try {
        CommunicationTokenCredential credential = new CommunicationTokenCredential(userToken);
        EmergencyCallOptions emergencyOptions = new EmergencyCallOptions().setCountryCode("<COUNTRY CODE>");
        CallAgentOptions agentOptions = new CallAgentOptions();
        callAgent = new CallClient().createCallAgent(getApplicationContext(), credential, agentOptions).get();
    } catch (Exception ex) {
        Toast.makeText(getApplicationContext(), "Failed to create call agent.", Toast.LENGTH_SHORT).show();
    }
}

Adición de funcionalidad al botón de llamada

Para agregar funcionalidad al botón de llamada de emergencia, agregue el código siguiente al archivo MainActivity.java. Se asigna un identificador de llamada temporal para la llamada de emergencia, independientemente de si se proporciona o no el parámetro alternateCallerId.

Java
private void emergencyCall() {
    String calleePhone = "933";
    StartCallOptions options = new StartCallOptions();
    ArrayList<CommunicationIdentifier> participants = new ArrayList<>();
    participants.add(new PhoneNumberIdentifier(calleePhone));
    call = agent.startCall(
            getApplicationContext(),
            participants,
            options);
}

Importante

El número 933 es un servicio de llamada de prueba. Puede usarlo para probar los servicios de llamadas de emergencia sin interrumpir los servicios de llamadas de emergencia en directo al 911. En situaciones de emergencia reales, debe marcar el 911.

Ejecución de la aplicación y realización de una llamada

Captura de pantalla de una aplicación de llamada completada en Android.

Ahora puede ejecutar la aplicación con el botón Ejecutar aplicación de la barra de herramientas (o seleccione Mayús+F10). Para hacer una llamada al 933, seleccione el botón 933 Test Call.

Importante

Azure Communication Services admite llamadas de emergencia a números de emergencia solo en Estados Unidos, Puerto Rico, Canadá, Dinamarca, el Reino Unido y Australia.

El uso de las llamadas de voz de Azure Communication Services (RTC) puede ser utilizado para marcar el número de emergencia 911 en Estados Unidos, Puerto Rico y Canadá, el número de emergencia 112 en Dinamarca y los números de emergencia 000 en Australia, 999 y 112 en el Reino Unido. Azure Communication Services no admite actualmente la marcación de esos números de emergencia desde fuera de esos países o regiones, ni la marcación de servicios de emergencia en otros países o regiones.

Requisitos previos

Consideraciones importantes

  • La capacidad de marcar un número de emergencia y de recibir una llamada de respuesta puede ser un requisito para la aplicación. Compruebe los requisitos de llamadas de emergencia con su asesor legal.

  • Microsoft usa códigos de país o región según el estándar ISO 3166-1 alfa-2.

  • Los códigos ISO admitidos son US (Estados Unidos), PR (Puerto Rico), CA (Canadá), GB (Reino Unido) y DK (Dinamarca) únicamente.

  • Si no proporciona el código ISO de país o región al SDK de llamadas de Azure Communication Services, Microsoft usa la dirección IP para determinar el país o región del autor de la llamada.

    En caso de que la dirección IP no pueda proporcionar una geolocalización confiable (por ejemplo, si el usuario se encuentra en una red privada virtual), se debe establecer el código ISO del país o región que realiza la llamada mediante la API en el SDK de llamadas.

  • Si los usuarios están marcando desde un territorio de EE. UU. (por ejemplo, Guam, Islas Vírgenes de los EE. UU., Islas Marianas del Norte o Samoa Americana), se debe establecer el código ISO en US.

  • La marcación de emergencia está fuera del ámbito para el enrutamiento directo de Azure Communication Services.

  • Para obtener información sobre la facturación del servicio de emergencia en Azure Communication Services, consulte la página de precios.

Configuración de un botón de prueba

Reemplace el código de NavigationView en el archivo ContentView.swift por el siguiente fragmento de código. Agrega un nuevo botón para probar las llamadas de emergencia.

Swift
NavigationView {
    Form {
        Section {
            TextField("Who would you like to call?", text: $callee)
            Button(action: startCall) {
                Text("Start Call")
            }.disabled(callAgent == nil)
            Button(action: endCall) {
                Text("End Call")
            }.disabled(call == nil)
            Button (action: emergencyCall) {
              Text("933 Test Call")
            }.disabled(callAgent == nil)
            Text(status)
            Text(message)
        }
    }
    .navigationBarTitle("Emergency Calling Quickstart")
}

Especificación del país o región

Especifique el código ISO del país o región donde se encuentra el autor de la llamada. Para obtener una lista de los códigos ISO admitidos, consulte el artículo conceptual sobre las llamadas de emergencia.

En el archivo ContentView.swift, reemplace el código por el siguiente fragmento de código en el método onAppear para NavigationView:

Swift
var userCredential: CommunicationTokenCredential?
do {
    userCredential = try CommunicationTokenCredential(token: "<USER ACCESS TOKEN>")
} catch {
    print("ERROR: It was not possible to create user credential.")
    return
}

self.callClient = CallClient()
let emergencyOptions = EmergencyCallOptions()
emergencyOptions.countryCode = "<COUNTRY CODE>"
let callAgentOptions = CallAgentOptions()
callAgentOptions.emergencyCallOptions= emergencyOptions

// Creates the call agent
self.callClient?.createCallAgent(userCredential: userCredential!, options: callAgentOptions) { (agent, error) in
    if error != nil {
        print("ERROR: It was not possible to create a call agent.")
        return
    }
    else {
        self.callAgent = agent
        print("Call agent successfully created.")
    }
}

Adición de funcionalidad al botón de llamada

Para agregar funcionalidad al botón de llamada de emergencia, agregue el código siguiente al archivo ContentView.swift. Se asigna un identificador de llamada temporal para la llamada de emergencia, independientemente de si se proporciona o no el parámetro alternateCallerId.

Swift
func emergencyCall() {
        // Ask permissions
        AVAudioSession.sharedInstance().requestRecordPermission { (granted) in
            if granted {
                let startCallOptions = StartCallOptions()
                self.callAgent!.startCall(participants: [PhoneNumberIdentifier(phoneNumber: "933")], options: startCallOptions) { (call, error) in
                    if (error == nil) {
                        self.call = call
                    } else {
                        print("Failed to get call object")
                    }
                }
            }
        }
    }

Importante

El número 933 es un servicio de llamada de prueba. Puede usarlo para probar los servicios de llamadas de emergencia sin interrumpir los servicios de llamadas de emergencia en directo al 911. En situaciones de emergencia reales, debe marcar el 911.

Ejecución de la aplicación y realización de una llamada

Captura de pantalla de una aplicación de llamada completada en iOS.

Para compilar y ejecutar la aplicación en el simulador de iOS, seleccione Producto>Ejecutar o use el método abreviado de teclado ⌘-R. Para hacer una llamada al 933, seleccione el botón 933 Test Call.

Limpieza de recursos

Si quiere limpiar y quitar una suscripción a Communication Services, puede eliminar el recurso o grupo de recursos. Al eliminar un grupo de recursos también se eliminan los recursos asociados a él. Obtenga más información sobre la limpieza de recursos.

Pasos siguientes

Para más información, consulte los siguientes artículos.