Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 9 additions & 7 deletions docs/administrator-manual/install/nethvoice_install.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,13 +160,15 @@ On the **Settings** page you can review and change most of the configuration par
- **Reports prefix**: telephone prefix number used in reports
- **New admin password for NethVoice**: define a new password for the `admin` user

On the **Integrations** page you can configure call and voicemail transcription:
- **Deepgram API Key**: Enter your Deepgram API key to enable advanced speech recognition features and voice transcription.
- **Call transcription**: Enable this option to allow users to transcribe calls in real-time using Deepgram's speech-to-text service. This feature incurs additional costs based on your Deepgram usage.
- **Voicemail transcription**: Enable voicemail transcription to convert voicemail messages to text using Deepgram. This feature also incurs additional costs based on your Deepgram usage.

:::info Voice Transcription
For detailed information on how users can access and use voice transcription features, see [Voice Transcription](../../user-manual/nethcti/other.md#voice-transcription) in the User Manual.
On the **Integrations** page you can configure AI-powered call insights:
- **Deepgram API Key**: required to enable speech recognition features.
- **Call transcription**: enables real-time call transcription in CTI and stores call transcription data for supported post-call features. This feature incurs additional costs based on your Deepgram usage.
- **Voicemail transcription**: converts voicemail messages to text using Deepgram. This feature also incurs additional costs based on your Deepgram usage.
- **OpenAI API Key**: required to generate call summaries.
- **Call summary**: enables post-call summary generation. This option is available only when a valid Deepgram API key, a valid OpenAI API key, and **Call transcription** are all enabled.

:::info Call insights
For detailed information about live transcription, post-call summary, notifications, and History integration, see [Voice Transcription and Call Summary](../../user-manual/nethcti/other.md#voice-transcription) in the User Manual.
:::

On the **Rebranding** page you can customize the NethVoice user interface with the brand identity of your company. To enable this feature, you have to contact Nethesis sales team and have an active Enterprise subscription.
Expand Down
70 changes: 48 additions & 22 deletions docs/tutorial/api/cti.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,21 @@ sidebar_position: 2

# CTI APIs quickstart

The CTI API provides programmatic access to the NethVoice CTI (Computer Telephony Integration) features. This guide covers authentication, WebSocket connection, and two-factor authentication.
Legacy methods are also documented for reference, but migrating to the new methods is strongly recommended.
New features and improvements are only available in the new API.
The CTI API provides programmatic access to NethVoice CTI (Computer Telephony Integration) features. This guide covers authentication, WebSocket connection, two-factor authentication, and call-insights endpoints.

Full API specification is available at: [NethCTI Server full reference](https://documenter.getpostman.com/view/15699632/TzRRC88p#41f9b8cc-bea8-4917-a293-84eaedcaed08)
NethVoice currently runs with both layers:
- `nethcti-middleware` exposes `/api/...` endpoints (JWT-based, current integration layer)
- `nethcti-server` exposes `/webrest/...` endpoints (still active and supported for compatibility)

API references:
- Middleware (`/api/...`): [NethCTI Middleware OpenAPI](https://github.com/nethesis/nethcti-middleware/blob/main/doc/openapi.yaml)
- Server (`/webrest/...`): [NethCTI Server full reference](https://documenter.getpostman.com/view/15699632/TzRRC88p#41f9b8cc-bea8-4917-a293-84eaedcaed08)

---

## Authentication {#authentication}

The new authentication method uses JWT (JSON Web Tokens) for secure API access.
The middleware authentication method uses JWT (JSON Web Tokens) for secure API access.

### Login {#login}

Expand Down Expand Up @@ -111,6 +115,32 @@ websocat "wss://nethcti.example.com/api/ws/?EIO=4&transport=websocket"

---

## Call Insights APIs {#call-insights-apis}

These endpoints are exposed by `nethcti-middleware` and require JWT auth (plus capabilities where configured).

### Transcripts and Summary endpoints

- `GET /api/transcripts/{uniqueid}`
- `GET /api/summary/{uniqueid}`
- `PUT /api/summary/{uniqueid}`
- `DELETE /api/summary/{uniqueid}`
- `GET /api/summary/statuses`
- `POST /api/summary/watch`

### Unique ID existence check

Use:
- `HEAD /api/summary/{uniqueid}`

This endpoint returns only status code (no response body):
- `200`: uniqueid exists
- `404`: uniqueid not found

Do not use `GET /api/summary/check/{uniqueid}` in new integrations.

---

## Two-Factor Authentication (2FA) {#two-factor-authentication-2fa}

Secure API access with optional two-factor authentication using time-based one-time passwords (TOTP).
Expand Down Expand Up @@ -236,16 +266,12 @@ curl https://nethcti.example.com/api/user/me \

---

## Legacy Method (Deprecated) {#legacy-method-deprecated}

:::warning Deprecation Notice
The legacy authentication method using HMAC-SHA1 tokens will no longer be available after **June 1, 2026**.
Please migrate to the new JWT-based authentication method as soon as possible.
:::
## Compatibility APIs (`/webrest/...`) {#compatibility-apis-webrest}

### Legacy Login {#legacy-login}
`nethcti-server` APIs are still available and can coexist with middleware APIs.
Use these endpoints when integrating with flows that are still tied to `/webrest/...` behavior.

The legacy method required a challenge-response process with HMAC-SHA1:
### Login with challenge/response

**Endpoint:** `POST /webrest/authentication/login`

Expand All @@ -268,7 +294,7 @@ curl https://nethcti.example.com/webrest/user/me \
-H "Authorization: user:calculated_token_here"
```

### Legacy Token Usage {#legacy-token-usage}
### `/webrest` token usage

Include the token in the `Authorization` header for authenticated requests:

Expand All @@ -277,7 +303,7 @@ curl https://nethcti.example.com/webrest/user/me \
-H "Authorization: username:abc123def456..."
```

### Legacy WebSocket {#legacy-websocket}
### `/webrest` WebSocket

**Endpoint:** `/socket.io/`

Expand All @@ -289,12 +315,12 @@ const socket = io('https://nethcti.example.com', {

---

## Migration Guide: Legacy to New Method {#migration-guide-legacy-to-new-method}
## Adoption Guide: `/webrest` to `/api` {#adoption-guide-webrest-to-api}

To migrate from the legacy authentication to the new JWT-based method:
To progressively adopt middleware JWT APIs:

1. **Replace login endpoint**: Change from `/webrest/authentication/login` to `/api/login`
2. **Update token format**: Replace `username:token_hex` with `Bearer <jwt-token>`
3. **Update WebSocket path**: Change from `/socket.io/` to `/api/ws/`
4. **Adapt headers**: Use `Authorization: Bearer <jwt-token>` instead of `Authorization: username:token`
5. **Handle JWT expiration**: Monitor token `expire` field and refresh as needed
1. Start new integrations on `/api/login` and `Authorization: Bearer <jwt-token>`
2. Keep existing `/webrest/...` consumers working while migrating module by module
3. Move WebSocket consumers from `/socket.io/` to `/api/ws/` when possible
4. Use middleware-only endpoints (for example summary/transcripts) on `/api/...`
5. Keep compatibility tests for both paths during transition
4 changes: 2 additions & 2 deletions docs/tutorial/api/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ Tutorials and guides for using these APIs can be found in the following sections

API references and documentation for NethVoice-related services:

- [CTI APIs full reference](https://documenter.getpostman.com/view/15699632/TzRRC88p#41f9b8cc-bea8-4917-a293-84eaedcaed08) interaction with the NethCTI Server that manages web-based telephony features.
- [NethCTI Middleware API reference (OpenAPI)](https://github.com/nethesis/nethcti-middleware/blob/main/doc/openapi.yaml) for `/api/...` endpoints exposed by the middleware layer.
- [NethCTI Server full reference](https://documenter.getpostman.com/view/15699632/TzRRC88p#41f9b8cc-bea8-4917-a293-84eaedcaed08) for `/webrest/...` endpoints provided by `nethcti-server`.
- [Tancredi provisioning](https://nethesis.github.io/tancredi/API)
- Tancredi server is available for all NethVoice installations, the URL is:
- `https://netvoice.your-domain.tld/tancredi/api/v1` for the APIs
- `https://netvoice.your-domain.tld/privisioning/<token>/<filename>` for actual configuration files used by devices
- [Configuration (wizard)](https://bump.sh/nethvoice/hub/nethvoice/doc/wizard/)

4 changes: 3 additions & 1 deletion docs/user-manual/mobile_app.md
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,9 @@ Receive native system notifications for:
- Missed calls
- Messages and alerts

The mobile app does not currently expose a dedicated user interface for call summary or post-call transcription.
If call transcription and call summary are enabled by the administrator, the audio of supported calls can still be processed in the platform, and the resulting content can be reviewed later from NethVoice CTI.

## Support & Troubleshooting

If you experience issues with the mobile app:
Expand All @@ -199,4 +202,3 @@ If you experience issues with the mobile app:
- **Contact your administrator** — For provisioning or account-related issues

For additional help, contact your NethVoice administrator or reach out to your service provider.

5 changes: 3 additions & 2 deletions docs/user-manual/nethcti/calls.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,11 @@ In other actions, you can:
- **Record**: Start recording the ongoing call (subject to specific permission).
- **Enable video**: Start a video call with the caller (subject to specific permission).
- **Share screen**: Share your screen with another extension registered on NethVoice (subject to specific permission).
- **Open transcription**: Start a transcription of the current call (subject to configuration and permission).
- **Open transcription**: Access live transcription controls for the current call, when enabled by the administrator and allowed for your user.
- **Switch device**: Change the device during an active call, using either the app or a desk phone.

When available, post-call transcription and summary are accessed later from **History**, not directly from the active call controls.

### Phone Island Positioning {#phone-island-positioning}

The **Phone Island** is a dynamic tool that you can move by dragging it anywhere on your screen for optimal visibility and convenience.
Expand All @@ -56,4 +58,3 @@ When you receive an incoming call, you will see:
- Call timing information

Click the accept button to answer the call and the Phone Island will appear.

52 changes: 38 additions & 14 deletions docs/user-manual/nethcti/other.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,10 @@ Use convenient filters to search for calls from your extension, group, or entire
- Contact name
- Duration
- Call status
- Content type, including summary, transcription, and voicemail when available

When AI call insights are enabled by the administrator, History can also show post-call transcription and summary results.
From the call actions menu you can open the available content directly from the selected call.

## Queue Manager {#queue-manager}

Expand Down Expand Up @@ -219,34 +223,53 @@ Access [Advanced Reporting](https://docs.nethvoice.it/it/latest/pbxreport_manual

## Voice Transcription {#voice-transcription}

Voice transcription automatically converts your call audio into text in real-time. This feature is available if your administrator has configured a Deepgram API key in NethVoice.
Voice transcription converts call audio into text during the call and, when enabled by the administrator, makes post-call transcription and summary available from History.

### Requirements {#transcription-requirements}

- Voice transcription must be enabled and configured in NethVoice by your administrator
- Call transcription must be enabled and configured in NethVoice by your administrator
- A valid Deepgram API key must be configured in the phone system
- You must have the appropriate permissions to use this feature
- Call summary also requires a valid OpenAI API key and the related integration option enabled by the administrator
- You must have the appropriate permissions to use these features

### Starting a Transcription {#starting-transcription}
### Live Transcription During Calls {#live-transcription-during-calls}

During an active call:

1. Look for the transcription button in the side panel (accessible through the side actions expansion button)
2. Click the **Start Transcription** button
3. The transcription will begin immediately and appear on your screen
4. Audio will be transcribed in real-time as the call progresses
1. Open the Phone Island side actions.
2. Start transcription from the available call controls, when shown.
3. The transcription appears while the call is in progress.
4. Interim text may change until the final segments are confirmed.

### After the Call {#after-the-call}

When processing is complete, the same call can expose:

- **Transcription**: full post-call transcript
- **Summary**: AI-generated call summary

You can access them from **History > Calls**:

1. Open the call row actions.
2. Select **View transcription** or **View summary** when available.
3. Review the generated content in the side drawer.

If allowed by your profile, you can also edit the summary and save the updated text.

### Notifications {#summary-notifications}

When call summary is enabled for your user, CTI can notify you when a summary is ready.

### Stopping a Transcription {#stopping-transcription}
From **Settings > Notifications** you can:

To stop recording the transcription:
- enable or disable call summary notifications
- keep the same preference across the web phone and desktop app

1. Click the **Stop Transcription** button (or the close button on the transcription panel)
2. The transcription will be stopped immediately
3. Any previously transcribed text will remain available for review
If notifications are enabled, clicking the summary-ready notification opens the related call directly in History.

### Accessing Transcription History

Transcription history is currently not available and will be implemented in future releases.
Transcription and summary history are available from **History > Calls** when the feature is enabled and content has been generated.

## Settings {#settings}

Expand All @@ -259,6 +282,7 @@ Customize your NethVoice CTI by accessing Settings:
- **Devices**: Control your phones and their status
- **Mobile App**: Generate QR code to connect your [smartphone](https://docs.nethvoice.it/it/latest/app_manual.html) (subject to specific permissions)
- **Incoming calls**: Control how your application behaves when receiving external calls. This includes choosing your ringtone, selecting where the sound plays, and configuring optional automatic URL actions triggered by incoming calls.
- **Notifications**: Configure notifications for AI-generated call summaries when the feature is enabled for your user.
- **Customer Card**: Configure how the customer card behaves (subject to specific permissions)
- **Queues**: Decide how to automate your queue access (subject to specific permissions)
- **Profile Picture**: Modify your avatar
Expand Down
1 change: 1 addition & 0 deletions docs/user-manual/nethlink/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ Currently available shortcuts are:
- Show notifications
- Enable system tray integration
- Theme (light/dark mode)
- Call summary notifications, when the feature is enabled for the user

### Privacy Settings {#privacy-settings}

Expand Down
6 changes: 6 additions & 0 deletions docs/user-manual/nethlink/usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,12 @@ NethLink uses the operating system notification system to:
- Show the status of calls
- Confirm successful actions

When call summary is enabled for your user, NethLink can also notify you when a call summary is ready.

- You can enable or disable this behavior from the NethLink notification settings.
- The notification opens the related call in NethVoice CTI History.
- NethLink does not provide a dedicated summary viewer: summary and post-call transcription are reviewed in CTI.

## Advanced Features {#advanced-features}

### Keyboard Shortcuts {#keyboard-shortcuts}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,13 +158,15 @@ Nella pagina **Impostazioni** puoi rivedere e modificare la maggior parte dei pa
- **Prefisso dei report**: prefisso telefonico utilizzato nei report.
- **Nuova password amministratore per NethVoice**: definisci una nuova password per l'utente `admin`.

Nella pagina **Integrazioni** puoi configurare la trascrizione di chiamate e messaggi vocali:
- **API Key Deepgram**: Inserisci la tua chiave API Deepgram per abilitare funzionalità avanzate di riconoscimento vocale e trascrizione.
- **Trascrizione delle chiamate**: Abilita questa opzione per consentire agli utenti di trascrivere le chiamate in tempo reale utilizzando il servizio di conversione vocale in testo di Deepgram. Questa funzionalità comporta costi aggiuntivi in base all'utilizzo di Deepgram.
- **Trascrizione dei messaggi vocali**: Abilita la trascrizione dei messaggi vocali per convertirli in testo utilizzando Deepgram. Anche questa funzionalità comporta costi aggiuntivi in base all'utilizzo di Deepgram.

:::info Trascrizione vocale
Per informazioni dettagliate su come gli utenti possono accedere e utilizzare le funzionalità di trascrizione vocale, consulta [Trascrizione vocale](../../user-manual/nethcti/other.md#voice-transcription) nel Manuale Utente.
Nella pagina **Integrazioni** puoi configurare le funzioni AI di call insights:
- **API Key Deepgram**: necessaria per abilitare le funzioni di riconoscimento vocale.
- **Trascrizione delle chiamate**: abilita la trascrizione in tempo reale nel CTI e rende disponibili i dati necessari per le funzionalità post-chiamata supportate. Questa funzionalità comporta costi aggiuntivi in base all'utilizzo di Deepgram.
- **Trascrizione dei messaggi vocali**: converte i messaggi vocali in testo tramite Deepgram. Anche questa funzionalità comporta costi aggiuntivi in base all'utilizzo di Deepgram.
- **API Key OpenAI**: necessaria per generare i riassunti delle chiamate.
- **Riassunto delle chiamate**: abilita la generazione del riassunto al termine della chiamata. Questa opzione è disponibile solo quando sono attive una API Key Deepgram valida, una API Key OpenAI valida e la **Trascrizione delle chiamate**.

:::info Call insights
Per informazioni dettagliate su trascrizione live, riassunto post-chiamata, notifiche e integrazione con la Cronologia, consulta [Trascrizione vocale e Riassunto chiamata](../../user-manual/nethcti/other.md#voice-transcription) nel Manuale Utente.
:::

Nella pagina **Rebranding** puoi personalizzare l'interfaccia utente di NethVoice con l'identità del marchio della tua azienda. Per abilitare questa funzionalità, devi contattare il team commerciale di Nethesis e avere un abbonamento Enterprise attivo.
Expand Down
Loading
Loading