Overview

This section describes the eZuce uniteme 15.08 software release, including:

Software Enhancements

eZuce is pleased to announce general availability of uniteme and reachme 15.08.  uniteme is the new product name for openUC and reachme is the new product name for Reach.  Along with our visual collaboration tool viewme this completes our new branding to tie in with our new corporate ‘My Enterprise’ messaging. My Enterprise is our new initiative where we take a user centric approach, empowering individuals to adopt technology for a more productive workplace, my workplace, My Enterprise. We believe that your entire organization will benefit from our seamless visual interaction and communication solutions enabling them to be there at the right place, at the right time, with the right device.

We have some exciting integrations coming for the products as we push the boundaries of what communications means within organizations.

For uniteme and reachme we’ve moved to a 2 month release cycle now following two one month cycles.  We’ll see how this new cadence suits our teams and customers.  Overall this new release contains a little over 100 new features, improvements and fixes.

uniteme New Features

uniteme Improvements

reachme New Features

reachme Improvements

Software Release History

We've now backed off to bi-monthly release cycle. We're still searching for the right cadence for customers, developers and the QA team.  We'll see hot this cadence works and take a decision around the end of the year.

Release Level History

System Requirements

For a reasonably performing system we recommend the following configuration.

Minimum hardware requirements

Note: 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).

Operating System

CentOS/RHEL 6 x86_64 with latest updates is required.An i386 version is also provided as is (without any support).

Devices

Phones

Gateways

SBCs

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 15.08 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 64000mongodb hard nproc 64000mongodb soft nofile 64000mongodb hard nofile 64000 .

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

Installing from Repository

uniteme can be installed using the below procedure

yum update && reboot
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

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:

Support Tips and Contact Information

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

Enhancements, Fixes and Known Issues


 

JIRA ID

JIRA name

RN Content

Enhancement/Fix/Known Issue

SIPX-209

Introduce a new queue for child transaction CANCEL events

Added a new feature to more efficiently handle call CANCELs.


In previous code a CANCEL received by the server is propagated in one burst towards all child transactions which can overwhelm the outbound queue.


This tracker address this issue by introducing a separate event queue for each child so that they are tried serially instead of a single burst.

New Feature

SIPX-210

sipXcallqueue - define call queue exit key

Added a new feature to sipXcallqueue to define call queue exit key. This required minor code changes in sipXcallqueue project (that is to expose it as a setting and use it as an action in FS dialplan).


Queue Calls using the basic queue call sipxcallqueue NEEDS to have a breakaway option.


This is part of the freeswitch call queue functionality you currently use it's just not an option in the GUI (mod_callcenter)


The way I would set it up is just present us with an option called --- Breakaway Button or Breakaway Dial


This Breakaway feature would require 2 options… Breakaway digit to be dialed and Breakaway ext… the breakaway ext is where it goes to if someone waiting in the queue hits the button.


The new feature would allow administrators to create a queue audio file that would just tell the end user if you do not want to wait any longer just press – lets say 8 – to go to our voicemail so that we may call you back at our earliest convenience.


Here is the info from mod_callcenter - https://wiki.freeswitch.org/wiki/Mod_callcenter#cc_exit_keys (https://wiki.freeswitch.org/wiki/Mod_callcenter#cc_exit_keys)


Here is an example config


<action application="set" data="cc_exit_keys=#"/>

New Feature

SIPX-273

Make SIP Port configurable in a Voicemail DialPlan

Added a new feature to be able to set the destination server and SIP port when configuring an Exchange Server as the external voicemail server. This should allow for connectivity to Office 365 without requiring a Session Border Controller.

New Feature

SIPX-276

Voicemail to eMail forward and delete

Added a new feature so that a user/administrator could configure eMail forward and delete of voicemail and conference recordings.

Voicemail and Conferences should only be deleted on successful forward.

Known Limitation: there are some cases in which the email is not successfully sent, but the voicemail is moved in the deleted folder.

This is because sending an email is not a synchronous operation and an error can occur at any stage during the email sending process. openUC will put the email in the send queue and will check for basic errors, after this, the email is considered sent.

New Feature

SIPX-81

Config support for call back on busy

Required for new Call Back on Busy Feature

New Feature

SIPX-85

Call Back on busy

New Call Back on Busy Feature  (English Audio Prompts Only).


The Callback on Busy feature enables a caller to dial the callback prefix and an intended user number. When the intended user is available it will initiate a call between the two users, provided that the callback request has not expired.


To request a callback, you need to dial the callback prefix (default *92) with the extension you want a callback from (example *92200).


To enable the feature, go to System -> Servers -> Telephony Services -> enable Callback on Busy check box. Currently not HA so only enable on one server.


To configure prefix and timeout see Features -> Callback on Busy.

New Feature

UC-1994

Create a Reach Permission Profiles Config Page

Added a new feature to Reach for user permission profiles.


New Link

Create new configuration parameters so that we can define a user permission “profile”. This will be a new form with a link on the left of the openUC Reach landing page similar to the Lines, Clients, Queues, etc. The new link name should be “User Permissions” and should be placed between the existing Skills and Agent Dial String links.


When clicked, the new link will lead to a new form as described in the attached document (New Form section).


Config Rules

Agent Groups list box under the Content section will be grayed out if Supervisor Tab check box is not checked.

Queues list box under the Content section will be grayed out if the Supervisor Tab check box is not checked.

Control Agent State, Monitor and Barge check boxes should be grayed out if the Supervisor Tab check box is unchecked.


Config Parameter Storage

All of the new configuration detail will need to be stored in the mongoDB such that Reach can access it during the login process and leverage the new configuration.


The new feature can be found under Features-> openUC Reach -> User Permissions

New Feature

UC-3600

Pass Custom Headers on Reach Calls to Agents

Currently, calls sent to Reach agents do not pass any custom headers that arrived on the originating call to the agent side end point. An enhancement has been added to pass those headers so that customer side soft phone applications can leverage their values.


The required change will be to add the sip_copy_custom_headers=true to the origination string used to send calls to Reach agents.


We should consider transfer/conference and monitor interactions to ensure that they also get any custom header that arrived on the initial call as well.


Since this behavior may not be desired in some environments, we should create an ini or config parameter that can be set to yes/no somewhere in the system such that we can leave this off typically but turn it on for any installation that needs this. Example: ReachPassHeaders=0/1 where 0 is off and 1 is on (default to 0).


A restart of Reach to read this config parameter is acceptable.

New Feature

UC-3615

Limit Queues and Agents a Reach Supervisor can see

Added a New Feature called User Profiles that is also used to limit the agents and queues that a Reach supervisor can see, control and monitor/barge.


There is feature set planned that already included this ability (uc-1991 and uc-1994). This feature request is to provide some of that functionality earlier in the process.


Specifically, we need the following:


The administrator should be able to define what information and features are available to the supervisors and agents on the Reach Agent/Supervisor UI. This should be done via new configuration capability and Reach should uphold the settings when loading up the portal (i.e. disable or do not display content that the configuration parameters are not set for).

The initial phase of this feature will specifically address the need to allow one set of supervisors to have access to the following and other supervisors not:

1. View specific queues

2. View specific agent groups

3. Monitor agents

4. Barge agents


See the attached document called "supervisor limits" for the details of what configuration and reach side work needs to be cared for.

New Feature

UC-3624

Limit Queues that Supervisors can manage

This is related to UC-1994 - Reach User Profiles


This is the Admin GUI related work to support the new Reach User Profiles.


Limit queues that supervisors can see and manage.

New Feature

UC-3625

Configuration support to pass custom headers through Reach

This is related to UC-3600 - Pass custom headers through Reach


This is the Admin GUI support to enable passing custom headers through Reach.


Config will be added to: Features -> Reach -> Settings


See Mockup attachment.

New Feature

UC-3656

Put note on Reach Permissions Page regarding only which Queues a Supervisor can see

Put information on Reach User Profiles page to let Admin know that not all permissions are configurable yet.


In 15.08 we plan to only be able to manage which Queues a Supervisor can 'listen' to.


We should grey out or hide the other settings as the work in the Reach Portal will not be completed for those settings.

New Feature

UC-3667

Limit Agents that Supervisors can manage

Related to UC-1994 - Reach User Profiles


Limit agents that supervisor can see and manage.


This issue is for the Admin GUI work related to the new feature.

New Feature

UC-3672

Create Reach GUI from permission profile set in Reach config for agent.

This is related to UC-1994 - Reach User Profiles


Follow changes on UC-1994 and apply it in Reach Portal (supervisor and agent) GUI.


Add ability to disable agent manager widget, queue manager widget, barge/ monitor for supervisors/agents. To be able use different security level(previous agent, supervisor was used).

New Feature

SIPX-101

Increase number of SIP UDP/TCP re-transmits as well as increase T1 timer and allow parameters to be changed in web admin

Added an enhancement to allow for longer re-transmits of SIP UDP and TCP packets. In some network environments (mobile data network) there are very often long delays before the initial path is available between SIP user agents and the sipXcom server. Once the path is setup, the network response is very reasonable. Increasing the SIP resend times to a larger value allows for the initial SIP invite to get to a user agent and then respond in time allows the calls to be properly set up.


The enhancement allows configuration of retransmits as well as timer T1. In most cases, simply increasing T1 will compensate for high latency.


That enhancement has the new configuration requirements:


Settings should be in System -> SIP Proxy -> Configuration Parameters (Advanced Settings)


Setting 1:

Check box setting name:

SIP Round Trip Time (T1 Timer)

Description:

The value of the T1 timer used for retransmission interval computation. This is expressed in milliseconds (100ms - 500ms).

Default Value: 100

Max input value accepted: 500

Minimum input value accepted: 100

No text allowed, integer only 100 - 500


Setting 2:

Check box setting name:

SIP Retransmission Count

Description:

The number of times SIP requests will be retransmitted before a timeout occurs (2 - 7).

Default value: 4

Max input value accepted: 7

Minimum input value accepted: 2

No text allowed, integer only 2 to 7.

Enhancement

SIPX-108

Display name for Yealink phones

Modify the Yealink plugin to set a user with First and Last name and register him on a Yealink phone


Expected:

The line display name to take the value from users first and last name (same as it works on Polycom phones)


Actual:

The line display name is the line number

Enhancement

SIPX-115

Make configurable number of digits used by play/get in AA

In Auto Attendant the play and get digits accepts only 10 digits to be entered, therefore truncates the last ones. This was hardcoded in ivr and not configurable at the moment.


This caused an issue with enabling and disabling night mode on Auto Attendants due to the number of digits that needed to be entered.

Enhancement

SIPX-15

Add ability to rewrite 180 with SDP to 183 with SDP in Transfer Control Plugin

Added an enhancement to marshal notifies with 180 for call transfers to be converted to a 100 trying event to keep Polycom phones from stopping MoH and disconnecting the call on alerting while there is really no early media streaming for 180. This causes dead air within the span the transfer is in alerting phase.


However, there are instances when 180 actually contains SDP and we need to notify the Polycom that early media is now streaming. To achieve this, we must convert 180 to 183 so that the marshaling code does not convert the event to 100 trying.

Enhancement

SIPX-184

Make Hazelcast integration configurable

Added an enhancement to turn Hazelcast on / off for openfire.

Enhancement

SIPX-185

Use mongodb TTL mechanism to expire registrations / subscriptions

Added an enhancement to use MongoDB's TTL mechanism to expire registrations and subscriptions.


The current mechanism for removing expired registrations relies on custom code. On a separate thread we periodically query mongo database and remove entries in case expiration time exceeded.


In the case of many expired registrations the results could be very large and impact performance (see point 2.2 and comment: GET MORE operations could also be a result of large data returned in query result).


MongoDB comes with its own support for documents Time To Live, see http://docs.mongodb.org/manual/tutorial/expire-data/#expire-documents-at-a-certain-clock-time which could perform much better and have less impact on database than our custom mechanism.

Enhancement

SIPX-186

Adapt the code for subscriptions

This issue is part of SIPX-185. Subscriptions should be able to be expired by mongoDB TTL feature

Enhancement

SIPX-187

Adapt any other component which relies on the content of the 'expirationTime' mongo field

This issue is part of SIPX-185. Besides config, there is also https://github.com/sipXcom/sipxecs/blob/release-15.04/sipXtools/src/sipx-dbutil which will be affected by the change. If there are more, we should update all of them

Enhancement

SIPX-188

Adapt config to handle the new format of 'expirationTime' field

This issue is part of SIPX-185. After the change, that field will be a Date() object representing the time when the binding will expire; right now it is an integer containing the seconds since epoch when the binding expires.

Therefore, config should be adapted to handle the new format

Enhancement

SIPX-189

Adapt the code for reg bindings

This issue is part of SIPX-185. Reg bindings should have 'expirationTime' as Date() instead of int/log

Enhancement

SIPX-190

Config should change the type of 'expirationTime' field from node.registrar at upgrade

This is part of SIPX-185. With the changes for SIPX-185, the 'expirationTime' field was changed from long type to Date() type in order for mongo TTL thread to be able to remove expired documents.

Thus, at upgrade, we need to make sure that the existing bindings will be properly merged so that the values of the 'expirationTime' field will be changed from int to Date().

Enhancement

SIPX-207

Config should change the type of 'expires' field from node.subscription at upgrade

This is part of SIPX-185. With the changes for SIPX-185, the 'expires' field was changed from long type to Date() type in order for mongo TTL thread to be able to remove expired documents.

Thus, at upgrade, we need to make sure that the existing subscriptions will be properly merged so that the values of the 'expires' field will be changed from int to Date().

Enhancement

SIPX-208

If LDAP authentication against a domain error occurs raise an alarm

Added an enhancement to raise an alarm of LDAP errors occur.


LDAP now has proper timeout if an authentication against a configured domain occurs. This might however be difficult for an administrator to know that there actually is a problem.


Raise an alert if there is a timeout or error condition with respect to LDAP authentication against a domain.

Enhancement

UC-1131

SQA does not log start/stop

Added an enhancement to the SQA service for it to log when it is started and when it is gracefully closed.

Enhancement

UC-1422

Add a new config setting to enable/disable consultative transfer fix for multiple gateways per location

Added an enhancement to control settings for UC-1382. The fix for UC-1382's works in a very specific case and could be enabled/disabled per request. That is because the fix uses custom SIP headers and does some SIP messages header parsing (INVITE, REFER, 200OK) which are not needed in regular scenarios.


Check UC-1382 for a description of possible issues when doing consultative transfer and multiple gateways per location are configured.


Where: SIP Proxy -> Advanced Settings

Setting name: Consultative Transfer to Use Gateway of Initial Invite (on/off) - default to on

Description: When a call is consultative transferred the resulting invite for the final destination of the transfer needs to use the same gateway as the consultative part of the transfer (warning - restarts proxy).


This is the config side only, the back end is not completed yet, so while the setting is visible in Admin GUI, the actual enhancement is not ready yet. Presently slated for 15.10.

Enhancement

UC-1637

Superadmin password viewable in export csv by lower level admin user

Added an enhancement to Export to obfuscate any superadmin password if exported to csv file.

Enhancement

UC-3514

Show error for invalid credentials when logging in Reach

Added an enhancement to let the user know they entered invalid credentials when trying to login to Reach portal.


Currently, if a user tries to log in Reach using invalid credentials, no error will be displayed in some browsers, like Chrome.


We should capture this error and display an error pop-up with an "Invalid credentials" message, consistently in all browsers.

Enhancement

UC-3584

Reach Notification Improvement

Currently, a Reach agent session can be automatically changed to the release mode if they do not answer call(s) that are offered to them. In this case there is a notification in the agent portal UI that tells them that they were automatically set to the release mode. However that notification is not very noticeable.


This feature enhancement is to change the notification method to be as obvious as possible. Preferred would be a pop up box with the notification and that this pop up box would act as an "always on top" window such that it is completely obvious. The pop up would then be removed/cleared once the user clicks OK.


We will play a system notification sound every X seconds when an agent is in released mode. This will be able to be enabled/disabled by the agent in the Agent State Widget under the Agent's Profile button.


The value will default to on, and default to 60 seconds.


The agent will be able to disable / enable and change the notification interval.

Enhancement

UC-3586

Improve GridFSVoicemailTool.java to accept DAYS, USER, and FOLDER to purge all voicemail older than DAYS

Added an enhancement to the GridFSVoicemailTool to assist with the cleanup of voicemail files.


Currently the GridFSVoicemailTool can cleanup deleted files in the system older than 'DAYS':


java -jar @SIPX_JAVADIR@/sipXivr/gridfs-voicemail-cli.jar --voicemailCleanup $1


$1 is the parameter and represents DAYS.


The script is written in java: /openuc-ivr-gridfs/tools/src/org/sipfoundry/voicemail/tools/GridFSVoicemailTool.java and it does not take as parameter the folder, it simply uses the deleted folder


We modified the script to accept the USER and FOLDER (inbox, saved, deleted) as parameters.

Enhancement

UC-3598

Licensing Update

Enhanced the licensing service so that licenses are required now after installation, License information is also displayed more clearly in System -> Licensing.


If no license exists in the system, have config generate a 45 day license and install. License will be for unlimited users.


Placed a notice on page used to set superadmin password and display alerts in Admin GUI.

Enhancement

UC-3604

To the license page add Total User Count, Phantom User Count and Required User License count

Part of UC-3598 Licensing Enhancement


On the System -> Licensing page add the following after 'Contact' and before 'Expire date':


"Total Users:" (integer, display total user count in system)

"Phantom Users:" (integer, display total number of phantom users in system)

"Number of Users Requiring Licenses:" (integer, Value of Total Users less Phantom Users)


After 'Entitlements' add "Number of Concurrent Reach Users:" (integer, Number of Users allowed to log in to Reach)


'Expire date' should read "License Expiration Date"

'Licensed user accounts' should be moved to under 'Number of Users Requiring Licenses' and read "Licensed User Accounts"


Verify that Licensed users only validates against Number of Users Requiring Licenses (i.e., does not count phantoms).


Create button on page with web link to eZuce Licensing Portal (https://license.ezuce.com)

Enhancement

UC-3606

Allow for 45 days of operation if no license file is detected

Part of UC-3598 Licensing Enhancement


Allow 45 day grace period if no license file is detected.


This will allow for an emergency installation of the software as well as testing of the system for an adequate amount of time.


License check will be performed on system start.


If no license is installed, a date 45 days from detection date will be set as the license expiration date.

Enhancement

UC-3607

Admin GUI Alert for License Expiring

Part of UC-3598 Licensing Enhancement


Display alert in Admin GUI with link to System -> Licensing when license file is 45 days from expiring, 30 days from expiring, 15 days from expiring, 5, 4, 3, 2, 1 days from expiring and when expired.

Enhancement

UC-3609

Limit number of logged in users for Reach

Part of UC-3598 Licensing Enhancement


Compare number of logged in users to 'Number of Concurrent Reach Users' license information at each user login.


If number of logged in users exceeds licensed 'Number of Concurrent Reach Users' then display error ("Number of Concurrent Reach Users has exceeded License Count").

Enhancement

UC-3622

Customize backup/restore script to backup in a dedicated location

Added an enhancement to allow the administrator to specify a different system path to save backup files.


Currently local backup uses a fixed path to save backup files: /var/sipxdata/backup


Add a parameter to sipx-archive script to specify a different path to save backups

Enhancement

UC-3626

Create a cron job to execute call_segment_facts

Added an enhancement to better collect Call Detail Records for Reach.


Create a cron job to execute call_segment_facts so that CDRs can be generated.


Make the time configurable (in minutes) with a minimum of 5 minutes and maximum of 1480 mins.


Must execute on node that has Mongo Primary Database server (if Reach is enabled). So this should be on all database nodes. Cron job should check to see if the server it's running on is Mongo Primary and then execute if it is, exit if it is not.

Enhancement

UC-3627

Reach setting for call_segement_facts cron job

This is related to UC-3626 - Create a cron job to execute call_segment_facts


Need a setting in Admin GUI for call_segments_facts cron job execution interval.


Features -> Reach -> Settings


New Setting: Call Segment Data Collection Interval (integer, minutes)

Default Value: 5 minutes

Minimum Value: 5 minutes

Maximum Value: 1480 minutes

Enhancement

UC-3691

openUC rebrand to Uniteme

Added an enhancement to Update login page, Admin GUI and Legacy User GUI to the new eZuce look and feel.


Also, adjust code around tabs in GUI so that they will work on iPad (this from mailing list):


iOS doesn’t handle hover unless the object is clickable. There is a simple solution.


In ie-fix.js, four things must be done:


1. Add a test for ios devices at the very beginning

2. Modify the test, for old ie to also test for ios

3. Add an empty function as a handler for onClick

4. Where the handlers are added for mouseover and mouseout, make that conditional on not ios and if ios add the empty handler for onClick

Enhancement

UC-3697

Default the Sofia Config so that Freeswitch uses SIP Call ID as it's Call ID

Added an enhancement to make freeswitch use the SIP Call ID for it's Call ID. This makes tracing calls through freeswitch easier.


Default the sofia profile (sofia.conf.xml.vm) now contains the following line.


<param name="inbound-use-callid-as-uuid" value="true"/>


This will make Freeswitch use the SIP Call ID for it's Call ID and greatly eases the debug process when trying to find particular calls in the system based on pcap captures.

Enhancement

UC-3700

Default the Sofia Config so that Freeswitch uses SIP Call ID as it's outbound Call ID

This is Admin GUI work related to UC-3697


Under System - Media Services -> two new checkboxes are added :

Preserve inbound call id , Preserve call id on outbound calls - enabled by default.


Default the sofia profile to use


<param name="outbound-use-uuid-as-callid" value="true"/>


This will make Freeswitch to record have same call_uuid as initial leg

Enhancement

UC-3703

Reach Agent using * code cannot end wrap

Added an enhancement to allow an Agent logged in via * code to be able to end wrap up time early.


Currently if an agent is logged in via * code they cannot end wrap up time early if wrap time is configured on the queue that they took a call from.


This ticket is requesting that the wrap time would be ended if the user sends a * code for go available. In this way they could then manually end the wrap mode and return to idle by sending this * avail code.


Example call flow:

Agent logs in via * code

Agent takes a call from a queue that has 300 seconds for wrap

Agent ends after call work that they need to do

Agent dials * code for go available

Reach receives this * code for available, removes the agent from wrap and returns the agent to the Idle state

Enhancement

UW-174

Enable / disable WebRTC menu item in Unite Web by using existing /my/logindetails

Worked on an enhancement that allowed for better and faster implementation of this process:

check if /my/logindetails (requested at the beginning of the session) contains a list of webrtc urls; if it does, show the WebRTC menu item in settings; if it doesn't, don't show it.


=====

No longer valid, but kept for background:

Specify a configuration file & setting that will control the WebRTC menu item in Unite.


This will allow an administrator to control whether users can see this menu item.


Default will be to have WebRTC / 3pcc setting hidden since WebRTC is not installed by default in the system.

Enhancement

SIPX-143

Recreating a region with phones registered results in doubled registrations for same phone (one of them expired)

Fixed an issue with Regions that was caused by recreating a region that had phones registered would result in doubled registrations for each phone with one of them being expired.


Detailed information:

Expired registration was that one with initial shard id.

For the same registration: "200@ddluca.ezuce.ro", we have "shardId" : 1, and "shardId" : 6,


sipxecs:PRIMARY> db.registrar.find({"shardId" : 1}).pretty()

{

"_id" : ObjectId("5450fbc485e6cd2d05dbb5dd"),

"timestamp" : NumberLong(1414593476),

"localAddress" : "10.5.0.171/RegDB::_bindingsNameSpace",

"identity" : "200@ddluca.ezuce.ro",

"uri" : "sip:200@ddluca.ezuce.ro",

"callId" : "7463f4df-35ed9969-232c967f@10.5.0.3",

"contact" : "<sip:200@10.5.0.3;x-sipX-nonat>",

"binding" : "sip:200@10.5.0.3",

"qvalue" : "",

"instanceId" : "",

"gruu" : "",

"shardId" : 1,

"path" : "",

"cseq" : 14,

"expirationTime" : NumberLong(1414595689),

"instrument" : "0004f2871439",

"expired" : false

}

{

"_id" : ObjectId("54524727a75c3916d8c77bbd"),

"timestamp" : NumberLong(1414678311),

"localAddress" : "10.5.0.170/RegDB::_bindingsNameSpace",

"identity" : "200@ddluca.ezuce.ro",

"uri" : "sip:200@ddluca.ezuce.ro",

"callId" : "7d195f23-be10cead-7fe5ebf3@10.5.0.3",

"contact" : "<sip:200@10.5.0.3;transport=tcp;x-sipX-nonat>",

"binding" : "sip:200@10.5.0.3",

"qvalue" : "",

"instanceId" : "",

"gruu" : "",

"shardId" : 6,

"path" : "",

"cseq" : 10,

"expirationTime" : NumberLong(1414678647),

"instrument" : "0004f2871439",

"expired" : false

}


This is not possible because "shardId" : 1 are'n available anymore for server with local address: 10.5.0.171. This server has shardId = 4


[root@defs171 ~]# cat /etc/sipxpbx/mongo-client.ini

connectionUrl=mongodb://defs171.ddluca.ezuce.ro:27017,regone173.ddluca.ezuce.ro:27017,regtwosec174.ddluca.ezuce.ro:27017,defp170.ddadPreferenceTags=

connectionString=sipxecs/defs171.ddluca.ezuce.ro:27017,regone173.ddluca.ezuce.ro:27017,regtwosec174.ddluca.ezuce.ro:27017,defp170.d

clusterId=2

shardId=4

useReadTags=true

logappend=true

port=27017

replSet=sipxecs

enable-driver-logging=true

driver-log-level=5

read-query-timeout-ms=100

write-query-timeout-ms=400

[root@defs171 ~]#


This bug can be reproduced in next scenario:

On a HA setup, 7 nodes cluster - regions setup

Register phone with line 200

Delete regions

Recreate them

In GUI : Diagnostics -> registrations

Expected result:

A single registration

Actual result:

Same registration doubled one available and another one expired.

Fix

SIPX-170

Restore of userProfile collection does not work properly when restoring on the same machine

Fixed an issue caused by restoring data to an existing configured server.


Recreate:

1.Make a backup of your system via System->Backup and save it for upcoming steps

2.Edit an already existing user , for example in my case :

User 1000:

-changed user ID and IM ID from 1000 to 100033

-he did not have first name last name setup so i added something

-he did not have the 3 "Custom" fields filled so i filled them

3.Restore the system to the old backup by going to SYstem->Restore


Expected:

System to be restored and user 1000 to have his original settings


Actual:

User 1000 had user ID: 1000, IM ID: 100033, first/last name empty, Custom fields filled

Verified in mongo and actually all details about user 1000 were as in step 2.


Restoring the backup on a different fresh installed machine did not cause any issues.

Fix

SIPX-179

Unpacked WAR directory explicitly set

Fixed an issue that caused the temp directory where jetty unpacked WAR files to not get cleaned up properly.


sipXcom-users thread regarding this: https://groups.google.com/forum/#!topic/sipxcom-users/bGvupc9xMbo


The temp directory where jetty unpacks the WARs does not seem to get cleaned. When sipxecs is restarted a new directory is created and the old ones are still there.


The current solution we are using is to explicitly set the tempDirectory on production system so they won't fill up the hard disk in time, like so:


<Call name="addHandler">

<Arg>

<New class="org.eclipse.jetty.webapp.WebAppContext">

<Set name="contextPath">/sipxconfig</Set>

<Set name="war"><SystemProperty name="jetty.lib.dir"/>/sipxconfig.war</Set>

<Set name="extractWAR">true</Set>

<Set name="tempDirectory">/var/sipxdata/tmp/sipxconfig</Set>

</New>

</Arg>

</Call>

Fix

SIPX-192

Error in Polycom Soundpoint 3.2.x firmware configuration causes 488 Not Acceptable Here

Fixed an issue when generating Soundpoint 3.2.x configs for Soundpoint IP 650 phones, in the [MAC-ADDRESS]-sipx-sip.cfg file where the codecs were listed with wrong priority order.


In the following examples, a SPIP 650 phone has been configured with G722, G711A, G711Mu and G729AB. Calls sent by a Patton Smartnode are rejected with a 488 Not Acceptable Here message.

Configuring the phone in a 4.2.1 SipXecs server, the configuration looks like the following:

...

<codecs>

<preferences

voice.codecPref.IP_650.G722="4"

voice.codecPref.IP_650.G711Mu="2"

voice.codecPref.IP_650.G711A="1"

voice.codecPref.IP_650.G729AB="3"

/>

...

but in a 15.05 SipXcom server, the configuration is like the following:

...

<preferences

voice.codecPref.IP_650.G722="1"

voice.codecPref.IP_650.G711Mu=""

voice.codecPref.IP_650.G711A=""

voice.codecPref.IP_650.G729AB=""

/>

...

It seems that the first three codecs get an empty string priority value, and the fourth get the number "1".

Configuring a SPIP331 phone with G771A, G771Mu,G729AB codecs, the generated file contains the following lines:

...

<preferences

voice.codecPref.G711Mu=""

voice.codecPref.G711A=""

voice.codecPref.G729AB=""

/>

...

Also in this case the priority order is missing. Anyway, the phone accepts calls.

Fix

SIPX-194

"On the phone" not removed if user offline

Fixed an issue with openfire integration such that if the user goes offline (fox XMPP) during a call and terminates the call prior going back online, the 'On the phone' status message remains stuck

Fix

SIPX-201

Call queue strategy does not have a default set

Fixed an issue with sipXcallqueue where the feature did not have a default queue strategy set.


Reproduce:

1.Enable call queue

2.Click Add Call Queue and enter some name and extension

3.Click Apply


Result:

The Strategy drop-down will be marked with a discontinued rectangle as if the default option was changed.

This happens because of strategy being set to "0":

/etc/sipxpbx/sipxcallqueue/CallQueue.xml

<setting name="strategy"><type refid="type_strategy"/><value>0</value></setting>


Actual:

Default should be ring-all strategy as the web ui shows

Fix

SIPX-202

Agent level/position default to 0

Fixed an issue sipXcallqueue where the Agent level/position was not set to 0.


Reproduce Setup:

- call queue feature enabled

- Queue Q1 created

- Agent A1 created


Reproduce Steps:

1.Assign Agent A1 as a member of queue Q1 : click Set Queue Membership and select Q1.


Expected:

Call queue PRD doc says it should default to 1.


Actual:

Agent Q1 is assigned to Q1 but his level/position default to 0.


"level – Administrator will be able to specify a level (tier) of an agent within each queue. Default to '1'.

position – Administrator will be able to specify a position of an agent within each queue. Default to '1'."

Fix

SIPX-205

Certificate Authorities not deleted from server on delete

Fixed an issue where Certificate Authorities are not removed when deleted from GUI.


Reproduce:

1. Create a new CA using:

> req -new -x509 -nodes -sha1 -days 365 > host.crt

2. Go to System -> Certificates -> Certificate Authorities

3. Upload Certificate Authority host.crt created at step 1

4. SSH to the server and check the saved file name:

ls -l /etc/sipxpbx/ssl/authorities/host.crt.crt

-rw-r--r-- 1 sipx sipx 993 Apr 18 12:19 /etc/sipxpbx/ssl/authorities/2. Go to System -> Certificates -> Certificate Authorities

3. Upload Certificate Authority host.crt created at step 1

crt

5. Go to System -> Certificates -> Certificate Authorities

6. Delete host.crt

7. SSH to the server and check that the file was deleted


Possible security issue.

Fix

SIPX-206

Certificate Authorities uploaded with .crt.crt extension

Fixed an issue that caused new Certificate Authorities that were uploaded to sipXcom server to have a .crt.crt extension.


Reproduce:

1. Create a new CA using:

> req -new -x509 -nodes -sha1 -days 365 > host.crt

2. Go to System -> Certificates -> Certificate Authorities

3. Upload Certificate Authority host.crt created at step 1

4. SSH to the server and check the saved file name:

ls -l /etc/sipxpbx/ssl/authorities/host.crt.crt

-rw-r--r-- 1 sipx sipx 993 Apr 18 12:19 /etc/sipxpbx/ssl/authorities/host.crt.crt

Fix

SIPX-211

Bria phone does not register with TLS - account partially enabled

Fixed an issue where Bria cannot register with TLS.


Also, sipx certificate authority needs to be added in the cert authority list client side (if the cert authority is not present on bria machine - most likely is not present if the internal sip certificate generated by sipxcom is used): Example on how to do that when Bria is installed on a windows machine:

http://windows.microsoft.com/en-us/windows-vista/view-or-manage-your-certificates


Bria tech support doc related to SIP TLS:

https://support.counterpath.com/topic/how_do_i_use_certificates_for_tls

Fix

SIPX-215

Yealink config generation fails

Fixed an issue with the Yealink plugin that caused phone configurations to not be created properly.


https://groups.google.com/forum/#!msg/sipxcom-users/oOWRSzSy9ro/8f8X1TbuAdsJ


Projection for: 7/7/15 12:23 PM 7/7/15 12:23 PM Failed Invocation of method 'getTftpServer' in class org.sipfoundry.sipxconfig.phone.yealink.YealinkPhone threw exception java.lang.NullPointerException at yealinkPhone/config_v7x.vm[line 2, column 28]

Fix

SIPX-217

Fix text on Phone and Phone Group Pages

Fixed the text on the Phone and Phone Group pages to reflect that now the 'Profiles template version' is now the Group Firmware version.


The setting label should change to such.


Also the text under that box should read:

Changes the group firmware will affect all phones in the group. If you require different firmware for different phones please use additional group to manage the firmware. NOTE: If phones are present in multiple groups, with different versions, the last group in the list of phone groups takes precedence.


The help text to the right should read:

NOTE: Changing the group firmware WILL set all of the phones in the group to that firmware version.

Fix

SIPX-218

Call Queue no longer working after enabling/disabling other services

Fixed an issue with sipXcallqueue that caused sipXcallqueue to not work properly when other services were enabled or disabled.


Reproduce Setup:

Single node setup

Call Queue enabled and configured.

When enabling/disabling other services, callqueue document configuration gets modified in mongo, causing lack of functionality.


Reproduce Steps:

1. Enable Call Queue

2. Add Call Queue : name 5 extension 555

3. Click Apply

4. Check in mongo :

mongo imdb

sipxecs:PRIMARY> db.entity.find({"ent":"callqueue"}).pretty()

{

"_id" : "CallQueue8",

"ident" : "555@stefan.ezuce.ro",

"vld" : true,

"ent" : "callqueue",

"als" : [

{

"id" : "5",

"cnt" : "sip:555@10.4.0.104:15060",

"rln" : "callqueue"

},

{

"id" : "555",

"cnt" : "sip:555@10.4.0.104:15060",

"rln" : "callqueue"

}

]

}


5. Call Queue extension and check functionality - it does

6. Enable/disable a telephony service(eg: Authorization Code)

7. After configuration deployment check again in mongo :


sipxecs:PRIMARY> db.entity.find({"ent":"callqueue"}).pretty()

{

"_id" : "CallQueue8",

"ident" : "555@stefan.ezuce.ro",

"vld" : true,

"ent" : "callqueue",

"als" : [ ]

}


8. Call Queue extension again and check functionality.


Issue:

Call to Queue extension does not connect.


Workaround:

"Apply" on the Callqueue page fixes this issue.

Fix

SIPX-219

Fix special german chars errors

Fixed an issue that caused codepage related errors for special chars (like german umlaute).


See https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/sipxcom-dev/v_sxd5XZAdY/SL5wpzL7akwJ

Fix

SIPX-222

SipXBridge Shared Memory Error Causes Unintended RTP Port Change and One Way Media

Fixed an issue where in some cases, following re-invites, sipXbridge will change its RTP port and thereby cause one-way media.


The root cause is a memory share error in RtpReceiverEndpoint.setSessionDescription():


Old (note original comments removed):


// OnRelay: problem is 'sessionDescription is assigned, not copied, and subsequently reused and modified by the caller.

this.sessionDescription = SipUtilities.cleanSessionDescription(sessionDescription);


this.sessionDescription.setOrigin(origin);


SipUtilities.fixupSdpMediaAddresses(sessionDescription, address, this.getPort());


Fixed:

sessionDescription = SipUtilities.cleanSessionDescription( sessionDescription );


sessionDescription.setOrigin(origin);

SipUtilities.fixupSdpMediaAddresses(sessionDescription, address, this.getPort() );

// OnRelay: Ensures a correct clone of the sessionDescription is assigned after all necessary changes

this.sessionDescription = SipUtilities.cloneSessionDescription(sessionDescription);

Fix

SIPX-223

Exception when adding PSTN line to Audiocodes type of gateways

Fixed an issue that caused a GUI error to be thrown when adding a PSTN line to an Audiocodes Gateway.


Reproduce Steps :

1.Go to Devices Gateways and from the menu add any of the Audiocodes gateways

2.Edit the added gateway and go under PSTN Lines

3.Click Add PSTN line link


Issue : an error is displayed

This happens to all the Audiocodes gateways

(After reconnecting to Admin Portal, you can see the line was actually added)

Fix

SIPX-232

sipxconfig SOAP API not working if no internet connectivity

Fixed an issue with spring framework that caused the SOAP API to not work if the server had no Internet connectivity.

Fix

SIPX-30

Queue calls continuously offered to unregistered agents causes freeswitch flooding

Resolved an issue that caused freeswitch and sipxproxy services will start consuming some CPU

(with 4 agents ~ 15-20 %)


After a short while, freeswitch.log will indicate some problems:

[CRIT] mod_sofia.c:4268 Error Creating Session

[CRIT] switch_time.c:1227 Over Session Rate of 30!

[CRIT] switch_core_session.c:2350 Throttle Error! 3


Recreate:

Sofia status shows 3-4 calls in Running state during this test..


1.Enable call queue and use the default settings.

2.Add a queue

3.Assign a couple of agents to this queue and make them Available

4.Don't register the agents on actual phones.

5.Call the queue extension from some number.



Workaround:

Don't leave unregistered agents in Available state - log them out..

Fix

SIPX-31

Call queue call timeout does not work anymore

Resolved an issue where an agent is alerted but the call keeps alerting him after 15s as well.


Expected:

Call to be passed to the other agent after 15s


Reproduce:

1.Enable Call queue service

2.Queue already added with ring strategy set to Ring agent who has been idle the longest.

3.Agents 2012 and 2048 are already created and assigned to queue 557 and they have Call timeout field set to 15 seconds

4.Call the queue and wait in queue for call timeout to be reached


Agents 2012 and 2048, queue 557 configs from fS_cli :

agent-2012|single_box||callback|sofia/1410setup2.cristi.ezuce.ro/2012@1410setup2.cristi.ezuce.ro;sipx-noroute=VoiceMail;sipx-userforward=false;sipx-expires=15|Available|Waiting|0|0|0|0|0|1428425823|1428425824|1428425819|1428329584|0|13|246|1428328703


agent-2048|single_box||callback|sofia/1410setup2.cristi.ezuce.ro/2048@1410setup2.cristi.ezuce.ro;sipx-noroute=VoiceMail;sipx-userforward=false;sipx-expires=15|Available|Waiting|0|0|0|0|0|1428425779|1428425786|1428425772|1428321960|0|16|201|1428328667


queue-557|longest-idle-agent|/var/sipxdata/mediaserver/data/moh/suite-espanola-op-47-leyenda.wav|queue|true|10|true|true|60|false|0|0|5|

Fix

SIPX-39

Expiration timer could not be changed under Huntgroup --> Call Sequence

Fixed an issue with changing the expiration timer for a Hunt Groups did not work properly.


If you try to change expiration timer on anyone of the extensions in a Hunt Group you will receive "Changes applied successfully." message but the values are not changed.

Fix

SIPX-43

Freeswitch rtp timeout causes MoH to stop after 5 minutes

Fixed an issue with long duration MoH. When a user was put on hold, MoH feature would stop playing the music after 5 minutes.

Fix

SIPX-54

Cannot add simple speed dial or BLF on the Yealink phone

Fixed an issue with Yealink phone configuration that did not allow the administrator to add a simple Speed Dial or BLF key.


Recreate:

Go into Admin Portal to Users->"200" -> Speed dials and try to add speed dials here followed by a Send Profiles (or doing this via the User Portal)

Fix

SIPX-55

Both PCMA and PCMU are marked as G711 in the Yealink profile

Fixed an issue with the labels for PCMA and PCMU G.711 Codecs.


Recreate:

Under Device -> Phones -> "Yealink phone" -> Line -> Codecs there is no way of telling which codec is G711 U-law and which is A-law since both are named G711.

Fix

UC-2436

Alias field stack overflow

Customer had 206 aliases on one user at 10 characters each. Attempting to remove one of them resulted in an internal error being displayed on the page. The problem was described as a regular exp pattern trying to validate the field which enters in a loop with so many chars.

Fix

UC-2507

Missing 'Remote Station ID' causes FAX IVR processing null pointer exception

Looks like remote station id missing and causing issue


Amended code to handle scenarios when fax is not successfully received.


The error was not from missing remote station id (that case is handled in FaxProcessor.java:147), but from null "faxReceive" object when failing to receive fax.


This fix ensures that in case fax to email fails to work, instead of displaying a null pointer exception log message in sipxivr.log , an error is displayed with proper reason of failure.

Fix

UC-2891

Proxy should look for X-sipX-AuthIdentify also in To header

Addressed an issue caused by Grandstream's non-compliant REFER mechanism.


This issue was found while investigating a customer issue.


The caller phone Grandstream is not compliant to REFER mechanism because it did not encode X-sipX-AuthIdentify as a separate header. It put it in the To header

To: <sip:999@sip.domain.com.co?X-sipX-Authidentity=%3Csip:~~ac~1%40sip.domain.com.co%3Bsignature%3D537E21F2%253A%253A54df707414b7c7c5f08bed08a0992f80%3E&REFERENCES=1661133853-5060-4%40BHC.BH.B.BJI%3Brel%3Drefer>;tag=as6f6ba4a4


However the authentication succeeded for the referred call because the caller knew how to authenticate.

We could overcome this limitation of some phones by looking for X-sipX-AuthIdentify in also in To header.

Fix

UC-3236

Clean up small files that are left in directory that don't get uploaded because there is not actual voicemail.

Fixed an issue where if a message left is less than 1 sec then it is not considered a true VM and needs to be deleted. There were small files that were created that were not being cleaned up properly.

Fix

UC-3259

max_forwards set too low for call queue

Fixed an issue where if a call passed through sipXcallqueue the max forwards would get set too low.


Reproduce:

1. Place call into SipXcallQueue from outside world

2. Get an agent

3. Have agent park call... unpark call.. then park call again


Default value for calls originated from Call Queue is now 70.

Fix

UC-3502

IVR Launched from Reach Recipe Cannot Collect Digits

Fixed an issue with collecting DTMF digits from within an IVR script launched from a Reach recipe step.


Freeswitch appears to have a limitation whereby collecting and acting on DTMF digits does not work consistently.


To recreate, build a reach queue that has a recipe step that calls the attached script (e.g. tick = 10; runivr). Call the queue and let the script get called out.


This is a problem for the customer because as they required the use of an IVR script to

a) play in queue media in a specific language since calls for multiple languages share the same inbound queue

b) their call flow requires prompting a user (in language) for leaving a voicemail or continuing to hold

Fix

UC-3533

Reach service does not start after restart

Fixed an issue on machines running Reach that prevented the Administrator from restarting the Reach services.


Reproduce:

On a machine running reach, issue a : service reach restart


Reported issue:

Reach service will stop and will not start


Workaround : service reach start

Fix

UC-3538

Config for mod_say is incomplete

Fixed an issue with freeswitch's mod_say module that was caused by an incomplete configuration.


The proper proper package / build / configure for it is now included with the base install of freeswitch.

Fix

UC-3558

Transfer/Conference widget missing during call back

Fixed an issue that caused the Reach Transfer/Conference widget to be missing in the Agent Dashboard.


Used a cluster with services enabled as in the attached photo.

Also Reach is enabled only on Primary server .

Server config is taken from openuc.ezuce server.(very similar)

Line config photo is also attached.


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.He can see the Transfer/Conference widget.

5.Client is called back and he answers


Issue:

In the agent dashboard,the Transfer/Conference widget is missing.

Fix

UC-3568

Improve Bria provisioning from openUC

Fixed some issues with Bria provisioning with newer versions of Bria.

Issues included:

1. Bria 4.x although could retrieve .ini file its provisioning support is limited

2. Bria 3.x could import .ini file but some parameters were different from the ones set on openUC configuration page (ex. Transport was set as UDP and on Bria was showed as Auto)

3. fix phone settings provisioning (the issue was that e911 location setting and deviceLimit settings were generated in the provision file *.ini

these are removed now)

4. fix audio/video codecs view

5. added remaining Bria 3.5, 4.1 phone settings

6. add line settings for bria 3.5 and 4.1 support

7. add generic phone preference settings for bria 3.5 and 4.1

Fix

UC-3577

zen 3973 : 14.04 to 14.10 upgrade did not update call park orbit locations

Fixed an issue with upgrades from 14.04 to later versions that caused Park Orbit locations to not be updated.


Issue:

After the upgrade the webui would crash if you attempted to navigate to features -> call park. Attempted to send server profiles to correct and IMDB generation also failed due to this missing location.

Fix

UC-3585

Page crash when clicking Apply on user group -> hoteling tab

Fixed an issue with the Hoteling configuration within a User Group that caused an exception in the Admin GUI.


Reproduce:

1.Enable Hoteling service

2.Go to an user group under Hoteling tab

3.Click Apply on this page (or enable the hoteling checbox then apply)


Issue:

Page will crash with exception


If you enable the hoteling checkbox and then hit apply the page will crash but the setting will still be applied.

Fix

UC-3613

Cannot generate Agent productivity and Agent Group productivity reports

Fixed an issue with Reach Agent Productivity and Agent Group Productivity reports that caused them to not be generated.


Reproduce:

After placing a few calls i tried generating those two reports via a supervisor dashboard and it did not work.

You click generate and nothing happens.


Verified in mongo as well :

sipxecs:PRIMARY> use reach_reports

switched to db reach_reports

sipxecs:PRIMARY> show collections

active_call_segments

agent_report

call_segment_facts

cdr_migrations

events

system.indexes

sipxecs:PRIMARY> db.agent_report.find()

sipxecs:PRIMARY> db.agent_report.count()

0


No useful logs to attach

Fix

UC-3619

Voicemail backup fails if media server is not running mongo

Fixed an issue with a clustered system that has multiple media servers but not all of them are running mongodb. The voicemail backup seems to die each time it attempts to connect to a server (which is not running mongo). Backup log attached.

Fix

UC-3620

REST API activecdrs Problem in 14.10 Update1

Fixed an issue with the activecdrs REST API.


This was caused by release 14.10's use of JDK 7 (release 14.04 uses JDK 6) and for XML-Java marshaling we use xstream version 1.3.1.

Fix

UC-3648

zen 4499 : system -> licensing shows "unlimited" unite mobile w/o license loaded

Fixed an issue on Licensing page where on a fresh install 15.05 without a license file loaded the webUI would report "unlimited" unite mobile licenses. Changed this to report "No license provided".

Fix

UC-3658

Wrap Mode Broken for Reach Agent Logging in with * code

Fixed an issue with Reach Agents that are logged in using the * code method that caused their Wrap Mode to not work properly.


If agent logs into Reach via the * code method rather than through the agent UI, wrap timers do not get applied to the user as they should. Instead, the user goes straight back to IDLE regardless of how the wrap settings are configured.

Fix

UC-3661

Last digits in the Live Attendant dialed number getting truncated if they are already used in the prefix

Fixed an issue that caused users to not be able to enable / disable Live Attendant when too many digits were entered.


Related to SIPX-115


Reproduce:

System > Dialplans > Dialing Rules > AutoAttendant :


Enabled : Yes

AutoAttendant Extension : 360603

Enable live attendant : Yes

Live attendant extension : 36060000

Enable / Disable PIN : 3606


User 201 with 2 speed dials enabled :


DayAttLive : *67 + 360603 + 3606 (enable Live Attendant)

NightAttLive: *68 + 360603 + 3606 (disable Live Attendant)


Reported Problem :

When the speed dial buttons are being used the IVR is producing unsuccessful tones.

An examination of sipxivr.log showed that the last digit from the Live Attendant PIN number was being truncated part way through the ivr processing of the request, regardless of the number of digits contained by Live Attendant PIN.


If the last digits of the PIN number used, are also contained in the prefix for the Enable/Disable Live Attendant they get truncated ( e.g in this case was '6' - PIN 360*6* prefix **6*7)


"2015-06-09T13:37:34.158000Z":9444:sipXivr:DEBUG:test.stefan.ezuce.ro:Thread-154:00000000:sipxivr:"LiveAttendantManagement:run for*673606033606"

"2015-06-09T13:37:34.158000Z":9445:sipXivr:DEBUG:test.stefan.ezuce.ro:Thread-154:00000000:sipxivr:"LiveAttendantManagement:run dialed number360603360 action true"

"2015-06-09T13:37:34.183000Z":9446:sipXivr:INFO:test.stefan.ezuce.ro:Thread-154:00000000:sipxivr:"RestfulRequest::request PUT to http://10.4.0.101:12000/sipxconfig/rest/auto-attendant/livemode/360603360 response: 404"

Fix

UC-3665

Error not handled in freeswitch_ring_transient

Fixed an issue in Reach that was thrown by freeswitch_media under load testing.


During the load testing we noticed the following error:


2015-06-11 22:45:23.474 [error] emulator Error in process <0.3847.0> on node 'reach@openuc.evo.upjs.sk' with exit value: {{try_clause,{error,"-ERR Invalid uuid\n"}},[{freeswitch_ring_transient,'-handle_event/4-fun-7-',4,[{file,"src/freeswitch_ring_transient.erl"},{line,130}]}]}


It is thrown by the freeswitch_media module if the bridge between the two call legs could not be done, while handling the call answer.


In freeswitch_media:handle_answer/5:

freeswitch:api(State#state.cnode, uuid_bridge, CallId ++ " " ++ RingUUID)

Fix

UC-3668

Voicemail Backup not executed when multiple choices checked : Configuration, CDR, Voicemail

Fixed an issue with manual backup routine when multiple backup choices were checked.


Reproduce:

Cluster with 3 nodes: primary, secondary, arbiter.

Primary node running Mongo.

Media services running on secondary node.

In admin GUI under System > Backup > Locally Backups > Files 3 options are available : Voicemail, Configuration, CDR.


Reported Problem :

When trying to manually generate a server backup and selecting Voicemail in combination with Configuration, CDR or both options, the archive voicemail.tar.gz doesn't get generated.


When selected in a single-handed manner, the archive is generated successfully.


Log files attached when all 3 options are checked.

Fix

UC-3670

Freeswitch media crash when the caller number is undefined

Fixed an issue with Reach that was caused by undefined caller numbers.


A customer was routing calls into reach with the caller number as undefined. This case was not treated properly in Reach side.

Fix

UC-3671

Agent released during load test

Under heavy load testing for Reach with many calls terminated while in queue Agents could be forced into Released Mode.


Leveraging a SIP load tester we reproduced the following:

Sip tester will send calls to an openuc reach line number at intervals of 170ms, one or two calls at a time,concurrent calls being maximum 2.

I created 3 agents which were manually logged in their dashboards and set to available.

These agents are using as endpoints, 3 Ekiga softphones with Auto answer enabled - so they can answer on their own (the only free softphone i found able to do this)

I started the tool and after a number of calls,in this specific case for which i am attaching logs was about 500 calls,two of the agents were set to released automatically.

Repeating this scenario a few times agents got released one or two at a time after any number of calls (15,50,100...did not seem to matter)


In the attached archive there are reach,proxy,freeswitch logs on debug and pcaps from each pc where ekiga was running .

The failed calls are at the end of logs, when i stopped the test because agents got kicked out.

(in 5002-agent-released-onlySip.pcap,the last call is the one with the problem :

sip.Call-ID == "a95a5b0a-8f8b-1233-d0b3-2e5885079c6b")

Fix

UC-3675

Admin cannot access Phones without Features:Phonebooks permissions added

Fixed an issue with Admin roles that didn't allow the Administrator to access Phones page without Phonebooks permission added.


Reproduce:

1. Add user 200 in the admin group

2. Create a new admin role under Users->Admin roles

Add user 200 as admin in role.

Set permissions for this role : Devices:Phones/PHone groups - Edit & Read,

User: Users/User Groups : Edit & Read

Save

3. Logout from admin portal and login with user 200

4. Click one of the phones to access the phone page


Expected:

With the above permission,admin should be able to enter the phone profile


Actual:

Permission denied.


Workaround:

Add permissions Features:Phonebook Edit/Read

Fix

UC-3678

cfengine doesn't know which voicemail node created backup archive

Fixed an issue with collecting voicemail backup from servers other than the Config server.


cfengine wasn't aware which server the voicemail archive was created on. /var/sipxdata/cfdata/archive.cfdat defines all voicemail hosts, and though the voicemail archive was created on a different server, backup_collect tried to pull from 192.16 (see attached voicemail_selection.png).

Fix

UC-3680

Services no longer visible after changing SNMP community string

Fixed an issue caused by changing the SNMP community string that caused the System -> Servers -> Services page to not work properly.


Reproduce:

1. Change Diagnostics->SNMP->Community string to something new

2. Go to System->Servers->click a server->Services


Issue:

Services are not displayed.


From config.log

"2015-06-26T07:06:23.160000Z":426:JAVA:INFO:primary.1410setup2.cristi.ezuce.ro:qtp628560642-23:00000000:ProcessSnmpReader:"Connecting to 10.2.0.171 to get SNMP information"

"2015-06-26T07:06:33.162000Z":427:JAVA:ERR:primary.1410setup2.cristi.ezuce.ro:qtp628560642-23:00000000:ServicesTable:"Could not get SNMP data"

Fix

UC-3681

Reach line problem when mapping to the dialplan

Fixed an issue that caused the Delayed Answer Supervision to not function correctly.


A Reach line has the following answer supervision mode:

- Immediate answer supervision: call is answered immediately by freeswitch

- When OpenUC Reach receives call: call is answered immediately by erlang code

- Delayed answer supervision: call is answered when an agent actually picks up the phone


When config maps the reach line in the dialplan ("/var/sipxdata/cfdata/1/dialplan/sipX_context.xml") there is an extra "<action application="answer"/>" in the reach line definition, which makes the last option (Delayed answer supervision) not function correctly, because the call will be answered by freeswitch immediately.


The mapping of a reach line should look like this for each option:

- Immediate answer supervision:

<extension name="testLine">

<condition field="destination_number" expression="^2001$">

<action application="answer"/>

....

- When OpenUC Reach receives call:

<extension name="testLine">

<condition field="destination_number" expression="^2001$">

...

- Delayed answer supervision:

<extension name="testLine">

<condition field="destination_number" expression="^2001$">

<action application="set" data="erlang_answer=false"/>

....


Notice that in the first option we answer with freeswitch "answer" app, the second answer has the default "erlang_answer=true" (does not need anything in the dial plan), and in the third option we need to set "erlang_answer=false".

Now, the problem is that in all those cases we have the extra "<action application="answer"/>" which overrides everything.

Fix

UC-3685

vCard instead of VCARD for exported phonebooks

Fixed an issue with vCard export for Bria 4 that caused it to be able to utilize the contacts from the system.


We can export phonebooks from openUC as .vcf and then import them into Bria softphone.


Issue: But we export them using "vCard" keyword:

BEGIN:vCard

END:vCard


When you import the .vcf file with contacts into Bria, no contacts will be imported.


Workaround:

You have to change "vCard" to "VCARD" and then contacts will be imported.


From vCard RFC (https://tools.ietf.org/html/rfc6350#page-28) is not very specific about this.

"3.3. ABNF Format Definition

The following ABNF uses the notation of [RFC5234]

...

vcard-entity = 1*vcard

vcard = "BEGIN:VCARD" CRLF

"VERSION:4.0" CRLF

1*contentline

"END:VCARD" CRLF

; A vCard object MUST include the VERSION and FN properties.

; VERSION MUST come immediately after BEGIN:VCARD."


There's a possibility other application will not recognize our exported .vcf files.

Fix

UC-3687

Failed job after send profiles on Unite Mobile devices

Fixed an issue with Unite Mobile and sending profiles if no Video code was selected.


Reproduce:

Happens with all Unite Mobile profiles in 15.08 when no Video codecs are selected.

Old or new profiles.

Just Send Profiles.


Workaround:

Problem seems to be caused by the default Codecs->Video settings

There is no Video codec selected.

If you want to click apply on the codecs page , you are prompted : "You must enter a value for null." ...

Add a video codec to the selection then Apply.

Send Profiles.

Fix

UC-3698

Reach agent not put to released when ring timeout is exceeded

In testing we found a case where the agent is not set to released even though the agent was rang for the subscribed amount of time and did not answer the call.


This appears to be perhaps related to the agent state being pre-ring rather than ringing but this is yet to be determined.


We determined that we do not want to put an Agent to released if a call is canceled to the agent while in pre-ring. Also we have added a method to handle the stop message received by the agent channel while on prering state.

Fix

UC-3714

Internal Error when Adding PSTN to Audiocodes Mediant 1000 Gateway

Fixed an issue that caused a GUI exception to be thrown when attempting to add a PSTN Line to an Audiocodes Mediant 1000 PRI gateway profile.

Fix

UC-3735

15.06 some iptables udp rules are incorrect

Fixed an issue with firewall configuration that had incorrect configuration information for ports 5170 and 5160 UDP


Notice UDP is actually looking for TCP :


ACCEPT tcp -- anywhere anywhere tcp dpt:5170 state NEW,ESTABLISHED /* saaTcp */

ACCEPT tcp -- anywhere anywhere tcp dpt:5170 state NEW,ESTABLISHED /* saaUdp */


.. and


50 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:5160 state NEW,ESTABLISHED /* pageUdp */


I noticed on 14.04.4 the UDP 5170 is incorrect but I don't see one for page 5160, only pageRtp port 8500.

Fix

UC-3737

Update help link in webui

Fixed the Help Link in the Admin GUI to point to the new customer support portal page.


The "? Help" link found in the top-right corner of the openUC webUI currently points to ..


http://www.ezuce.com/services


.. which currently results in a 404 (link was valid in 2012). Laurent suggested this should be updated to :


https://ezuce.com/customer-support-portal/

Fix

UC-3750

GRUU problem in 15.06

Reverted a commit that broke GRUU when utilizing the WSS transport

Fix

UW-255

Cannot see profile when I click on avatar in activity list or contacts view

Fixed an issue when running UniteWeb on Chrome on iOS tablet

Fix

UC-3743

Document Limitation in Reach User Profile - Can't control trans/conf for outbound

Document the following for the 15.08 release notes:


Our permission profiles currently don't control what can be done through the outbound call widget .

I am mainly referring to being allowed to transfer calls or make conferences via the outbound widget.

The existing permissions like Transfer/Conference to Agent/Number apply only to inbound calls.


Currently you can only make the outbound widget available or unavailable and that's it.


Ticket uc-3727 was opened for the bug

Ticket uc-3728 was opened for addressing a fix when outbound functionality is rewritten in 15.10.

Known Issue

UC-3616

Proxy/SAA should instruct the phone to send the call-pickup through proxy

As seen in the UC-3500, in case of call pickup of a shared line, the phone is sending the INVITE w/ replaces to the 2nd phone w/o using proxy and this will simply break in cases when the phones can't communicate directly (i.e. TLS, NAT, ...).


We are working on a proper way of fixing this by either updating proxy or SAA.


The effects phones where BLA is required across different subnets.


Workaround: Configure phones with outbound proxy setting pointing to config server.

Known Issue

SIPX-278

MoH not working when phone behind NAT

There was an issue discovered when there are remote phones behind NAT MoH does not work between the remote phones if using the integrated media relay (internet calling).  This does not replicate on setups where servers and phones are on the same network (no NAT).  This does not replicate for external callers.


To replicate:

Server is installed in AWS (behind NAT)

Phones are behind their own NAT.

Known Issue

SIPX-310Problem receiving faxes in 15.06 and later & sipXbridge Specs ViolationDuring a T.38 re-INVITE sipXbridge strips a custom payload from the m line sent by FS. The resulting m-line has no payload at all which of course is a syntax error. This seems to be a direct result of the regression pointed out here: https://freeswitch.org/jira/browse/FS-6954

This may cause SBC's that don't pass the m-line in SDP to not be able to receive faxes. 
Known Issue