> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Constantes de plantilla de sesión

> Referencia de las constantes predefinidas de las plantillas de sesión de MPSD (system, capabilities, metrics, memberInitialization, QoS) que configuran las sesiones multijugador de XBOX.

<a id="top" />

En este tema se describen los elementos predefinidos de una plantilla de sesión multijugador, basados en la versión 107 de la plantilla de sesión. Estos elementos definen la configuración de una sesión multijugador.

**Contenido**

* [system](#system)
* [capabilities](#capabilities)
* [metrics](#metrics)
* [memberInitialization](#memberinitialization)
* [peerToPeerRequirements](#peertopeerrequirements)
* [peerToHostRequirements](#peertohostrequirements)
* [measurementServerAddresses](#measurementserveraddresses)
* [cloudComputePackage (en desuso)](#cloudcomputepackage)
* [arbitration (en desuso)](#arbitration)
* [broadcastViewerTitleIds](#broadcastviewertitleids)
* [ownershipPolicies](#ownershippolicies)

<a id="system" />

## system

| Constante del sistema             | Descripción                                                                                                                                                                                                                                                                                 | Valores válidos                                             | Valor predeterminado |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | -------------------- |
| `version`                         | La versión de la plantilla de sesión.                                                                                                                                                                                                                                                       | 1 - n                                                       | ninguno              |
| `maxMembersCount`                 | El número total de plazas de miembros de sesión admitidas para la actividad multijugador.                                                                                                                                                                                                   | 1 - 100 para una sesión normal, 101+ para una sesión grande | 100                  |
| `visibility`                      | El estado de visibilidad de la sesión, que indica si otros usuarios pueden ver la sesión o unirse a ella.                                                                                                                                                                                   | "private", "visible", "open"                                | "open"               |
| `inviteProtocol`                  | Establecer esta constante en "game" permite que los invitados reciban una notificación cuando se les invita a la sesión.                                                                                                                                                                    | "game", "tournamentgame", "chat", "gameparty"               | ninguno              |
| `reservedRemovalTimeout`          | El tiempo de espera de una reserva de miembro, en milisegundos. Un valor de 0 indica un tiempo de espera inmediato. Un valor de `null` se considera infinito.                                                                                                                               | 0 - n, `null`                                               | 30000                |
| `inactiveRemovalTimeout`          | El tiempo de espera para que un miembro se considere inactivo, en milisegundos. Un valor de 0 indica un tiempo de espera inmediato. Un valor de `null` se considera infinito.                                                                                                               | 0 - n, `null`                                               | 0                    |
| `readyRemovalTimeout`             | El tiempo de espera para que un miembro se considere listo, en milisegundos. Un valor de 0 indica un tiempo de espera inmediato. Un valor de `null` se considera infinito.                                                                                                                  | 0 - n, `null`                                               | 180000               |
| `sessionEmptyTimeout`             | El tiempo de espera de una sesión vacía, en milisegundos. Un valor de 0 indica un tiempo de espera inmediato. Un valor de `null` se considera infinito.                                                                                                                                     | 0 - n, `null`                                               | 0                    |
| `capabilities`                    | Especifica las funcionalidades de la sesión. Para obtener más información, consulte la sección [capabilities](#capabilities) más adelante en este tema.                                                                                                                                     | No aplicable                                                | No aplicable         |
| `metrics`                         | Especifica un conjunto de requisitos de calidad de servicio (QoS) definidos por el título, como la latencia y la velocidad de ancho de banda, que los miembros de la sesión deben cumplir. Para obtener más información, consulte la sección [metrics](#metrics) más adelante en este tema. | No aplicable                                                | No aplicable         |
| `memberInitialization`            | Especifica los tiempos de espera y los requisitos de inicialización que se aplican cuando nuevos miembros se unen a la sesión. Para obtener más información, consulte la sección [`memberInitialization`](#memberinitialization) más adelante en este tema.                                 | No aplicable                                                | No aplicable         |
| `peerToPeerRequirements`          | Especifica los requisitos de QoS de red para las conexiones de malla entre pares. Para obtener más información, consulte la sección [peerToPeerRequirements](#peertopeerrequirements) más adelante en este tema.                                                                            | No aplicable                                                | No aplicable         |
| `peerToHostRequirements`          | Especifica los requisitos de QoS de red para las conexiones de par a host. Para obtener más información, consulte la sección [peerToHostRequirements](#peertohostrequirements) más adelante en este tema.                                                                                   | No aplicable                                                | No aplicable         |
| `measurementServerAddresses`      | Especifica una colección de centros de datos potenciales que se usan para determinar las mediciones de QoS. Para obtener más información, consulte la sección [measurementServerAddresses](#measurementserveraddresses) más adelante en este tema.                                          | No aplicable                                                | No aplicable         |
| `cloudComputePackage` (en desuso) | Especifica las propiedades del paquete en la nube de XBOX Live Compute que se va a asignar. Para obtener más información, consulte la sección [cloudComputePackage](#cloudcomputepackage) más adelante en este tema.                                                                        | No aplicable                                                | No aplicable         |
| `arbitration` (en desuso)         | Especifica los tiempos de espera para que los miembros envíen los resultados de arbitraje en los torneos. Para obtener más información, consulte la sección [arbitration (en desuso)](#arbitration) más adelante en este tema.                                                              | No aplicable                                                | No aplicable         |
| `broadcastViewerTitleIds`         | Especifica una lista de identificadores de títulos que siempre deben tener acceso de lectura a la sesión. Para obtener más información, consulte la sección [broadcastViewerTitleIds](#broadcastviewertitleids) más adelante en este tema.                                                  | No aplicable                                                | No aplicable         |
| `ownershipPolicies`               | Especifica las directivas relacionadas con la propiedad de la sesión. Para obtener más información, consulte la sección [ownershipPolicies](#ownershippolicies) más adelante en este tema.                                                                                                  | No aplicable                                                | No aplicable         |

[Volver al principio de este tema.](#top)

<a id="capabilities" />

## capabilities

Las funcionalidades son valores booleanos que se establecen opcionalmente en la plantilla de sesión.
Si no se necesita ninguna funcionalidad, se debe establecer una propiedad `capabilities` vacía en la plantilla para evitar que se especifiquen funcionalidades al crear la sesión, a menos que el título necesite funcionalidades de sesión dinámicas.

| Funcionalidad                        | Descripción                                                                                                                                                                                                                                                           | Valores válidos | Valor predeterminado |
| ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- | -------------------- |
| `connectivity`                       | Indica si la sesión admite la conectividad entre pares. Si este valor es `false`, la sesión no puede habilitar ninguna métrica y los miembros de la sesión no pueden establecer `secureDeviceAddress`. Esta funcionalidad no se puede establecer en sesiones grandes. | `true`, `false` | `false`              |
| `suppressPresenceActivityCheck`      | Si es `true`, desactiva las comprobaciones de presencia.                                                                                                                                                                                                              | `true`, `false` | `false`              |
| `gameplay`                           | Indica si la sesión representa una partida real, en contraposición a los momentos de configuración o de menús, como una sala o el emparejamiento. Si es `true`, la sesión está en modo de juego.                                                                      | `true`, `false` | `false`              |
| `large`                              | Indica si la sesión es una sesión grande (más de 100 miembros). Las sesiones grandes no se admiten para su uso con Multiplayer Manager.                                                                                                                               | `true`, `false` | `false`              |
| `connectionRequiredForActiveMembers` | Indica si se requiere una conexión para que un miembro esté activo.                                                                                                                                                                                                   | `true`, `false` | `false`              |
| `cloudCompute` (en desuso)           | Permite a los clientes solicitar que se asigne una instancia de proceso en la nube en nombre de la sesión. En desuso porque XBOX Live Compute ya no está disponible como servicio.                                                                                    | `true`, `false` | `false`              |
| `autoPopulateServerCandidates`       | Calcula y establece automáticamente `serverConnectionStringCandidates` a partir de `serverMeasurements`. Esta funcionalidad no se puede establecer en sesiones grandes.                                                                                               | `true`, `false` | `false`              |
| `userAuthorizationStyle`             | Indica si la sesión admite llamadas desde plataformas sin identidad de título sólida. Esta funcionalidad no se puede establecer en sesiones grandes.                                                                                                                  |                 |                      |

Establecer la funcionalidad `userAuthorizationStyle` en `true` hace que los valores predeterminados de la sesión para `readRestriction` y `joinRestriction` sean `local` en lugar de `none`. Esto significa que los títulos deben usar identificadores de búsqueda o identificadores de transferencia para unirse a una sesión de juego. | `true`, `false` | `false`
`crossPlay` | Indica que la sesión admite el juego multiplataforma entre dispositivos Windows PC, XBOX One o XBOX Series. | `true`, `false` | `true`
`broadcast` | Indica que la sesión representa una difusión. El nombre de la sesión debe ser el xuid del difusor. Requiere la funcionalidad `large`. | `true`, `false` | `false`
`team` | Indica que la sesión representa un equipo de torneo. Esta funcionalidad no se puede establecer en sesiones `large` o `gameplay`. | `true`, `false` | `false`
`arbitration` | Indica que la sesión debe crearla una entidad de seguridad de servicio que agregue la entrada de servidor `arbitration`. Requiere `gameplay`, pero no se puede establecer en sesiones `large`. | `true`, `false` | `false`
`hasOwners` | Indica que la sesión tiene una directiva de seguridad basada en que ciertos miembros sean propietarios. | `true`, `false` | `false`
`searchable` | Indica que la sesión puede ser la sesión de destino de un identificador de búsqueda. Si se establecen las funcionalidades `userAuthorizationStyle` y `searchable`, también se debe establecer `hasOwners`. | `true`, `false` | `false`

#### Ejemplo: capabilities

```json theme={null}
"capabilities": {
    "connectivity": true,  
    "suppressPresenceActivityCheck": true,
    "gameplay": true,
    "large": true,
    "connectionRequiredForActiveMembers": true,
    "cloudCompute": true,
    "autoPopulateServerCandidates": true,
    "userAuthorizationStyle": true,
    "crossPlay": true,  
    "broadcast": true,  
    "team": true,
    "arbitration": true,
    "hasOwners": true,
    "searchable": true  
},
```

[Volver al principio de este tema.](#top)

<a id="metrics" />

## metrics

Si las propiedades de `metrics` no se especifican, adoptan de forma predeterminada los valores necesarios para satisfacer los requisitos de QoS.

Si las propiedades de `metrics` se especifican, los valores deben ser suficientes para satisfacer los requisitos de QoS.

Este elemento solo es válido si la sesión tiene establecida la funcionalidad `connectivity`.

| Métrica         | Descripción                                                                | Valores válidos | Valor predeterminado       |
| --------------- | -------------------------------------------------------------------------- | --------------- | -------------------------- |
| `latency`       | Indica si `latencyMaximum` se especifica en la plantilla de sesión         | `true`, `false` | Consulte esta descripción. |
| `bandwidthDown` | Indica si `bandwidthDownMinimum` se especifica en la plantilla de sesión   | `true`, `false` | Consulte esta descripción. |
| `bandwidthUp`   | Indica si `bandwidthUpMinimum` se especifica en la plantilla de sesión     | `true`, `false` | Consulte esta descripción. |
| `custom`        | Indica si se especifican métricas personalizadas en la plantilla de sesión | `true`, `false` | Consulte esta descripción. |

#### Ejemplo: metrics

```json theme={null}
"metrics": {
    "latency": true,
    "bandwidthDown": true,
    "bandwidthUp": true,
    "custom": true
},
```

[Volver al principio de este tema.](#top)

<a id="memberinitialization" />

## memberInitialization

Si la propiedad `memberInitialization` está establecida, la sesión espera que el sistema cliente o el título realicen la inicialización después de la creación de la sesión o a medida que nuevos miembros se unan a la sesión.

La sesión hace un seguimiento automático de los tiempos de espera y las fases de inicialización, incluidas las mediciones de QoS si se establece alguna métrica.
Estos tiempos de espera invalidan los tiempos de espera de reserva y de listo de la sesión para los miembros que tienen establecido `initializationEpisode`.

`memberInitialization` no se puede especificar en sesiones grandes.

| Elemento      | Descripción                                                                                                                                 | Valores válidos | Valor predeterminado |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | --------------- | -------------------- |
| `joinTimeout` | Indica el número de milisegundos que tiene un miembro para unirse a la sesión. Las reservas de los usuarios que no logran unirse se quitan. |                 |                      |

**NOTA:** La duración predeterminada es suficiente para la ejecución normal del título, pero podría dar lugar a tiempos de espera de unión agotados si se está depurando un título durante el flujo de Multiplayer Session Directory (MPSD). Durante la depuración, invalide y aumente este valor predeterminado para la sesión.| 0 - n | 10000
`measurementTimeout` | Indica el número de milisegundos que tiene un miembro de la sesión para cargar mediciones. Un miembro que no logra cargar mediciones se marca con un motivo de error de "timeout".  | 0 - n | 30000
`evaluationTimeout` | Indica el número de milisegundos que tiene una evaluación externa para cargar mediciones. | 0 - n | 5000
`externalEvaluation` | Si es `true`, indica que el código del título realiza la evaluación de quién puede unirse en función de las mediciones de QoS. El servicio multijugador no realiza ninguna lógica de QoS y el título es responsable de hacer avanzar la fase de inicialización. Normalmente, los títulos no necesitan esto. | `true`, `false` | `false`
`membersNeededToStart` | El número de miembros necesarios para iniciar la sesión, solo para el episodio de inicialización cero. | 1 - `maxMembersCount` | 1

#### Ejemplo: memberInitialization

```json theme={null}
"memberInitialization": {
    "joinTimeout": 10000,
    "measurementTimeout": 30000,
    "evaluationTimeout": 5000,
    "externalEvaluation": false,
    "membersNeededToStart": 1
},
```

[Volver al principio de este tema.](#top)

<a id="peertopeerrequirements" />

## peerToPeerRequirements

| Requisitos de red entre pares | Descripción                                                                        | Valor predeterminado |
| ----------------------------- | ---------------------------------------------------------------------------------- | -------------------- |
| `latencyMaximum`              | La latencia máxima, en milisegundos, entre dos clientes cualesquiera               | 250                  |
| `bandwidthMinimum`            | El ancho de banda mínimo, en kilobits por segundo, entre dos clientes cualesquiera | 10000                |

#### Ejemplo: peerToPeerRequirements

```json theme={null}
"peerToPeerRequirements": {
    "latencyMaximum": 250,
    "bandwidthMinimum": 10000
},
```

[Volver al principio de este tema.](#top)

<a id="peertohostrequirements" />

## peerToHostRequirements

| Requisitos de red de par a host | Descripción                                                                                    | Valores válidos                                         | Valor predeterminado |
| ------------------------------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------- | -------------------- |
| `latencyMaximum`                | La latencia máxima, en milisegundos, para la conexión de par a host                            |                                                         | 250                  |
| `bandwidthDownMinimum`          | El ancho de banda mínimo, en kilobits por segundo, para la información enviada del host al par |                                                         | 100000               |
| `bandwidthUpMinimum`            | El ancho de banda mínimo, en kilobits por segundo, para la información enviada del par al host |                                                         | 1000                 |
| `hostSelectionMetric`           | Indica qué métrica se usa para seleccionar el host                                             | "bandwidthup", "bandwidthdown", "bandwidth" y "latency" | "latency"            |

#### Ejemplo: peerToHostRequirements

```json theme={null}
"peerToHostRequirements": {
    "latencyMaximum": 250,
    "bandwidthDownMinimum": 100000,
    "bandwidthUpMinimum": 1000,
    "hostSelectionMetric": "bandwidthup"
},
```

[Volver al principio de este tema.](#top)

<a id="measurementserveraddresses" />

## measurementServerAddresses

El conjunto de cadenas de conexión de servidor potenciales que se deben evaluar.
Las cadenas de conexión deben estar en minúsculas.
`measurementServerAddresses` no se puede especificar en sesiones grandes.

Las cadenas de conexión se definen con el formato siguiente.

`"<server name>": { "secureDeviceAddress": <device address> }`

donde la dirección del dispositivo es la dirección segura del dispositivo del servidor codificada en base 64.

#### Ejemplo: measurementServerAddresses

```json theme={null}
"measurementServerAddresses": {
    "server farm a": {
        "secureDeviceAddress": "r5Y="
    },
    "datacenter b": {
        "secureDeviceAddress": "rwY="
    }
},
```

[Volver al principio de este tema.](#top)

<a id="cloudcomputepackage" />

## cloudComputePackage (en desuso)

Esta propiedad está en desuso porque el servicio XBOX Live Compute ya no está disponible y se ha descontinuado.
Especifica las propiedades del paquete de proceso en la nube que se va a asignar.

Requiere que la funcionalidad `cloudCompute` esté establecida.

| Propiedad | Descripción                                                                                                      |
| --------- | ---------------------------------------------------------------------------------------------------------------- |
| `titleId` | Indica el identificador de título del paquete de proceso en la nube que se va a asignar                          |
| `gsiSet`  | Indica el conjunto de Global Security Infrastructure (GSI) del paquete de proceso en la nube que se va a asignar |
| `variant` | Indica la variante del paquete de proceso en la nube que se va a asignar                                         |

#### Ejemplo: cloudComputePackage

```json theme={null}
"cloudComputePackage": {
    "titleId": "4567",
    "gsiSet": "128ce92a-45d0-4319-8a7e-bd8e940114ec",
    "variant": "30ebca60-d96e-4629-930b-6957aa6bfbfa"
},
```

[Volver al principio de este tema.](#top)

<a id="arbitration" />

## arbitration (en desuso)

Esta propiedad está en desuso porque el servicio XBOX Live Compute ya no está disponible y se ha descontinuado.
Especifica los tiempos de espera del proceso de arbitraje.

Requiere que la funcionalidad `arbitration` esté establecida.

La hora de inicio del arbitraje se define en una sesión en el elemento */servers/arbitration/constants/system/startTime*.

| Tiempo de espera     | Descripción                                                                                                                                                                                              | Valores válidos | Valor predeterminado |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- | -------------------- |
| `forfeitTimeout`     | Indica el tiempo, en milisegundos, desde la hora de inicio del arbitraje.                                                                                                                                | 0 - n           | 60000                |
| `arbitrationTimeout` | Indica el tiempo, en milisegundos, desde la hora de inicio del arbitraje, en el que el resultado del arbitraje agota el tiempo de espera. Este valor no puede ser inferior al valor de `forfeitTimeout`. | 0 - n           | 300000               |

#### Ejemplo: arbitration

```json theme={null}
"arbitration": {
    "forfeitTimeout": 60000,
    "arbitrationTimeout": 300000
},
```

[Volver al principio de este tema.](#top)

<a id="broadcastviewertitleids" />

## broadcastViewerTitleIds

Especifica una matriz de los identificadores de los títulos que siempre deben tener acceso de lectura a la sesión de difusión.

#### Ejemplo: broadcastViewerTitleIds

```json theme={null}
"broadcastViewerTitleIds" : ["34567", "8910"],
```

[Volver al principio de este tema.](#top)

<a id="ownershippolicies" />

## ownershipPolicies

Especifica cómo controlar una sesión cuando el último propietario abandona la sesión.
Requiere que la funcionalidad `hasOwners` esté establecida.

| Directiva de propiedad               | Descripción                                                                                                                                                                                                                                                                                                                        | Valores válidos                             | Valor predeterminado |
| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- | -------------------- |
| `migration`                          | Indica lo que sucede cuando el último propietario abandona la sesión. Si la directiva de migración está establecida en "endsession", la sesión expira. Si la directiva de migración está establecida en "oldest", se selecciona al miembro con la hora de unión más antigua para convertirse en el nuevo propietario de la sesión. | "oldest", "endsession"                      | "endsession"         |
| `allowNonOwnerInviteHandles`         | Indica el comportamiento de las invitaciones para los miembros de la sesión que no son el propietario. De forma predeterminada, quienes no son propietarios no pueden enviar invitaciones para una sesión.                                                                                                                         | `true`, `false`                             | `false`              |
| `nonOwnerModifiableSystemProperties` | Una lista de nombres de propiedades del sistema que quienes no son propietarios pueden modificar en sesiones con la funcionalidad `hasOwners` establecida en `true`.                                                                                                                                                               | Lista de nombres de propiedades del sistema | No aplicable         |

#### Ejemplo: ownershipPolicies

```json theme={null}
"ownershipPolicies": {
     "migration": "oldest",
     "allowNonOwnerInviteHandles": true,
     "nonOwnerModifiableSystemProperties": ["joinRestriction", "closed"] 
}
```

[Volver al principio de este tema.](#top)


## Related topics

- [Conceptos del Directorio de sesiones multijugador (MPSD)](/es/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-concepts-nav.md)
- [Configuración del servicio Multijugador](/es/services/xbox-services/multiplayer/concepts/live-configure-the-multiplayer-service.md)
- [Invitaciones multijugador entre versiones de título de XDK y GDK](/es/services/xbox-services/multiplayer/invites/concepts/live-multiplayer-xdkinvites.md)
- [Conceptos](/es/services/xbox-services/multiplayer/mpsd/concepts/index.md)
- [Plantillas de sesión multijugador](/es/services/xbox-services/multiplayer/mpsd/concepts/live-session-templates.md)
