> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/labs-voice-agent/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/labs-voice-agent/_mcp/server.

# nemo_voice_agent.evaluation.tools.tau2_telecom_params

Pydantic parameter models for tau2\_telecom DB shapes.

Used primarily by `scripts/prepare_tau2_data/prepare_telecom.py` to
round-trip the upstream TOML files through Pydantic — this materializes
default field values (e.g. `UserSurroundings.signal_strength` per-network
defaults, `MockPhoneAttributes` field defaults) that aren't present in
the raw TOML. After round-trip the converted JSON is shape-complete and
downstream predicate / init function code can read fields via dict access
without defensive `.get(..., default)` everywhere.

Per-tool `*Params` argument-schema classes are added incrementally as each
LLM-callable tool is ported (same pattern as `tau2_airline_params.py` /
`tau2_retail_params.py`).

## Module Contents

### Classes

| Name                                                                                                                          | Description                                                                |
| ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| [`APNNames`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-APNNames)                                                 | -                                                                          |
| [`APNSettings`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-APNSettings)                                           | Access Point Name configuration.                                           |
| [`AccountStatus`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-AccountStatus)                                       | -                                                                          |
| [`Address`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-Address)                                                   | -                                                                          |
| [`AppPermissions`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-AppPermissions)                                     | Permissions relevant to an application.                                    |
| [`AppStatus`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-AppStatus)                                               | Status of a specific application relevant to issues.                       |
| [`BaseModelNoExtra`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)                                 | Mirror of upstream `tau2.utils.pydantic_utils.BaseModelNoExtra`.           |
| [`Bill`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-Bill)                                                         | -                                                                          |
| [`BillStatus`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BillStatus)                                             | -                                                                          |
| [`CanSendMmsParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-CanSendMmsParams)                                 | No arguments.                                                              |
| [`CheckApnSettingsParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-CheckApnSettingsParams)                     | No arguments.                                                              |
| [`CheckAppPermissionsParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-CheckAppPermissionsParams)               | Get the permissions granted to a specific app.                             |
| [`CheckAppStatusParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-CheckAppStatusParams)                         | Get detailed status of a specific installed app.                           |
| [`CheckDataRestrictionStatusParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-CheckDataRestrictionStatusParams) | No arguments.                                                              |
| [`CheckInstalledAppsParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-CheckInstalledAppsParams)                 | No arguments.                                                              |
| [`CheckNetworkModePreferenceParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-CheckNetworkModePreferenceParams) | No arguments.                                                              |
| [`CheckNetworkStatusParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-CheckNetworkStatusParams)                 | No arguments.                                                              |
| [`CheckPaymentRequestParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-CheckPaymentRequestParams)               | No arguments.                                                              |
| [`CheckSimStatusParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-CheckSimStatusParams)                         | No arguments.                                                              |
| [`CheckStatusBarParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-CheckStatusBarParams)                         | No arguments. Returns the formatted phone-status-bar string.               |
| [`CheckVpnStatusParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-CheckVpnStatusParams)                         | No arguments.                                                              |
| [`CheckWifiCallingStatusParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-CheckWifiCallingStatusParams)         | No arguments.                                                              |
| [`CheckWifiStatusParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-CheckWifiStatusParams)                       | No arguments.                                                              |
| [`ConnectVpnParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-ConnectVpnParams)                                 | No arguments.                                                              |
| [`Customer`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-Customer)                                                 | -                                                                          |
| [`Device`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-Device)                                                     | -                                                                          |
| [`DeviceType`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-DeviceType)                                             | -                                                                          |
| [`DisableRoamingParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-DisableRoamingParams)                         | Disable international data roaming on a line.                              |
| [`DisconnectVpnParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-DisconnectVpnParams)                           | No arguments.                                                              |
| [`EnableRoamingParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-EnableRoamingParams)                           | Enable international data roaming on a line.                               |
| [`GetBillsForCustomerParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-GetBillsForCustomerParams)               | List a customer's bills, most-recent-first, optionally limited.            |
| [`GetCustomerByIdParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-GetCustomerByIdParams)                       | Retrieve a customer record by their customer ID.                           |
| [`GetCustomerByNameParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-GetCustomerByNameParams)                   | Find customer records by full name + date of birth (YYYY-MM-DD).           |
| [`GetCustomerByPhoneParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-GetCustomerByPhoneParams)                 | Find a customer record by their primary or line phone number.              |
| [`GetDataUsageParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-GetDataUsageParams)                             | Get current cycle data usage + plan limit + refueling amount for a line.   |
| [`GetDetailsByIdParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-GetDetailsByIdParams)                         | Get details for any object by its ID (Customer `C`, Line `L`,              |
| [`GrantAppPermissionParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-GrantAppPermissionParams)                 | Grant a specific permission to a specific app.                             |
| [`Line`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-Line)                                                         | -                                                                          |
| [`LineItem`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-LineItem)                                                 | -                                                                          |
| [`LineStatus`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-LineStatus)                                             | -                                                                          |
| [`MakePaymentParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-MakePaymentParams)                               | No arguments. Pays the most recent pending payment request from the agent. |
| [`MockPhoneAttributes`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-MockPhoneAttributes)                           | State attributes of the mock phone device on the user side.                |
| [`NetworkModePreference`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-NetworkModePreference)                       | -                                                                          |
| [`NetworkStatus`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-NetworkStatus)                                       | -                                                                          |
| [`NetworkTechnology`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-NetworkTechnology)                               | -                                                                          |
| [`PaymentMethod`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-PaymentMethod)                                       | -                                                                          |
| [`PaymentMethodType`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-PaymentMethodType)                               | -                                                                          |
| [`PaymentRequest`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-PaymentRequest)                                     | Payment request initiated by the agent that the user can pay.              |
| [`PerformanceLevel`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-PerformanceLevel)                                 | -                                                                          |
| [`Plan`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-Plan)                                                         | -                                                                          |
| [`RebootDeviceParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-RebootDeviceParams)                             | No arguments.                                                              |
| [`RefuelDataParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-RefuelDataParams)                                 | Refuel a line with additional data (positive GB amount). Adds a            |
| [`ReseatSimCardParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-ReseatSimCardParams)                           | No arguments.                                                              |
| [`ResetApnSettingsParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-ResetApnSettingsParams)                     | No arguments.                                                              |
| [`ResumeLineParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-ResumeLineParams)                                 | Resume a Suspended or Pending Activation line.                             |
| [`RunSpeedTestParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-RunSpeedTestParams)                             | No arguments. Returns the simulated mobile-data download speed.            |
| [`SendPaymentRequestParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-SendPaymentRequestParams)                 | Send a payment request to the customer for a specific bill.                |
| [`SetApnSettingsParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-SetApnSettingsParams)                         | Sets the active APN settings to a new `APNSettings` dict.                  |
| [`SetNetworkModePreferenceParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-SetNetworkModePreferenceParams)     | Sets the preferred cellular network mode (5G, 4G, 3G, 2G).                 |
| [`SignalStrength`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-SignalStrength)                                     | -                                                                          |
| [`SimStatus`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-SimStatus)                                               | -                                                                          |
| [`StatusBar`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-StatusBar)                                               | Information displayed in the phone's status bar.                           |
| [`SuspendLineParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-SuspendLineParams)                               | Suspend an Active line; records suspension start date + reason.            |
| [`TelecomDB`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-TelecomDB)                                               | Database interface for the telecom domain (agent-facing).                  |
| [`TelecomUserDB`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-TelecomUserDB)                                       | Database interface for the telecom domain (user-facing).                   |
| [`ToggleAirplaneModeParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-ToggleAirplaneModeParams)                 | No arguments. Toggles Airplane Mode on the device.                         |
| [`ToggleDataParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-ToggleDataParams)                                 | No arguments. Toggles the mobile-data master switch on the device.         |
| [`ToggleDataSaverModeParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-ToggleDataSaverModeParams)               | No arguments.                                                              |
| [`ToggleRoamingParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-ToggleRoamingParams)                           | No arguments.                                                              |
| [`ToggleWifiCallingParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-ToggleWifiCallingParams)                   | No arguments.                                                              |
| [`ToggleWifiParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-ToggleWifiParams)                                 | No arguments.                                                              |
| [`TransferToHumanAgentsParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-TransferToHumanAgentsParams)           | Transfer the call to a human agent with a summary of the issue.            |
| [`UserSurroundings`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-UserSurroundings)                                 | Physical surroundings of the user (per-task; populated by init actions).   |
| [`VpnDetails`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-VpnDetails)                                             | Details about the VPN connection if active.                                |
| [`_NoArgsParams`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)                                       | Shared no-arguments schema used by every parameter-less telecom tool.      |

### Functions

| Name                                                                                                            | Description                                                         |
| --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| [`validation_error_response`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-validation_error_response) | Mirror of the helper in `tau2_retail_params.py` — uniform shape for |

### Data

[`DEFAULT_START_DATE`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-DEFAULT_START_DATE)

[`__all__`](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-__all__)

### API

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.APNNames
```

**Bases:** `enum.Enum`

**`BROKEN`**

---

**`INTERNET`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.APNSettings()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Access Point Name configuration.

**`apn_name`**

---

**`mms_apn`**

---

**`mms_port`**

---

**`mms_proxy`**

---

**`mmsc_url`**

---

**`reset_at_reboot`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.AccountStatus
```

**Bases:** `enum.Enum`

**`ACTIVE`**

---

**`CLOSED`**

---

**`PENDING_VERIFICATION`**

---

**`SUSPENDED`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.Address()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

**`city`**

---

**`state`**

---

**`street`**

---

**`zip_code`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.AppPermissions()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Permissions relevant to an application.

**`network`**

---

**`phone`**

---

**`sms`**

---

**`storage`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.AppStatus()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Status of a specific application relevant to issues.

**`app_name`**

---

**`permissions`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.BaseModelNoExtra()
```

**Bases:** `BaseModel`

Mirror of upstream `tau2.utils.pydantic_utils.BaseModelNoExtra`.

Forbids extra fields on input — catches typos in upstream data and in
init/predicate function arguments at validation time.

**`model_config`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.Bill()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

**`bill_id`**

---

**`customer_id`**

---

**`due_date`**

---

**`issue_date`**

---

**`line_items`**

---

**`period_end`**

---

**`period_start`**

---

**`status`**

---

**`total_due`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.BillStatus
```

**Bases:** `enum.Enum`

**`AWAITING_PAYMENT`**

---

**`DISPUTED`**

---

**`DRAFT`**

---

**`ISSUED`**

---

**`OVERDUE`**

---

**`PAID`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.CanSendMmsParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.CheckApnSettingsParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.CheckAppPermissionsParams()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Get the permissions granted to a specific app.

**`app_name`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.CheckAppStatusParams()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Get detailed status of a specific installed app.

**`app_name`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.CheckDataRestrictionStatusParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.CheckInstalledAppsParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.CheckNetworkModePreferenceParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.CheckNetworkStatusParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.CheckPaymentRequestParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.CheckSimStatusParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.CheckStatusBarParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments. Returns the formatted phone-status-bar string.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.CheckVpnStatusParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.CheckWifiCallingStatusParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.CheckWifiStatusParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.ConnectVpnParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.Customer()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

**`account_status`**

---

**`address`**

---

**`bill_ids`**

---

**`created_at`**

---

**`customer_id`**

---

**`date_of_birth`**

---

**`email`**

---

**`full_name`**

---

**`goodwill_credit_used_this_year`**

---

**`last_extension_date`**

---

**`line_ids`**

---

**`payment_methods`**

---

**`phone_number`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.Device()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

**`activated`**

---

**`activation_date`**

---

**`device_id`**

---

**`device_type`**

---

**`imei`**

---

**`is_esim_capable`**

---

**`last_esim_transfer_date`**

---

**`model`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.DeviceType
```

**Bases:** `enum.Enum`

**`OTHER`**

---

**`PHONE`**

---

**`ROUTER`**

---

**`TABLET`**

---

**`WATCH`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.DisableRoamingParams()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Disable international data roaming on a line.

**`customer_id`**

---

**`line_id`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.DisconnectVpnParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.EnableRoamingParams()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Enable international data roaming on a line.

**`customer_id`**

---

**`line_id`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.GetBillsForCustomerParams()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

List a customer's bills, most-recent-first, optionally limited.

**`customer_id`**

---

**`limit`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.GetCustomerByIdParams()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Retrieve a customer record by their customer ID.

**`customer_id`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.GetCustomerByNameParams()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Find customer records by full name + date of birth (YYYY-MM-DD).

`dob` is required for name-based lookup — disambiguates customers
with the same name (upstream policy: name alone cannot identify;
DOB confirms identity).

**`dob`**

---

**`full_name`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.GetCustomerByPhoneParams()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Find a customer record by their primary or line phone number.

**`phone_number`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.GetDataUsageParams()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Get current cycle data usage + plan limit + refueling amount for a line.

**`customer_id`**

---

**`line_id`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.GetDetailsByIdParams()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Get details for any object by its ID (Customer `C`, Line `L`,
Device `D`, Bill `B`, or Plan `P`).

**`id`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.GrantAppPermissionParams()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Grant a specific permission to a specific app.

`permission` is one of the lowercase keys on `AppPermissions`
(`storage`, `camera`, `microphone`, `location`, `contacts`,
`sms`, `phone`). Unknown keys are rejected at execution time.

**`app_name`**

---

**`permission`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.Line()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

**`contract_end_date`**

---

**`data_refueling_gb`**

---

**`data_used_gb`**

---

**`device_id`**

---

**`last_plan_change_date`**

---

**`last_sim_replacement_date`**

---

**`line_id`**

---

**`phone_number`**

---

**`plan_id`**

---

**`roaming_enabled`**

---

**`status`**

---

**`suspension_start_date`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.LineItem()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

**`amount`**

---

**`date`**

---

**`description`**

---

**`item_type`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.LineStatus
```

**Bases:** `enum.Enum`

**`ACTIVE`**

---

**`CLOSED`**

---

**`PENDING_ACTIVATION`**

---

**`SUSPENDED`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.MakePaymentParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments. Pays the most recent pending payment request from the agent.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.MockPhoneAttributes()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

State attributes of the mock phone device on the user side.

**`active_apn_settings`**

---

**`airplane_mode`**

---

**`app_statuses`**

---

**`battery_level`**

---

**`data_enabled`**

---

**`data_saver_mode`**

---

**`network_connection_status`**

---

**`network_mode_preference`**

---

**`network_signal_strength`**

---

**`network_technology_connected`**

---

**`roaming_enabled`**

---

**`sim_card_missing`**

---

**`sim_card_status`**

---

**`vpn_connected`**

---

**`vpn_details`**

---

**`vpn_enabled_setting`**

---

**`wifi_calling_enabled`**

---

**`wifi_calling_mms_over_wifi`**

---

**`wifi_connected`**

---

**`wifi_enabled`**

---

**`wifi_signal_strength`**

---

**`wifi_ssid`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.NetworkModePreference
```

**Bases:** `enum.Enum`

**`FOUR_G_5G_PREFERRED`**

---

**`FOUR_G_ONLY`**

---

**`THREE_G_ONLY`**

---

**`TWO_G_ONLY`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.NetworkStatus
```

**Bases:** `enum.Enum`

**`CONNECTED`**

---

**`EMERGENCY_ONLY`**

---

**`NO_SERVICE`**

---

**`SEARCHING`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.NetworkTechnology
```

**Bases:** `enum.Enum`

**`FIVE_G`**

---

**`FOUR_G`**

---

**`NONE`**

---

**`THREE_G`**

---

**`TWO_G`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.PaymentMethod()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

**`account_number_last_4`**

---

**`expiration_date`**

---

**`method_type`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.PaymentMethodType
```

**Bases:** `enum.Enum`

**`CREDIT_CARD`**

---

**`DEBIT_CARD`**

---

**`PAYPAL`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.PaymentRequest()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Payment request initiated by the agent that the user can pay.

**`amount_due`**

---

**`bill_id`**

---

**`paid`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.PerformanceLevel
```

**Bases:** `enum.Enum`

**`EXCELLENT`**

---

**`FAIR`**

---

**`GOOD`**

---

**`POOR`**

---

**`UNKNOWN`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.Plan()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

**`data_limit_gb`**

---

**`data_refueling_price_per_gb`**

---

**`name`**

---

**`plan_id`**

---

**`price_per_month`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.RebootDeviceParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.RefuelDataParams()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Refuel a line with additional data (positive GB amount). Adds a
one-time charge to the customer's next bill at the plan's refueling rate.

**`customer_id`**

---

**`gb_amount`**

---

**`line_id`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.ReseatSimCardParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.ResetApnSettingsParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.ResumeLineParams()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Resume a Suspended or Pending Activation line.

**`customer_id`**

---

**`line_id`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.RunSpeedTestParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments. Returns the simulated mobile-data download speed.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.SendPaymentRequestParams()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Send a payment request to the customer for a specific bill.

Sets the bill to AWAITING\_PAYMENT. Fails if another bill is already
awaiting payment for this customer (one open request at a time).

**`bill_id`**

---

**`customer_id`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.SetApnSettingsParams()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Sets the active APN settings to a new `APNSettings` dict.

Upstream accepts `Union[APNSettings, dict]`. Voice mode receives
dict shape only.

**`apn_settings`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.SetNetworkModePreferenceParams()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Sets the preferred cellular network mode (5G, 4G, 3G, 2G).

`mode` is the string value of a `NetworkModePreference` enum
(e.g. `"4g_5g_preferred"`, `"4g_only"`, `"3g_only"`,
`"2g_only"`). Invalid values are rejected by the tool with a
failure message instead of a Pydantic ValidationError, so the
schema accepts a plain `str` — matches upstream's permissive
signature.

**`mode`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.SignalStrength
```

**Bases:** `enum.Enum`

**`EXCELLENT`**

---

**`FAIR`**

---

**`GOOD`**

---

**`NONE`**

---

**`POOR`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.SimStatus
```

**Bases:** `enum.Enum`

**`ACTIVE`**

---

**`LOCKED_PIN`**

---

**`LOCKED_PUK`**

---

**`MISSING`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.StatusBar()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Information displayed in the phone's status bar.

Upstream uses this as a derived view in `check_status_bar`; we don't
consume it from the runtime DB (predicate code reads device fields
directly). Kept for parity in case a future ported tool needs it.

**`airplane_mode`**

---

**`battery_level`**

---

**`data_saver_active`**

---

**`network_type`**

---

**`signal_strength`**

---

**`vpn_active`**

---

**`wifi_connected`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.SuspendLineParams()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Suspend an Active line; records suspension start date + reason.

**`customer_id`**

---

**`line_id`**

---

**`reason`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.TelecomDB()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Database interface for the telecom domain (agent-facing).

Round-trip target for `scripts/prepare_tau2_data/prepare_telecom.py`'s
`db.toml` → `db.json` conversion. Materializes default fields on
nested types (e.g. `Bill.line_items=[]`).

**`bills`**

---

**`customers`**

---

**`devices`**

---

**`lines`**

---

**`plans`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.TelecomUserDB()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Database interface for the telecom domain (user-facing).

Round-trip target for `scripts/prepare_tau2_data/prepare_telecom.py`'s
`user_db.toml` → `user_db.json` conversion. Critical to materialize
the default `surroundings` block so predicate / init functions can
read its fields without dict-key-missing errors.

**`device`**

---

**`surroundings`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.ToggleAirplaneModeParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments. Toggles Airplane Mode on the device.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.ToggleDataParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments. Toggles the mobile-data master switch on the device.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.ToggleDataSaverModeParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.ToggleRoamingParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.ToggleWifiCallingParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.ToggleWifiParams()
```

**Bases:** [\_NoArgsParams](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-_NoArgsParams)

No arguments.

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.TransferToHumanAgentsParams()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Transfer the call to a human agent with a summary of the issue.

**`summary`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.UserSurroundings()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Physical surroundings of the user (per-task; populated by init actions).

Per-task user state — name, phone number, location, signal-strength
table at the user's current location, etc. Upstream's user\_db.toml
only carries the `device` defaults; `surroundings` is populated
per-task by `initialization_actions` like `set_user_info` and
`set_user_location`. The Pydantic round-trip in
`prepare_telecom.py` materializes the default surroundings block
(with name=None, phone\_number=None, is\_abroad=False, etc.) so init
functions can mutate fields without needing defensive .setdefault().

**`is_abroad`**

---

**`line_active`**

---

**`mobile_data_usage_exceeded`**

---

**`name`**

---

**`payment_request`**

---

**`phone_number`**

---

**`roaming_allowed`**

---

**`signal_strength`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params.VpnDetails()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Details about the VPN connection if active.

**`protocol`**

---

**`server_address`**

---

**`server_performance`**

---

```python
class nemo_voice_agent.evaluation.tools.tau2_telecom_params._NoArgsParams()
```

**Bases:** [BaseModelNoExtra](#nemo_voice_agent-evaluation-tools-tau2_telecom_params-BaseModelNoExtra)

Shared no-arguments schema used by every parameter-less telecom tool.

```python
nemo_voice_agent.evaluation.tools.tau2_telecom_params.validation_error_response(
    exc: typing.Any
) -> dict
```

Mirror of the helper in `tau2_retail_params.py` — uniform shape for
Pydantic validation errors raised inside `_Tau2InvokeMixin.invoke()`.

```python
nemo_voice_agent.evaluation.tools.tau2_telecom_params.DEFAULT_START_DATE = datetime.date(2025, 1, 1)
```

```python
nemo_voice_agent.evaluation.tools.tau2_telecom_params.__all__ = ['BaseModelNoExtra', 'DeviceType', 'LineStatus', 'BillStatus', 'AccountStatus', ...
```