Skip to main content
Unlisted page
This page is unlisted. Search engines will not index it, and only users with a direct link can access it.

Algho Voip 3.0

In this section

Algho VoIP is a Windows service developed by QuestIT that connects a SIP telephone line to a conversational AI agent, enabling the agent to automatically receive and place telephone calls. The service provides a web administration panel, documented here, for monitoring line status, viewing call history, and configuring SIP, the AI agent, and service parameters.

Service architecture: the web panel interacts with the service, which communicates with the SIP PBX, AI platform, and Google services.

1. Introduction

Algho VoIP has a web panel for managing a VoIP telephone service integrated with a conversational AI agent. It lets you:

  • monitor the SIP line and active-call status;
  • view call history, listen to or download recordings, and read conversation transcripts with the AI agent;
  • place manual calls to a number with AI-agent-specific parameters;
  • configure the SIP line, AI agents, network, call parameters, and license (administrators only);
  • view the service log files and audio cache (administrators only);
  • view the API technical documentation (administrators only).

The application requires authentication. Depending on the user role (standard or administrator), some menu sections are hidden or inaccessible.

info

The web interface is available in English only (labels, buttons, and messages). This is intentional because the panel is designed for technical users; this manual uses the original English names of fields and buttons as they appear on screen.

User roles

SectionStandard userAdministrator
Home
Calls✅ (without deletion)
Phone
Cache
Log
API
Config
Changelog

If a standard user tries to access a restricted page directly, for example by entering its URL, they are automatically redirected to Home.

info

At the system level, the two roles correspond to the admin (administrator) and guest (standard user) accounts defined in the service configuration file. See Section 12.


2. System access

2.1 Sign in

When the application opens, the sign-in screen displays:

  • a Username field;
  • a Password field;
  • a Login button.

Enter the credentials provided by the system administrator and select Login. If the credentials are incorrect, the message "Invalid credentials" is displayed. A generic error message is displayed if there is a server communication problem.

The session remains active while the access token is valid (60 minutes by default, configurable server-side). The system automatically checks session validity every minute. If the token expires or is invalidated, the application signs out automatically and reloads the sign-in page.

info

Credentials for the administrator and standard user cannot be created or changed in the web interface. They are defined by the system administrator in the service configuration file installed on the server. See Section 12 for details.

Authentication flow: sign-in with a JWT token, periodic session validation, and automatic sign-out on expiry.

2.2 Sign out

Select the username in the upper-right corner to open a menu containing Logout. Selecting it ends the session and returns to the sign-in screen.


3. Interface layout

The interface consists of:

  • Top bar: application name and user menu (username and logout);
  • Sidebar: links to sections available to the role; open or close it with the ☰ icon in the upper-left corner. At the bottom, it displays Config (for administrators) and the application version number;
  • Main area: content of the selected page.

4. Home

Home displays real-time service status (automatically refreshed every 5 seconds).

4.1 Extension panel

Displays details of the configured SIP account:

  • extension number;
  • server:port of the SIP PBX/provider;
  • Registered (green) or Not registered (red) status;
  • a registration error message, if any.

4.2 Registration panel

Lets you manually control SIP registration with a toggle:

  • on → sends a registration request to the SIP server;
  • off → sends a deregistration request.

The following are also displayed:

  • Status: current status (Not registered, Registering, Registered, Not requested, Error register);
  • Last: date/time of the most recent successful registration;
  • Next: scheduled date/time of the next registration renewal;
  • Remaining: seconds until registration expires.
info

The toggle is temporarily disabled during the "Registering" state to prevent concurrent requests.

4.3 Bot panel

Displays the name and ID of the conversational AI agent currently configured as the default.

4.4 System indicators

Four summary counters:

  • Active calls: active calls out of the maximum allowed by the license (for example, 2/10);
  • Memory used: memory used by the service process;
  • Total threads: number of active threads;
  • Total handles: number of open system handles.

4.5 Active calls table

Lists calls currently in progress, with these columns:

ColumnDescription
Startcall start date/time
Timeelapsed time in relative format (for example, "2 minutes ago")
Call timecall duration (hh:mm:ss)
Callercaller number
Calledcalled number
Statuscall status
Directionarrow icon: green ⬅ = incoming (Inbound), blue ➡ = outgoing (Outbound)

Selecting a row highlights it; no further action is performed.


5. Calls (Call history)

This section lists all calls recorded by the system, with server-side pagination.

5.1 Main functions

  • Reload: reloads the list;
  • Search: text search field (with approximately 350 ms debounce) that filters results on the server;
  • sort columns by selecting their headers;
  • select multiple rows with checkboxes for bulk actions (deletion, administrators only).

5.2 Table columns

ColumnDescription
IDunique call identifier
Datecall date and time
Timeelapsed time in relative format
Callercaller number
Calledcalled number
OriginInt (internal) or Ext (external)
Directionarrow icon: incoming/outgoing
Statuscall status (for example, Completed, InCall, Busy, Error), displayed as a colored label (green=completed, red=error/busy, blue=in progress, yellow=other)
Transferredtransfer date/time, if applicable
Ringingringing duration
Durationtotal call duration
Toolsaction buttons (see below)

5.3 Actions available for each call (Tools column)

  • 🎙️ Listen audio: opens a window with the recording waveform, if available, and lets you play or pause it;
  • ⬇️ Download audio: downloads the call audio file, if available;
  • 💬 Open chat: opens the conversation transcript between the user and AI agent, if available, displayed as a chat with timestamps and message type (WM, FORM, QA, QB, other);
  • 🗑️ Delete call (administrators only): deletes the individual call after confirmation.

5.4 Bulk deletion (administrators only)

When you select one or more rows with checkboxes, the trash icon in the "Tools" column header becomes active. Selecting it opens a confirmation window; once confirmed, the selected calls are permanently deleted.

5.5 Retention and automatic deletion

Call history and related audio recordings can be deleted automatically according to the Keep calls days parameter (Config → Calls; see Section 8.4):

  • value 0 (default): calls are never deleted automatically;
  • value > 0: calls and audio files older than N days are automatically deleted by the service during each periodic check.

6. Phone (Manual call)

This section lets you manually place an outgoing call and specify parameters for the AI agent.

6.1 Form fields

FieldRequiredDescription
PhoneYestelephone number to call
KeyNoselects a configured AI agent from the list (drop-down menu)
Bot IDNoID of the AI agent to use, if different from the one associated with the Key
Question IDNoID of the AI agent's starting question/scenario
Pin DTMFNoPIN to send as DTMF tones
MessageNotext message for the AI agent to speak or process
Custom payloadNoadditional custom payload to pass to the AI agent

6.2 Starting a call

Complete at least the Phone field and select Call Now. After submission, the following is displayed:

  • an informational message (blue panel) if the request was accepted;
  • an error message (red panel) if there is an issue, such as an invalid number or unavailable service.

6.3 Validation rules and behavior (technical details)

  • Phone: maximum 20 characters; all characters except digits, +, *, and # are removed automatically.
  • Message: automatically truncated if it exceeds 5,000 characters.
  • Key takes precedence over Bot ID/Question ID: if you select a Key, the Bot ID and Question ID fields are ignored. To force a specific AI agent or question without using a configured Key, leave Key empty and complete Bot ID and, if needed, Question ID.
  • The Key drop-down always includes the default AI agent (Config → Bot tab) as well as every AI agent configured in the "Bots mapping" table.
  • Pin DTMF: when set, the call starts in idle mode. This is useful when the user must enter a code before the AI agent starts the conversation.
  • If the SIP line is not configured correctly (Display name, Extension, Authentication ID, and Server in Config → VoIP must all be set), the call does not start and a generic error is returned.

7. Cache (administrators only)

Manages audio files cached by the service, such as pre-generated speech-synthesis files. The cache contains WAV files only.

7.1 Functions

  • Reload: reloads the file list;
  • Search: locally filters the list by text;
  • column sorting: Filename, Creation Date, Time (relative), Size;
  • multiple selection for bulk deletion.

7.2 File actions

  • 🎙️ Listen audio: plays the file directly in the panel;
  • ⬇️ Download file: downloads the file to your computer;
  • 🗑️ Delete file: deletes the individual file after confirmation.

Bulk deletion works as in the Calls section: select the rows, select the trash icon in the header, then confirm.


8. Config (administrators only)

This service configuration section is organized into vertical tabs. Changes are not saved until you select Save config at the bottom of the page.

If the service is not running as a system service (Windows Service), the following are also available at the top:

  • Check updates: compares the installed version with the version published on an update server (address configured server-side). If a newer version is available, it displays the version number and offers Install and restart, which downloads the update package and automatically restarts the entire application to apply it;
  • Restart service: restarts the entire application process, not just SIP registration, after confirmation.

8.1 VoIP tab: SIP line

Account parameters:

  • Display name, Extension (SIP username), Authentication ID, Password (with show/hide button), Server (domain), Port, Proxy.

Network:

  • Transport type: UDP or TCP.

NAT:

  • Auto detect NAT (when enabled, disables manual method selection);
  • NAT traversal method: None, STUN, TURN, Manual;
  • STUN server, Static public IP.

Registration:

  • Registration required (enables/disables sending SIP registration);
  • Keep alive mode: NONE, REGISTER, OPTIONS;
  • in "legacy" mode: Registration refresh timer, Registration error timer;
  • otherwise: Expiration time, Keep alive interval, Register before expires.

RTP ports range:

  • Min / Max: range of ports used for RTP media traffic.

Audio:

  • Codecs: multiple selection from G711 A-law, G711 U-law, G722, G729, GSM, G723, iLBC, SPEEX (2.15/44 Kbps);
  • Noise reduction: None, Low, Medium, High.

Other:

  • Compatibility with Mitel PBX (fixError481): resolves a known call-transfer issue with Mitel PBXs (see the ℹ️ tooltip beside the field).

Service:

  • Restart on registration error count: number of consecutive registration errors after which the service automatically restarts.

8.2 Bot tab

Default AI agent configuration:

  • Server (selected from the configured server list);
  • Bot name, Bot ID; -- Autostart question ID (question that starts the conversation); -- Default user language (default language used by the AI agent; expanded language list introduced in version 3.0.0.9. Version 3.0.0.10 fixed some STT speech-recognition configuration issues); -- Application Context (sent to the agent platform with the user language to identify the call's application context; useful when the same platform manages multiple distinct applications/AI agents; introduced in version 3.0.0.4);
  • API key for Algho TTS voices;
  • Enable Algho TTS (Algho proprietary text-to-speech engine; when enabled, disables "Enable TTS Stream");
  • Enable STT Break (despite its name, when enabled it keeps speech recognition continuously active between conversation turns instead of stopping it);
  • Enable TTS Stream (Google text-to-speech streaming: reduces the wait before the user starts hearing the AI agent's response; available only when "Enable Algho TTS" is disabled because the engines are alternatives);
  • Enable websocket (websocket communication with the AI agent, which speeds up responses received from the server compared with traditional HTTP communication). (DOES NOT READ stompEnabled FROM COMPOSER)

Assistance (fallback handling):

  • Max quibble question ID: question to switch to after too many unrecognized attempts;
  • Max quibble counter: maximum number of attempts before fallback.
info

The Server drop-down, both in the Bot tab and in the "Add/Edit bot" dialog, cannot be changed from this interface. It is populated from a server-side list configured by the system administrator. See Section 12. To add or remove an available server, update the service configuration and restart it.

Bots mapping (table): Lets you configure multiple AI agents associated with "keys" (Keys) that can then be selected from the Phone page. It supports scenarios where the same line must route calls to different AI agents, such as different PBXs/trunks, number ranges, or customers. Based on how the PBX identifies the incoming call, the service automatically finds the AI agent in the table that must handle it. If no match is found, it uses the default AI agent configured above.

  • Add bot: opens a window to add an AI agent with: Key (required and unique), Server, Bot name, Bot ID, Question ID, Fail question ID, Fail counter, Default user language, Application Context, API key, and the Enable Algho TTS / STT Break / TTS Stream / Websocket / Enable (enables the AI agent) toggles;
  • ✏️ Edit bot: edits an existing AI agent from the table;
  • 🗑️ Delete bot: deletes one or more selected AI agents after confirmation;
  • the STT Break, TTS Stream, and Enabled toggles can be changed directly in the table.
info

Changes to the AI-agent table, including additions, edits, and deletions, are applied in memory only until you select Save config.

How the AI agent is selected for a call (Key extraction rules)

For each call, the service determines which AI agent to use from a text identifier: the caller name/route provided by the PBX for incoming calls, or the Key/Bot ID explicitly specified for manual calls or API calls.

Key extraction rules: how the service determines the AI agent to use for a call.
  1. If the identifier starts with #, the following text is used directly as the Key. This applies to calls started from the Phone page or APIs by selecting a Key.
  2. If it starts with @, the following text is treated as a Bot ID. The enabled AI agents in the table are searched for that Bot ID. If found, its Key is used; otherwise, the default AI agent with that Bot ID is used directly, even if it is not in the table.
  3. Otherwise, typically for incoming calls, the service attempts to extract a Key by automatically recognizing common PBX formats in this order:
    • 3CX: text after the final : (for example, 100:MYKEY → Key MYKEY);
    • Calliope / Askozia: text before the first _ (for example, MYKEY_100 → Key MYKEY);
    • Wildix: calls in the R[identifier]-... format (for example, Rabc123-... → Key abc123), recognized as callbacks.
  4. The resulting Key is searched among enabled AI agents in the table, with an exact match on the Key field. If found, that AI agent is used.
  5. If it is not found and the call is a Wildix callback (step 3), the system retries with the reserved CALLBACK Key. You can therefore handle Wildix callbacks by creating an AI agent in the table whose Key is exactly CALLBACK.
  6. If none of the preceding searches finds a matching AI agent, or the identifier is empty, the default AI agent configured at the top of this tab is used.
info

Key matching is case-sensitive. A disabled AI agent, with Enabled off, is ignored during the search as if it were not present in the table.

8.3 Network tab

  • Security protocol: Default, TLS 1.2, TLS 1.3 (since version 3.0.0.5, "Default" corresponds to TLS 1.2; explicitly select TLS 1.3 if required by the server);
  • Server timeout;
  • Force websocket (forces use of websocket for network communication).

8.4 Calls tab: Call parameters

FieldDescription
Ring timemaximum ringing time
Answer delaydelay before automatic answer
Max callmaximum number of simultaneous calls (-1 = unlimited within the license limit)
Transfer modeDefault, Hold Music, US Old Ringtone, US Ringtone, IT Ringtone
Hold modeDefault, Wait Tone, Hold Music
Hangup timetime before automatic hangup
Keep calls dayscall history retention in days (0 = no automatic deletion)
Voicemail timeoutvoicemail timeout
info

Several voicemail-related bugs were fixed in version 3.0.0.7. If you encounter issues, verify that you are using this version or later with the "Check updates" button in Config.

Toggles: Use Mp3 (MP3 recordings), Enable reject (ability to reject calls), Enable attended transfer (attended transfer), Record phone call (call recording), Mask phone number (masks the number in logs/interface), Send caller AJWT (sends a caller AJWT token).

8.5 Advanced tab

Advanced options for speech output and AI-agent form handling. During a multiple-choice question (form), the AI agent can offer several types of DTMF-selectable options: choices, a value suggested by the agent, a command to skip (*) or end (#) the question, and, when there are too many options, a command to hear more. The following settings control which elements are read aloud and how.

Reading options:

  • Enable suggestion reading (EnableSuggestion): when enabled, after the response text, the agent reads aloud linked suggestion or admissible values. When disabled, these suggestions are neither read nor selectable.

  • Enable form pagination reading (EnableReadFormPagination): when enabled, with "Enable suggestion reading" also enabled, reads the "next page" command when the number of suggestion or admissibile values is higher than the limit. When disabled, that command is not read, while other suggestions remain enabled.

  • Enable form pagination reading SDA: as above, but specifically for an SDA (Smart Document Access) response, a legacy/deprecated agent-platform response type.

  • Enable form command reading (EnableFormCommand): when enabled, reads the "End" (#) and "Next/Skip" (*) commands aloud when available. They still work when disabled: users can press # or * at any time, but the commands are not announced.

  • Enable form suggested reading (EnableFormSuggestion): when enabled, reads aloud and offers as a selectable option a value suggested by the agent for the current form field, such as an automatically inferred value. When disabled, the suggestion is not offered.

  • Enable suggestion number (EnableSuggestionNumber): when enabled, each suggestion or admissible value is prefixed with its DTMF number (for example, "1: Rome"). When disabled, only the option text is read.

  • Enable voice suggestion (EnableVoiceSuggestion): when enabled, lets users choose an option by speaking its number (for example, saying "one" is equivalent to pressing 1), in addition to pressing the DTMF key. It does not apply to file/audio fields.

Option pagination (when there are many options):

  • Enable form pagination (EnableFormPagination) + Form pagination count (FormPaginationCount, 1–9): when disabled, available options beyond 9 are ignored entirely. Enable pagination to handle more than 9 options correctly. When enabled, options are read in groups, or pages, of the number set in Form pagination count. At the end of each page, users are offered "press 0 to hear the next options" and, after all options, "press 0 to hear them again from the beginning".

Speech recognition:

  • Enable field class tokens (EnableFieldClassTokens): when enabled, gives the speech-recognition engine (Google STT) a hint about the expected data type based on the field requested by the agent, such as amount, telephone number, postal code, VAT number, tax code, or quantity. This improves recognition accuracy for that type of data. No dedicated hint is available for dictating an email address.

  • Enable beep voice recognition (EnableBeep): when enabled, plays a short tone immediately before listening starts and after it ends, clearly signaling when the user can start and must stop speaking.

Other options:

  • Operator phone (OperatorPhone): number to which a call is transferred when the agent scenario requests a human operator. The transfer is blind, or attended if Enable attended transfer (Config → Calls) is enabled. If this field is empty, the transfer request is ignored: no transfer occurs and only a warning is logged.

  • Enable engagement (EnableEngagement): when enabled, if a user is silent for an inactivity period set by the agent platform and the system awaits input, the agent attempts to re-engage the user with a proactive message instead of leaving the call silent.

  • Wait timeout (WaitTimeout, milliseconds): if processing an agent response takes longer than this value, a waiting message is played so the user is not left in silence. This value is normally supplied by the AI-agent platform in its API response; a value set here above 0 takes precedence and overrides it. With the default value of 0, the platform-provided value applies; if it provides none, the waiting message remains disabled.

8.6 API tab

  • API token: token used to authenticate calls to the APIs exposed by the service. It is used in particular to connect the Algho Outbound platform, which manages outbound telephone campaigns and uses Algho VoIP APIs to place calls. For this scenario, Algho VoIP must be reachable from the internet; see the network requirements in Section 12.1.

8.7 Log tab

Lets you set the log detail level separately for Console and File in each of these categories: App, Network, SIP, RTP, NAT, Media, Call, RTSP, PBX.

Available levels: Error, Warning, Information, Debug, Trace, None, from least to most detailed, with None to disable logging.

  • Keep log files days: log file retention in days (0 = no automatic deletion; with a value above zero, older log files are deleted automatically).

8.8 Google tab

Configuration of Google Cloud Speech-to-Text/Text-to-Speech services:

  • Google region: Default, EU - Europe, US - USA;
  • STT model: SHORT, TELEPHONY, CHIRP3 (CHIRP3, added in version 3.0.0.1, is the newest model; validate its accuracy on your telephone traffic before replacing a model already in use);
  • Credential: paste the Google Cloud project credentials JSON here.

8.9 License tab

  • Code: field for pasting the supplied license code;
  • when active, displays validity, name, company, email, license ID, maximum permitted calls and instances, associated AI-agent ID, validity start/end date, and associated Google project ID;
  • displays an "Invalid license" warning if the entered code is invalid.
info

Without an active valid license, the service still works with predefined minimum limits (one simultaneous call). A valid license code is required to increase call limits.

8.10 Saving

The Save config button at the bottom is disabled until the configuration has loaded correctly. A confirmation or error message is displayed when saving.


9. Log (administrators only)

Lets you view log files generated by the service.

  • Select the log file from the Log drop-down (default: "Last", the most recent; dated logs and an "Update" log, if present, are also listed);
  • Reload: reloads log entries (up to 5,000 lines per file);
  • Download: downloads the selected log file;
  • Search: text filter for displayed entries.

Columns

ColumnDescription
Dateevent date/time
Typelog type
Levellevel (Debug, Information, Warning, Error, Trace, None), highlighted by color
Codeevent code
Namename of the logger/component that generated the entry
Messagemessage; if available, an extended technical detail (stack trace/debug) is displayed below it

10. API (administrators only)

Displays technical documentation for the REST APIs exposed by the service (based on OpenAPI/Swagger), for integration with external systems. "Try it out" is disabled; the page is read-only.


11. Changelog

Lists released application versions, with the date and changes introduced in each version. Available to all users.


12. System administrator notes

This section covers aspects not managed through the web interface but directly on the server where the service is installed. It is intended for installation and technical-support personnel.

12.1 System requirements

Operating system Microsoft Windows only (Windows 10/11 or Windows Server supporting .NET 8). Although based on .NET 8, the application is not cross-platform: it depends on Windows-only components (Ozeki VoIP SDK, system audio synthesis/management, and Windows process management), so it cannot run on Linux or macOS.

Microsoft runtimes to install Before installing the application, install these free Microsoft components if they are not already installed. They are available from dotnet.microsoft.com/download/dotnet/8.0:

ComponentPurpose
.NET 8.0 – ASP.NET Core RuntimeRuns the built-in web server that exposes the management panel and APIs (port 9000 by default)
.NET 8.0 – Desktop RuntimeRequired by Windows components used for VoIP line and audio management
info

The base .NET 8.0 (.NET Core Runtime) is installed automatically with the two components above; you do not need to download it separately.

Components already included in the installation package (no additional installation required):

  • ffmpeg (ffmpeg.exe), for processing audio files;
  • NSSM (nssm.exe, Non-Sucking Service Manager), for registering the application as a Windows service;
  • native SQLite library (e_sqlite3.dll), for the call-history database.

Network requirements

  • TCP port 9000 (configurable through the baseAddress key in appsettings.json) for access to the web panel. In the factory configuration, the service is reachable only from the local computer (http://localhost:9000). To make it available to other network hosts, change the address (for example, http://*:9000) and allow the port in Windows Firewall.
  • An outbound internet connection for checking/downloading updates, communicating with the conversational AI-agent platform (servers selectable in Config → Bot), and, where used, Google Cloud STT/TTS services.
  • Reachability of the SIP server/PBX configured in Config → VoIP (typically UDP/TCP port 5060) and the configured RTP port range (default UDP 5000–10000). Ensure that any intervening firewalls/NAT devices allow them.

12.2 Installation

  1. Download AlghoVoipSetup.exe (direct link: http://virtualassistant.alghoncloud.com/updates/voip/AlghoVoipSetup.exe), copy it to the server, then run it as administrator.
  2. Follow the installation wizard. By default, the application is installed in C:\AlghoVoip; the installer also creates shortcuts in the Start menu and on the desktop.
  3. Manual/interactive start: run AlghoVoip.exe, or its shortcut, to start the application in the foreground.
  4. Start as a Windows service (recommended for continuous/production use): see the detailed procedure below.
  5. Open the panel in a browser at the configured address (default: http://localhost:9000) and complete the initial configuration (SIP, Bot, License) on the Config page. See Section 8.
info

The factory initial credentials are admin/admin (administrator) and user/user (standard user). Change them immediately after installation; see Section 12.3.

Installing as a Windows service (register.cmd)

The installation folder (default: C:\AlghoVoip) contains two scripts:

  • register.cmd → registers and starts the application as a Windows service named "AlghoVoIP", using the included NSSM tool (nssm.exe). The service starts automatically with the operating system without requiring an open user session.
  • unregister.cmd → removes the previously registered "AlghoVoIP" service.
warning

Warning: installation folder: both scripts contain a fixed path in the set PATH=... line, used to find nssm.exe and AlghoVoip.exe (default: C:\AlghoVoip). Before running them, ensure that this path matches exactly the actual software installation folder. If you selected a different folder in the installation wizard, open the script in a text editor and correct its set PATH=... line. If the path is incorrect, the script cannot find the required files and service registration or removal fails.

To run them:

  1. Open the installation folder (C:\AlghoVoip) in File Explorer.
  2. Right-click the file, register.cmd to install the service or unregister.cmd to remove it, then select "Run as administrator". This is required because service registration fails without elevated privileges.
  3. Confirm any Windows UAC (User Account Control) prompt.
  4. Verify the result in the Windows Services console (services.msc): after register.cmd, the AlghoVoIP service must appear with "Running" status and automatic startup; after unregister.cmd, it must no longer appear in the list.
info

If the application was previously started manually (AlghoVoip.exe in the foreground), close it before registering the service to prevent its web port (9000 by default) from already being in use.

info

To update the configuration (config.json/appsettings.json) of an instance registered as a service, restart it from services.msc after editing the files, or from the Config panel; see Section 8.

12.3 Access credentials and authentication

Panel credentials and the authentication mode are defined in the service configuration file (appsettings.json), not in the config.json file managed from the Config page:

KeyMeaning
authenticationAuthentication mode (jwt for token sign-in; if missing or different, web-interface sign-in is unavailable)
app:username / app:passwordAdministrator credentials
app:guest_username / app:guest_passwordStandard (guest) user credentials
jwt:secretSecret key for signing session tokens
jwt:issuer, jwt:audienceToken identifiers (optional)
jwt:expiresMinutesSession duration in minutes (default: 60)
info

For security, change the default passwords and jwt:secret from their factory values during installation.

12.4 Available Bot server list

In Config → Bot, the Server drop-down is populated from the serverList key in appsettings.json, in this format:

Nome1|https://server1/api;Nome2|https://server2/api

To add, remove, or rename a server, change this key and restart the service.

12.5 Updates

The update_check and update_download keys in appsettings.json respectively specify the address from which the latest available version is read and the address from which the update package is downloaded. They are used by Check updates and Install and restart on the Config page.

12.6 Main service folders and files

PathContents
config.jsonApplication configuration managed from Config (SIP, Bot, Calls, Log, Google, License, and so on)
appsettings.jsonSystem configuration: listening address, authentication, credentials, server list, update URLs
Logs/Daily log files (.log), viewable on the Log page
Cache/WAV audio files reused by the service (speech synthesis), manageable from the Cache page
Recordings/Call recordings (WAV or MP3 according to "Use Mp3"), associated with Call history

12.7 Migrating from Algho VoIP 2 (.NET Framework 4.5.2)

Existing installations of the previous version, Algho VoIP 2 based on .NET Framework 4.5.2, can migrate to the new .NET 8 version while retaining call history and application configuration.

What remains unchanged Simply copy the following from the old installation to the new installation folder (default: C:\AlghoVoip), overwriting files created by setup, without conversion:

  • config.json (SIP/Bot/Calls and other configuration managed from Config);
  • the database (DB folder, database.db file);
  • the Logs/, Cache/, and Recordings/ folders.

What changes: the system configuration file The old AlghoVoip.exe.config file (XML, .NET Framework) no longer exists. It is replaced by appsettings.json (JSON, .NET 8). See Section 12.3. Manually transfer customizations in the old <appSettings> section to the new file according to this mapping:

Key in old AlghoVoip.exe.configLocation in new appsettings.json
baseAddressbaseAddress (invariata)
authenticationauthenticationset it to "jwt", not "basic" (see the note below)
usernameapp.username
passwordapp.password
guest_usernameapp.guest_username
guest_passwordapp.guest_password
serverListserverList (unchanged)

The <runtime><assemblyBinding> (bindingRedirect) and <startup><supportedRuntime> sections of the old file have no equivalent and must be omitted. They were required only to resolve .NET Framework dependencies, which .NET 8 handles differently and automatically.

warning

Important: authentication: the new web-panel sign-in page works only when authentication is set to "jwt"; web-interface sign-in is unavailable with "basic". When changing from "basic" to "jwt", also add the new jwt section, which was absent from the old file, with at least a secret key (jwt:secret). See the table in Section 12.3.

Conversion example, starting from an old AlghoVoip.exe.config with these customizations:

<appSettings>
<add key="baseAddress" value="http://localhost:9000" />
<add key="authentication" value="basic" />
<add key="username" value="admin" />
<add key="password" value="admin" />
<add key="guest_username" value="user" />
<add key="guest_password" value="user" />
<add key="serverList" value="alghoncloud.com|https://virtualassistant.alghoncloud.com/api;qplus.ai|https://virtualassistant.qplus.ai/api;staging|https://staging-fe.alghoncloud.com/api;test|https://test-fe.alghoncloud.com/api" />
</appSettings>

the equivalent new appsettings.json will be:

{
"baseAddress": "http://localhost:9000",
"authentication": "jwt",
"app": {
"username": "admin",
"password": "admin",
"guest_username": "user",
"guest_password": "user"
},
"jwt": {
"secret": "<unique secret string to generate>",
"issuer": "AlghoVoIP",
"audience": "VoipWebClient",
"expiresMinutes": "60"
},
"serverList": "alghoncloud.com|https://virtualassistant.alghoncloud.com/api;qplus.ai|https://virtualassistant.qplus.ai/api;staging|https://staging-fe.alghoncloud.com/api;test|https://test-fe.alghoncloud.com/api"
}

Recommended procedure

  1. Stop, and if necessary uninstall, the previous-version service/application.
  2. Install the new version by following Section 12.2, without starting it yet.
  3. Copy config.json, the DB folder, and the Logs/, Cache/, and Recordings/ folders from the old installation to the new folder, for example C:\AlghoVoip.
  4. Open the old AlghoVoip.exe.config and transfer its customizations to the new appsettings.json according to the preceding table. Set authentication to "jwt" and add a jwt section with your own secret.
  5. Start the new application, or register it as a Windows service, and use Home and Config to verify that the SIP line, AI agent, license, and call history are correct.

12.8 Customizing VoIP service system messages

Some service voice messages, including notices, DTMF commands, and errors, spoken directly by the VoIP service can be customized by language without changing or recompiling code, using external text files. This does not apply to the AI-agent scenario questions and answers, which are managed by the conversational platform.

How it works For each message, the service first looks for an external file at:

<installation folder>\Translations\<language>.json

(for example, C:\AlghoVoip\Translations\it.json for Italian; <language> is the first two letters of the language code: it, en, es, fr, de, pt, ro, zh, ru). If the file exists and contains the requested key, that text is used; otherwise, the built-in default text is used automatically. You do not need to recreate the entire file: create a file containing only the keys to override and leave all others unchanged. File changes take effect immediately without restarting the service.

Available keys (with their default Italian text):

KeyDefault text (it)
BOT_INFO_SERVER_ERRORSi è verificato un errore del server remoto
DTMF_NOT_VALIDTasto non valido, premere 0 per riascoltare il messaggio precedente
CAN_ASKScegli
CAN_PRESSPremi
SKIPAvanti
ENDInterrompi
STOPPerfetto, smetto di parlare
NO_AUDIONon sto ricevendo richieste, la chiamata sarà interrotta
PAGINATIONPremere 0 per ascoltare i successivi
PAGINATION_RESTARTPremere 0 per riascoltare
ATalle
USER_UNAVAILABLEL'utente non è disponibile
TRANSFER_ERRORSi è verificato un problema nel trasferimento di chiamata

Example: to change only the invalid-key message and the message for ending a call due to no input, in Italian, create C:\AlghoVoip\Translations\it.json with this content:

{
"DTMF_NOT_VALID": "Tasto non riconosciuto. Premi 0 per riascoltare.",
"NO_AUDIO": "Non ho ricevuto risposta, la chiamata verrà chiusa tra qualche istante."
}

All other keys (BOT_INFO_SERVER_ERROR, CAN_ASK, and so on) continue to use the default text because they are not present in the external file.

info

Save the file as valid UTF-8 JSON. The Translations folder is not created automatically by setup, so create it manually if it does not exist.


13. Frequently asked questions / Troubleshooting

The line shows "Not registered" on Home.

In Config → VoIP, verify that Server, Port, Extension, Authentication ID, and Password are correct, then try manually re-enabling registration with the toggle on Home. Also check Log for error details.

I cannot listen to or download a call recording.

The buttons are disabled if the call has no associated recording file, for example because it was too short or "Record phone call" is disabled in Config → Calls.

I cannot see some menu items (Cache, Config, Log, API).

These sections are restricted to users with the administrator role. Contact the system administrator for the required permissions.

I saved the configuration, but the changes do not appear to be applied.

Some changes, such as SIP parameters, require a service restart. Use Restart service on the Config page.

I want to check whether a new software version is available.

In Config, if the service is not running as a system service, use Check updates.

I select "Call Now" on the Phone page, but nothing happens / I receive a generic error.

Verify that Display name, Extension, Authentication ID, and Server are all set in Config → VoIP. If the SIP line is not configured, the system does not start any call.

I selected a Key, but the Bot ID and Question ID fields I completed in Phone are ignored.

This is expected behavior: when Key is set, it always takes precedence over manually entered Bot ID/Question ID fields.