Summary
New Features:
Call Back on Busy
Utilize MongoDB TTL Feature on Documents to time out Registrations and Subscriptions
More efficient handling of SIP CANCEL requests
Define a call queue exit key in sipXcallqueue
Set outbound SIP Port for Voicemail dial plan to aid with Exchange Voicemail configuration
Enhancements:
Marshal notifies with 180 for call transfers to be converted to a 100 trying
Allow for longer re-transmits of SIP UDP and TCP packets
Yealink phone enhancements / fixes
Configurable number of digits to be collected by Auto Attendant
LDAP Alarms if problems occur during normal operation
Who Should Install?
This release is recommended for all 4.6, 14.XX and 15.XX installations.
New Installs
A new ISO is available for 15.08 at: http://download.sipxcom.org/pub/sipXecs/ISO/
Update
To update please edit your /etc/yum.repos.d/sipxecs.repo file and reference the new download server (download.sipxcom.org). The repo should look as follows:
[sipXcom]
name=sipXecs software for CentOS $releasever - $basearch
baseurl=http://download.sipxcom.org/pub/sipXecs/15.08/CentOS_$releasever/$basearch
gpgcheck=0
To edit this file, login to your sipX server as root and then use either vi or nano (easier).
vi /etc/yum.repos.d/sipxecs.repo
or
nano /etc/yum.repos.d/sipxecs.repo
Once the repo file is modified, run:
yum clean all
yum update
Issues Addressed
JIRA ID | JIRA name | RN Content | Enhancement/Fix/Known Issue |
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. 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 |
SIPX-186 | Adapt the code for subscriptions | This issue is part of SIPX-185. Subscriptions should be able to be expired by mongo TTL feature | New Feature |
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 | New Feature |
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 | New Feature |
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 | New Feature |
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(). | New Feature |
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(). | New Feature |
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 break away option. This is part of the freeswitch call queue functionality you currently use its 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-15 | Garbled Moh: 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-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 setup. The enhancement allows configuration of retranmits 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 Minium 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 Polycoms) 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-132 | When 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 proxy | Added an enhancement to allow the registrar to sign the 302 contact with the real user account instead of an Alias (if the alias was used). Log detail for issue: 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 "" | 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 relys 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-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 |
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 |
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" fileds 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 i restart sipxecs a new directory is created and the old ones are still there. I've tried using the persistTempDirectory but came to the conclusion that this is only available since jetty 9.1+. (https://wiki.eclipse.org/Jetty/Reference/Temporary_Directories) Is there any way to clean up old unpacked war directories? I could ofcourse write a nasty hack for the init.d script, but i'm hoping there is a better solution. "" "" Well, i tried setting the 'persistTempDirectory' in the sipxconfig-jetty.xml file but to no avail. The current solution we are using is to explicitly set the tempDirectory on production system so they wont fill up the harddisk 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> "" Attached is a patch which fixes this 'bug'. | 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 effect 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-inivtes, 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. Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/services-servlet.xml]; nested exception is java.net.ConnectException: Connexion terminée par expiration du délai d'attente at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:409) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:335) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:216) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:187) at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125) at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94) at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129) at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:540) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:454) at com.workingmouse.webservice.axis.SpringAxisServlet.createWebApplicationContext(SpringAxisServlet.java:279) at com.workingmouse.webservice.axis.SpringAxisServlet.initWebApplicationContext(SpringAxisServlet.java:214) at com.workingmouse.webservice.axis.SpringAxisServlet.init(SpringAxisServlet.java:97) at javax.servlet.GenericServlet.init(GenericServlet.java:244) at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:582) ... 42 more | Fix |