You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
NethVoice: Improve Internal Call Display Format and Device Context Visibility on the Phone Island #7965
Description:
Currently, the way internal calls are displayed can lead to confusion due to inconsistent formatting and lack of contextual information about the device used. This feature request proposes improvements to enhance clarity and usability.
Requested Improvements:
Consistent Display Format for Internal Calls
When an internal call is shown, it should always follow the same standardized format as the main extension.
This consistency will reduce ambiguity and make it easier for users to quickly understand call details.
Device Context Visibility for Internal Interactions
When a user (e.g., Giuseppe) responds or initiates contact internally, it would be helpful to display the device used (e.g., CTI, app, Netlink, phone).
This information could be presented in one of the following ways:
instead of the extension with the extension in the tooltip
Via a small device icon displayed alongside the extension
Rationale:
Knowing the device used provides useful context for understanding the interaction flow.
Standardizing the display format helps avoid confusion and improves overall user experience.
Expected Outcome:
Clearer, more consistent visualization of internal calls
Better contextual awareness through device information
Improved usability without adding unnecessary visual noise
Tested internal calls (between two PBX extensions) and external calls (mobile number, saved contact).
Internal calls
Ringing: name and extension are both visible
In progress: name is visible, but the extension disappears from the display
External calls
Ringing and in progress: only the number is shown, in both lines
Same behavior even when the number matches a saved contact (e.g. contact "Jack Black" saved with number 333 123 4567 still shows only "333 123 4567", never the contact name
Placeholder icon: a directional arrow is used instead of an avatar when no photo is available, which reads differently from the avatar used for internal calls
Proposed direction
Name: always show the resolved name (internal extension or external contact) when available, in both ringing and in-progress states
Number/extension: always keep it accessible, including during the call (fixes the current disappearance for internal calls), without permanently occupying space in the compact view (see meatball/copy behavior below)
Avatar: use a consistent placeholder instead of the directional arrow for calls without a photo
Device context: show a small device icon next to the extension only when the other party is an internal user, with the device type in the tooltip
Device type
Device is known from the start of ringing only for incoming internal calls
Setup: user A (web phone as default device), operator B with physical phone, Web phone, NethLink and mobile app, operator C with a profile picture, a phonebook contact visible to A, an external number not in the phonebook, a queue. Repeat in light and dark theme, IT and EN.
Test Case 1 - Incoming internal call
B calls A from the physical phone: ringing shows B's name and office-phone icon + extension; tooltip "Physical phone: "
Same from Web phone (headset icon, "Web phone: "), NethLink (desktop icon, "Desktop phone: ") and mobile app (mobile icon, "Mobile app: ")
A answers: device icon stays, extension is replaced by the timer, ellipsis appears next to the timer
Test Case 2 - Outgoing internal call
A calls B while all B devices ring: name + extension, no device icon
B answers from each device in turn: the icon of the device that actually answered appears together with the timer and the ellipsis
Test Case 3 - Outgoing call to a phonebook contact
Ringing shows the contact name and the number
In progress shows name / timer + ellipsis, no device icon, generic user avatar
Test Case 4 - Outgoing call to an unknown number
Ringing shows number / "Calling..."
In progress shows number / timer, no ellipsis
Test Case 5 - Incoming external call
Phonebook contact calling: name / number while ringing, name / timer + ellipsis in progress
Unknown number calling: number / "Incoming call" while ringing, number / timer without ellipsis in progress
Number stored with a different formatting (e.g. spaces) is still resolved to the contact name
Test Case 6 - Incoming queue call
Known caller ringing: queue badge + name + number (unchanged)
Known caller in progress: name + queue icon / timer + ellipsis
Unknown caller ringing: queue badge + number only, same island height as a normal ringing call
Unknown caller in progress: number + queue icon / timer, no ellipsis
Test Case 7 - Number popover
Click on the ellipsis opens the popover below with the number and the copy icon
Click on copy copies the number, the icon becomes a check for ~2 seconds and the popover stays open
Popover closes on click outside, Esc and a second click on the ellipsis
Dragging from the popover or the ellipsis does not move the island
Hanging up with the popover open or within 2 seconds from copy gives no console errors
Copy works in NethLink and in the standalone widget served over http
Test Case 8 - Avatar
Operator with picture shows the picture
Operator without picture and external numbers show the generic user icon (no directional arrows), also in the collapsed island
Test Case 9 - Physical phone as default device
B (Web phone) calls A, A answers from the physical phone: B's headset icon + own phone label + ellipsis, no overlapping text
Test Case 10 - Transfer and call switch
After a transfer the device icon of the previous counterpart is not kept
Transfer to an operator: the icon matches the device that answered
Switching between two calls keeps icon and popover number aligned with the active call
Test Case 11 - Phonebook lookup safety
Calling a short service number (e.g. queue 401) never shows a phonebook contact whose number only ends with the same digits
User without phonebook permission still sees the number, no errors
Test Case 12 - Regressions
Collapsed island, listen/intrude, video call, video streaming, recording indicator and audio bars unchanged
Host events (phone-island-call-*, open URL on ringing) unchanged
Activity
AmaLuci commentedon Aug 21, 2026
Testing notes on current behavior
Tested internal calls (between two PBX extensions) and external calls (mobile number, saved contact).
Internal calls
External calls
Proposed direction
Device type
Phone number visibility
Mockups ready in Figma here
andrea-marchionni commentedon Aug 31, 2026
Ok for me
tonyco97 commentedon Oct 15, 2026
Test
PR: nethesis/phone-island#292
Setup: user A (web phone as default device), operator B with physical phone, Web phone, NethLink and mobile app, operator C with a profile picture, a phonebook contact visible to A, an external number not in the phonebook, a queue. Repeat in light and dark theme, IT and EN.
Test Case 1 - Incoming internal call
Test Case 2 - Outgoing internal call
Test Case 3 - Outgoing call to a phonebook contact
Test Case 4 - Outgoing call to an unknown number
Test Case 5 - Incoming external call
Test Case 6 - Incoming queue call
Test Case 7 - Number popover
Test Case 8 - Avatar
Test Case 9 - Physical phone as default device
Test Case 10 - Transfer and call switch
Test Case 11 - Phonebook lookup safety
Test Case 12 - Regressions
phone-island-call-*, open URL on ringing) unchangedtonyco97 commentedon Oct 22, 2026
Testing image:
Install command: