Reference16r1:Concept App Service myApps Assistant
Applies To
- innovaphone from version 16r1
New in version 16r1
Apart from adding new parameters to the local assistant JavaScript API, these parameters can also be configured in the Assistant App. This is the possibility to choose a LLM from a list of available models and to determine the timeout of your requests.
Overview
The myApps Assistant App offers an interface for other apps to access a remote large language model (LLM). This might be a locally hosted open-source model like mixtral or deepseek-r1 or a model hosted by providers such as openAI (e.g. gpt-3.5-turbo, gpt-4o...) or mistral. Other applications can integrate the assistant service via the local assistant JavaScript API in the client and thus offer the response of the LLM.
The service functions as an intermediary and contains a corresponding backend. Therefore, it is required to self-host an LLM Service or possess an account with an external service provider. In the event of the latter, you can configure your API key in the Settings App (former PBX Manager Plugin) for this app service, if needed.
Current implementation covers the openAI API Chat Completions API v1, which is also supported by several open source projects like e.g. https://ollama.com/ .
Licensing
To enable the App for specified users, availability of the App(innovaphone-assistant) license is required on the PBX. Alternatively, the UCC license can be used which also includes the App(innovaphone-assistant)-license.
The license can be assigned directly to a specific User Object or via Configuration Template.
Application Setup
Installation
- Open the Settings App and select the "AP app installer" plugin. On the right panel, the App Store will be shown.
Hint: upon first time access, the "Terms of Use of the innovaphone App Store" have to be accepted - In the search field located on the top right corner of the store, search for "myApps Assistant" and select it
- From the drop down menu select the firmware version to be used, for example "Version 16r1" and click on install
- Confirm "I accept the terms of use" and continue by clicking on the install yellow button
- Wait until the install has been finished
App Generation
- Close and reopen the Settings App in order to refresh the list of the available coloured AP plugins
- Scroll to "AP assistant" and open the plugin
- Select " + Add an App" and create a "Assistant API".
- Use existing default credentials or give own ones. where as "Name" is used as display name (all character allowed) and "SIP" is the administrative field (no space, no capital letters).
- Tick the appropriate configuration template(s) to distribute the application. The “Assistant API” is required for every user object that wants to use an application with the LLM configured here.
- Click OK to save the settings and a green check mark will be shown to inform you that the configuration is fine
Next to the “Assistant API”, the "Assistant App" can be configured the same way. It offers a UI for manual queries also by use of the “Assistant API”. For configuration just repeat the above mentioned last five steps for that app (Assistant) too.
Configuration
Configure the following fields according to the used LLM:
- Remote Service URL
- The URL where the remote service interacting with the LLM is hosted. If you are using a model hosted by openAI, Mistral or Aleph Alpha this could be something like: https://api.openai.com/v1/chat/completions
- API-Key
- The secret api-key. If you are not using a self-hosted model you might need an API-Key in order to make successful HTTP Requests to your provider. This key will be delivered by your LLM model provider (e.g. openAI https://platform.openai.com/signup )
- LLM Model
- The actual LLM model you intend to use. There are a couple of open source models you could use. Depending on you provider this could be something like gpt-3.5-turbo, gpt-4o, luminous, mixtral-q6-8192, deepseek-r1:32b...
- Apply for all users
- Default model to be applied to all users. Possibility to apply individual model to users locally via Assistant App settings.
- Use ollama API
- The default ollama context window size may be configured to be 4096 token or to be a value adapted to the used hardware. You may safely turn that switch off, but in case the default is smaller than the texts you send to the LLM, turning that switch on will adapt the context window size to the text size send to the LLM (other LLM servers may return an error message when these additional API parameters are used).
- Onboarding message
- Individual message which appears on top of the Assistant application start screen.
- User feedback settings
- Collect user feedback: This is an option you only need to enable if you intend to train your own model with RLHF (Reinforcement Learning with Human Feedback) . Enabling that option user might vote for the LLM responses with a "like" or a "dislike" and these voting together with the data will be stored in your database.
Finding the right model name might sometimes be difficult. You could make an API call to your ai model service provider like that:
curl -H "Authorization: Bearer YOUR-API-KEY" --get http://YOUR-MODEL-SERICE-PROVIDER-ADDRESS/v1/models
The model service provider address could be the address of your ollama server, openai.inference.de-txl.ionos.com for IONOS or api.openai.com for openAI. (That API call will be implemented in version 16r1 making the configuration easier)
myApps Assistant - App Service
The App Service performs tasks in the following areas:
- Question relay to an LLM
- Language recognition
- Caching
- Translations using the LLM (not yet fully tested)
Assistant App

Since version 15r1, the application also offers a user interface, where conversations can be held with the connected large language model. These conversations are stored in a database managed by the service.
There are a few parameters one can manage from within the hamburger menu. These are:
- Send on Enter - You might choose that option if you want a message to be send to the LLM on pressing ENTER. Alternatively it would be CTRL+ENTER
- Don't use an interface to other apps (no system prompt) - To allow the application access to myApps resources (such as the contacts and connect databases, call list, or the softphone app), a specially designed system prompt is sent to the model at the beginning of each conversation. If you do not require this feature and wish to reduce costs or processing time, you can disable the system prompt by checking the appropriate box.
- Offline mode (Conversations are stored on your device) - Normally, all your conversations are stored in the central service's database, which enables you to retrieve them from any device you are logged into. However, if your internet connection is interrupted, you will not be able to access them until the connection is restored. To address this issue, you may choose to store your conversation data on your device, allowing you to access it even without an internet connection. However, you should not enable this feature when using a hardware device that is not your own. If you do, make sure to disable it afterwards to delete any locally stored data. Note that deleting locally stored conversations is not synchronized across all devices if they are all in Offline Mode!
Currently implemented myApps features
The Assistant App integrates into the myApps platform and offers services from other apps via the local assistant.plugin JavaScript API. This will be extended and improved in future releases. You may try the following prompts:
- Ask for the number of a contact stored in the contacts database "Can you please find the number of Sarah Sample!"
- Get information from Connect and Projects* "Please look up #AI in the internal database! Then tell me how we are planning to use it"
- Get your call list "What are my recent calls?"
- Calling someone "Can you please call Sarah Sample!"
- Get the current time and date "What time and data is it right now?"
- Start a new conversation "Please start a new conversation!"
For the above mentioned prompts the following APIs should be available to the user:
- com.innovaphone.assistant.plugin
- com.innovaphone.search
- com.innovaphone.calllist
For now only keyword search is possible. In order to make the LLM understand that you want to search in Connect and Projects Databases you need to mention that you want to use the internal databases! Better use two sentences to make the LLM understand better. The search results are the same as those you would get from the myApps Search App. Only the first 40 matches of the keywords are considered and from these only the first 10k characters.
The prompts mentioned above may or may not work depending on the connected large language model. We cannot guarantee that the results will always be satisfactory, but as the application always sends the entire conversation to the model, it is recommended to start a new conversation if different topics are not directly related to each other.
The prompts were successfully tested on the following models:
- mixtral-q6-8192
- mixtral
- deepseek-r1:14b
- deepseek-r1:32b
- deepseek-r1:70b
- gpt-3.5-turbo
- gpt-4o
There are certainly many more. Currently only models with parameter sizes of more than 14 billion (14b) correctly understand the system prompt. Larger models perform better, but are slower and more expensive.
Limitation
As most modern models support a maximum context window of usually 128k token (approx. 500.000 characters) you cannot send more in one message or per conversation. In order to reduce costs users are encouraged to start a new conversation for each new topic.

Troubleshooting
To troubleshoot this App Service, you need the traceflags App, Database, HTTP-Client in your App instance.