Page tree
Skip to end of metadata
Go to start of metadata

Overview

This section describes the eZuce uniteme and reachme 16.04 software release, including:

  • Software Enhancements
  • Application, Hardware, and Documentation Requirements
  • Installation & Upgrade Instructions
  • One attachment (PDF file) containing Fixes for internally-reported issues and for customer-reported issues

Software Enhancements

eZuce is pleased to announce the Beta Release of uniteme and reachme 16.04.

We continue to refine and update the current generation of uniteme and reachme with release 16.04. This release has combined 77 enhancements or fixes for the two products.

We’re excited that we’re starting to see more contributions from the sipXcom open source community. These contributions include:

  • Several Polycom and Yealink plugin updates

  • A command line installable dashboard (http://wiki.sipxcom.org/display/sipXcom/Dashboard)

  • Updates to Portuguese language pack

  • Admin Portal button to empty uploaded CSV phonebook entries

  • Call Detail Records fix

Highlights

uniteme New Features:

    • Several UniteWeb (new user portal) enhancements and fixes

    • sipXdashboard installable from command line (Community Contribution)

    • Send phone profiles with REST API

    • Control user MoH from API

    • Added a new voicemail backup script to archive voicemail for a specific user to disk or FTP

    • View Call Detail for a specific Time Zone

uniteme Improvements:

    • Make new user Welcome emails disableable

    • Yealink plugin updates

    • Polycom phone configuration updates

    • Empty phonebook button added

    • Search in Admin Portal now includes Fax Extension and Fax DID

reachme New Features:

    • Enable / Disable Backup of Recordings

    • Allow archiving of Reach Recordings to a specific location

      • Moves recordings out of MongoDB

      • Allows archived recordings to still be accessed from Portal

      • Removes recordings from archives after configurable number of days

    • Configurable Auto Release of Reach Agent after X unanswered calls

    • Added a new Recipe criteria for checking the current skills on a call with a list of skills selected in a recipe step

reachme Improvements:

    • Configurable call segment chunk processing to better control load on server

    • Stats processing only when agents are logged in

    • Cleaned up temporary storage of recordings and queue voicemail recordings

Important Notes

None.

Software Release History

We're currently running on a bi-monthly release cycle.

  • April release for 2015 is 15.04
  • May release for 2015 is 15.05
  • June release for 2015 is 15.06
  • August release for 2015 is 15.08
  • October release for 2015 is 15.10
  • December release for 2015 is 15.12
  • February release for 2016 is 16.02
  • April release for 2016 is 16.04

Release Level History

  • 14.04   - April 30, 2014
  • 14.04.1 - June 01, 2014
  • 14.04.2 - July 11, 2014
  • 14.04.3 - October 24, 2014
  • 14.10 - February 5, 2015
  • 15.04 - April 29, 2015
  • 15.05 - May 27, 2015
  • 15.06 - June 30, 2015
  • 15.08 - August 31, 2015
  • 15.10.1 - December 9, 2015
  • 15.12 - January 6, 2015
  • 16.02 - March 14, 2016
  • 16.04 - May 31, 2016

System Requirements

For a reasonably performing system we recommend the following configuration.

Minimum hardware requirements

  • Pentium 4 or Xeon processor @ 2.0 GHz Core 64bit or higher
  • Minimum 4 GB of RAM with sufficient swap space
  • 80 GB disk (75 users depending on usage patterns)

Notes:

  • uniteme supports an unlimited number of voice-mail boxes,the total number of hours of recorded messages is determined by the size of the hard-disk. As a rule, for every minute of recorded messages you will need 1 MB of disk space (About 3 hours per 10 GB of disk space).
  • reachme requires more memory, processor and disk space. Please consult with eZuce SA team for your specific installation.

Operating System

CentOS/RHEL 6 x86_64 with latest updates is required.

Devices

Phones

  • Polycom VVX Devices with firmware 5.2.5 (split) are recommended for new installations
  • Polycom SoundPoint IP Devices should run firmware 4.0.7 (split)

Gateways

  • AudioCodes Gateways are recommended for PSTN connectivity

SBCs

  • Frafos, Sangoma, AudioCodes, Acme Packet and Ingate SBC's are recommended for SIP Trunking and Remote Worker connectivity (commonly referred to as sipXbridge and MediaRelay services respectively).
  • NOTE: The eZuce uniteme - "Use built-in SIP Trunk SBC" found in Gateway Details for use with Trunking or Remote Worker solutions should be used only for lab purposes. The openUC "Built-In SIP Trunk SBC" (sipXbridge) will not be supported in any production or live environment. Additionally sipXbridge does not work in a HA environment.

Documentation

Technical Reference Manuals, User Guides, Reach Reference Manuals, and other technical and user information can be found under the following link: Documentation Page

Installation and Upgrade Notes

Installation note

After uniteme 16.04 is downloaded and installed,the clusterId read tag is unique (same as locationId). Follow these steps to propagate the new read tags to the MongoDB replica set:

  1. In the uniteme menu, click System>Database.
  2. Click the Add query metadata button.
  3. To verify that the MongoDB replica contains the unique read tags, run in the command line:
//mongo
rs.config();//

Special MongoDB note

Please be aware of this Mongodb requirementshttp://docs.mongodb.org/manual/reference/ulimit/“Note: Both the “hard” and the “soft” ulimit affect MongoDB’s performance. The “hard” ulimit refers to the maximum number of processes that a user can have active at any time. This is the ceiling: no non-root process can increase the “hard” ulimit. In contrast, the “soft” ulimit is the limit that is actually enforced for a session or process, but any process can increase it up to “hard” ulimit maximum.Every deployment may have unique requirements and settings; however, the following thresholds and settings are particularly important for mongod and mongos deployments:

ulimit –a
-f (file size): unlimited
-t (cpu time): unlimited
-v (virtual memory): unlimited
-n (open files): 64000
-m (memory size): unlimited
-u (processes/threads): 32000

Always remember to restart your mongod and mongos instances after changing the ulimit settings to make sure that the settings change takes effect.If you limit virtual or resident memory size on a system running MongoDB the operating system will refuse to honor additional allocation requests. After every install/upgrade please check that "cat /proc/$pid_of_mongo/limits" have the recommended value of 655350. To make this value permanent you need to create this file /etc/security/limits.d/99-mongodb-nproc.conf and add the following lines:

mongodb soft nproc 64000
mongodb hard nproc 64000
mongodb soft nofile 64000
mongodb hard nofile 64000

Special Patch Note

If you have a patch installed to your system a new patch may be required. Please contact sa@ezuce.com if think you may have a patch applied as that may be replaced during the update.

Installing from ISO image

Download uniteme ISO

Download the ISO image corresponding to your hardware and write the image to a DVD.

Install uniteme

  • Boot from the DVD created with the uniteme ISO image.
  • Press Enter at the boot screen below to begin the uniteme installation.
  • Select Manual Configuration under Enable IPv4 support and select OK.
  • Set a static IPv4 address with the corresponding networking information and click OK.
  • In certain situations an warning of the use of indicated storage devices will be displayed.
  • Select the language to be used during the installation.
  • Select the keyboard layout to be used.
  • Select the timezone to be used.
  • Set a root password.
  • Login to the system as root with the password you provided earlier and continue on to the Configure of uniteme.

Installing from Repository

uniteme can be installed using the following procedure

  • Download and install CentOS 6.x minimal ISO
  • Run the following command:
yum update && reboot
  • Run the following commands to retrieve and run the eZuce uniteme installer:
curl https://download.ezuce.com/openuc-setup > /usr/bin/openuc-setup
chmod +x /usr/bin/openuc-setup
openuc-setup

This utility will guide you through the process of installing uniteme from the eZuce software repository.

Upgrade from previous versions

Modify the repo file in /etc/yum.repos.d and replace the baseurl= with the location of the repository you'd like to upgrade to.

Identify any existing 'rpmnew' or 'rpmsave' files on the system with:

find / -print | egrep "rpmnew$|rpmsave$"

As root, execute the following commands:

yum clean all
yum update

Note any additional 'rpmnew' or 'rpmsave' files that may have been created by running find command again:

find / -print | egrep "rpmnew$|rpmsave$"

If there are any files that didn't get overwritten by yum, please see 'Modified Files Upgrade Note' information below.

A system reboot after the update has completed is recommended.

SEC Service Upgrade Note

When upgrading uniteme from openUC 4.6 Update 11 or 14.4.3 to 15.06 follow these steps to ensure the SEC service is correctly running:

  • 1. Upgrade from 4.6 Update 11 or 14.4.3 to 15.06.
  • 2. After the upgrade is complete, perform the usual restart.
  • 3. Once possible, connect via CLI and monitor processes using top. Notice that the SEC process is using a lot of CPU memory.
  • 4. Perform another restart OR restart only the Sipxlogwatcher service.

Modified Files Upgrade Note

If you have manually modified any system related files or some files are not as yum would expect them to be, the yum update process may not overwrite them. It will instead create 'rpmnew' or 'rpmsave' files and not overwrite the files. The adminsitrator may have previously modified the files knowingly or as part of a patch supplied by TAC.

To check your upgrade.log and search for *.rpmnew *.rpmsave on your system check the upgrade log:

You will be responsible for merging any changes from the old file to the new or contacting Technical Support if you require assistance.

Support Tips and Contact Information

Please see the Getting Support section for support tips and support contact information.

Enhancements, Fixes and Known Issues

 JIRA nameRN ContentEnhancement/Fix/Known IssueKey words
SIPX-133Add Forward and Delete option for Unified Messaging to Unite User PortalIn User's Unified Messaging settings, add option to enable Forward and Delete voicemail from inbox after sent.EnhancementUniteWeb
SIPX-214REST: MoHEnhancement to allow user control of MoH through REST calls.
Required for UW-133.
EnhancementAPI
SIPX-330Managing custom users in phonebooksThis enhancement is to add an "Empty phone book" button to phonebook page.

Administrator can then update the phonebook by 1st downloading as a CSV file, 2nd update the CSV with a text editor, 3rd empty the phonebook in the Admin portal, 4ft import the new CSV file.
EnhancementConfig
SIPX-397Polycom SPIP 4.0.8 & Later firmwareEnhancement because Polycom added some new parameters to firmware 4.0.8 and later firmware for the SoundPoint IP phones.

One in particular causes the phone to close TCP socket connections which can break remote phone operation.

Add the following new parameter and ensure phone is configured with the value set as 1.

tcpIpApp.keepalive.tcp.sip.persistentConnection.enable 0 or 1 (0 = default)
If 0, the TCP Socket connection is closed after 1 minute. When the phone sends a new SIP message, a new connection is opened.
If 1, the TCP Socket connection remains open indefinitely.

Large installations may want to be able to set the value to 0 to keep TCP socket connections lower.
EnhancementPolycom
SIPX-440REST API improvementAbility to send profiles to the phones via Rest apiEnhancementAPI
SIPX-451Create sipXdashboardCommunity contribution of sipXdashboard was added to project.

Create sipXdashboard and make it installable. Added firewall rule for port.

Use is documented here: http://wiki.sipxcom.org/display/sipXcom/Dashboard
EnhancementDashboard
SIPX-454Increase number of processes allowed for sipx userThe sipx user sometimes requires more processes. This enhancement increases number of processes allowed as seen below.

Workaround:
Edit /etc/security/limits.d/97-sipx-nproc.conf and add in nprocs for the sipx user

sipx soft nofile 4096
sipx hard nofile 10240
sipx soft nproc 4096
sipx hard nproc 10240

.. after saving please make this file immutable :

chattr +i /etc/security/limits.d/97-sipx-nproc.conf
EnhancementConfig
SIPX-460Yealink Config Protection Parameter and Phone BackgroundAdded an option to store personal config of Yealink Phones

- Proctect Mode to store custom config inside the phone
- Sync Mode to store on TFTP in <mac>-local.cfg file (with write access) and reload the local.cfg after factory reset

Config String to preselect and uploaded Background (depends on uploaded Wallpaper files)

Tested with 16.04 on T48G with FW 8x

Feature avaiable since Version 7. Full description inside Yealink Autoprovision Guide
EnhancementYealink
SIPX-462Yealink PIN Lock and Volume SettingsCorrection of PIN Mode for Yealink T2x, T4x Series

Behaviour is different between series and inside 4x Series.

Handling described in
Yealink_SIP-T2_Series_T4_Series_IP_Phones_Auto_Provisioning_Guide_V73_40.pdf
Yealink_SIP-T2 Series_T19(P) E2_T4 Series_IP_Phones_Auto_Provisioning_Guide_V80_60.pdf

Insert Volume Settings and fixed description for Version 8x (out commented to don't overwrite personal phone settings, will be now possible with custom protect mode)

Tested with 16.04 and T46G and T48G
EnhancementYealink
SIPX-463Yealink Remote ControlEnhancement to add some additional Yealink features:
Remote Control Enable Parameter (not documentated in Auto Provisioning Guide)
Parameter is feature.action_uri.enable (from Admin Guide)
Needed to perform Action URIs

Allow SIP Trust Server only for FW 8x
Parameter is sip.trust_ctrl
Could maybe have an affect on HA behaviour so this is deactivated by default like from Yealink designed

Tested with T46G, T48G and T49G
EnhancementYealink
SIPX-466Polycom Site configration line-dialplan and forwardingThe Line Dialplan will not be configured.

Issue is created by a definition of "lines" inside the site cfg. "lines" will mean Line Count in this case and not as in other cfg files the phone lines.

Renamed this to linesCount and add the lines as in every other config file

During this change the option to enable the local forwarding menu under Line > Call Handling (default disabled)
EnhancementPolycom
SIPX-478Add Portuguese lang packCommunity provided enhancement to Portuguese lang packEnhancementConfig
UC-1386Configurable Auto ReleaseAdded an enhancement to allow for a configurable number of non answered calls before an agent is set to released.

Currently the system will attempt to ring an agent end point, and if it fails or is unanswered only once, automatically place that agent end point into released. This should be increased as there are times where a ring attempt will fail due to network glitch or other reasons.

The feature request proposes the use of a configurable "max no answer before unavailable" value.

The new field will be labeled as: "max no answer before unavaiable"

The new field will have a description as follows:
maximum consecutive unanswered calls to a single agent for any reason before that agent is placed in the release state.

Admin UI will allow the admin to enter an positive integer value into a new field on the agent group form. This value will default to 3.

Reach will adhere to this value when attempting to ring an agent. Specifically, it will set the agent state to "released" and no longer offer calls to that agent if this threshold is hit.

Example: ring fails before unavail = 3

If the agent endpoint fails 3 consecutive times, it is placed into the "release" state.

The supervisor UI should show that status change as such and a stats event will be triggered to show the state change for that agent such that reports generated would show the time spent in this state as an example.

The agent's interface should act the same as it does today when automatically placing the agent into the release state.

A special value of 0 would be allowed. If the admin sets this new config parameter to 0, the agent is to never be automatically logged off.

This new agent group setting should NOT be considered for agent's logged in via the dial string method. For those agents, the setting under the agent dial string configuration page is to be used. ------->> Auto release applies to agents logged in via dialing strings as well <<-------
EnhancementReachme
UC-2056Fax ext/DID does not appear in searchEnhancement to have FAX ext and DID appear when a search is performed. Without this it makes it hard to account for those numbers.EnhancementConfig
UC-2990Make 'Welcome' email disableableEnhancement to be able to disable 'Welcome' email when new accounts are created. A welcome email is sent by openUC that contains, among other things, a users openUC password. While this can be surpressed by checking the "notify" box, there doesn't seem to be a way to surpress this via a SOAP call, which some customers may use to create accounts. Additionally in the case where customers are using LDAP authentication exclusively, these emails contain incorrect information. Customer would like to surpress them completely, so they are never sent.

Added "Send Welcome email" checkbox in System / Admin Settings.

New user welcome email is customizable too: http://wiki.sipxcom.org/display/unite/New+User+Notifications
EnhancementConfig
UC-3037Reach Recipe Add - Skill CriteriaEnhancement to add a recipe criteria for checking the current skills on a call with a list of skills selected in a recipe step.

To use this new criteria from within a the recipe, the admin will select the criteria of "skill" and select one or more skills that is built in the system from a drop down box, then select the associated action to take. The comparison of =, >, < will be populated with the following values instead:
'are'
'contains any'
'contains all'
'does not contain any'
'does not contain all'

All actions should be available if the criteria is true.

Reach will adhere to the new recipe step, checking to see if the skill(s) in question exists on the call that the recipe steps are being checked on. If it does, the associated action will be taken.

The criteria of "skills" "are" <selected skills in skills list> is true if the skills selected are exactly the same as the skills on the call.

The criteria of "skills" "contains any" <selected skills in skills list> is true if ANY of the skills selected are a part of the skill list on the call.

The criteria of "skills" "contains all" <selected skills in skills list> is true only if ALL of the selected skills are a part of the skill list on the call. It is still true if all of the selected skills are on the call and there are also additional skills on the call.

The criteria of "skills" "does not contain any" <selected skills in skills list> is true only if NONE of the selected skills are on the call.

The criteria of "skills" "does not contain all" <selected skills in skills list> is true only if the entire list of skills selected does not exist on the call. If some of the skills selected are not on the call but others are on the call, this criteria is false.
EnhancementReachme
UC-3229Make custom IVR dialable by AAAdded an enhancement to allow a properly defined extension/DID on an IVR to be dialable from a system AA, given digit length and range are correct on the AA.EnhancementConfig
UC-3337On an idle server with Reach enabled, Mongo packets represent the biggest portion of trafficAdded an enhancement to make sure that rstats snapshots are refreshed only if there are agents logged in.EnhancementReachme
UC-3715Show Reach Agent record in search results for the admin UIEnhancement such that if you search for an extension (user), or a user alias in the search box at the top right of the OpenUC admin UI only the user record is returned for a match. If that user is also a Reach agent, the search should result in providing a link to the reach user record as well.EnhancementConfig
UC-3716Show Reach lines as result of search from the OpenUC admin UIEnhancement to also return Reach lines when using the Admin Portal search feature. Reach lines that match the search pattern were returned in the results. Have the search pattern checked against the reach lines, both the "name" and "line extension" fields.EnhancementConfig
UC-3769Include voicemail backup script in openUC installAdded a new VMDB script in rpm install

This script is used to move voicemails from mongodb to a path chosed by user or an ftp server or to delete files using mongofiles utility.
Usage through CLI command : openuc-vm-mongo2file.
Options available:

1. If you want to save your voice-mails to a local path press 1
2. If you want to save them to an FTP server press 2, ftp user must have write permissions in home directory.
EnhancementConfig
UC-3842Allow Reach Call Recordings to be ArchivedThe purpose of this feature request is to allow an administrator to define a network location to archive reach call recordings to long term storage.

Base assumptions are:
the archive location must be accessible via UniteMe (e.g. via a mapped network drive).
that network location folder/drive allows access from a permissions perspective to the sipx user on UniteMe linix subsystem.
Backups of call recording files would be the responsibility of the administrator exclusively. So, if there is a need to create copies of this call recording files the admin must do that via a method of his/her choice.

Development work required:
Piece1
Add config parameters in the admin UI under the client page, Call Recording subsection.
Piece2
update the cron that currently removes call recording metadata and mp3's to "copy" and or remove the files to/from the network path as defined by the config parameters
Piece3
Add an alarm that would say "call recordings could not be copied or deleted" for cases where there was some trouble in doing that (e.g. network location didn't exist or permissions issue or something)

CURRENT CONFIG PARAMETERS
Record Calls
Days to Retain Recordings

As part of this request, we will need to rename 'Days to Retain Recordings' to 'Days to Retain Recordings Locally'.

3 NEW CONFIG PARAMETERS
Parameter #1
"archive call recordings"
If the option is left blank, there would be no change to the current functionality where call recordings are kept for X days and then deleted via a cron job.
If set, this option would be used as a location to copy the call recording files to. So, if a value is provided in this config parameter, the following will be true.
Rather than purely deleting the call recordings and metadata that are older than the amount of days identified to keep recordings a copy of the call recording file will be made first.
If the call recording file is successfully copied to the network location then the metadata and call recording file can be deleted.
If the call recording file cannot successfully be copied to the network location, the metadata and call recording file will be left in mongo and an alarm will be raised in the admin UI. This alarm will contain the following text. "ReachMe call recordings could not be copied to <network location configured>. Recordings were not removed from MongoDB. You should immediately correct this issue so that Mongo storage is not negatively affected by ReachMe call recording capacity requirements."

Parameter #2
'Days to Retain Recordings in Archive'
If This value will be a number of days to retain the recordings in the archive. This value will be used to determine when to remove the archived files AND the associated meta data for a call recording. This should default to 180 so that by default the archived files would be checked each day for any recordings/meta data that are older than 180 days. In this case, if recordings/meta data older than 180 days exist, it will be permanently deleted.

Parameter #3
'Archival Time'
This new parameter will identify at what time (system time) the cron job should run that will either archive recordings or remove recordings/meta data based upon the other config parameters. Example: if this value is set to 1:35am, the cron would run at 1:35 in the morning.

END RESULT AFTER THESE ENHANCEMENTS
Overall These changes will allow the administrator to setup the following sort of configuration.
Record Calls Y/N
If recording is on, the admin can assign how long to keep the recordings and associated meta data in the local mongo DB. These recordings would be searchable and retrievable from the Reach call recording widget.
Also, if recordings have been made in the past, the admin will now be able to identify when to effectively "move" the recordings from mongo to a network address (e.g. SAN location mapped via a network drive location). The admin would set the 'Days to Retain Recordings Locally' to identify when to move them to the archive.
In addition, the admin will be able to identify when to run the job that moves files via setting the 'Archival Time' parameter.
Lastly, the admin will be able to identify when to permanently remove the recordings and associated meta data via setting the 'Days to Retain Recordings in Archive'.
EnhancementReachme
UC-3853Feature request for Polycom RealPresence Trio templateCustomer request to add web ui management for Polycom AV units. Specifically for RealPresence Trio.
http://www.polycom.com/voice-conferencing-solutions/conference-phones/realpresence-trio.html

RealPresence Trio utilizes VVX firmware. This should be not much different from a VVX 500 (camera is an option).

Phone name is: RealPresence Trio
EnhancementPolycom
UC-3861Remove reach recordings from file systemCurrently reach recordings are stored both on the file system and in mongo. We need to ensure that the file makes it to mongo so that we have a good copy and then NOT write it to the file system.

Make a daily cron job to clean up temporarily stored recording files. Decided on this approach to offload Reach from doing it and in case some Admin wanted to change the retention or move the files somewhere else.
EnhancementReachme
UC-3897CDR Reports must be able to be reported by time zoneAdd an enhancement to allow CDR Reports and Downloads to have time reported by a particular time zone.

In Diagnostics -> Call Detail -> Historic and Diagnostics -> Call Detail -> Reports be able to select (and remember) a Time Zone to display call records in.

Download of CSV must also be in selected time zone.
EnhancementCDR
UC-3899In System -> Backup be able to Enable / Disable Recordings BackupAdded an enhancement to be able to Enable and Disable Reach Recordings Backup and Restore just as with Voicemail.EnhancementReachme
UC-3956Optionally allow users to subscribe to their own presenceA customer has built a 3pcc application that requires that a user be able to subscribe to their own presence.

Add an option in the Admin Settings configuration page to allow subscription to user's own extension.

This is disabled by default in the Admin GUI.
EnhancementConfig
UC-3975Configurable chunk size in call segment facts scriptAdjust call segment facts professing script to process in a configurable number of chunks. Call segment facts script processed events corresponding to terminated calls in chunks of 100 for each run. There are a total of 10 - 25 events per call, this lead to ~2500 events processed at once.

Added a new configuration under OpenUC Reach - Settings where users can specify the chunk size of calls to be processed at once be the call segment facts script.

The new configuration parameter would be used by the cron job that runs the script each 5 minutes:

node path/to/call_segment_facts/script -c [--chunk_size] chunk_size
EnhancementReachme
UW-133Enable MoH configuration at user levelAdded the ability in Unite Web Portal for the User to be able to configure their MoH if the following permissions enabled at superadmin level:

Configure Music on Hold (Default: checked)
Configure Group Music on Hold (Default: unchecked)

At user level, MoH can be configured on the old style user portal, but not on the new UniteWeb portal.
EnhancementUniteWeb
SIPX-102sipXexample plugin doesn't show border's titleFixed an issue where sipXexample plugin doesn't show the border's title due to a wrong superclass of the page.
Solution: don't use BasePage from tapestry but use SixpBasePage from sipx components
FixConfig
SIPX-132When using DID aliases, the registrar signs the 302 contact with the identity of the alias instead of the real user account resulting to authentication failure in the proxyFixed an issue with the proxy that was causing 407 errors when using DIDs and Aliases.

Below is the issue log detail

Contact: \"John Doe\"<sip:7826@sipxcom.domain;sipXecs-CallDest=AL?X-sipX-Authidentity=%3Csip%3A8126837826%40sipxcom.domain%3Bsignature%3D554A6344%253A0d1618ec31ce83d050666d7829110f64%3E&ROUTE=%3Csip%3Asipxcom.domain%3Blr%3E>\r

The auth identity should have been sipX-authidentity=%3Csip%7826%40sipxcom.domain to signify to the proxy that 7826 account is responsible for authenticating this call and not 8126837826.

There is another overlapping bug identified here. See the following proxy logs:

"2015-05-06T18:53:56.240093Z":42417:ODBC:INFO:uc2.sipxcom.domain::7f166fca5700:sipxproxy:"EntityDB::findByIdentity - Unable to find entity record for 8126837826@sipxcom.domainfrom namespace imdb.entity"
"2015-05-06T18:53:56.240116Z":42418:AUTH:WARNING:uc2.sipxcom.domain::7f166fca5700:sipxproxy:"EnforceAuthRules[400_authrules]::authorizeAndModify call '14ef1198-6ec4-1233-f4a8-005056b02b56' requires ''"
"2015-05-06T18:53:56.240135Z":42419:AUTH:DEBUG:uc2.sipxcom.domain::7f166fca5700:sipxproxy:"SipProxy::proxyMessage plugin 400_authrules returned DENY for 14ef1198-6ec4-1233-f4a8-005056b02b56"

1. Proxy was unable to find account for 8126837826@sipxcom.domain
2. Authentication was denied because call required ""
FixProxy
SIPX-155Some log files not included in logrotateFixed an issue where the following log files were not included in /etc/logrotate.d/sipx :

run_erl.log
sipxsecurity.log
snmp-fix-process-cron.log
FixConfig
SIPX-182Multiple prefixes are not working under dialplanFix help text on dial plan page to reflect the fact that ranges can not be specified.FixConfig
SIPX-220Polycom Group configuration loses firmwareFixed phone group firmware to not automatically change firmware when updated occur at phone level or if we change group position
only if we manually change firmware at group level will forward the change to contained phones given group weight

Phone Groups have now their own firmware setting and do not inherit phone members firmware
the firmware is dependant on phone model saved in setting_value in the following form:
group.version/firmware.version/ + modelId

Example: group.version/firmware.version/polycomVVX500
Changing group firmware will change phone members firmware given group weight
Changing phone firmware at phone level will be effective no matter on what group the phone is part of
moving groups up and down will not modify phone firmware.
FixConfig
SIPX-24715.06 restart media server causes error, freeswitch only restarts with send server profilesNot all voicemail changes are restarting FS. Running restart FS from web UI returns error even if FS correctly restarted. Fixed the UI to report success.FixConfig
SIPX-308Voicemail progress not showing in playerFixed an issue in UniteWeb that caused the voicemail position indicator to not move as the message was played.

Mac OS/X 10.10
Chrome 38.0.2125.122
FixUniteWeb
SIPX-390Authorization codes not working with location based gatewaysFixed an issue with Locations that caused Authorization codes to no longer function when upgrading a 15.08 production site to 15.10. SipXcom responds with 404 Not Found after the INVITE.

There are two locations, with gateways reserved for each location.

Workaround was to check shared flag in one of the gateways configuration page, authorization codes work again.

Note: If Locations feature is used and Authorization codes are to be used, Auth Codes must have Location specified.
FixConfig
SIPX-394Inbound calls from ITSP FailFixed an issue with IVR not accepting inbound calls. This was caused by the log4j library. We've updated the log4j library in the system to resolve this problem.

SipXcom was responding with 480 Temporarily Unavailable on inbound calls. This affects 15.10 as well as 15.08.

Workaround was to put IVR in debug.
FixConfig
SIPX-425Instruct call controller to terminate call when is received 183 Session ProgressFixed an issue where if Click To Dial feature via openuc REST-API the calls which are initiated by this API often apear stale inside of SSS until SSS is manually restarted.

This was a third case when call controller will end the original INVITE (Subscription terminated NOTIFY, 180 Ringing - already implemented - and now 183 Session Progress)
FixAPI
SIPX-429Docker build for set of projects with dependenciesFixed an issue that didn't allow for multiple projects to be completed at the same time.

Issues with build_docker_rpm.sh when trying to the following case:

1. I have code changes for some bug in library (sipXcommserverLib) and 2 projects (sipXproxy and sipXregistry).
2. projects has that lib as dependency, so it should be compiled only after library build.

Using current build_docker_rpm.sh it is not possible to build more than one component by one run and by one container. (--rm flag in docker call clears container every time).

For the ability to not clear container you could edit build_docker_rpm.sh in sources and remove --rm flag.
FixDocker
SIPX-436SIPXCDR: ERROR: duplicate key violates unique constraint \"cdrs_call_id_unique\"" errorFixed an issue that lead to errors regarding duplicate call ID's. This was caused by certain records not being removed from memory. Eventually this would lead to crashing of the callresolver.

SIPXCDR: ERROR: duplicate key violates unique constraint \"cdrs_call_id_unique\"" error seen in call resolver logs.

This appears in case of forked calls where there are multiple CSEs in REQUEST state and multiple CSEs in END state. CDR is computed for the first call and then call id marked as retired so further CDRs with same call id are ignored. Retired call ids are kept in memory and cleared out so there's a good chance retired id not to be present when 2nd CDR processed. Solution would be to prevent insertion (in case we can say for sure first CDR computed is the answered call) or update existing one
FixCDR
SIPX-438REST API bug when trying to delete second lineFixed an issue with REST API used to delete lines from phones. The API would delete the first line when the second line was specified.FixAPI
SIPX-458Yealink Firmware T49G has wrong NameFix for firmware for Yealink T49G is configured as T49.rom
Upload renames this to VP49.rom

Fix is tested with current Version of 16.04 and commited in PR
FixYealink
SIPX-464Yealink T49G missing configFixed an issue that caused the Yealink T49G to only hav half the count of settings that it should have.

All Regex matches looks for yealinkPhoneSIPT49G
BeanID is yealinkPhoneVP49G

Change BeanID to "yealinkPhoneSIPT49G" solves this issue.
FixYealink
SIPX-477Polycom does not show Custom Caller IDFixed an issue with Custom CallerID plugin and Polycom phones. External Number is entered in Custom CallerID PlugIn with Displayname

Polycom Phone shows "Unknown" as Display Text.

This occures because the Polycom uses the following header order to get the name:
P-Asserted-Identity, Remote-Party-ID, From

Custom CallerID only changes the From Header.

Polycom Config allows to change the order of headers

Paramter (from Polycom UC Admin Guide v3/v4/v5):
voIpProt.SIP.CID.sourcePreference

Description:
Source of caller ID information.
If Null, caller ID information comes from
“P-Asserted-Identity, Remote-Party-ID,
From”.
For example, "From,P-Asserted-Identity,
Remote-Party-ID" and
"P-Asserted-Identity,From, Remote-Party-ID"
are also valid.

Added the parameter to Polycom config plugin with Polycom default value set.

If someone use Customer CallerID he can change this to the first example to make it work
FixPolycom
SIPX-479Live Attendant not updated in Mongo properlyFixed an issue caused when a AA is defined as live AA and then disables the live AA. A new entry is added in MongoDB so registrar will look up routing information from there. When an existing live AA is disabled, MongoDB entry is removed and routing is done according to mappingrules.xml.

In this case customer previously had 1900 configured as live AA, then disabled it. However it seems that in this version the mongo entry does not get cleaned up when doing this action and leaves inconsistent entries in mongo:
{ "_id" : "AttendantRule9", "ident" : "1900@domain.org", "uid" : false, "cnt" : "sip:1900@domain.org", "locations" : [], "vld" : true, "ent" : "attendantrule", "als" : [ { "id" : "1900", "cnt" : "<sip:1600@domain.org;sipx-noroute=Voicemail?expires=50>;q=0.933;sipx-ValidTime=\"88e:a8c:e2e:102c:13ce:15cc:196e:1b6c:1f0e:210c\"", "rln" : "userforward" }, { "id" : "9673", "cnt" : "sip:1900@domain.org", "rln" : "alias" } ] }

(other ways for this bug to manifest is generating null contacts as in: "cnt" : "<sip:null@ctradu-ng.ezuce.ro;sipx-noroute=Voicemail;sipx-userforward=false?expires=0>;q=0.933",)

Workaround:
mongo
use imdb
db.entity.remove({"_id" : "AttendantRule9"})

Mind that the rule will get repopulated in Mongo when sending profiles to server
FixConfig
SIPX-484Slow queries due to instrument field not indexed in registration dbThere are bunch of slow queries in mongo logs like

Sun Mar 9 01:03:45.779 [conn33033] query node.registrar query: { $readPreference: { mode: "primaryPreferred" }, query: { instrument: "0004f245d6a5", expirationTime: { $gt: 0 } } } ntoreturn:0 ntoskip:0 nscanned:4381 keyUpdates:0 numYields: 34 locks(micros) r:40511 nreturned:1 reslen:431 583ms
Sun Mar 9 01:03:45.784 [conn33636] query node.registrar query: { $readPreference: { mode: "primaryPreferred" }, query: { instrument: "0004f23ec1d9", expirationTime: { $gt: 0 } } } ntoreturn:0 ntoskip:0 nscanned:4386 keyUpdates:0 numYields: 34 locks(micros) r:34357 nreturned:2 reslen:848 587ms

The above messages says that on the query for instrument 0004f23ec1d9 that 4386 bojext had to be searched. Indexing will fix this.

Added index for instrument field in Mongo.
FixConfig
UC-1657Attendant aliases can not be longer than 255 charsFixed attendant alias field validation to only allow up to 255 characters.FixConfig
UC-3116Reachme CDR Call Segments Missing On Transfer to a numberFixed an issue when a call is transferred to a number in the Reach UI, there is no call segment created for it.

To recreate:
Place call in a Reach queue and answer it with an agent.
Agent transfers the call to "number"
Run CDR report to see result ... no call segment for the transfer leg

My example:
Call1
Called from 3102 to line 3002
answered call with agent 2100
agent 2100 transfers call to 3102
3102 answers the call

Call2
Called from 3102 to line 3002
answered call with agent 2100
agent 2100 transfers call to 3102
3102 declines the call

The expected result would be to see 2 call segments per call (both with the same call ID so that they could be related). One for the connection from the original caller to the agent and a 2nd for the transferred call (and whether or not that transfer was answered).

However, the CDR shows the first call leg and shows that it is NOT the last call segment. However, there is no second call segment in the CDR.

A screen shot of the CDR report is attached.
A snapshot of the system is attached.
FixReachme
UC-3135Voicemail via Email - Wrong PortalFixed an issue with the new user portal such that when clicking the voicemail list button from within an email body while logged into openUC in the same browser session, the user is presented with the old unit portal instead of the default portal. The link in the email is below. This particular link is included in the "Full" email message from openUC.

Here is the url: https://server.domain.org/service/home/~/?auth=co&id=128743&part=1.3
FixUniteWeb
UC-3189Reach recordings metadata is missing when the call is transferred to a numberFixed an issue with recording metadata that was missing when a call was transferred.

Steps to reproduce:
Caller: 100
Caller ---> Line --> Queue ----> AgentOne
AgentOne transfers to 300
The call is closed either by the caller, or by 300.

Actual:
A recording is done on disk regarding this call and is closed automatically by freeswitch when the call ends.
Since there is no agent involved in ending the call, there is no metadata written in MongoDB regarding the recording on disk.
FixReachme
UC-3212Some call recordings missing when the caller ends the callFixed an issue where sometimes, when the caller ends the call, the call recordings are not saved to the database. This was primarily caused by unusual internal events that are sent to agent_channel process.

Below are snapshots of Reach logs from when this occurs:

2014-09-16 13:24:56.326 [info] <0.4559.0>@gen_media:agent_interact:3144 hangup by "caller" for "ab33138c-3d8b-11e4-9488-9b65079bb5f9" when only oncall is a pid; skipping wrapup call to agent_channel
2014-09-16 13:24:56.327 [notice] <0.4559.0>@freeswitch_media:handle_info:1062 Call hangup info, terminating "ab33138c-3d8b-11e4-9488-9b65079bb5f9"
2014-09-16 13:24:56.328 [info] <0.4565.0>@freeswitch_ring_transient:handle_event:211 Channel hangup event with cause ["NORMAL_CLEARING",undefined,undefined]; stopping with reason normal
2014-09-16 13:24:56.328 [notice] <0.4565.0>@freeswitch_ring:terminate:521 FreeSWITCH ring channel teminating normal
2014-09-16 13:24:56.330 [notice] <0.4565.0>@freeswitch_ring_transient:terminate:227 Going down: normal
2014-09-16 13:24:56.332 [info] <0.4564.0>@agent_channel:handle_endpoint_exit:1066 Exit of endpoint {ep,freeswitch_ring,<0.4565.0>} due to normal while oncall; moving <0.4559.0> to wrapup.
2014-09-16 13:24:56.342 [notice] <0.4559.0>@freeswitch_media:terminate:1121 terminating: normal "ab33138c-3d8b-11e4-9488-9b65079bb5f9"
2014-09-16 13:24:56.343 [notice] <0.638.0>@freeswitch_media_manager:handle_info:826 trapped exit of normal, doing clean up for <0.4559.0>
2014-09-16 13:24:56.343 [info] <0.4564.0>@agent_channel:handle_endpoint_exit:1080 gen_media: <0.4559.0> cannot wrapup due to {normal,{gen_fsm,sync_send_event,[<0.4559.0>,{{'$gen_media',wrapup},undefined}]}}, proceeding anyway
2014-09-16 13:24:56.393 [info] <0.646.0>@agent:handle_info:865 Re-grab calls on channel_died
2014-09-16 13:24:56.393 [info] <0.646.0>@agent:grab_call:957 requesting calls from Qs [<30944.768.0>]
2014-09-16 13:24:56.393 [info] <0.646.0>@agent:grab_call:960 created timer #Ref<0.0.18.138278> for call req of agent "1006"
2014-09-16 13:24:56.401 [info] <0.646.0>@agent:handle_event:734 request from <30944.768.0>, CallRequests is 1, CallReceived is 1
2014-09-16 13:24:56.401 [info] <0.646.0>@agent:cancel_timer:989 Timer #Ref<0.0.18.138278> cancelled
2014-09-16 13:24:56.894 [info] <0.646.0>@agent:handle_info:885 call requests timed out... ignoring other queues
FixReachme
UC-3383Progress bar from Call Recordings - Supervisor dashboard does not reflect the end of the recordingFixed an issue with call recording playback and the progress bar.

Problem description:
Progress bar from Call Recordings - Supervisor dashboard does not reflect the end of the recording.
Progress bar does not reach 100%. It stops at 80-90%.

This happens for all call recordings, no matter if the call was transferred or not.
Please see screen capture attached. (pregress_bar.fbr) Use BB FlashBack Express to play this.
FixReachme
UC-3453Firewall rules errors after restoreFixed an issue with restore and restoring firewall rules.

Steps to reproduce:
1.Create a config backup of openUC 14.10
2.Download it and restore it onto another 14.10 machine

Result: Restore is completed successfully however in sipxconfig.log we can find these errors :

"2014-12-17T10:13:32.024000Z":247:JAVA:ERR:primary.1410setup2.cristi.ezuce.ro:qtp249691566-21:00000000:FirewallManagerImpl:"Cannot find default firewall rule for address type adminApiAuth"

"2014-12-17T10:13:32.025000Z":248:JAVA:ERR:primary.1410setup2.cristi.ezuce.ro:qtp249691566-21:00000000:FirewallManagerImpl:"Cannot find default firewall rule for address type imbotRestApi"
FixConfig
UC-3454Internal exception when accessing admin role permissionFixed an issue when accessing admin role permissions for an user that had some permissions that are now no longer valid triggers an exception
Or trying to delete that user will trigger the same exception.
FixConfig
UC-3555No ring back when agent calls back the clientFixed an issue to have agents hear ring back when dialing outbound from a voicemail that was left in queue.

Steps to reproduce:
1.Client calls Line 303 where Agent 2007 is Idle
2.Client presses * to leave a VM in this queue and then leaves a VM and presses * again to finish.
3.Agent is alerted by the newly left VM
4.Agent successfully listens to this VM and then from the Dashboard clicks the Callback icon

Issue : The client is called back however the agent cannot hear ring back.
FixReachme
UC-3746SSS starts before mongo serviceFixed an issue that caused SSS to start before mongo service was ready.

This was the services starting order from a server :

[root@uc1 ~]# ls -la /etc/rc.d/rc2.d/*sss*
lrwxrwxrwx 1 root root 17 Aug 10 14:02 /etc/rc.d/rc2.d/S85sipxsss -> ../init.d/sipxsss

[root@uc1 ~]# ls -la /etc/rc.d/rc2.d/*mongo*
lrwxrwxrwx 1 root root 26 Aug 10 14:01 /etc/rc.d/rc2.d/K10mongodb-ivr-sync -> ../init.d/mongodb-ivr-sync
lrwxrwxrwx 1 root root 22 Aug 10 14:01 /etc/rc.d/rc2.d/K10mongodb-sync -> ../init.d/mongodb-sync
lrwxrwxrwx 1 root root 24 Aug 10 14:01 /etc/rc.d/rc2.d/K15mongod-arbiter -> ../init.d/mongod-arbiter
lrwxrwxrwx 1 root root 21 Aug 10 14:01 /etc/rc.d/rc2.d/K15mongo-local -> ../init.d/mongo-local
lrwxrwxrwx 1 root root 29 Aug 10 14:01 /etc/rc.d/rc2.d/K15mongo-local-arbiter -> ../init.d/mongo-local-arbiter
lrwxrwxrwx 1 root root 16 Aug 10 14:01 /etc/rc.d/rc2.d/S90mongod -> ../init.d/mongod
FixSSS
UC-3760Group Firmware Weight IncorrectFixed an issue where setting the group firmware does not follow tradition of weighted groups. Instead the group with the lightest weight has priority instead of the heaviest (i.e. the group higher in the list takes priority instead of the lower).FixConfig
UC-3783Openuc-saa service restart needed after a server rebootFixed an issue that required openuc-saa to have to be restarted after a server reboot.

Steps to replicate :
1.Configure openuc-saa on server and verify that it actually works on phones(and not just that service is enabled).
Result : there is a good chance it works
2.Reboot the server and verify that saa works again as in step 1.
Result : service is running but phones are not showing any presence updates)

Workaround : service openuc-saa restart
FixSAA
UC-3837Invalid entry in /etc/hostsFix for an invalid /etc/hosts entry is generated on 15.10 as shown on line two below .. :

[root@uc ~]# cat /etc/hosts
192.168.10.15 uc.ezuce.mattkeys.net uc
$(ips[$(host_servers).ezuce.mattkeys.net][1]) $(host_servers).ezuce.mattkeys.net $(host_servers) # sipXcom cluster
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
FixConfig
UC-3866snmptrapd.conf is missing the webui snmp community string changeFixed an issue with snmp configuration where as the snmptrapd.conf file is not being updated with changes to the snmp community string.FixConfig
UC-3895Remove temporary Reach voicemail filesFixed an issue that caused Reach voicemail recording to be stored in /tmp. When a Reach call enters the queue and is ultimately sent to in queue voice mail, the voice mail files are kept in /tmp. After the voice mail is sent to a Reach agent and they are no longer necessary, these files remain in /tmp.

This request is to have a cron job that cleans those voicemails up (suggestion is to delete them after they are older than 2 weeks).
FixReachme
UC-3896Webui rejects .agency domain as invalidFixed an issue with Admin Portal email address validation that didn't allow administrators to enter domain names with a suffix larger than 3 characters. Customer was trying to set "user@company.agency" as the primary email address in unified messaging. This returns an error " Invalid email format for null. Format isuser@hostname. ", however this is a valid address.FixConfig
UC-3904Improve voicemail cleanup procedureImproved the new voicemail cleanup procedure for deleting aged voicemails. The procedure was calling GridFS.remove(query) https://github.com/mongodb/mongo-java-driver/blob/master/driver/src/main/com/mongodb/gridfs/GridFS.java#L305 which - behind the scenes loads all voicemails in memory (hence growing the IVR mem usage) and then iterated one by one to delete them. This was changed to avoid IVR eating up all memory eventually.FixConfig
UC-3934System Timezone changes not reflected under CDR pageFixed an issue where if the Administrator changed the system timezone the changes were not reflected in the CDR page.

Steps to reproduce :
1. Under System -> Date and Time -> Time Zone select a new Timezone from the dropdown list and hit Apply.
2. Implemented changes should be reflected under Call Detail Records page for all tabs : Active, Historic, Reports timezones.
3. Actual result : Whatever timezone was previously selected will still be present.

Workaround: Log out of the system and then re-login.
FixCDR
UC-3936Reach origination string for outbound calls doesn't strip spaces, dashes and parenthesisFixed an issue in the Reach Agent portal caused by Agents entering spaces in phone numbers which would result in freeswitch trying to dial "sofia/${domain}/552675675752 @${domain}"

2016-01-20 13:39:10.984 [info] <0.25075.56>@freeswitch_outbound:originate:681 Calling: expand originate {origination_uuid=18b742c4-bfa5-11e5-b253-119dbde9f92f,bridge_early_media=true,origination_caller_id_name='1061',origination_caller_id_number='1061',hangup_after_bridge=false}sofia/${domain}/552675675752 @${domain} &park()
2016-01-20 13:39:10.994 [debug] <0.25075.56>@freeswitch_outbound:awaiting_destination:321 In call_destination state with bleg "18b742c4-bfa5-11e5-b253-119dbde9f92f"
2016-01-20 13:39:11.034 [debug] <0.23246.56>@freeswitch_media_manager:listener:959 Received event "CHANNEL_DESTROY" for "18b742c4-bfa5-11e5-b253-119dbde9f92f"
2016-01-20 13:39:11.035 [debug] <0.25075.56>@freeswitch_outbound:handle_info:447 Error received: "-ERR USER_NOT_REGISTERED\n"

that is saying FS to dial outbound "552675675752 ", which results in

18b742c4-bfa5-11e5-b253-119dbde9f92f 2016-01-20 13:39:10.978579 [NOTICE] mod_sofia.c:4726 Close Channel N/A [CS_NEW]
2016-01-20 13:39:10.978579 [NOTICE] switch_ivr_originate.c:2735 Cannot create outgoing channel of type [sofia] cause: [USER_NOT_REGISTERED]

There was a space after the dialed number. We need to account for spaces, -, ( and ).
FixReachme
UC-3938Searching for external numbers in the call history often failsFixed an issue where searching for external incoming calls in the CDR doesn't return reliable results. The calls are listed in the CDRs, but it is sometimes not possible to search for specific numbers - the search either returns the correct results, or no results at all.

The search results are consistent; when one number is entered into the search, it always appears while another number is never found even though it is also listed in the call history.
FixCDR
UC-3939IVR needs to be at DEBUG verbosity to remain stableFixed an issue caused by the log4j third party library. Running IVR in debug masked the timing issue. Updated log4j to newer release to solve problem.FixConfig
UC-3967E911 plugin breaks replicationFixed an issue caused by E911 feature that caused sipXrls to not work because credentials were missing.FixConfig
UC-3983Any setting you make on a Queue is saved even when you hit CancelFixed an issue with Reach configuration that caused any configuration change made to a queue to be saved before clicking Apply or OK.

The problem did not happen with Queue Groups.
FixReachme
UC-4008Fix the interval on the Reach Traffic Detail ReportFixed an issue with the new traffic detail report as released in 16.02. The report had a hard coded 10 second interval.

We added an input parameter of "interval" to the report. This input parameter will be the number of minutes for the interval to be used. Default the input parameter to 60 minutes and allow the user to put in the number of minutes that they would like for the interval.
FixReachme
UC-4016Bria devices are exhausting Unite Mobile LicensesFixed an issue where we were searching for the wrong string for the phone model for Unite Mobile.FixUnite Mobile
UC-4017Presence Incorrect when parking call multiple times to different park orbitsFixed an issue that caused presence of a park orbit speed dial to be incorrect it a call was parked, unparked and then parked to a different orbit.FixSSS
UC-4027Make x-sipx-retarget usage configurable for openucsaaIn a NAT'd environment when using Uniteme's media relay for NAT Traversal, openuc-saa is adding a value in the SIP header called x-sipx-retarget and Media Relay is redirecting media causing one way audio. While we work on a fix for this we are providing a new check box in Need to be able to disable this option untill we will have a final fix on UC-3790FixSAA
UW-252Safari: voicemails -> player is not loadedFixed an issue with the Unite Web Portal when running with Safari on Mac osX, the player is loaded, but it does not play the message. This is because Safari does not know how to play WAV files.

If voicemail is set to WAV and user is from Safari the option to download the WAV will be displayed.
FixUniteWeb
UW-318Internal linkingFixed an issue with email sent to users because there was no direct link to access for instance Voicemail page in user portal

Now the show message inbox link will directly jump to voicemail page in user portal.
FixUniteWeb
UW-327UniteWeb User Save does indicate it's been clickedFixed an issue such that the save button at the bottom of the any page does not "gray out" after a change has been submitted. NO indication is given to the user that a change is made. The Save Button remains visibly colorful with no indication that the change was saved.FixUniteWeb
JitsiJitsi support not installed by defaultJitsi provisioning support is not installed by default from ISO or if installing with 'yum install sipxcom'. To install login as root and run 'yum install sipxjitsi'Known IssueJitsi

Enhancements, Fixes and Known Issues by Keyword

 JIRA nameRN ContentEnhancement/Fix/Known IssueKey words
SIPX-214REST: MoHEnhancement to allow user control of MoH through REST calls.
Required for UW-133.
EnhancementAPI
SIPX-440REST API improvementAbility to send profiles to the phones via Rest apiEnhancementAPI
SIPX-425Instruct call controller to terminate call when is received 183 Session ProgressFixed an issue where if Click To Dial feature via openuc REST-API the calls which are initiated by this API often apear stale inside of SSS until SSS is manually restarted.

This was a third case when call controller will end the original INVITE (Subscription terminated NOTIFY, 180 Ringing - already implemented - and now 183 Session Progress)
FixAPI
SIPX-438REST API bug when trying to delete second lineFixed an issue with REST API used to delete lines from phones. The API would delete the first line when the second line was specified.FixAPI
UC-3897CDR Reports must be able to be reported by time zoneAdd an enhancement to allow CDR Reports and Downloads to have time reported by a particular time zone.

In Diagnostics -> Call Detail -> Historic and Diagnostics -> Call Detail -> Reports be able to select (and remember) a Time Zone to display call records in.

Download of CSV must also be in selected time zone.
EnhancementCDR
SIPX-436SIPXCDR: ERROR: duplicate key violates unique constraint \"cdrs_call_id_unique\"" errorFixed an issue that lead to errors regarding duplicate call ID's. This was caused by certain records not being removed from memory. Eventually this would lead to crashing of the callresolver.

SIPXCDR: ERROR: duplicate key violates unique constraint \"cdrs_call_id_unique\"" error seen in call resolver logs.

This appears in case of forked calls where there are multiple CSEs in REQUEST state and multiple CSEs in END state. CDR is computed for the first call and then call id marked as retired so further CDRs with same call id are ignored. Retired call ids are kept in memory and cleared out so there's a good chance retired id not to be present when 2nd CDR processed. Solution would be to prevent insertion (in case we can say for sure first CDR computed is the answered call) or update existing one
FixCDR
UC-3934System Timezone changes not reflected under CDR pageFixed an issue where if the Administrator changed the system timezone the changes were not reflected in the CDR page.

Steps to reproduce :
1. Under System -> Date and Time -> Time Zone select a new Timezone from the dropdown list and hit Apply.
2. Implemented changes should be reflected under Call Detail Records page for all tabs : Active, Historic, Reports timezones.
3. Actual result : Whatever timezone was previously selected will still be present.

Workaround: Log out of the system and then re-login.
FixCDR
UC-3938Searching for external numbers in the call history often failsFixed an issue where searching for external incoming calls in the CDR doesn't return reliable results. The calls are listed in the CDRs, but it is sometimes not possible to search for specific numbers - the search either returns the correct results, or no results at all.

The search results are consistent; when one number is entered into the search, it always appears while another number is never found even though it is also listed in the call history.
FixCDR
SIPX-330Managing custom users in phonebooksThis enhancement is to add an "Empty phone book" button to phonebook page.

Administrator can then update the phonebook by 1st downloading as a CSV file, 2nd update the CSV with a text editor, 3rd empty the phonebook in the Admin portal, 4ft import the new CSV file.
EnhancementConfig
SIPX-454Increase number of processes allowed for sipx userThe sipx user sometimes requires more processes. This enhancement increases number of processes allowed as seen below.

Workaround:
Edit /etc/security/limits.d/97-sipx-nproc.conf and add in nprocs for the sipx user

sipx soft nofile 4096
sipx hard nofile 10240
sipx soft nproc 4096
sipx hard nproc 10240

.. after saving please make this file immutable :

chattr +i /etc/security/limits.d/97-sipx-nproc.conf
EnhancementConfig
SIPX-478Add Portuguese lang packCommunity provided enhancement to Portuguese lang packEnhancementConfig
UC-2056Fax ext/DID does not appear in searchEnhancement to have FAX ext and DID appear when a search is performed. Without this it makes it hard to account for those numbers.EnhancementConfig
UC-2990Make 'Welcome' email disableableEnhancement to be able to disable 'Welcome' email when new accounts are created. A welcome email is sent by openUC that contains, among other things, a users openUC password. While this can be surpressed by checking the "notify" box, there doesn't seem to be a way to surpress this via a SOAP call, which some customers may use to create accounts. Additionally in the case where customers are using LDAP authentication exclusively, these emails contain incorrect information. Customer would like to surpress them completely, so they are never sent.

Added "Send Welcome email" checkbox in System / Admin Settings.

New user welcome email is customizable too: http://wiki.sipxcom.org/display/unite/New+User+Notifications
EnhancementConfig
UC-3229Make custom IVR dialable by AAAdded an enhancement to allow a properly defined extension/DID on an IVR to be dialable from a system AA, given digit length and range are correct on the AA.EnhancementConfig
UC-3715Show Reach Agent record in search results for the admin UIEnhancement such that if you search for an extension (user), or a user alias in the search box at the top right of the OpenUC admin UI only the user record is returned for a match. If that user is also a Reach agent, the search should result in providing a link to the reach user record as well.EnhancementConfig
UC-3716Show Reach lines as result of search from the OpenUC admin UIEnhancement to also return Reach lines when using the Admin Portal search feature. Reach lines that match the search pattern were returned in the results. Have the search pattern checked against the reach lines, both the "name" and "line extension" fields.EnhancementConfig
UC-3769Include voicemail backup script in openUC installAdded a new VMDB script in rpm install

This script is used to move voicemails from mongodb to a path chosed by user or an ftp server or to delete files using mongofiles utility.
Usage through CLI command : openuc-vm-mongo2file.
Options available:

1. If you want to save your voice-mails to a local path press 1
2. If you want to save them to an FTP server press 2, ftp user must have write permissions in home directory.
EnhancementConfig
UC-3956Optionally allow users to subscribe to their own presenceA customer has built a 3pcc application that requires that a user be able to subscribe to their own presence.

Add an option in the Admin Settings configuration page to allow subscription to user's own extension.

This is disabled by default in the Admin GUI.
EnhancementConfig
SIPX-102sipXexample plugin doesn't show border's titleFixed an issue where sipXexample plugin doesn't show the border's title due to a wrong superclass of the page.
Solution: don't use BasePage from tapestry but use SixpBasePage from sipx components
FixConfig
SIPX-155Some log files not included in logrotateFixed an issue where the following log files were not included in /etc/logrotate.d/sipx :

run_erl.log
sipxsecurity.log
snmp-fix-process-cron.log
FixConfig
SIPX-182Multiple prefixes are not working under dialplanFix help text on dial plan page to reflect the fact that ranges can not be specified.FixConfig
SIPX-220Polycom Group configuration loses firmwareFixed phone group firmware to not automatically change firmware when updated occur at phone level or if we change group position
only if we manually change firmware at group level will forward the change to contained phones given group weight

Phone Groups have now their own firmware setting and do not inherit phone members firmware
the firmware is dependant on phone model saved in setting_value in the following form:
group.version/firmware.version/ + modelId

Example: group.version/firmware.version/polycomVVX500
Changing group firmware will change phone members firmware given group weight
Changing phone firmware at phone level will be effective no matter on what group the phone is part of
moving groups up and down will not modify phone firmware.
FixConfig
SIPX-24715.06 restart media server causes error, freeswitch only restarts with send server profilesNot all voicemail changes are restarting FS. Running restart FS from web UI returns error even if FS correctly restarted. Fixed the UI to report success.FixConfig
SIPX-390Authorization codes not working with location based gatewaysFixed an issue with Locations that caused Authorization codes to no longer function when upgrading a 15.08 production site to 15.10. SipXcom responds with 404 Not Found after the INVITE.

There are two locations, with gateways reserved for each location.

Workaround was to check shared flag in one of the gateways configuration page, authorization codes work again.

Note: If Locations feature is used and Authorization codes are to be used, Auth Codes must have Location specified.
FixConfig
SIPX-394Inbound calls from ITSP FailFixed an issue with IVR not accepting inbound calls. This was caused by the log4j library. We've updated the log4j library in the system to resolve this problem.

SipXcom was responding with 480 Temporarily Unavailable on inbound calls. This affects 15.10 as well as 15.08.

Workaround was to put IVR in debug.
FixConfig
SIPX-479Live Attendant not updated in Mongo properlyFixed an issue caused when a AA is defined as live AA and then disables the live AA. A new entry is added in MongoDB so registrar will look up routing information from there. When an existing live AA is disabled, MongoDB entry is removed and routing is done according to mappingrules.xml.

In this case customer previously had 1900 configured as live AA, then disabled it. However it seems that in this version the mongo entry does not get cleaned up when doing this action and leaves inconsistent entries in mongo:
{ "_id" : "AttendantRule9", "ident" : "1900@domain.org", "uid" : false, "cnt" : "sip:1900@domain.org", "locations" : [], "vld" : true, "ent" : "attendantrule", "als" : [ { "id" : "1900", "cnt" : "<sip:1600@domain.org;sipx-noroute=Voicemail?expires=50>;q=0.933;sipx-ValidTime=\"88e:a8c:e2e:102c:13ce:15cc:196e:1b6c:1f0e:210c\"", "rln" : "userforward" }, { "id" : "9673", "cnt" : "sip:1900@domain.org", "rln" : "alias" } ] }

(other ways for this bug to manifest is generating null contacts as in: "cnt" : "<sip:null@ctradu-ng.ezuce.ro;sipx-noroute=Voicemail;sipx-userforward=false?expires=0>;q=0.933",)

Workaround:
mongo
use imdb
db.entity.remove({"_id" : "AttendantRule9"})

Mind that the rule will get repopulated in Mongo when sending profiles to server
FixConfig
SIPX-484Slow queries due to instrument field not indexed in registration dbThere are bunch of slow queries in mongo logs like

Sun Mar 9 01:03:45.779 [conn33033] query node.registrar query: { $readPreference: { mode: "primaryPreferred" }, query: { instrument: "0004f245d6a5", expirationTime: { $gt: 0 } } } ntoreturn:0 ntoskip:0 nscanned:4381 keyUpdates:0 numYields: 34 locks(micros) r:40511 nreturned:1 reslen:431 583ms
Sun Mar 9 01:03:45.784 [conn33636] query node.registrar query: { $readPreference: { mode: "primaryPreferred" }, query: { instrument: "0004f23ec1d9", expirationTime: { $gt: 0 } } } ntoreturn:0 ntoskip:0 nscanned:4386 keyUpdates:0 numYields: 34 locks(micros) r:34357 nreturned:2 reslen:848 587ms

The above messages says that on the query for instrument 0004f23ec1d9 that 4386 bojext had to be searched. Indexing will fix this.

Added index for instrument field in Mongo.
FixConfig
UC-1657Attendant aliases can not be longer than 255 charsFixed attendant alias field validation to only allow up to 255 characters.FixConfig
UC-3453Firewall rules errors after restoreFixed an issue with restore and restoring firewall rules.

Steps to reproduce:
1.Create a config backup of openUC 14.10
2.Download it and restore it onto another 14.10 machine

Result: Restore is completed successfully however in sipxconfig.log we can find these errors :

"2014-12-17T10:13:32.024000Z":247:JAVA:ERR:primary.1410setup2.cristi.ezuce.ro:qtp249691566-21:00000000:FirewallManagerImpl:"Cannot find default firewall rule for address type adminApiAuth"

"2014-12-17T10:13:32.025000Z":248:JAVA:ERR:primary.1410setup2.cristi.ezuce.ro:qtp249691566-21:00000000:FirewallManagerImpl:"Cannot find default firewall rule for address type imbotRestApi"
FixConfig
UC-3454Internal exception when accessing admin role permissionFixed an issue when accessing admin role permissions for an user that had some permissions that are now no longer valid triggers an exception
Or trying to delete that user will trigger the same exception.
FixConfig
UC-3760Group Firmware Weight IncorrectFixed an issue where setting the group firmware does not follow tradition of weighted groups. Instead the group with the lightest weight has priority instead of the heaviest (i.e. the group higher in the list takes priority instead of the lower).FixConfig
UC-3837Invalid entry in /etc/hostsFix for an invalid /etc/hosts entry is generated on 15.10 as shown on line two below .. :

[root@uc ~]# cat /etc/hosts
192.168.10.15 uc.ezuce.mattkeys.net uc
$(ips[$(host_servers).ezuce.mattkeys.net][1]) $(host_servers).ezuce.mattkeys.net $(host_servers) # sipXcom cluster
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
FixConfig
UC-3866snmptrapd.conf is missing the webui snmp community string changeFixed an issue with snmp configuration where as the snmptrapd.conf file is not being updated with changes to the snmp community string.FixConfig
UC-3896Webui rejects .agency domain as invalidFixed an issue with Admin Portal email address validation that didn't allow administrators to enter domain names with a suffix larger than 3 characters. Customer was trying to set "user@company.agency" as the primary email address in unified messaging. This returns an error " Invalid email format for null. Format isuser@hostname. ", however this is a valid address.FixConfig
UC-3904Improve voicemail cleanup procedureImproved the new voicemail cleanup procedure for deleting aged voicemails. The procedure was calling GridFS.remove(query) https://github.com/mongodb/mongo-java-driver/blob/master/driver/src/main/com/mongodb/gridfs/GridFS.java#L305 which - behind the scenes loads all voicemails in memory (hence growing the IVR mem usage) and then iterated one by one to delete them. This was changed to avoid IVR eating up all memory eventually.FixConfig
UC-3939IVR needs to be at DEBUG verbosity to remain stableFixed an issue caused by the log4j third party library. Running IVR in debug masked the timing issue. Updated log4j to newer release to solve problem.FixConfig
UC-3967E911 plugin breaks replicationFixed an issue caused by E911 feature that caused sipXrls to not work because credentials were missing.FixConfig
SIPX-451Create sipXdashboardCommunity contribution of sipXdashboard was added to project.

Create sipXdashboard and make it installable. Added firewall rule for port.

Use is documented here: http://wiki.sipxcom.org/display/sipXcom/Dashboard
EnhancementDashboard
SIPX-429Docker build for set of projects with dependenciesFixed an issue that didn't allow for multiple projects to be completed at the same time.

Issues with build_docker_rpm.sh when trying to the following case:

1. I have code changes for some bug in library (sipXcommserverLib) and 2 projects (sipXproxy and sipXregistry).
2. projects has that lib as dependency, so it should be compiled only after library build.

Using current build_docker_rpm.sh it is not possible to build more than one component by one run and by one container. (--rm flag in docker call clears container every time).

For the ability to not clear container you could edit build_docker_rpm.sh in sources and remove --rm flag.
FixDocker
JitsiJitsi support not installed by defaultJitsi provisioning support is not installed by default from ISO or if installing with 'yum install sipxcom'. To install login as root and run 'yum install sipxjitsi'  
SIPX-397Polycom SPIP 4.0.8 & Later firmwareEnhancement because Polycom added some new parameters to firmware 4.0.8 and later firmware for the SoundPoint IP phones.

One in particular causes the phone to close TCP socket connections which can break remote phone operation.

Add the following new parameter and ensure phone is configured with the value set as 1.

tcpIpApp.keepalive.tcp.sip.persistentConnection.enable 0 or 1 (0 = default)
If 0, the TCP Socket connection is closed after 1 minute. When the phone sends a new SIP message, a new connection is opened.
If 1, the TCP Socket connection remains open indefinitely.

Large installations may want to be able to set the value to 0 to keep TCP socket connections lower.
EnhancementPolycom
SIPX-466Polycom Site configration line-dialplan and forwardingThe Line Dialplan will not be configured.

Issue is created by a definition of "lines" inside the site cfg. "lines" will mean Line Count in this case and not as in other cfg files the phone lines.

Renamed this to linesCount and add the lines as in every other config file

During this change the option to enable the local forwarding menu under Line > Call Handling (default disabled)
EnhancementPolycom
UC-3853Feature request for Polycom RealPresence Trio templateCustomer request to add web ui management for Polycom AV units. Specifically for RealPresence Trio.
http://www.polycom.com/voice-conferencing-solutions/conference-phones/realpresence-trio.html

RealPresence Trio utilizes VVX firmware. This should be not much different from a VVX 500 (camera is an option).

Phone name is: RealPresence Trio
EnhancementPolycom
SIPX-477Polycom does not show Custom Caller IDFixed an issue with Custom CallerID plugin and Polycom phones. External Number is entered in Custom CallerID PlugIn with Displayname

Polycom Phone shows "Unknown" as Display Text.

This occures because the Polycom uses the following header order to get the name:
P-Asserted-Identity, Remote-Party-ID, From

Custom CallerID only changes the From Header.

Polycom Config allows to change the order of headers

Paramter (from Polycom UC Admin Guide v3/v4/v5):
voIpProt.SIP.CID.sourcePreference

Description:
Source of caller ID information.
If Null, caller ID information comes from
“P-Asserted-Identity, Remote-Party-ID,
From”.
For example, "From,P-Asserted-Identity,
Remote-Party-ID" and
"P-Asserted-Identity,From, Remote-Party-ID"
are also valid.

Added the parameter to Polycom config plugin with Polycom default value set.

If someone use Customer CallerID he can change this to the first example to make it work
FixPolycom
SIPX-132When using DID aliases, the registrar signs the 302 contact with the identity of the alias instead of the real user account resulting to authentication failure in the proxyFixed an issue with the proxy that was causing 407 errors when using DIDs and Aliases.

Below is the issue log detail

Contact: \"John Doe\"<sip:7826@sipxcom.domain;sipXecs-CallDest=AL?X-sipX-Authidentity=%3Csip%3A8126837826%40sipxcom.domain%3Bsignature%3D554A6344%253A0d1618ec31ce83d050666d7829110f64%3E&ROUTE=%3Csip%3Asipxcom.domain%3Blr%3E>\r

The auth identity should have been sipX-authidentity=%3Csip%7826%40sipxcom.domain to signify to the proxy that 7826 account is responsible for authenticating this call and not 8126837826.

There is another overlapping bug identified here. See the following proxy logs:

"2015-05-06T18:53:56.240093Z":42417:ODBC:INFO:uc2.sipxcom.domain::7f166fca5700:sipxproxy:"EntityDB::findByIdentity - Unable to find entity record for 8126837826@sipxcom.domainfrom namespace imdb.entity"
"2015-05-06T18:53:56.240116Z":42418:AUTH:WARNING:uc2.sipxcom.domain::7f166fca5700:sipxproxy:"EnforceAuthRules[400_authrules]::authorizeAndModify call '14ef1198-6ec4-1233-f4a8-005056b02b56' requires ''"
"2015-05-06T18:53:56.240135Z":42419:AUTH:DEBUG:uc2.sipxcom.domain::7f166fca5700:sipxproxy:"SipProxy::proxyMessage plugin 400_authrules returned DENY for 14ef1198-6ec4-1233-f4a8-005056b02b56"

1. Proxy was unable to find account for 8126837826@sipxcom.domain
2. Authentication was denied because call required ""
FixProxy
UC-1386Configurable Auto ReleaseAdded an enhancement to allow for a configurable number of non answered calls before an agent is set to released.

Currently the system will attempt to ring an agent end point, and if it fails or is unanswered only once, automatically place that agent end point into released. This should be increased as there are times where a ring attempt will fail due to network glitch or other reasons.

The feature request proposes the use of a configurable "max no answer before unavailable" value.

The new field will be labeled as: "max no answer before unavaiable"

The new field will have a description as follows:
maximum consecutive unanswered calls to a single agent for any reason before that agent is placed in the release state.

Admin UI will allow the admin to enter an positive integer value into a new field on the agent group form. This value will default to 3.

Reach will adhere to this value when attempting to ring an agent. Specifically, it will set the agent state to "released" and no longer offer calls to that agent if this threshold is hit.

Example: ring fails before unavail = 3

If the agent endpoint fails 3 consecutive times, it is placed into the "release" state.

The supervisor UI should show that status change as such and a stats event will be triggered to show the state change for that agent such that reports generated would show the time spent in this state as an example.

The agent's interface should act the same as it does today when automatically placing the agent into the release state.

A special value of 0 would be allowed. If the admin sets this new config parameter to 0, the agent is to never be automatically logged off.

This new agent group setting should NOT be considered for agent's logged in via the dial string method. For those agents, the setting under the agent dial string configuration page is to be used. ------->> Auto release applies to agents logged in via dialing strings as well <<-------
EnhancementReachme
UC-3037Reach Recipe Add - Skill CriteriaEnhancement to add a recipe criteria for checking the current skills on a call with a list of skills selected in a recipe step.

To use this new criteria from within a the recipe, the admin will select the criteria of "skill" and select one or more skills that is built in the system from a drop down box, then select the associated action to take. The comparison of =, >, < will be populated with the following values instead:
'are'
'contains any'
'contains all'
'does not contain any'
'does not contain all'

All actions should be available if the criteria is true.

Reach will adhere to the new recipe step, checking to see if the skill(s) in question exists on the call that the recipe steps are being checked on. If it does, the associated action will be taken.

The criteria of "skills" "are" <selected skills in skills list> is true if the skills selected are exactly the same as the skills on the call.

The criteria of "skills" "contains any" <selected skills in skills list> is true if ANY of the skills selected are a part of the skill list on the call.

The criteria of "skills" "contains all" <selected skills in skills list> is true only if ALL of the selected skills are a part of the skill list on the call. It is still true if all of the selected skills are on the call and there are also additional skills on the call.

The criteria of "skills" "does not contain any" <selected skills in skills list> is true only if NONE of the selected skills are on the call.

The criteria of "skills" "does not contain all" <selected skills in skills list> is true only if the entire list of skills selected does not exist on the call. If some of the skills selected are not on the call but others are on the call, this criteria is false.
EnhancementReachme
UC-3337On an idle server with Reach enabled, Mongo packets represent the biggest portion of trafficAdded an enhancement to make sure that rstats snapshots are refreshed only if there are agents logged in.EnhancementReachme
UC-3842Allow Reach Call Recordings to be ArchivedThe purpose of this feature request is to allow an administrator to define a network location to archive reach call recordings to long term storage.

Base assumptions are:
the archive location must be accessible via UniteMe (e.g. via a mapped network drive).
that network location folder/drive allows access from a permissions perspective to the sipx user on UniteMe linix subsystem.
Backups of call recording files would be the responsibility of the administrator exclusively. So, if there is a need to create copies of this call recording files the admin must do that via a method of his/her choice.

Development work required:
Piece1
Add config parameters in the admin UI under the client page, Call Recording subsection.
Piece2
update the cron that currently removes call recording metadata and mp3's to "copy" and or remove the files to/from the network path as defined by the config parameters
Piece3
Add an alarm that would say "call recordings could not be copied or deleted" for cases where there was some trouble in doing that (e.g. network location didn't exist or permissions issue or something)

CURRENT CONFIG PARAMETERS
Record Calls
Days to Retain Recordings

As part of this request, we will need to rename 'Days to Retain Recordings' to 'Days to Retain Recordings Locally'.

3 NEW CONFIG PARAMETERS
Parameter #1
"archive call recordings"
If the option is left blank, there would be no change to the current functionality where call recordings are kept for X days and then deleted via a cron job.
If set, this option would be used as a location to copy the call recording files to. So, if a value is provided in this config parameter, the following will be true.
Rather than purely deleting the call recordings and metadata that are older than the amount of days identified to keep recordings a copy of the call recording file will be made first.
If the call recording file is successfully copied to the network location then the metadata and call recording file can be deleted.
If the call recording file cannot successfully be copied to the network location, the metadata and call recording file will be left in mongo and an alarm will be raised in the admin UI. This alarm will contain the following text. "ReachMe call recordings could not be copied to <network location configured>. Recordings were not removed from MongoDB. You should immediately correct this issue so that Mongo storage is not negatively affected by ReachMe call recording capacity requirements."

Parameter #2
'Days to Retain Recordings in Archive'
If This value will be a number of days to retain the recordings in the archive. This value will be used to determine when to remove the archived files AND the associated meta data for a call recording. This should default to 180 so that by default the archived files would be checked each day for any recordings/meta data that are older than 180 days. In this case, if recordings/meta data older than 180 days exist, it will be permanently deleted.

Parameter #3
'Archival Time'
This new parameter will identify at what time (system time) the cron job should run that will either archive recordings or remove recordings/meta data based upon the other config parameters. Example: if this value is set to 1:35am, the cron would run at 1:35 in the morning.

END RESULT AFTER THESE ENHANCEMENTS
Overall These changes will allow the administrator to setup the following sort of configuration.
Record Calls Y/N
If recording is on, the admin can assign how long to keep the recordings and associated meta data in the local mongo DB. These recordings would be searchable and retrievable from the Reach call recording widget.
Also, if recordings have been made in the past, the admin will now be able to identify when to effectively "move" the recordings from mongo to a network address (e.g. SAN location mapped via a network drive location). The admin would set the 'Days to Retain Recordings Locally' to identify when to move them to the archive.
In addition, the admin will be able to identify when to run the job that moves files via setting the 'Archival Time' parameter.
Lastly, the admin will be able to identify when to permanently remove the recordings and associated meta data via setting the 'Days to Retain Recordings in Archive'.
EnhancementReachme
UC-3861Remove reach recordings from file systemCurrently reach recordings are stored both on the file system and in mongo. We need to ensure that the file makes it to mongo so that we have a good copy and then NOT write it to the file system.

Make a daily cron job to clean up temporarily stored recording files. Decided on this approach to offload Reach from doing it and in case some Admin wanted to change the retention or move the files somewhere else.
EnhancementReachme
UC-3899In System -> Backup be able to Enable / Disable Recordings BackupAdded an enhancement to be able to Enable and Disable Reach Recordings Backup and Restore just as with Voicemail.EnhancementReachme
UC-3975Configurable chunk size in call segment facts scriptAdjust call segment facts professing script to process in a configurable number of chunks. Call segment facts script processed events corresponding to terminated calls in chunks of 100 for each run. There are a total of 10 - 25 events per call, this lead to ~2500 events processed at once.

Added a new configuration under OpenUC Reach - Settings where users can specify the chunk size of calls to be processed at once be the call segment facts script.

The new configuration parameter would be used by the cron job that runs the script each 5 minutes:

node path/to/call_segment_facts/script -c [--chunk_size] chunk_size
EnhancementReachme
UC-3116Reachme CDR Call Segments Missing On Transfer to a numberFixed an issue when a call is transferred to a number in the Reach UI, there is no call segment created for it.

To recreate:
Place call in a Reach queue and answer it with an agent.
Agent transfers the call to "number"
Run CDR report to see result ... no call segment for the transfer leg

My example:
Call1
Called from 3102 to line 3002
answered call with agent 2100
agent 2100 transfers call to 3102
3102 answers the call

Call2
Called from 3102 to line 3002
answered call with agent 2100
agent 2100 transfers call to 3102
3102 declines the call

The expected result would be to see 2 call segments per call (both with the same call ID so that they could be related). One for the connection from the original caller to the agent and a 2nd for the transferred call (and whether or not that transfer was answered).

However, the CDR shows the first call leg and shows that it is NOT the last call segment. However, there is no second call segment in the CDR.

A screen shot of the CDR report is attached.
A snapshot of the system is attached.
FixReachme
UC-3189Reach recordings metadata is missing when the call is transferred to a numberFixed an issue with recording metadata that was missing when a call was transferred.

Steps to reproduce:
Caller: 100
Caller ---> Line --> Queue ----> AgentOne
AgentOne transfers to 300
The call is closed either by the caller, or by 300.

Actual:
A recording is done on disk regarding this call and is closed automatically by freeswitch when the call ends.
Since there is no agent involved in ending the call, there is no metadata written in MongoDB regarding the recording on disk.
FixReachme
UC-3212Some call recordings missing when the caller ends the callFixed an issue where sometimes, when the caller ends the call, the call recordings are not saved to the database. This was primarily caused by unusual internal events that are sent to agent_channel process.

Below are snapshots of Reach logs from when this occurs:

2014-09-16 13:24:56.326 [info] <0.4559.0>@gen_media:agent_interact:3144 hangup by "caller" for "ab33138c-3d8b-11e4-9488-9b65079bb5f9" when only oncall is a pid; skipping wrapup call to agent_channel
2014-09-16 13:24:56.327 [notice] <0.4559.0>@freeswitch_media:handle_info:1062 Call hangup info, terminating "ab33138c-3d8b-11e4-9488-9b65079bb5f9"
2014-09-16 13:24:56.328 [info] <0.4565.0>@freeswitch_ring_transient:handle_event:211 Channel hangup event with cause ["NORMAL_CLEARING",undefined,undefined]; stopping with reason normal
2014-09-16 13:24:56.328 [notice] <0.4565.0>@freeswitch_ring:terminate:521 FreeSWITCH ring channel teminating normal
2014-09-16 13:24:56.330 [notice] <0.4565.0>@freeswitch_ring_transient:terminate:227 Going down: normal
2014-09-16 13:24:56.332 [info] <0.4564.0>@agent_channel:handle_endpoint_exit:1066 Exit of endpoint {ep,freeswitch_ring,<0.4565.0>} due to normal while oncall; moving <0.4559.0> to wrapup.
2014-09-16 13:24:56.342 [notice] <0.4559.0>@freeswitch_media:terminate:1121 terminating: normal "ab33138c-3d8b-11e4-9488-9b65079bb5f9"
2014-09-16 13:24:56.343 [notice] <0.638.0>@freeswitch_media_manager:handle_info:826 trapped exit of normal, doing clean up for <0.4559.0>
2014-09-16 13:24:56.343 [info] <0.4564.0>@agent_channel:handle_endpoint_exit:1080 gen_media: <0.4559.0> cannot wrapup due to {normal,{gen_fsm,sync_send_event,[<0.4559.0>,{{'$gen_media',wrapup},undefined}]}}, proceeding anyway
2014-09-16 13:24:56.393 [info] <0.646.0>@agent:handle_info:865 Re-grab calls on channel_died
2014-09-16 13:24:56.393 [info] <0.646.0>@agent:grab_call:957 requesting calls from Qs [<30944.768.0>]
2014-09-16 13:24:56.393 [info] <0.646.0>@agent:grab_call:960 created timer #Ref<0.0.18.138278> for call req of agent "1006"
2014-09-16 13:24:56.401 [info] <0.646.0>@agent:handle_event:734 request from <30944.768.0>, CallRequests is 1, CallReceived is 1
2014-09-16 13:24:56.401 [info] <0.646.0>@agent:cancel_timer:989 Timer #Ref<0.0.18.138278> cancelled
2014-09-16 13:24:56.894 [info] <0.646.0>@agent:handle_info:885 call requests timed out... ignoring other queues
FixReachme
UC-3383Progress bar from Call Recordings - Supervisor dashboard does not reflect the end of the recordingFixed an issue with call recording playback and the progress bar.

Problem description:
Progress bar from Call Recordings - Supervisor dashboard does not reflect the end of the recording.
Progress bar does not reach 100%. It stops at 80-90%.

This happens for all call recordings, no matter if the call was transferred or not.
Please see screen capture attached. (pregress_bar.fbr) Use BB FlashBack Express to play this.
FixReachme
UC-3555No ring back when agent calls back the clientFixed an issue to have agents hear ring back when dialing outbound from a voicemail that was left in queue.

Steps to reproduce:
1.Client calls Line 303 where Agent 2007 is Idle
2.Client presses * to leave a VM in this queue and then leaves a VM and presses * again to finish.
3.Agent is alerted by the newly left VM
4.Agent successfully listens to this VM and then from the Dashboard clicks the Callback icon

Issue : The client is called back however the agent cannot hear ring back.
FixReachme
UC-3895Remove temporary Reach voicemail filesFixed an issue that caused Reach voicemail recording to be stored in /tmp. When a Reach call enters the queue and is ultimately sent to in queue voice mail, the voice mail files are kept in /tmp. After the voice mail is sent to a Reach agent and they are no longer necessary, these files remain in /tmp.

This request is to have a cron job that cleans those voicemails up (suggestion is to delete them after they are older than 2 weeks).
FixReachme
UC-3936Reach origination string for outbound calls doesn't strip spaces, dashes and parenthesisFixed an issue in the Reach Agent portal caused by Agents entering spaces in phone numbers which would result in freeswitch trying to dial "sofia/${domain}/552675675752 @${domain}"

2016-01-20 13:39:10.984 [info] <0.25075.56>@freeswitch_outbound:originate:681 Calling: expand originate {origination_uuid=18b742c4-bfa5-11e5-b253-119dbde9f92f,bridge_early_media=true,origination_caller_id_name='1061',origination_caller_id_number='1061',hangup_after_bridge=false}sofia/${domain}/552675675752 @${domain} &park()
2016-01-20 13:39:10.994 [debug] <0.25075.56>@freeswitch_outbound:awaiting_destination:321 In call_destination state with bleg "18b742c4-bfa5-11e5-b253-119dbde9f92f"
2016-01-20 13:39:11.034 [debug] <0.23246.56>@freeswitch_media_manager:listener:959 Received event "CHANNEL_DESTROY" for "18b742c4-bfa5-11e5-b253-119dbde9f92f"
2016-01-20 13:39:11.035 [debug] <0.25075.56>@freeswitch_outbound:handle_info:447 Error received: "-ERR USER_NOT_REGISTERED\n"

that is saying FS to dial outbound "552675675752 ", which results in

18b742c4-bfa5-11e5-b253-119dbde9f92f 2016-01-20 13:39:10.978579 [NOTICE] mod_sofia.c:4726 Close Channel N/A [CS_NEW]
2016-01-20 13:39:10.978579 [NOTICE] switch_ivr_originate.c:2735 Cannot create outgoing channel of type [sofia] cause: [USER_NOT_REGISTERED]

There was a space after the dialed number. We need to account for spaces, -, ( and ).
FixReachme
UC-3983Any setting you make on a Queue is saved even when you hit CancelFixed an issue with Reach configuration that caused any configuration change made to a queue to be saved before clicking Apply or OK.

The problem did not happen with Queue Groups.
FixReachme
UC-4008Fix the interval on the Reach Traffic Detail ReportFixed an issue with the new traffic detail report as released in 16.02. The report had a hard coded 10 second interval.

We added an input parameter of "interval" to the report. This input parameter will be the number of minutes for the interval to be used. Default the input parameter to 60 minutes and allow the user to put in the number of minutes that they would like for the interval.
FixReachme
UC-3783Openuc-saa service restart needed after a server rebootFixed an issue that required openuc-saa to have to be restarted after a server reboot.

Steps to replicate :
1.Configure openuc-saa on server and verify that it actually works on phones(and not just that service is enabled).
Result : there is a good chance it works
2.Reboot the server and verify that saa works again as in step 1.
Result : service is running but phones are not showing any presence updates)

Workaround : service openuc-saa restart
FixSAA
UC-4027Make x-sipx-retarget usage configurable for openucsaaIn a NAT'd environment when using Uniteme's media relay for NAT Traversal, openuc-saa is adding a value in the SIP header called x-sipx-retarget and Media Relay is redirecting media causing one way audio. While we work on a fix for this we are providing a new check box in Need to be able to disable this option untill we will have a final fix on UC-3790FixSAA
UC-3746SSS starts before mongo serviceFixed an issue that caused SSS to start before mongo service was ready.

This was the services starting order from a server :

[root@uc1 ~]# ls -la /etc/rc.d/rc2.d/*sss*
lrwxrwxrwx 1 root root 17 Aug 10 14:02 /etc/rc.d/rc2.d/S85sipxsss -> ../init.d/sipxsss

[root@uc1 ~]# ls -la /etc/rc.d/rc2.d/*mongo*
lrwxrwxrwx 1 root root 26 Aug 10 14:01 /etc/rc.d/rc2.d/K10mongodb-ivr-sync -> ../init.d/mongodb-ivr-sync
lrwxrwxrwx 1 root root 22 Aug 10 14:01 /etc/rc.d/rc2.d/K10mongodb-sync -> ../init.d/mongodb-sync
lrwxrwxrwx 1 root root 24 Aug 10 14:01 /etc/rc.d/rc2.d/K15mongod-arbiter -> ../init.d/mongod-arbiter
lrwxrwxrwx 1 root root 21 Aug 10 14:01 /etc/rc.d/rc2.d/K15mongo-local -> ../init.d/mongo-local
lrwxrwxrwx 1 root root 29 Aug 10 14:01 /etc/rc.d/rc2.d/K15mongo-local-arbiter -> ../init.d/mongo-local-arbiter
lrwxrwxrwx 1 root root 16 Aug 10 14:01 /etc/rc.d/rc2.d/S90mongod -> ../init.d/mongod
FixSSS
UC-4017Presence Incorrect when parking call multiple times to different park orbitsFixed an issue that caused presence of a park orbit speed dial to be incorrect it a call was parked, unparked and then parked to a different orbit.FixSSS
UC-4016Bria devices are exhausting Unite Mobile LicensesFixed an issue where we were searching for the wrong string for the phone model for Unite Mobile.FixUnite Mobile
SIPX-133Add Forward and Delete option for Unified Messaging to Unite User PortalIn User's Unified Messaging settings, add option to enable Forward and Delete voicemail from inbox after sent.EnhancementUniteWeb
UW-133Enable MoH configuration at user levelAdded the ability in Unite Web Portal for the User to be able to configure their MoH if the following permissions enabled at superadmin level:

Configure Music on Hold (Default: checked)
Configure Group Music on Hold (Default: unchecked)

At user level, MoH can be configured on the old style user portal, but not on the new UniteWeb portal.
EnhancementUniteWeb
SIPX-308Voicemail progress not showing in playerFixed an issue in UniteWeb that caused the voicemail position indicator to not move as the message was played.

Mac OS/X 10.10
Chrome 38.0.2125.122
FixUniteWeb
UC-3135Voicemail via Email - Wrong PortalFixed an issue with the new user portal such that when clicking the voicemail list button from within an email body while logged into openUC in the same browser session, the user is presented with the old unit portal instead of the default portal. The link in the email is below. This particular link is included in the "Full" email message from openUC.

Here is the url: https://server.domain.org/service/home/~/?auth=co&id=128743&part=1.3
FixUniteWeb
UW-252Safari: voicemails -> player is not loadedFixed an issue with the Unite Web Portal when running with Safari on Mac osX, the player is loaded, but it does not play the message. This is because Safari does not know how to play WAV files.

If voicemail is set to WAV and user is from Safari the option to download the WAV will be displayed.
FixUniteWeb
UW-318Internal linkingFixed an issue with email sent to users because there was no direct link to access for instance Voicemail page in user portal

Now the show message inbok link will directly jump to voicemail page in user portal.
FixUniteWeb
UW-327UniteWeb User Save does indicate it's been clickedFixed an issue such that the save button at the bottom of the any page does not "gray out" after a change has been submitted. NO indication is given to the user that a change is made. The Save Button remains visibly colorful with no indication that the change was saved.FixUniteWeb
SIPX-460Yealink Config Protection Parameter and Phone BackgroundAdded an option to store personal config of Yealink Phones

- Proctect Mode to store custom config inside the phone
- Sync Mode to store on TFTP in <mac>-local.cfg file (with write access) and reload the local.cfg after factory reset

Config String to preselect and uploaded Background (depends on uploaded Wallpaper files)

Tested with 16.04 on T48G with FW 8x

Feature avaiable since Version 7. Full description inside Yealink Autoprovision Guide
EnhancementYealink
SIPX-462Yealink PIN Lock and Volume SettingsCorrection of PIN Mode for Yealink T2x, T4x Series

Behaviour is different between series and inside 4x Series.

Handling described in
Yealink_SIP-T2_Series_T4_Series_IP_Phones_Auto_Provisioning_Guide_V73_40.pdf
Yealink_SIP-T2 Series_T19(P) E2_T4 Series_IP_Phones_Auto_Provisioning_Guide_V80_60.pdf

Insert Volume Settings and fixed description for Version 8x (out commented to don't overwrite personal phone settings, will be now possible with custom protect mode)

Tested with 16.04 and T46G and T48G
EnhancementYealink
SIPX-463Yealink Remote ControlEnhancement to add some additional Yealink features:
Remote Control Enable Parameter (not documentated in Auto Provisioning Guide)
Parameter is feature.action_uri.enable (from Admin Guide)
Needed to perform Action URIs

Allow SIP Trust Server only for FW 8x
Parameter is sip.trust_ctrl
Could maybe have an affect on HA behaviour so this is deactivated by default like from Yealink designed

Tested with T46G, T48G and T49G
EnhancementYealink
SIPX-458Yealink Firmware T49G has wrong NameFix for firmware for Yealink T49G is configured as T49.rom
Upload renames this to VP49.rom

Fix is tested with current Version of 16.04 and commited in PR
FixYealink
SIPX-464Yealink T49G missing configFixed an issue that caused the Yealink T49G to only hav half the count of settings that it should have.

All Regex matches looks for yealinkPhoneSIPT49G
BeanID is yealinkPhoneVP49G

Change BeanID to "yealinkPhoneSIPT49G" solves this issue.
FixYealink
  • No labels