Issue ID | Sev | Problem Description | Resolution |
---|
SBX-92114 | 3 | Calculated the size of a buffer as too small and error logs were being generated post upgrade. Impact: Removes this incorrect log message: SipsRedGetCallControlSizeCmd() Minor .SIPSG: *SipsRedMirrorCallControlCmd: Potential for buffer format ERROR. Available:16076 Calculated:383 Packed:277 Root Cause: This message is logged incorrectly when the code is calculating the size for a Redundancy message. Steps to Replicate: The steps cannot be replicated. | The code is modified to remove this incorrect log message: SipsRedGetCallControlSizeCmd() Minor .SIPSG: *SipsRedMirrorCallControlCmd: Potential for buffer format ERROR. Available:16076 Calculated:383 Packed:277 Workaround: N/A |
SBX-102629 | 2 | PRS process memory leak for object based messages. Impact: There was a slow memory leak in PRS. Root Cause: Object based messages are not properly being deallocated. This leaked both fm fault notifications and fp stats request messages. Steps to Replicate: Overtime watch PRS memory size increase. | The code is modified to properly free the messages. Workaround: No workaround. |
SBX-102115 | 2 | The SBC modifies the Replaces parameter with the wrong Call-ID and tags if the Replaced call was looped back to the SBC through a SIP Proxy that does not modify SIP Call-ID and tags. Impact: Relay a refer with replaces for loopback call, the SBC picks up the wrong call leg.
Root Cause: The SBC query for the replaces callId, and found matching both legs (loopback).The SBC pick up the wrong leg. Steps to Replicate: This is specific to customer call flow. | If loopback is detected, only pick the one with to-tag match local-tag. This is per RFC-3891, section 3. Workaround: N/A |
SBX-103281 | 2 | The Route data lost after the offline PM upgrade from 625R0 to 823A13. Impact: The special character data was not getting migrated to postgres version.
Root Cause: The special character was causing issues with the Postgres data loading.
Steps to Replicate: - Created 100+ routes that have special chars in its DN in 625R0.
- Upgraded to 823A13 through the PM offline upgrade.
- After an upgrade, all route data was lost while other data are unaltered.
- System is up and services are running but no clue of route data.
| The code is modified to escape the special characters. Workaround: No workaround. |
SBX-100910 | SBX-103367 | 2 | Portfix SBX-100910: A CE_2N_Comp_CcsP coredump is seen in SWE after disabling the interface. Impact: A CCS Process coredump was observed due to a healthcheck failure. This occurred while the software was establishing a connection to the third-party software serf, which it starts up to detect and communicate with other nodes in the cluster.
Root Cause: The healthcheck failure occurs when a software object does not respond quickly enough to a health check message. This occurs because the software was waiting for serf to finish starting up and did not respond to the message in time.
Steps to Replicate: Stop/start the SBC with the networking down or disable/enable the interfaces on a running system. These steps will trigger the code to start up serf and reconnect to it.
| The code is modified to introduce a new timer for when the serf is started up, to allow the software to remain responsive to other messages. As an added precaution, healthchecks are temporarily disabled while connecting to serf, to avoid any chance of a healthcheck failure. Workaround: N/A |
SBX-101803 | SBX-103382 | 2 | Portfix SBX-101803: The SBC is not sending a 400 Bad request for the From tag length more than 272. Impact: The SBC is not sending a 400 Bad request when the From tag has length more than 272, though the logs show 095 07132020 161318.327763:1.01.00.45444.Info .SIPCM: *SipsParseMessage: from tag too long. Root Cause: As part of SBX-89384 fix, the SipCmSendIncomingPduUind is modified to add a dscpValue. But in the case of a SIP parse failure, while calling the SipCmSendIncomingPduUind in SipCmProcessRemotePdu, the DSCP value is wrongly placed in the position of receiveFlags. The receiveFlags is setting the value of the DSCP, which is 46, enables the SIP_AKA_SECURITY_ENABLED and the value of receiveFlags is wrongly given to the cmFeFlags. As a result, the flag is set and it is dropping the pdu before sending 400. Steps to Replicate: - Configure the SBC for the SIP-SIP call listed below:
EP1 --> SIP --> SBC --> SIP --> EP2 - The client sends an INVITE message to the SBC with a From tag length equal to 273 and a DSCP value.
| The code is modified to correct the position of a DSCP value while calling the SipCmSendIncomingPduUind in SipCmProcessRemotePdu. Workaround: N/A |
SBX-103560 | 2 | There was a content type pattern match failure in an INVITE sent to the second SBC in a GW GW call. Impact: The message body is not sent transparently for the Resource/Lists, QSIG Content-Type: multipart/mixed when the HTP is enabled for all. Root Cause: A fix to SBX-100989 jira broke the existing functionality and caused this issue. Steps to Replicate: TEST SET UP ===========UAC ==> SBC5xx0 --SBX 5xx0 ==> UAS Prerequisite: ============ - Create the GW-GW set up (SBC-SBC).
Test Specific Configuration: ========================= - Create a header transparency profile on the second SBC and attach to the egress TG.
set profiles services transparencyProfile HTP1 sipMessageBody all set addressContext default zone ZONE2_TRANSGW sipTrunkGroup PERTRANSGW_SBX_EXT services transparencyProfile HTP1
Test Steps: ========== - Run a basic call over SBC-SBC (GW-GW) and check if the resource/lists, QSIG content type header is transparently passed in the outgoing INVITE towards egress side.
Expected Results: - The SBC-SBC (GW-GW) call should be successful.
- Check if the transparency is successful over the GW-GW.
| The code is modified for the Allow message body QSIG Content-Type: multipart/mixed, Resource/Lists across GW-GW. Workaround: N/A |
SBX-103098 | 2 | The To tag in To header is corrupted when the SBC forwards the OOD Message. Impact: The To Tag in OOD messages from the registered users are getting corrupted when relayed. Root Cause: This is because of a logic issue in the stack function. Steps to Replicate: 1. Register an End Point. 2. Send a MESSAGE request from same source IP/Port from registered endpoint. 3. Perform a switchover. 4. Send a MESSAGE request from same source IP/Port from registered endpoint. 5. Send a MESSAGE request from different source IP/Port. | The code is modified in stack function and also rejected the OOD messages from the Registered users with "To Tag", similar to SBX-76003 that was done as part of recent customer requirement. Workaround: No workaround. |
SBX-102992 | SBX-103001 | 2 | The SBC is blacklisting a peer when the mid dialog request gets timed out even though "midDialogArsScreenLevel" flag is set to "never" in sipArsProfile. Impact: The SBC is blacklisting peer when a mid dialog request gets timed out even though the midDialogArsScreenLevel flag is set to never in sipArsProfile. Root Cause: The original design only covered original INVITE messages and not mid-call INVITE messages. Steps to Replicate: 1. Make a call from UAC. 2. Answer the call on UAS. 3. When the call is stable send a Re-INVITE request from UAC. 4. The SBC forwards this Re-INVITE request to UAS. 5. Do not send any response to this Re-INVITE from UAS. 6. The SBC sends BYE and terminates the call. 7. Check the "sipArsStatus" on egress zone. | The code is modified to correctly handle mid-dialogue INVITE's as well as original INVITEs. Workaround: None. |
SBX-85825 | SBX-103389 | 2 | Portfix SBX-85825: The SBC Application fails with LCA errors on an initial EMS Cluster Configuration push. Impact: There was a packet drop between the SBC and EMS while downloading the configuration.
Root Cause: Due to small fill rate and bucket size, traffic between the SBC and EMS is flow controlled.
Steps to Replicate: Reboot the SBC so that it registers with the EMS and download the configuration from EMS. Capture the packets between the two to ensure that there is no drop. | Increased the fill rate and bucket size to accommodate large configuration size (~40MB). Workaround: N/A |
SBX-102401 | SBX-103426 | 3 | Porfix SBX-102401: The encryptedStore confd_cmd GET operations taking too much time during switchover (Nto1). Impact: The encryptedStore confd_cmd GET operations were taking too much time during a switchover (Nto1)
Root Cause: The confd_cmd GET calls were taking too much time to return during a switchover if the confd was under stress.
Steps to Replicate: - Launch Nto1 set up (preferably with a big configuration).
- Perform a switchover on active.
- On standby (becoming active) verify (during switchover) that:
- The confd_cmd get cmds are not taking too long to return (ideally ~ 0.2 sec)
- The ChmProcessIntanceData does not take too long to finish.
- The ChmClearEncryptedStoreOfPeers returns immediately but encryptedStore.sh deletePeerEntries continues in background and finishes relatively faster (than before).
- EncryptedStores are consistent on standby and actives.
| Use the confd_cmd -f option with an empty string argument while running the encryptedstore script in background to save some time and address the issue. Workaround: N/A |
SBX-66831 | 2 | The warning message needs to be updated/have a proper ending when deleting the ipInterface. Impact: A warning message does not display in the cloud SBC when deleting the IP interface. But there is no problem with functionality. Root Cause: This is working fine in the hardware SBC. The problem is in the cloud SBC when the warning message is displayed, a few values are checked to see if they arr matching and then we show the warning popup. In the case of the cloud SBC, the values index are different and the check is failing because we are unable to show the warning popup when we delete the IP Interface. Steps to Replicate: - Login to EMA.
- Go to All -> Address Context ->IP Interface Group -> IP Interface.
- Click on New IP Interface button.
- Fill the correct info in text field, select state as enable, Mode as In Service and click on save button.
- Creation should be successful.
- Now select the same entry from IP interface list section and click on delete button.
- We should be able to see warning popup like "'addressContext PPP_AC ipInterfaceGroup PPP_IG ipInterface': Deleting ipInterface while in dryUp action can cause problems with calls on the ipInterface. Use force action to clear existing calls on the ipInterface before deleting. Do you wish to continue?"
| The code is modified to handle the cloud SBC scenario as well. Workaround: N/A |
SBX-99306 | 3 | The SIPCM (SAM) deadlock reported on the SNMP request. Impact: The SAM process cores when getTlsStatus command is executed.
Root Cause: The issue is because when fetching tls Status, Design was trying to access sessData that was no longer valid. Steps to Replicate: Execute the getTlsStatus command when running TLS load. The SAM process cores randomly.
| The code is modified to fetch the status from socketPtr instead of the sessData. Workaround: N/A |
SBX-98954 | SBX-103395 | 2 | Portfix SBX-98954: Unable to configure HW/SBC SWe's into an SLB deployment. Impact: The SLB cannot be supported with the H/W SBCs.
Root Cause: The CPX validation check prevented configuration on the H/W SBCs to configure the SLB.
Steps to Replicate: - Configured the SLB.
- Configured HW/SWE SSBC in the order below:
- Enabled the SLB usage.
- Configured the SLB common Interface.
- Configured the 'slbAddress' and 'ipAddress'.
- Attempted configuring the zone and ssp.
| The code is modified to allow configuration of SLB on the H/W SBCs. Workaround: N/A |
SBX-101887 | SBX-103727 | 2 | Portfix SBX-101887: The SBC was generating duplicate ICID for different calls. Impact: The same ICID value was generated for two different calls.
Root Cause: The clock resolution used was 10ms leading to using the same timestamp when subsequent calls were received within 10ms.
Steps to Replicate: Run load with CDR enabled. Check no two calls have the same ICID. | Use high resolution time tick of a 1 micro second and add a counter for achieving granularity of 100ns. Workaround: N/A |
SBX-102444 | SBX-103405 | 2 | Portfix SBX-102444: The link does not get restored for the mgmt interface for an I-SBC in centralized mode. Impact: The link state in the portMonitorStatus command does not show the correct state when the LDGs are disabled and enabled in a specific order. Root Cause: In a HA set up, each instance (for example, Node A and B) maintains its own Port Monitor configuration where as both instances maintains the link monitors configuration of both nodes. When the state of Link Monitor configured on Node B is modified, this CDB notification goes to both nodes A and B. As both of them have the configuration, they update the state and reset a link status maintained in a port monitor to UNKNOWN. Then, ICMP Pings are sent only on node B. When it receives a response, it updates the link state of a portMonitor configured on that node and generates a event notification. When the node A gets this event notification, it recognizes that this notification is from peer and only updates the Link Monitor fault state and port monitor link state remains as UNKNOWN on this node. Steps to Replicate: 1) Instantiate the I-SBC in a centralized mode. 2) Configure the LDG for MGMT interface. 3) Disable the LDG for vsbc2. 4) Disable the LDG for vsbc1. 5) Enable the LDG for vsbc2. 6) Enable LDG for vsbc1. | The code is modified to not initialize link state of port monitor on local node when admin state of peer node LM configuration is changed. Workaround: The sequence of the LDG state modification has to be changed. |
SBX-103496 | 2 | The MGT0 cannot reach the GW. Impact: The mgt0 interface appears to be inactive. The user cannot ping the gateway from SBC-5400. The ethtool -S mgt0 shows the tx_pause count rising rapidly. Root Cause: This problem is specific to SBX-5400 fix. The SBC-5400 has a backpressure mechanism for management ports so that when the receive buffer exceeds a certain level, Design sends pause packets out to the interface to ask the switch/router to pause transmission momentarily. The receive buffer count is incremented by a hardware module and decremented by software. The notification was sent from Network Processor to application about sRTP Rollover Counter (ROC) reset is specifying the wrong interface so software decrements the wrong receive buffer count. This causes the receive buffer count to wrap around, resulting in a high value. This triggers the back-pressure mechanism and Design continuously send out pause packets. Steps to Replicate: - Set up a pass-thru SRTP call.
- Run a long duration sRTP call (about 30 minutes) so that the Rollover Counter (ROC) in the sRTP packet becomes non-zero.
- Modify the call so that the sRTP packet's SSRC changes.
- Check the pause frames of mgt ports.
| Set the correct interface information in the notification to address the issue. Workaround: - Run the attached check_mgt0.py.txt (rename it to check_mgt0.py) python script from the Linux command.
- Recommendation is to add it as a cron job and run it every 20-30 minutes.
- How to add cronjob and run it every 20 minutes:
copy check_mgt0.py to /opt/sonus/sbx/scripts As root running in Linux: crontab -e */20 * * * * /opt/sonus/sbx/scripts/check_mgt0.py
|
SBX-103561 | 2 | The "tgrp" parameter was not passing transparently when theSIP in the core is enabled. Impact: The SipCore calls are passing the wrong tgrp parameter value.
Root Cause: There was missing logic to support the SipCore.
Steps to Replicate: - Configure the SipCore feature.
- Both IPSP core and egress leg have "originating Trunk Group Options" set to "Include Tgrp with IP address"
- Make a SipCore call.
| The code is modified to support the SipCore feature. Workaround: N/A |
SBX-100250 | SBX-103391 | 2 | Portfix SBX-100250: The KVM Direct-Single ploading configuration to the EMS. Impact: 1:1 on KVM is not creating config store directory.
Root Cause: hwSubType variable value for KVM is not consider by lca.py script.
Steps to Replicate: Deploy the 1:1 on KVM.
| Consider hwType variable value instead of hwSubType. This will work for all virtual deployment types to address the issue. Workaround: N/A |
SBX-101235 | SBX-103488 | 2 | Portfix SBX-101235: The OAM does not output the NTPQ command. Impact: The NTP server CLI command not applied to the OAM.
Root Cause: The NTP server CLI command logic was skipped for OAM due to blind logic change from SmaIsConfigurator() to SmaIsOAM().
Steps to Replicate: CLI: Configure: set system ntp serverAdmin 169.254.120.4 state disabled commit set system ntp serverAdmin fd00:10:6b50:4500::11 set system ntp serverAdmin fd00:10:6b50:4500::11 state enabled commit <<<App on OAM nodes gets restarted>>> request system admin vsbcSystem saveAndActivate <<<App on managed nodes gets restarted>>> Run the OAM prompt: ntpq -p [is successful] | Remove erroneous check for OAM node type to address the issue. Workaround: None. |
SBX-101853 | SBX-103390 | 2 | Portfix SBX-101853: Observing an issue with the Restore operation in 9.1. Impact: Restored the configuration is not applied to the Standby OAM and managed nodes.
Root Cause: Configuration updater scripts do not detect the restored revision and do not reboot to apply it. This occurs when only two revision entries are present in /mnt/gfsvol1/config-versions.txt
Steps to Replicate: Ensure only one revision entry is present in /mnt/gfsvol1/config-versions.txt. Restore to a previous revision. | The code is modified to check the revisions available. Workaround: None. |
SBX-102123 | SBX-103487 | 2 | Portfix SBX-102123: There was a CpxA process core on the OAM upon configuring the NTP server. Impact: The CpxProcess cores on an application shutdown.
Root Cause: There was an improper ConfdProxy object destruction.
Steps to Replicate: Stop the application while the traffic load is running is best to reproduce.
| The code is modified to properly delete the ConfdProxy object. Workaround: None. |
SBX-101791 | SBX-102711 | 2 | Portfix SBX-101791: Observed thcket loss introduced on HA interface. Impact: The CpxProcess cores while traffic load is running. Root Cause: Segmentation fault in MsgClient::checkBuffering.
Steps to Replicate: Execute the traffic run.
| The code is modified to address the issue. Workaround: None.
|
SBX-101555 | SBX-103486 | 2 | Portfix SBX-101555: An application timeout error for "show table node" on OAM. Impact: The 'show table node' aborts with a timeout.
Root Cause: There is no handling for empty statistics.
Steps to Replicate: Execute a 'show table node'.
| The code is modified for the empty statistics by returning an empty response. Workaround: None. |
SBX-96018 | SBX-103388 | 2 | Portfix SBX-96018: Configuration and Profile Import/Export fails on the OAM SBC nodes. Impact: The OAM and managed nodes have access to user-config-import CLI command. Configuration issues can be introduced if this command is used as OAM manages the configuration.
Root Cause: There is no display condition check for the user-config-import CLI command.
Steps to Replicate: Test #1: - Deploy the VNF with OAM. - Check that user-config-import CLI command is not available on OAM and the managed nodes. Test #2: - Deploy the VNF without OAM. - Check that user-config-import CLI command is available on nodes. | The code is modified for the user-config-import CLI command. Workaround: Do not use the user-config-import command. |
SBX-100805 | SBX-103407 | 2 | Portfix SBX-100805: The LCA does not exit even if the DRBD configuration fails in a 1to1 mode. Impact: The LCA does not exit even if the DRBD configuration fails in a 1to1 mode.
Root Cause: The reConfigureHa.pl (Which configures DRBD) script's execution status was not checking in the LCA.
Steps to Replicate: Removed the DRBD disk and try to bring up the SBC. With the changes, the LCA run stopped.
| The code is modified to check the status of execution of the reconfigureHa.pl script and when it fails, stop running of LCA. Workaround: None. |
SBX-102146 | SBX-103375 | 2 | Portfix SBX-102146: Observing the "FAC: *FacSendGetRecordRequest: Get Record request already Sent:192.xxx.x.xxx" major log on an overnight load. Impact: Getting the Fa
quest major log.
| The code is modified to address the issue. Workaround: None. |
SBX-103798 | SBX-103799 | 2 | Portfix SBX-103798: There was dual NUMA support in SWe. Impact: The SWe does not come up in VMs having multiple NUMA nodes except for signaling traffic profile (SLB, SSBC, SO-SBC).
Root Cause: The root cause was due to deliberate software restriction to not allow multiple NUMAs.
Steps to Replicate: - Configure a KVM instance with dual NUMA and install in Non-Gold/Non-GPU set up.
- Let it come in default traffic profile.
- Verify that SBC would come up fine without any HostCheck errors.
| The code is modified to allow multiple NUMA irrespective of personality and profile. Workaround: No workaround except using single NUMA set up. |
SBX-73003 | SBX-101630 | 2 | Portfix SBX-73003: A vulnerability in use of JavaScript Library To 8.2.4. Impact: The vulnerability in use of the Javascript library. Root Cause: When the Javascript library was using version 1.8.0., the vulnerability was reported.
Steps to Replicate: Verified the appropriate screens to test and it is success.
| The code is modified to fix the vulnerability. To upgrade this Javascript library, upgrade the jquery-ui (1.12.1) and dataTables (1.10.20). Workaround: N/A |
SBX-96788 | 2 | A DTMF 2833 PT change (in offer) was incorrect the OA SBX handling (wrong answer PT). Impact: When there is a peer offer with new PT, the SBC is unable to process and response the previous one.
Root Cause: There was a logical error that checked the wrong field to detect PT change.
Steps to Replicate: - A call B and connect with "0 100".
- A Invite with offer new PT "0 101".
- The SBC responds with "0 100"
| The code is modified to check the correct field for PT change. Workaround: None. |
SBX-103852 | 2 | The SBC sent unnecessary 481 for PRACK when the CANCEL is received. Impact: The SBC sends unnecessary 481 for PRACK when receiving a CANCEL. Root Cause: When the SBC received PRACK in response to a 18x message, it generated it was added to an outstanding transaction list. But it was not removed from the list when the SBC sent the subsequent 200 OK for the PRACK. When performing a CANCEL then it arrives, the SBC thought the PRACK was still an outstanding transaction and generated a 481 message. Steps to Replicate: - A call B, B response 180 and send 180 to A with PRACK required.
- After 32 seconds A send a CANCEL, the SBC sends unnecessary 481 PRACK
| The code is modified to remove the PRACK from the outstanding transaction list when the SBC sends back the associated 200 OK, so there is no extra 481 generated if CANCEL then arrives. Workaround: Enable the e2e PRACK if the egress also support PRACK.
|
SBX-90884 | SBX-102729 | 2 | Portfix SBX-90884: Performance: Observed a SCM memory leak while running the STIR/SHAKEN with RPH Signing/Verification. Impact: The memory leak is caused at the SCM process for a STIR-SHAKEN failure.
Root Cause: When a STIR-SHAKEN call is performed and the STIR-SHAKEN functionality resulted in failure, then the STIR-SHAKEN "Reason Code Text" is populated in order to know the reason for the failure. As a result, the STIR-SHAKEN failure "Reason Code Text" is then communicated in backward messages. While populating "Reason Code Text", the intended function will execute twice for a given call. For the second invocation, the existing "Reason Code Text" memory was neither reused or freed. Instead, the call was newly allocated each time for the same call. This resulted in memory leak for every STIR-SHAKEN call failure. Steps to Replicate: - Run the configuration and execution of a STIR-SHAKEN Call.
- The STIR-SHAKEN functionality to result in a failure.
| The code is modified to fix the following: - If "Reason Code Text" memory is already allocated before, then the same memory is reused again by resetting the memory.
- If "Reason Code Text" memory is not allocated previously, then new memory is allocated and used.
Workaround: None. |
SBX-101727 | SBX-103352 | 2 | Portfix SBX-101727: The LeakSanitizer detected memory leaks in the SAM Process (DFe process). Impact: When making configuration changes to the D-SBC profile, the SBC leaks a small amount of memory. Root Cause: The SBC application code uses local buffers while reading profile changes from the CDB and this memory was not getting freed up correctly, leading to a leak. Steps to Replicate: This problem is highlighted when using ASAN enabled build in the engineering lab and making DSBC profile changes. | The code is modified to correctly access the local buffers to avoid the memory leak. Workaround: None. |
SBX-102056 | SBX-103355 | 2 | Portfix SBX-102056: The AddressSanitizer detected a heap-buffer-overflow in SipsgRedundMsgParamLoadSubsCbStr. Impact: While printing the debug messages as part of making subscriber data redundant, the SBC was reading off the end of a buffer. Root Cause: Some of the buffers used to hold string information were not large enough to include a NULL terminator so when printing out debug messages, the printing code was reading off the end of the buffer. Steps to Replicate: This problem is highlighted when using ASAN enabled images in the engineering lab. | The code is modified to ensure the strings for the subscriber data are NULL terminated to avoid the code reading of the end of the string buffer. Workaround: None. |
SBX-101597 | SBX-103354 | 2 | Portfix SBX-101597: The LeakSanitizer detected memory leaks in the CpxAppProcess. Impact: When making changes to the D-SBC signaling port configuration, the SBC is leaking a small amount of memory. Root Cause: While reading configuration changes from the CDB, the SBC application code allocates local buffers and they are not getting freed up at the end of processing leading to a small memory leak. Steps to Replicate: The issue is seen when using ASAN enabled images in the engineering lab and making configuration changes to the DSBC signaling port configuration. | The code is modified to correctly free the memory allocated to the local buffers to avoid the memory leak. Workaround: None. |
SBX-103603 | SBX-103636 | 2 | Portfix SBX-103603: The LeakSanitizer: detected memory leaks in the MrfRmProcessTrmAllocRpyMsg. Impact: While testing call scenarios for RTCP for T.140 Pass-through functionality, it was observed that the SCM process could leak memory for calls associated with an MRF (external media transcoder). Root Cause: The SBC was allocated memory while processing the SDP associated with this call but was not always freeing up the memory at the end of the call. Steps to Replicate: Run various call scenarios with MRF where the SBC is using the SIP to allocated media resources on an external media transcoder (MRF) or T-SBC. | The code is modified to correctly free all the memory allocated for the call. Workaround: None. |
SBX-103489 | SBX-103637 | 2 | Portfix SBX-103489: The LeakSanitizer: detected memory leaks at the confd_malloc. Impact: The small memory leak during the configuration of lawful intercept server. Root Cause: The configuration code was reading information from the CDB and storing information in an internal memory block but not freeing it up. Steps to Replicate: Create a lawful intercept server and make configuration changes. | The code is modified to correctly release the internal memory block at the end of the configuration action. Workaround: None. |
SBX-102054 | SBX-102305 | 2 | Portfix SBX-102054: The LeakSanitizer detected an error in CpxAaaGetElem. Impact: When adding new users, a small amount of memory leaked. Root Cause: While processing the addition of new users, the code allocated temporary memory blocks to hold information retrieved from the CDB about existing users this memory was not getting completely released after use. Steps to Replicate: This issue is observed when running with ASAN images in the lab. | The code is modified to ensure the temporary memory allocated is freed up after use. Workaround: None. |
SBX-102060 | SBX-103356 | 2 | Portfix SBX-102060: Leak detected while running the SBX-93279 HA cases, especially on the SCM and IM process. Impact: When making a CAC profile configuration change, the SBC leaks a small amount of memory. Root Cause: When reading configuration changes from CDB, the application code was storing information in local buffers and not freeing it up correctly, leading to a memory leak. Steps to Replicate: This problem is highlighted when using ASAN enabled images in the engineering lab and making CAC profile configuration changes. | The code is modified to correctly free up the memory in local buffers to avoid the leak. Workaround: None. |
SBX-101504 | SBX-103689 | 3 | Portfix SBX-101504: The SPD for IPSec SA was created for the 3GPP IMS AKA should allow both the TCP and UDP transport protocols. Impact: The Apple and Samsung phones run the IMS AKA registration over the TCP, but send an SMS (MESSAGE) over the UDP later, which was dropped on the SBC. Root Cause: The SBC honors messages only on that transport for IPsec (established using the IMS AKA) that was used initially during registration. Steps to Replicate: 1. Set up SIP registration using IMS AKA on TCP. 2. Make SIP calls (INVITE) over TCP. 3. Exchange SMS (MESSAGE) over UDP. | The code is modified so the SBC now listens on UDP ports also, same ports that are exchanged during initial IMS AKA registration, along with the TCP ports. Workaround: N/A |
SBX-101749 | SBX-102103 | 2 | Portfix SBX-101749: The SBC incorrectly passed a complete contact header transparently without the presence of the isFocus parameter. Impact: The SBC incorrectly passed a complete contact header transparently without the presence of the isFocus parameter. Root Cause: The SBC passed a complete contact header transparently without the presence of the isFocus parameter, with the contactTransparencyForIsFocusMediaTag enabled on both trunk groups. Steps to Replicate: - Configure the SBC for A to B call.
- Enable the flag contactTransparencyForIsFocusMediaTag on both TGs.
- Make a SUBSCRIBE-NOTIFY call flow.
- Ensure the isFocus parameter is present in the Notify message, but is not present in the 200 OK response.
| The code is modified to not transparently pass the complete contact header when the contactTransparencyForIsFocusMediaTag flag is enabled, and the isFocus parameter is not present in the 200 OK notification. Workaround: N/A |
SBX-88376 | SBX-103386 | 2 | Portfix SBX-88376: The SBC interop with Ribbon AS: Upstream Forking was not working consistently using the TLS. Impact: For a non UDP transports, in an upstream forking scenario where as on ingress side, the SBC receives multiple INVITE with the same Call-Id, From, and To. In such a scenario, the SBC is not sending all the received INVITEs out to the end points that are registered on same username. Root Cause: The SBC used to drop off those forked INVITE's that are received during the processing of initial INVITE. Steps to Replicate: On a non UDP transport, send multiple forked INVITE's towards the SBC with the same Call-Id, From, To, Request URI. | Queuing the subsequent forked INVITE's and processing them in the same order received solves the problem. Workaround: None or use the UDP as transport. |
SBX-103937 | SBX-103775 | 3 | Portfix SBX-103775: Changing the XRM to build ALL media RID’s static IP headers with the “Don’t Fragment” (DF) bit SET TO 0 instead of 1. Impact: The SBC forwards the DTLS packets correctly but the large certificated packet does not reach the calling device.
Root Cause: The SBC has set the DF (do not fragment) bit in IPv4 header so routers cannot split the packet and it can result in the packet getting dropped. Steps to Replicate: - Set up a Inter-work between Full ICE client and ICE Lite call flow with DTLS/SRTP relay.
- Caller send out large DTLS packets.
- Capture the packets, ensure the DF bit has not set (0x0000).
| The code is modified to set the DF bit when the SBC builds the IP header for DTLS and STUN packets. Workaround: N/A |
SBX-103939 | SBX-103945 | 3 | Portfix SBX-103939: The NAPT timer was not armed properly in the MoH. Impact: The NAPT timer did not started as the NRMA requested.
Root Cause: The RTP flow mode was xmt-only. Then, the NRMA requested flow change to enable the NAPT timer expiry because we have already learned source address. But the XRM did not start NAPT timer because it was a learning next request.
Steps to Replicate: Run NAPT regression tests to reproduce the issue.
| The code is modified to start the NAPT timer for learning next if NRMA has set XRM_NAPT_MEDIA_NAPT_TIMER_ACT_ENAB. Workaround: None. |
SBX-100426 | 3 | The `imfile' in rsyslog.conf without freshStartTail="on" can cause the SBC switchover when enabled. Impact: When certain logs (consoleLog, sftpLog, syslogLog, platformAuditLog, ntpLog) get enabled initially, high number of old logs can be sent to the remote syslog server. This can cause network issues which can cause the SBC to switchover.
Root Cause: If a log is enabled for the first time, the rsyslog will try to send the whole log to the remote syslog server at once.
Steps to Replicate: Fill up /var/log/syslog with messages. Enable syslogLog in the SBC application. Verify older messages are not sent to the remote system.
| The code is modified so the rsyslog option only reads in latest logs when initially enabled. Workaround: Update the input rules in /etc/rsyslog.conf: e.g. #input(type="imfile" File="/var/log/session/session.*" Tag="console" Severity="info" Facility="lpr" escapeLF="on" addMetadata="on") to: #input(type="imfile" File="/var/log/session/session.*" Tag="console" Severity="info" Facility="lpr" escapeLF="on" addMetadata="on" freshStartTail="on") |
SBX-103763 | 3 | The upgradeSBX.properties makes the EMA to show upgrade in progress forever. Impact: An upgrade was completed but the Platform Manager Install/Upgrade screen gets stuck on previous upgrade and can not perform new upgrade operation. Root Cause: We are facing this issue because we had updated the SBC upgrade steps as part of SBX-56893 Jira in 6.1.0. Whenever we upgrade the SBC from 6.0.x to 8.2.x, we will see the issue because there are different steps in 6.0.x and 8.2.x that is causing the issue. When we upgrade the SBC using 6.0.x code that has the old upgrade steps once we execute the pre install check step, the PM API updates the upgradeSBX.properties file with next step (INSTALL_DB), the SBC goes for reboot and platform manager code gets replace with upgraded version which is 8.2.x. Now, the PM API reads upgradeSBX.properties file to read the steps value that is INSTALL_DB and match the check but in 8.2.x PM code. There is no INSTALL_DB check in PM code because of that, we are unable to update the upgradeSBX.properties file with next steps. Once an upgrade gets completed and the PM code updates upgradeSBX.properties file with FINISHED as steps, we move the upgradeSBX.properties file into upgradeSBX.properties.1, which is not happening and Platform Manager UI is unable to mark as complete and getting stuck on install/upgrade screen with previous upgrade. Steps to Replicate: - Use the ISO/app to install SBC 6.0.0F6 on a HW box. Install the SBC as a standby SBC on a SBC5110.
- Go to EMA Administration > System Administration > Software Install/Upgrade and start an offline upgrade. Leave the browser alone, do not click anywhere in the EMA GUI once the upgrade has started.
| The code is modified to handle the INSTALL_DB step check to mark upgrade as complete from Platform Manager UI. Workaround: To perform again upgrade operation, delete the upgradeSBX.properties file from the SBC. |
SBX-103528 | 3 | There are unwanted critical logs in HW SBC for: "CRITICAL.SMA: *SmaIsCustomGPUProfile: Failed to read /opt/sonus/conf/swe/capacityEstimates/.activeCallMixInput.json". Impact: The critical level log gets written into the DBG event log each application startup on Hardware Systems.
Root Cause: The system attempts to open a file that does not exist on Hardware Platforms.
Steps to Replicate: Startup the SBC application on a Hardware SBC. Verify the DBG log.
| Stop the system from attempting to open the file on the Hardware Systems to address the issue. Workaround: None. |
SBX-104060 | 3 | The DBG logs in the 7.2.4R0 SBCs filling up with the T38 logs. Impact: When the call trace is enabled, the T38 messages are logged in a .DBG file. However, even after a call trace is disabled, T38 log messages continue to appear in .DBG file. Root Cause: A gevelobal variable to set t38 log messages was set for call traces but never reset.
Steps to Replicate: - Enable call tracing and make a T38 fax call.
See that .DBG file has T38 log messages. - Disable call tracing and make a T38 fax call.
T38 log messages do not appear in .DBG file.
| The code is modified so after the call tracing is disabled, T38 log messages will not appear in .DBG file. Workaround: Use 'unhide debug' command to disable T38 log message after call tracing is no longer needed. > request sbx drm debug command "dspdebugt38 state disable" |
SBX-102234 | SBX-104007 | 3 | Portfix SBX-102234: The SubsystemAdmin filter affects calltrace (TRC) logging showed useless logs. Impact: After creating then deleting an entry in the oam eventLog subsystemAdmin, the original behaviour is not restored. INFO level events for that subsystem are no longer logged, even if the oam eventLog typeAdmin filterLevel is info. Root Cause: Deleting an entry in oam eventLog subsystemAdmin does not restore settings back to default. Steps to Replicate: - Create an entry for a subsystem in the oam eventLog subsystemAdmin table.
- Delete the entry.
| The code is modified to process to deleted the oam eventLog subsystemAdmin entry so that settings are put back to default values. Workaround: None. |
SBX-98024 | SBX-104011 | 2 | Portfix SBX-98024 The contact header is not transparently passed when the Ingress and Egress had different transport types. Impact: Contact header is not passed transparently from Ingress, when egress side has different transport type, even when the IPSP flag 'passCompleteContactHeader' is enabled on both ingress/egress Trunk Groups. Root Cause: In API SipSgCheckAndSetContactHeaderTrasparency(), irrespective of transparency control is enabled/disabled, if the egress Sig Zone is MS Teams, then contact header was not transparently passed to egress. Steps to Replicate: - Configure, IPSP flag 'passCompleteContactHeader to enable.
- Attach the IPSP to both ingress/egress TG's.
- Set Ingress transport to TCP / Egress to TL.
- Create pathCheck profile with hostName 'sip.pstnhub.microsoft.com' and attach to the Teams side.
- Make a successful call.
| The code is modified so regardless of MS Teams zone, if the transparency control flag is enabled then pass the contact header transparently to the egress. Workaround: None. |
SBX-102059 | 2 | Mismatch in the count of ipPeers on Routing page. Impact: There was a mismatch in the Zone, and IpPeer counts on the UI. Root Cause: The backend logic using the contained predicate that fetches all the related data. Steps to Replicate: Go to the Route screen, select trunkGroup and verify the Zone, IpPeer counts. | The code is modified from contained to match, and is now only associated data being fetch based on the parent selected. Workaround: None. |
SBX-86293 | SBX-104169 | 3 | Portfix SBX-86293: PreInstall Check improvements for file permissions. Impact: PreUpgrade checks failure due to permission issues on external directory. Root Cause: Pre-checks script failed to run commands on peer due to permission issues. Steps to Replicate: Perform upgrade to the fix version and verify that upgrade is successful. | The code is modified to ensure permissions/ownership are set properly before running through pre-checks/upgrade. Workaround: Set the right ownership for external directory as:
chgrp -R upload /opt/sonus/external/ |
SBX-101918 | 2 | The Out of Memory caused an SBC switchover. Impact: Memory leaks when 3xx relay and reject 3xx on egress IPSP
Root Cause: Contact Headers in 3xx memory did not free properly.
Steps to Replicate: - Enable 3xx relay and reject 3xx, trigger the SBC sends 503 to ingress.
- A call B, B response 3xx with contact headers.
- Or Enable 3xx relay and configure ingress "do not send 3xx", trigger SBC sends 503.
| Ensure the memory of contact headers in 3xx are properly free when config to reject 3xx. Workaround: Customer may using SMM to change the status 3xx to 503 instead. |
SBX-104022 | 3 | The digitCriteria numberLength operation parameter was not configured after the first commit. Impact: The digitCriteria numberLength operation parameter not configured after the first commit.
Root Cause: The value of the digitCriteria numberLength was overridden to 0 by the dpcIndicator during a Db update at first commit, which caused the issue. At the same time, the dpcIndicator was updating the value due to missing validation.
Steps to Replicate: Now in the first commit value digitCriteria numberLength should pick the value.
| The code is modified to update the dpcIndicator only if the criteria type is URI. As a result, the digitCriteria numberLength is set expected value properly and issue got fixed. Workaround: Committing twice will set the digitCriteria numberLength value. |
SBX-105838 | 2 | There was an SM coredump, that was in communication with openhpi. Impact: The SM took a bit longer to read all four DSP card version's info on the SBC7000. This leads to an SM coredump.
Root Cause: The SM took a bit longer to read all four DSP card version's info on the SBC7000.
Steps to Replicate: Test on the SBC7000 with all four DSP cards.
| The SM time out value is increased from 90 sec to 120 sec to address the issue. Workaround: None. |
SBX-97650 | SBX-99686 | 2 | Portfix SBX-97650: ERROR: The leakSanitizer detected memory leaks. Impact: The leak sanitizer detected a memory leak for NRMA Session Desc as part of the leak sanitizer tool execution. Root Cause: During the SDP to PSP conversion, the routine SipSgConvertSdpToPsp() is allocating memory for the NSD structure and not freeing the memory when the conversion fails. Steps to Replicate: Run the leak sanitized tool to reproduce the issue. | Freed the memory allocated for the NSD structure in cases where the SipSgConvertSdpToPsp() fails. Workaround: N/A |
SBX-104723 | SBX-103704 | 2 | Portfix SBX-103704: The RTP sourceAddressFiltering is not working (call leg dependency). Impact: The source address validation is not done if call flow does not involve NAPT learning. For calls that want source address validation but does not have NAPT enabled, the SBC would not validate the source address and end up forwarding the RTP packet to the other endpoint. Root Cause: There is no way for application to inform Network Processor to validate source if NAPT learning is not enabled. Steps to Replicate: Involves a CISCO MOH server but probably something else can be used. | The code is modified to validate source even when NAPT learning is not enabled to address the issue. Workaround: Enable NAPT learning for the call. |
SBX-100253 | SBX-103357 | 2 | Portfix SBX-100253: The SBC services are not coming up with an ASAN build. Impact: On the SBC5100/5200, there was an ASAN flags error while processing the negative Boot Init Response received from the DSP. Root Cause: While processing the Boot Init response, variables that are not defined for DSPs on SBC5100/5200 is being accessed. Since memory is not allocated to these variables, accessing them is invalid. Steps to Replicate: None. | The code is modified where if it is SBC5100/5200 DSP, the mentioned variables are not accessed. Workaround: None. |
SBX-103255 | SBX-105069 | 2 | Portfix SBX-103255: Enhance the sbxPerf on the SBC for lesser resource consumption. Impact: The SBC performance monitoring tools like top and top2 at times take 20% of a CPU core there by reducing total available CPU resources for management activities on the SBC. Root Cause: The sbxPerf that contains list of tools such as top, mpstat, and iostat currently runs periodically without any linux value configured. This can cause these processes to get prioritized and scheduled ahead of other management processes such as ConfD and SSH. Steps to Replicate: Install fix build and ensure processes such as top, top2, mpstat sbxPerf are running with corrects value of 15 using the top command. | The code is modified so that priority of these processes are less compared to other management processes on the SBC. Workaround: None. |
SBX-103593 | SBX-104718 | 2 | Portfix SBX-103593: The SBC is ignoring Use Max Bitrate Only flag. Impact: The SBC is ignoring Use Max Bitrate Only flag. Root Cause: During Re-Invite answer processing, NrmaAdjustPeerT38MaxBitRate() routine is doing T38MaxBitRate adjustment based on packet size that is changing T38MaxBitRate value from 14400 to 4800. Steps to Replicate: Call Flow: - Do a basic call between UAC and UAS.
- The UAS sends fax re-invite to UAC with T38MaxBitrate set to 14400.
- The SBC sends Invite out with T38MaxBitrate set to 14400.
- The UAC answers with T38MaxBitrate set to 14400 in 200OK.
- The SBC sends out 200ok with T38MaxBitrate set to 4800.
Actual Result:
--UAS(Re-Invite) -----> SBC ----> UAC T38MaxBitRate:14400 T38MaxBitRate:14400 --UAC(200ok for Re-Invite) ----> SBC ----> UAS T38MaxBitRate:14400 T38MaxBitRate:4800
Expected Result:
--UAS(Re-Invite) ----> SBC ----> UAC T38MaxBitRate:14400 T38MaxBitRate:14400 --UAC(200ok for Re-Invite) ----> SBC ----> UAS T38MaxBitRate:14400 T38MaxBitRate:14400
| The code is modified to relay the T38MaxBitRate in SDP, which is received from peer for Direct Media calls. Workaround: None. |
SBX-105416 | SBX-105703 | 2 | Portfix SBX-105416: The glusterfs is failing on the standby OAM after a reboot. Impact: The Gluster server on a Standby OAM fails to start.
Root Cause: The Gluster heal check conditions are wrong.
Steps to Replicate: - Reboot the Standby OAM node, wait 2 minutes, then reboot Active OAM node.
- Both Active and Standby OAM come up successfully.
| The code is modified to obtain the expected result. Workaround: None. |
SBX-91799 | SBX-103718 | 2 | Portfix SBX-91799: The segfault in pamValidator during PM login with incorrect credentials. Impact: The segfault in pamValidator on a failed login for locked user. Root Cause: The pamValidator defines a conversation function that is called by pam modules to exchange values. The pam module was freeing a struct member in the first call and accessing the same freed value in another call to the conversation function that was causing segmentation fault. Steps to Replicate: Perform following steps on any of the SBC deployment and verify that segmentation fault does not happen: ## TEST 1: Ensure success for correct username and password: - Encode username and password to base 64 and set as environment variables USER and PSWD example:
export USER="YWRtaW4=" ; export PSWD="U29udXNAMTIz" - Run pamValidator and verify it returns success.
##TEST 2: Authentication Failure for username and incorrect password:
- Encode the correct username and incorrect password to base64 and export as env variables USER and PSWD.
- Run pamValidator and verify it returns "Authentication Failure".
- Run pamValidator again multiple times (at least 3 more) and verify the authentication failure and no segmentation fault.
- Wait for 30 seconds and try TEST#1 with the correct password and verify it succeeds.
| The code is modified so the pam_response struct properly in between calls to the conversation function. Workaround: None. |
SBX-103387 | SBX-104717 | 2 | Portfix SBX-103387: The Video NAT learning is failing on the D-SBC cloud. Impact: The Video NAT learning failed in the D-SBC. Root Cause: On the D-SBC, NAT learning for video stream was not processed successfully and as a result caused the video packets to be dropped by the SBC. Steps to Replicate: - Configure the SBC for an Audio and Video call.
- Enable the Signaling NAT and Media NAT in the Ingress and Egress Trunk Groups.
- Make an Audio and Video call between the NATed EndPoints EP1 and EP2.
- After a call gets established, the EP1 and EP2 sends Audio and Video packets.
- NAT learning happens for Audio and Video and then the packets are sent and received from EP1 and EP2.
| The code is modified to process the NAT learning for the video stream in the D-SBC. Workaround: None. |
SBX-104560 | SBX-105027 | 2 | Portfix SBX-104560: The redirection NOA set wrong in the CDR. Impact: The "Redirecting Orig Cd Num - NOA" subfield of "Redirection Feature Spec Data" is not set correctly in CDR record if the the Redirecting Original Called Number - NOA value is modified by PSX. Root Cause: The existing code was not updating the value for the CDR record based on route specific information returned from the PSX. Steps to Replicate: Test Set up ======== - Test requires call routing through the PSX.
Routing on PSX, set up to route incoming call through routing label with two routes: - route 1, through local egress trunk group 1 on SBC to UE2. - route 2, through local egress trunk group 2 on SBC to UE3. - On egress trunk group 1 only, associate a DM/PM rule to change the "Number Type" to International for "redirecting Original Called Number".
- Set the crankback profile to enable attemptRecordGeneration and add reason 41 (503 is mapped to 41 in default SIP to CPC mapping profile)
set profiles callRouting crankbackProfile default attemptRecordGeneration enabled reason 41
Test Procedure ============ - Send INVITE to the SBC ingress, INVITE should include a diversion header e.g.
Diversion: <sip:+4969667740185@xxx.xxx.xxx.xxx>; privacy=off;screen=no;reason=unknown;counter=1 - Call is routed using route 1, respond from first egress with 503 Service Unavailable
- Call is re-routed using route 2, respond from second egress with 503 Service Unavailable
- Check the CDR records for call on the SBC that should have two attempt records -
- ATTEMPT1 - should have "Redirection Feature Spec Data" that has subfield 22 "Redirecting Orig Cd Num - NOA" as 3 (Unique International Number), because the number was updated by PSX to international.
- ATTEMPT2 - should have "Redirection Feature Spec Data" that has subfield 22 "Redirecting Orig Cd Num - NOA" as 2 (Unique National Number), because the number was not updated by PSX.
| The code is modified to populate the CDR value from the route specific data returned from PSX. Workaround: None. |
SBX-103634 | SBX-104230 | 2 | The LeakSanitizer: detected memory leaks in DCmRestoreAllMetaVarsToStandbyContext. Impact: A small memory leak was observed in the SAM process while performing a switchover from standby to active box. Root Cause: The standby instance stores information about the metavars associated with signaling ports configured on the active instance. During the conversion from standby to active, the standby data is moved into active structures but the original standby memory blocks are not freed up correctly resulting in a memory leak. Steps to Replicate: Perform a switchover from standby to active while running a basic call, no memory leak will be observed in the SAM process. | The code is modified to correctly free the memory associated with the standby data when it gets transitioned to active to avoid the memory leak. Workaround: None. |
SBX-103224 | SBX-103589 | 2 | Portfix SBX-103224: The ipsecSaStatus with local SPI is failing, as well as ikeSaStatus and ikeSaStatistics with ikeSaIndex is failing. Impact: The show command for ikeSaStatus and ikeSaStatistics was not displaying information for the IPSEC calls of type ikev2 when trying to display with specific key field information. Root Cause: The display logic was missing to output call information for the type ikev2 with specific parameters. Steps to Replicate: Make IPSEC calls of type ikev2 and then run the status and statistics commands using the remoteSpi as a parameter. | The code is modified to correctly display information for the IPSEC calls of type ikev2 with specific parameters. Workaround: The display prints out all information correctly when no parameters are specified. |
SBX-98302 | SBX-99720 | 2 | Portfix SBX-98302: The LeakSanitizer detected memory leaks. Impact: The LeakSanitizer detected a memory leak in the SIPSG while processing the REGISTER messages. Root Cause: While processing a REGISTER message, the SBC performs a PSX query and gets back the primary domain information in the policy response. The SBC allocates memory to hold this information in the registration control block (RCB) but it was not getting freed up when the RCB was later released. Steps to Replicate: Configure the SBC with Primary Registrar Domain info and run a registration scenario with ASAN enabled images. | The code is modified to free the memory associated with primary domain information to avoid the memory leak. Workaround: N/A |
SBX-103732 | SBX-104002 | 2 | Portfix SBX-103732: There was an error AddressSanitizer: heap-buffer-overflow on address 0x61d001429c18 at pc 0x556c876cf74c bp 0x7fb14f64fab0 sp 0x7fb14f64f260 READ of size 3488 at 0x61d001429c18 thread T21 in the SAM Process. Impact: In a DSBC environment while processing the remote media data command message the SAM process could read off the end of the received message. Reading off the end of the allocated message block could in the worst case result in a coredump. Root Cause: The SAM process was assuming that the size of the received message was larger than it actually was and this resulted in reading off the end of the received message buffer. In most cases this does not cause a problem but in could potentially result in a coredump if the associated buffer is at the end of the addressable memory space. Steps to Replicate: Run RFC4117 test case for audio transcoding and video relay.
| The code is modified to not read off the end of the received memory block. Workaround: None. |
SBX-97838 | SBX-100051 | 2 | Portfix SBX-97838: Unable to create a sipSigPort on the cloud SSBC when the IP metaVar is previously used for a different sipSigPort. Impact: Unable to create a sipSigPort on the cloud SSBC when the IP metaVar is previously used for a different sipSigPort. Root Cause: The root cause for this issue is there was a check to skip any validations if the instance is cloud based in the addIpAddressToMetaTable and deleteIpAddressFromMetaTable functions. As a part of SBX-59421 feature, in 8.1 the check was removed in the addIpAddressToMetaTable and as a result duplicate entries were not allowed to be configured. However, it was retained in deleteIpAddressFromMetaTable function. Even after sipSigPort is deleted, stale entries would still remain and the sipSigPort creation was failing with same metaVar as a result. Steps to Replicate: The steps cannot be reproduced. - Create a sipSigPort (with index 1) with ipVarV4 IF2.IPV4
- Delete the sipSigPort
- Create a sipSigPort (with different index 2) with same ipVarV4 as in step 1.
Error seen: addressContext default zone ZONE_IAD sipSigPort 2': IP address / port number must be unique within an address context | The check that was retained in deleteIpAddressFromMetaTable is removed. Any further sipSigPort deletions will remove the entries from the metaTable as well. Workaround: If the customer is not using 9.0 and still in older releases, the following procedure can be used to remove the stale entries: - Perform an unhide debug
- Navigate to the configuration mode.
- Execute this command to remove the IP entries whose corresponding sipSigPorts have been deleted:
#delete addressContext default sipSigPortAddrMeta <ipAddr> <port>
|
SBX-97832 | SBX-100054 | 2 | Portfix SBX-97832: Unable to delete the leaf node like ipVarV4 or ipVarV6 in the sipSigport configuration in the . Impact: Unable to delete leaf node like ipVarV4 or ipVarV6 in sipSigport configuration as shown in the example below: admin@isbcSwe-192.168.2.21% delete addressContext default zone SBX_89017_KL_1 sipSigPort 5 ipVarV6 [ok][2020-03-09 06:04:15] [edit] admin@isbcSwe-192.168.2.21% commit Aborted: 'addressContext default zone SBX_89017_KL_1 sipSigPort 5 ipVarV6': There is no value for parameter - ipVarV6 [error][2020-03-09 06:04:16] Root Cause: In the SBC systems that were not using the metavar configuration, the deletion of ipAddress was allowed. This was due to a bug in the code that wrongly checked for the metavar value before allowing the IP address deletion. Steps to Replicate: Configure and delete the leaf nodes of the sipSigPort. | The code is modified so the deletion is allowed. Workaround: N/A |
SBX-96436 | SBX-100050 | 2 | Portfix SBX-96436: The SBC was adding a reason header even when the verification is successful. Impact: The SBC should only add a reason header and text when the verification service replied with a failure response. Root Cause: The SBC was adding the reason header when it is received from the PSX without checking whether the verification is SUCCESS or not. Steps to Replicate: - Configure the verification server to send a SUCCESSFUL response for STIR/SHAKEN.
- When the SBC receives verification service from PSX, then the SBC checks for verification status and adds the reason header in provisional/final response.
| The code is modified so the SBC checks failure status then only adds the reason header if it is available. Workaround: N/A |
SBX-102827 | SBX-104158 | 2 | Portfix SBX-102827: The SBC 5210 experienced an upgrade failure during Starting DB_RESTORE stage. Impact: Failure during upgrade while creating database referential keys.
Root Cause: Creation of foreign key fails on table packet_service_profile (Child Table) column CODEC_ENTRY_FK9, as it had "0" in one of its rows and dbimpl.codec_entry table (parent table) does not have this value.
Steps to Replicate: Upgrade a dump that has "0" in the following. It should be successful. packet_service_profile.CODEC_ENTRY_FK9
| The code is modified to check the data and nullify any value that is not present in parent table before adding the referential keys, Workaround: None. |
SBX-104216 | SBX-104477 | 2 | Portfix SBX-104216: The SBC relays STUN packets in RTP streams on pass-thru calls (no transcoding); on RTP to SRTP calls, the relayed STUN packet causes the ROC to reset back to 0 and the remote peer discards the encrypted media packets. Impact: Sending Non_RTP packets mixed/relayed in SRTP stream from the SBC resulted in one-way audio at the endpoints in longer duration calls. Root Cause: These non-RTP packets relayed eg. STUN packet causes resetting of encryption ROC back to 0 on the SRTP stream sent out. This issue results in the remote peer discarding the encrypted media packet in long duration calls from the SBC, where ROC is expected to be non-zero. Steps to Replicate: Run a SRTP passthrough call with media for more than 15 mins, with 10 ptime. Then send a non-RTP packet (STUN, UDP TL t.38) in that stream for pass-thru relay, and observe the media in that call. | The code is modified to not mix Non-RTP packets with SRTP encryption/decryption processing. As a result, SRTP media stream ROC does not reset with these mixed packets, and the endpoint will not have media issues in longer duration calls.
|
SBX-103788 | SBX-104042 | 2 | Portfix SBX-103788: ASAN ERROR: LeakSanitizer: detected memory leaks in the CpxAppProcess. Impact: There was a small memory leak when making the configuration changes to the GW signaling port.
Root Cause: The configuration logic was reading the interface group name from CDB into a temporary local variable in order to perform validation logic but never freed up this memory at the end of the validation.
Steps to Replicate: This issue is highlighted in the engineering lab when performing GW sig port configuration changes on an ASAN enabled build.
| The code is modified to correctly free the temporary memory to avoid the leak. Workaround: None. |
| 2 | CE_2N_Comp_ScmProcess_2==4455==ERROR: LeakSanitizer: detected memory leaks at confd_malloc. Impact: ASAN detected memory leaks while processing a E164 profile.
Root Cause: The memory was released while processing a E164Profile at the end of the configuration action.
Steps to Replicate: Create and modify the E164Profile configuration.
| The code is modified to release the internal memory block at the end of the configuration action. Workaround: None. |
SBX-96307 | SBX-99705 | 2 | Portfix SBX-96307: The LeakSanitizer detected memory leaks at SipSgEmergencyProfileAddPrefix. Impact: Observed a memory leak while adding and deleting the prefix/urnPrefix entries in an emergency profile. Root Cause: On the deletion of prefix/urnPrefix entries, the memory not getting freed for the prefix list and this was causing the memory leak. Steps to Replicate: - Create an emergency profile.
- Add the prefix entries.
- Delete the prefix entries (repeat step 2 and 3).
| The code is modified to free the memory whenever the prefix entries is deleted from the emergency profile. Workaround: To avoid the memory leak, delete and recreate the entire emergency profile rather than just deleting only the prefix entries from the profile. |
SBX-103731 | SBX-104001 | 2 | Portfix SBX-103731: The AddressSanitizer: heap-buffer-overflow on address 0x61a0000cb9d9 observed in the SAM Process while running OCSP feature. Impact: When the OCSP stapling feature is enabled on the SBC and the code was processing, the response it writes to unallocated memory and in the worst case this could result in process coredumps.
Root Cause: While processing a OCSP response, the code was allocating a memory buffer large enough to hold the response, but then incorrectly writing one byte off the end of the memory buffer while attempt to try and null terminate the string. Steps to Replicate: Set up - UAC > Dut<>Adapter -> UAS - Create OCSP profile by configuring the defaultResponder and stapling enabled.
- Attach the ocsp profile to the TLS profile configured.
- From Endpoint A, initiate the TLS call with Client Hello from the SIPP UAC having OCSP parameter in it.
- The SBC should send server hello, certificate to the user client.
| The code is modified to correctly terminate the OCSP response string without writing off the end of the memory buffer allocated to hold the response. Workaround: None. |
SBX-97904 | SBX-99961 | 2 | Portfix SBX-97904: The AddressSanitizer detected a stack-buffer-overflow on the address 0x7f994bb18d30 at pc 0x56314564c886 bp 0x7f994bb18c10 sp 0x7f994bb183c0 WRITE of size 16 at 0x7f994bb18d30 thread T7. Impact: A stack-Buffer-Address overflowed for a V6 Address. Root Cause: As part "SBX-66765:Support for IPsec for Media with UDP transport for LI" feature, when LI server is configured with V6 Address, the stack-buffer was overflowing and as a result some unidentified behavior can be observed in the feature SBX-66765. Steps to Replicate: This problem is highlighted when testing the following scenario in the lab with ASAN enabled images. - The SBC is configured with V6 Address for IMS LI UDP media.
- Make a call.
- The media Interception should happen.
- The IPsec connection should get established for the SBC and peer.
| The code is modified to handle V6 Address overflow. Workaround: N/A |
SBX-103801 | SBX-104105 | 2 | Portfix SBX-103801: ASAN: Observed a run time error in the M-SBC "runtime error: load of value 42, which is not a valid value for type 'bool'" Impact: The M-SBC could potentially configure the wrong data path mode for a call.
Root Cause: No issues were observed while running this functionality on a regular deployment image. But while testing with ASAN it highlighted that some of the fields used in a call resource allocation message were not always initialized correctly. This can potentially lead to unexpected behavior e.g. SYS_ERRs, wrong datapath mode set up.
Steps to Replicate: This issue was highlighted while while running test suite related to RFC-4117 MRF Mid-Call modification Enhancement.
| The code is modified to correctly initialize the resource allocation request fields to avoid issues. Workaround: None. |
SBX-93898 | SBX-104515 | 2 | Portfix SBX-93898: The "request sbx xrm debug command sec -stat gcid <gcid>" was not showing the enc and dec details on the SBC SWe. Impact: This debug command in unhide section is not showing all the required fields populated in the SBC SWe.
Root Cause: The NP response is not framed in expected order to application layer.
Steps to Replicate: Run a SRTP call and the issue this debug command. The debug command does not show all the populated fields.
| The code is modified so the NP Response is correctly framed in expected order to application layer. Workaround: This debug command is to see SSN field value with RoC, all other details can be seen from show call mediastatus. |
SBX-96116 | SBX-99724 | 2 | Portfix SBX-96116: The LeakSanitizer detected memory leaks at SipSgCopyRemoteAddressInfo. Impact: Observed a memory leak during an early call termination. Root Cause: Whenever a call terminated early at the ingress leg, some resources were not freed and it was causing the memory leak. Steps to Replicate: Configure the SBC to reject an HPC call based on GETS-Feature Control Match and RPH header processing (For early termination). | The code is modified to free the memory during an early call termination. Workaround: N/A |
SBX-104342 | 3 | The SBC silently drops the second Notify when running the off board query for the eventDialog. Impact: SBCs silently drop the second Notify within a Subscribe if it received simultaneously.
Root Cause: Currently, the SBC does not support multiple Notify when it requires an off board query for a dialogEvent of Notify.
Steps to Replicate: After a Subscribe, the Peer server sends multiple Notify (almost at the same time) with dialogEvent for an off board query.
| The code is modified so the SBCs respond with 503 with retry-after for this case. Workaround: None. |
SBX-103922 | 2 | There was a PRS Process coredump on an active/A node in the middle of an upgrade. Impact: The PRS Process cored during the LSWU while syncing ICE call data.
Root Cause: The ICE redundancy code is taking a long time to sync the call data with the standby during LSWU, causing a Healthcheck timeout and a core dump.
Steps to Replicate: The issue cannot be reproduced easily.
| The code is modified so the ICE syncs the call data to standby and addresses the issue. Workaround: None. |
SBX-104147 | 3 | After the switchover, a large amount of the DBG messages generated. Impact: When TG block direction setting is modified before a switchover, modified block direction setting does not reflect on SIP calls/message relays after switchover.
Root Cause: The SBC does not modify block direction correctly on the standby node.
Steps to Replicate: - Blocked the TG on SBC-a(ACT)
SUBSCRIBE is blocked with error : 503. - Switchover from SBC-a to SBC-b.
- Confirmed the status which TG was blocked from SBC-b(ACT).
- Switchover from SBC-b to SBC-a.
- Confirmed the status which TG was blocked from SBC-a(ACT).
- Unblocked TG on SBC-a(ACT).
- Switchover from SBC-a to SBC-b.
- Confirmed the TG status from SBC-b(ACT), it displayed unblocked, when SUBSCRIBE is tried, the SBC sends 503 back to ingress.
With a fix, at step 8, the SBC will relay SUBSCRIBE message correctly. | The code is modified to ensure the block direction configuration works correctly after a switchover. Workaround: 1. Apply following workaround to toggle block direction set addressContext AC zone zone1 sipTrunkGroup SIPTG1 blockDirection incoming commit set addressContext AC zone zone1 sipTrunkGroup SIPTG1 blockDirection non commit |
SBX-104247 | 2 | Resource memory congestion level 3 is approaching threshold 90 sample 81. Impact: The SAM Process is leaking memory when the AKA is being used.
Root Cause: The SAM Process is leaking an AKA related structure when the code is handling an error case scenario.
Steps to Replicate: Unable to reproduce this issue. The root cause was found by code inspection. | The code is modified to correctly free the AKA structure in all scenarios. Workaround: None. |
SBX-101668 | SBX-103360 | 2 | Portfix SBX-101668: The LeakSanitizer detects the memory leaks at the hdb_handle_create. Impact: The leak sanitizer was reporting some memory leaks because of memory allocation done in the CcSetLiCdcMediaTypeFromDb() function in a ccCsv.c file. Root Cause: The CcSetLiCdcMediaTypeFromDb() function in memory is dynamically allocated for the mediaIpInterfaceGroupName but not freed, which caused the memory leak. Steps to Replicate: Run a 3xx call with LI configuration on an ASAN build and this leak should not appear. | The code is modified to free the memory allocated to mediaIpInterfaceGroupName after the use of this variable is completed. Workaround: None. |
SBX-102151 | SBX-103153 | 2 | Portfix SBX-102151: D-SBC is not sending the rtp packets to other end after transfer in a transcoded call. Impact: On the D-SBC, one way media was observed with no media towards calling party A post call transfer by B to C for the scenario: First call (A-SBC-AS, AS-SBC-B), B'-SBC-AS, AS-SBC-C), where AS=Broadsoft application server. From packet capture on A-SBC leg of the single DSP transcode call, the sequence number of packets sent by the SBC was reset to zero after A is put off hold. This issue is not seen on the I-SBC. Root Cause: In the D-SBC, with every modify (ex: hold/resume) a new DSP(s) is allocated for a transcode call. The RTP sequence number and RTP timestamp from previous the DSP deactivation were not being passed to the subsequent DSPs allocated in the context of the same RTP stream (SSRC). Steps to Replicate: Ways to replicate the issue:
1. A simple UAC (G711)-SBC-UAS (G729) transcode call on platform which uses a single DSP. Perform a call hold and resume from UAS and observe the RTP packets sequence numbers towards UAC. The sequence number is reset to zero post resume leading to one way media (no media towards UAC post resume). 2. With call transfer: Test Set up: A1,A2,A3 -------------DSBC--------------NS,AS,MS (HOSTED) Preconditions: 1. Endpoints A1, A2, and A3 are registered with operator AS through SBC5K (DSBC). Procedure: 2. A1 calls A2, answer the call on A2. 3. User A2 initiates a attended transfer to User A3, User A3 answers the call. 4. Disconnect the call from A1/A3. 5. After A1 is put off hold after successful transfer, the sequence number would be reset to zero leading to one way media (no media towards A1). | The code is modified to ensure the RTP sequence number and the RTP timestamp statistics of both G711 side of DSP and non-G711 side of previous DSP deactivation are passed to the subsequent DSP, so that the sequence number continues incrementing sequentially within the same media stream/SSRC instead of restarting from zero for every modify. Workaround: No workaround. |
SBX-104156 | SBX-104570 | 3 | Portfix SBX-104156: The RTT-TTY support verify call flow in the SBC. Impact: Lower case characters from the t140 packet were not getting converted correctly to Baudot (tty). Also, some other characters were not getting converted as per V.18 A2 table. Root Cause: The translation table from T140 to Baudot (TTY) only accounted for subset of characters that were present in Baudot (TTY) character set. Steps to Replicate: - Set up a T.140=>Baudot (AMRNB=>G711) call.
- Create a T.140 pcap file with all UTF8 characters (128) and validate baudot generation.
- Create a T.140 pcap file with multi-byte sequence and validate baudot.
| The code is modified for: - The t140=>Baudot translation table as per V.18 Annx2.
- Handling valid multi-byte (2,3 and 4 bytes).
- Handling of Byte Order Mark (BOM).
- Invalid byte sequence and substitute valid but unknown multi-byte seq with an apostrophe.
Workaround: Instead of lower case letters, use upper case letters. |
SBX-98884 | SBX-99690 | 2 | Portfix SBX-98884: The LeakSanitizer detected memory leaks at the IcmAlloc2. Impact: The ASAN shows a memory leak when run with the surrogate registration. Root Cause: A memory leak caused by the ICM request message since it did not free the SURROGATE task. Steps to Replicate: - Install the ASAN build.
- Configure the surrogate registration.
- Once the registration complete, disable the surrogate conf and cleanup.
- Verify the ASAN leak report.
| The code is modified so now the ICM memory is freed in the SURROGATE task when receiving a request from the SIPFE. Workaround: N/A |
SBX-100713 | SBX-103587 | 2 | Observing the major log "XrmAsyncCmdErrHdlr: ERROR NpMediaIntf cmd 2a gcid" in all nodes of the 2:1 cluster. Impact: Observed the major log "XrmAsyncCmdErrHdlr: ERROR NpMediaIntf cmd 2a gcid" in all nodes of 2:1 cluster. Root Cause: As the error did not have a valid GCID, the error log becomes unidentified, since there is no action taken by application based on this error message. Steps to Replicate: Set up:
1.
| The code is modified to move the error message below the GCID validity check.
During the validation if any issue is found, there is only valid points. Workaround: None. |
SBX-103154 | SBX-103400 | 2 | Portfix SBX-103154: The SBC:9.1 Comp_EnmProcessMain experienced a core dump. Impact: Observed in a AWS instance when the license is applied immediately after the SBC comes up. Root Cause: When the SBC comes up, the EMA loads default configurations on to the SBC (in this particular case it was loading the trap target configuration) and at the same time, the automation suite run by Design triggered the license installation. The race condition between the EMA trigger and the license command caused a deadlock because no command was able to proceed to completion and EnmProcess cored. Steps to Replicate: To simulate the simultaneous trigger from EMA (REST API) and CLI, the following script was running to create and delete the trap target. While the script was running, a CLI session was opened and license installation command was run: #!/bin/bash while : ; do curl -kisu admin:admin -XPUT -H "Content-Type: application/vnd.yang.data+xml" https://<EMA IP>/api/config/oam/snmp/trapTarget/target1 --data ' <trapTarget xmlns="http://sonusnet.com/ns/mibs/SONUS-ORCA/1.0"> <name>target1</name> <ipAddress>127.0.0.1</ipAddress> <port>8163</port> <trapType>v2</trapType> <targetUsername>admin</targetUsername> <targetSecurityLevel>noAuthNoPriv</targetSecurityLevel> <state>enabled</state> </trapTarget> ' curl -kisu admin:admin -XDELETE https://<EMA IP>/api/config/oam/snmp/trapTarget/target1 sleep .5; done
| The code is modified to handle license installation to a thread so that it is not blocked by any other command and it does not block any command. Workaround: Delay the license installation for a few seconds after the SBC is up and running. |
SBX-100938 | SBX-101797 | 2 | Portfix SBX-100938: on the SBC for Blind Transfer no Answer from the customer when replied with 603 Decline. Impact: On the refer failure tone was not aborted. Due to this, the media resources were in the wrong states. So when the SBC tried to revert to original call, it crashed. Root Cause: Design was not aborting the tone on refer failure. This lead to issue in media handling. Steps to Replicate: 1. Initiate a basic C2C from the customer app through KL user to Cisco EP1. 2. Call is answered. 3. Initiate a transfer call from the customer app to PSTN POLYCOM EP. 4. After REFER for Transfer is received on the SBC, KL will be out of call. POLYCOM EP do not answer the call and sends 603 Decline. At this point, a crash should not happen and the SBC reverts to the original call. | The code is modified to abort tone on refer failure. Workaround: None. |
SBX-100515 | SBX-103402 | 2 | Portfix SBX-100515: Calls are getting rejected with 403 instead of 480, when configured subscribeBurstMax is more than subscribeRateMax. Impact: The subscriber request are getting rejected with 403 instead of 480, when configured, the subscribeBurstMax is more than subscribeRateMax. Root Cause: The EndPoint Rate policy for the SUBSCRIBER request putting into OOD (OUT OF DIALOG) request bucket and request handling was treated as SUBSCRIBER, as a result it response causes the code mapping was not working for subscriber. Steps to Replicate: 1. Configure the subsIngressEndPointRatePolicing in internalSipCauseMapProfile. [set profiles signaling sipCauseCodeMapping internalSipCauseMapProfile <profile_name> causeMap subsIngEpRatePolicing sipCause 480]. 2. Configure the internalCauseString ex: "subscription rate exceeded" for subsIngEpRatePolicing [set profiles signaling sipCauseCodeMapping internalSipCauseMapProfile <profile_name> causeMap subsIngEpRatePolicing internalCauseString subscription rate exceeded]. 3. Set TG level subscribe rate as 4 in ingress Cac [set addressContext default zone <Ingress_zone> sipTrunkGroup <Ingress_TG> cac ingress subscribeRateMax 4 subscribeBurstMax 6]. 4. Send 8 per second to SBC from ingress Trunk group. | The code is modified to keep the EndPoint Rate policy for SUBSCRIBER in the SUBSCRIBER rate policy bucket. Workaround: None. |
SBX-104347 | 2 | Resource memory congestion level 3 is approaching threshold 90 sample 82. Impact: The SIPCM is leaking a structure that is associated with the SIPMM functionality.
Root Cause: The code to free this memory under certain error/edge scenarios is missing.
Steps to Replicate: Since we do not know the exact call flow that caused the customer to hit the error condition, we cannot suggest Test Steps.
| The code is modified to free the SIPMM related structure in error scenarios. Workaround: Since we do not know the exact call flow that caused the customer to hit the error condition, we cannot suggest a workaround. |
SBX-103634 | SBX-104230 | 2 | Portfix SBX-103634: The LeakSanitizer: detected memory leaks in DCmRestoreAllMetaVarsToStandbyContext. Impact: A small Memory leak was observed in the SAM process while doing a switchover from standby to active box.
Root Cause: The standby instance stores information about the metavars associated with signaling ports configured on the active instance. During the conversion from standby to active. The standby data is moved into active structures but the original standby memory blocks are not freed up correctly resulting in a memory leak.
Steps to Replicate: Perform a switchover from standby to active while running a basic call, no memory leak will observed in the SAM process.
| The code is modified to correctly free the memory associated with the standby data when it is transitioned to active to avoid the memory leak. Workaround: None. |
SBX-103988 | SBX-104546 | 2 | Portfix SBX-103988: The ICE not working after an upgrade. Impact: When a call with ICE changes from direct media to pass through, ICE learning does not get enabled on the call. Root Cause: The code was not re-enabling the ICE FSM to start ICE learning when changing from direct media to pass through. Steps to Replicate: Test 1 -------- - Establish a call with ICE on ingress and xdmi on egress.
- Send re-invite from egress without xdmi and complete the re-invite related signaling.
- Send stuns to ingress media to complete ICE learning and verify call state changes to established and media can be exchanged between ingress and egress.
| The code is modified to re-enable the ICE FSM when changing from direct media to pass through to allow the receipt and processing of stun messages to complete ICE learning. Workaround: N/A |
SBX-103028 | 3 | The PRS process cored in NP media interface function. Impact: The PRS process cored in NP media interface function.
Root Cause: When examining the source code, we found the command sent to NP was not initialized properly.
Steps to Replicate: This cannot be easily reproduced. | The code is modified to initialize the command correctly. Workaround: None. |
SBX-98843 | SBX-104448 | 2 | Portfix SBX-98843: Problem with management of the maxptime and ptime in Direct Media mode. Impact: Problem with management of the maxptime and ptime in Direct Media mode.
Root Cause: Generally, the SBC ignores the ptime value if only the maxptime attribute is present in incoming SDP. If "sendPtimeInSdp" IPSP flag is enabled and peer is sending both ptime and maxptime, the SBC is preferring maxptime value while sending ptime. The existing IPSP flag "sendPtimeInSdp" makes the SBC send out a=ptime, irrespective of what we receive from the peer. Steps to Replicate: R-i=20 R-e=20 -----INVITE--------> SBC -----INVITE--------> ptime=20 maxptime=40 ptime=20 - Do a basic call from A to B.
- A sends ptime=20 and maxptime=40 towards the SBC.
- The Invite going out from the SBC should contain ptime=20 as we enabled both "sendPtimeInSdp" IPSP flag and "preferPtimeInSdp" TG flag.
| The code is modified when this new flag "preferPtimeInSdp" is enabled, the SBC prefers ptime value received in a=ptime over a=maxptime in an incoming SDP. This new flag "preferPtimeInSdp" needs be enabled in conjunction with existing flag "sendPtimeInSdp". If the SBC is configured to send a=ptime (isendPtimeInSdp is enabled on outgoing trunk), then the preferPtimeInSdp is enabled on incoming trunk and vice versa. Workaround: None. |
SBX-97818 | SBX-103401 | 2 | Portfix SBX-97818: The audio stream with port=0 appears in callDetailStatus. Impact: The audio stream with a port=0 shows up in the . Root Cause: Currently, for an audio stream, there is no condition for stream absent. As a result, an audio stream is retaining even if a port is 0. Steps to Replicate: Video and Audio (Audio Port = 0) 1. Make a basic video only call from A-B. 2. On a re-invite, add a Audio stream with valid port. 3. On the final re-invite change Audio port to 0. Existing Behavior: When Audio port is 0, audio stream is displaying in callMediaStatus and callDetailStatus
New Behavior: When the Audio port is 0 complete Audio stream is removed from callMediaStatus and callDetailStatus. | The code is modified for an audio stream so that in a Video and Audio (audio port = 0) call, the audio stream gets removed from callMediaStatus and callDetailStatus. Workaround: None. |
SBX-92770 | SBX-99738 | 2 | Portfix SBX-92770: The SBC is not relaying the INFO coming with the message body to the other leg. Impact: After a call transfer, an in-dialog SIP INFO messages were not relayed by the SBC. Root Cause: The code was missing to handle the relay of the SIP INFO messages received on a transferred leg. Steps to Replicate: - Establish an A--->SBC--->B call.
- A transfers a call to C. The call is now between B and C.
- Either Party B or C sends an in dialog SIP INFO message.
| The code is modified to handle the relay of INFO messages received after call transfer. Workaround: N/A |
SBX-104670 | SBX-104845 | 2 | Portfix SBX-104670: Add the configStore information to the sysdump. Impact: Missing the configStore data to properly investigate the configuration revision issues.
Root Cause: Missing the configStore directory content list in the configStore tarball produced by the sysDump.pl.
Steps to Replicate: Execute the sysDump.pl and check that virtualLogs/configStore tarbal contains the configStore directory content list.
| Add a configStore directory content list in the configStore tarball produced by sysDump.pl to address the issue. Workaround: Get the configStore directory content list directly from the node(s). |
SBX-100590 | 2 | An incorrect "Egress Zone Name" in ATTEMPT CDR for a GW-GW call. Impact: For a call with multiple routes that include one or more local routes followed by routes on another gateway (for GW-GW) scenario, if the local routes fail and then other gateway route is selected, the resulting ingress gateway CDR for the call has an incorrect egress zone name and ID.
Root Cause: When there are multiple routes, when a route fails the call cranks back to use the next route but when selecting the next route the code is not clearing the internal CDR information for the egress zone, so if the next route selected is on another gateway the CDR information retains the egress zone information from the previous attempt rather than being blank.
Steps to Replicate: - With SBC GW-GW set up create two routes for a call such that:
- route 1 is through local egress trunk group on the SBC1. - route 2 is through egress trunk group on the SBC2. - Set crankback profile to enable attemptRecordGeneration and add reason 41 (503 is mapped to 41 in default SIP to CPC mapping profile) - Send a valid INVITE to the SBC1 ingress that will first select route1 and route out through the egress trunk group on the SBC1. From the egress endpoint reject that call attempt with a 503 Service Unavailable.
- The call will crank back and re-route using route2 through the SBC2 egress trunk group. From the egress endpoint reject that call attempt with a 503 Service Unavailable
- Check that there are two Attempt CDR records for the call on the SBC1:
- ATTEMPT1 should have "Egress Zone Name" and "Egress Zone ID" fields populated correctly with zone information for zone of the SBC1 egress.
- ATTEMPT2 should have "Egress Zone Name" empty and "Egress Zone ID" as 0 because this is attempt for GW-GW route.
| The code is modified to clear the internal CDR information for the egress zone when one route fails and the next route is selected. Workaround: None. |
SBX-104741 | SBX-104777 | 2 | Portfix SBX-104741: An error message is not yed while creating an IP Peer, Ingress Ip Prefix, Radius Server. Impact: The error message is not displaying while creating an IP Peer, Ingress Ip Prefix, Radius Server.
Root Cause: The error message was not displayed because we handled that error in the code and are unable to send it to the UI.
Steps to Replicate: Steps to reproduce the issue: - Login to the EMA as admin user.
- Click on All Menu.
- Expand Address Context > Zone > Ip Peer.
- Create Ip Peer with IpAddress "::1" and ipPort "7080".
- Click on Save.
| The code is modified to throw an exception/Error to the UI. Workaround: If we perform the same operation from CLI , we can get the same error message. |
SBX-104704 | 2 | Duplicate audio entries in the route PSP. Impact: If the number of codec entries in the packet service profile is more than 4, then the ERE was sending the codec entries 5-12 in the policy response twice. The duplicate entries could potentially cause problems when the SBC is performing codec intersection logic resulting in some codecs not being selected so the best audio match might not happen.
Root Cause: The ERE was incorrectly calling a function to populate entries 5-12 in the policy response twice.
Steps to Replicate: Populate the PSP with more than 4 codec entries in the ingress PSP and egress PSP and review the pes.logs to see the duplicate entries.
| The code is modified to remove the functions that populated the codec entries 5-12 in the policy response so they only get return once. Workaround: None. |
SBX-102370 | SBX-103335 | 2 | Portfix SBX-102370: Subscription State is not updated as per expires parameter received in NOTIFY. Impact: The subscription State is not updated based on the expired parameter received in the NOTIFY. Root Cause: The SBC was not processing the expires in the Subscription-State header of the NOTIFY. Steps to Replicate: 1. Run SUB-200 OK. 2. Send NOTIFY1 from UAS with expires parameter time t1. 3. Send NOTIFY2 from UAS with expires parameter time t2. (t2<t1) | The code is modified to consider the expires value in header, during the state "active" or "pending". Workaround: None. |
SBX-103669 | SBX-104860 | 2 | Portfix SBX-103669: Empty the "Egress Local Signaling IP Addr" field in the CDR. Impact: When an incoming call is routed out of the SBC but is then rejected by the SBC with cause 132 Module failure before a backwards response message is received, the resulting CDR attempt has an empty "Egress Local Signaling IP Addr" field.
Root Cause: The SBC currently populates the "Egress Local Signaling IP Addr" CDR field when it processes a backwards response message for the call, and as a result, the field remains empty until a backwards response message is received and processed.
Steps to Replicate: - Initiate a call by sending a valid INVITE to the SBC ingress TG to route towards the egress TG.
- Once the INVITE is sent to egress by the SBC, put the signaling port to egress out of service.
- The SBC will clear the call by sending a 503 message towards egress. The resulting attempt CDR should have valid address in "Egress Local Signaling IP Addr" field.
| The code is modified to populate the "Egress Local Signaling IP Addr" CDR field when sending out the egress INVITE message. Workaround: None. |
SBX-102996 | SBX-103332 | 2 | Portfix SBX-102996: The wrong CSeq number was sent for BYE as part of a call termination after a SBC switchover. Impact: The wrong CSeq number was sent for BYE as part of a call termination after an SBC Switchover. Root Cause: When a In dialog Event INFO is received containing body/content type as 'media_control'. The SBC generates a new INFO request towards peer. Due to this the Cseq, in a dialog gets increased, this modified Cseq value was not mirrored to the SBY. Steps to Replicate: 1. The call is established between PSTN User-B to Cisco User-A. 2. User-B initiates a Blind transfer call to PSTN User-C and answered on C. 3. Various INFOs are exchanged. 4. Perform SBC Failover after answering the call on User-C. 5. Send OOD Refer from Kandy Link having Refer-To header with method = BYE, valid Target-Dialog header and Request-URI points to SBC for Call Termination of PSTN User-C. 6. SBC sends BYE to both User C and User A. | The code is modified to the SBY during the INFO flow fixes the problem. Workaround: Avoid the fail overs and use the stand alone set up. |
SBX-73860 | SBX-104692 | 2 | Portfix SBX-73860: The SAM process coredumps after a restart during surrogate registration and deregistration. Impact: The SAM process coredumps after a restart during surrogate registration and deregistration.
Root Cause: Accessing the pointer without a NULL check causes the core dump.
Steps to Replicate: - Enable the flag sendSurrogateUnRegAfterReboot using set global signaling sipSigControls sendSurrogateUnRegAfterReboot enabled.
- Enable surrogate registration the SBC starts sending REGISTER to registrar. Set the addressContext default zone zonein ipPeer PEER1 surrogateRegistration state enabled.
- Registrar responds with 401 Authentication header response.
- After receiving the challenge REGISTER that contains a valid Authorization header, the registrar responds with 200 OK.
- Switchover from active to standby using request system admin HA-5100 switchover.
- Switchover again using request system admin HA-5100 switchover.
- Restart both the HA-PAIR.
- Registrar responds with 200 OK for all the unREGISTERs sent by the active SBC when the services come up.
- After successful deregistration, the SBC starts sending REGISTER to registrar.
- Registrar responds with 401 Authentication header response.
- After receiving the challenge REGISTER that contains a valid Authorization header, the registrar responds with 200 OK.
| The code is modified to avoid a segmentation fault. Workaround: None. |
SBX-74991 | 2 | Saving changes to a SMM profile after doing an edit/update operation is taking long time[8 to 16 minutes]. Impact: A SIP Adaptor Profile with 250+ rules takes lot of time to create, including taking a lot of time to update.
Root Cause: When the SIP Adapter Profile with more than one rule is created, each rule is committed individually. However, after each commit EMA internally retrieves all the SIP Adapter Profiles along with their rules, though this is not required it is causing slowness of both create and update operation.
Steps to Replicate: - Login to the EMA.
- Navigate to the SIP Adapter Profile Screen.
- Create a profile with 200+ Rules.
- Click on Save button.
| The code is modified to prevent the retrieval of SIP adapter profiles after each commit. Workaround: The only workaround is to create the profile from the CLI. |
SBX-100702 | SBX-103586 | 2 | Portfix SBX-100702: Observing the "ERROR : Channel 146 already in de-activated state" in the dsp log. Impact: The dsp.log is overwhelmed with the "ERROR: Channel ## already in de-activated state" prints. Root Cause: In the GPU design, as part of the command optimization, if there are more than one command for a channel in a particular time slot, the most recent command for the channel is sent to GPU for processing.
The call flow exercised, activates and de-activates the channel immediately, which could be potentially result in sending the activate command followed by de-activate command for the channel in the same time slot. Due to the command optimization mentioned above, the de-activate command is sent for the channel. Since the channel is already in de-activated state and an attempt is made to de-activate it, a message is printed. Steps to Replicate: Activate and de-activate a channel immediately within 20ms. | The code is modified to disable the prints to not overwhelm the log and impact performance. Workaround: None. |
SBX-102745 | SBX-103361 | 2 | Portfix SBX-102745: The C_LIST macro for consistent memory was freeing. Impact: When making changes to the local auth user configuration on the SBC, it was leaking small amounts of memory. Root Cause: While processing the list of configured users, the application code was reading the CDB information into local buffers and then not freeing it, leading to a small memory. Steps to Replicate: This issue is highlighted when make local user configuration changes in the engineering lab with ASAN images. | The code is modified with standard macros to delete the list structures in a generic manner to avoid this problem in the future. Workaround: None. |
SBX-104851 | 2 | The SBC is down and the standby registration with active failed, error 160004. Impact: Standby is not allowed to join cluster and fails to start
Root Cause: The safplus checkpoint file is corrupt and the section needing to be overwritten is not found.
Steps to Replicate: The root cause of the checkpoint corruption is unknown/checkpoint corruption cannot be forced and therefore directly testing this fix is not possible.
| The code is modified to re-add the missing section if it is not found. Workaround: A complete outage is required in order to restart the active server. |
SBX-105072 | 2 | The password padding with random characters by the SBC causes the RADIUS server to reject the password. Impact: The radius password sent to the server has no zero characters at the end, following the password and a NULL. Root Cause: The radius passwords are padded to 16 characters. The existing implementation did not set those padded characters to 0. Steps to Replicate: - Configure a radius authentication server.
- Use a password that is less than 15 characters long for the external radius user.
- Set externalAuthententication to true.
- Run a tshark session.
- Login to the CLI.
- Stop the tshark.
- View the radius password element in wireshark after configuring the shared secret in wireshark under protocol preferences.
| The code is modified so the padded characters are now set to 0. Workaround: Use 15 or 16 character passwords. |
SBX-104113 | 2 | The LI mediationServer signaling channel was online even if the interface was down. Impact: Without this fix, the LI mediationServer signaling channel stays online, even after ipInterfacegroup attached to call data channel (CDC) is disabled post a switch-over.
Root Cause: The root cause came from code handling the LI mediation server signaling socket functionality did not register for ipInterfaceGroup operational status in standby mode. As a result, post switch-over it does not get any notification when ipInterfaceGroup attached to CDC toggles. The signaling connection towards mediation server is not closed. Steps to Replicate: - Create the CDC and configure it for IMSLI and validate that the LI signaling channel is inService.
- Run a switch-over.
- Disable the ipInterfaceGroup attached to CDC.
| The code is modified to register the ipInterfaceGroup that is attached in the CDC in standby mode as well so that if and once it becomes active due to switch-over, it is put into operational status of the ipInterfaceGroup attached to the CDC. Workaround: None. |
SBX-104132 | 2 | Incorrect indication for whether the SMM was applied or not required. Impact: For machine parsing of trace logs, it is necessary to have a consistent field in the trace which indicates the message sent on the wire, regardless of whether the SMM is applied or not.
Root Cause: There was a design issue.
Steps to Replicate: - Make a SIP-SIP call with L4 call trace enabled.
- Messages sent on the wire have trace "SMM: OUTBOUND PRE-SMM"
- Make a SIP-SIP call with L4 call trace enabled and an outbound SMM active.
- Messages sent on the wire have trace "SMM: OUTBOUND POST-SMM"
| When the SMM is applied to a message, the behaviour is unchanged. When an SMM is not applied to a message, the L1-3 trace has "EXTRA_INFO: After SIPMM profile" and the L4 trace has "SMM: OUTBOUND POST-SMM". When looking for messages as sent on the wire, the post SMM trace can always be used. Workaround: None. |
SBX-102501 | SBX-105036 | 2 | Portfix SBX-102501: The SBC fails to relay an embedded header in Contact of 3xx with statusCode3xx relay enabled. Impact: The SBC fails to relay an embedded header in Contact of 3xx with statusCode3xx relay enabled.
Root Cause: The code required to send the embedded part in contact of 3xx was not present.
Steps to Replicate: - Configure the SBC for A to B call.
- Enable the flag statusCode3xx on egress TG IPSP.
- Send an INVITE from UAC.
- Send an 300 Multiple Choice from UAS with below Contact header that has embedded headers.
| The code is modified to set only in the relay 3xx case to send the entire contact header transparently. Workaround: None. |
SBX-94798 | SBX-104272 | 2 | Portfix SBX-94798: MS Teams with FLRBT enabled hangs the call. Impact: When Force Local Ringback Tone is applied on a call that been through SIP replace followed by SIP refer procedure, and the final trunk group has downstream forking enabled, the final 200 OK response may be queued indefinitely, meaning the call does not complete.
Root Cause: Interactions between Force Local Ringback Tone, multi-party and downstream forking.
Steps to Replicate: - Make a SIP to SIP call.
- A calls B.
- B' replaces B.
- B' refers to C.
- Trunk for A has Force Local Ringback Tone applied.
- Trunk for C has downstream forking enabled.
- C responds with 180 with no SDP, 183 with SDP, then 200 OK.
| The code is modified to prevent the queuing. Workaround: None. |
SBX-104826 | SBX-105091 | 3 | Portfix SBX-104826: The SBC fails to relay to 3xx and picks the next route when EnhancedLocalRedirection and StatusCode3xx flags are enabled. Impact: The SBC fails to relay the received 3xx to the ingress side and picks the next route when EnhancedLocalRedirection and StatusCode3xx flags are enabled with 2 routes.
Root Cause: When both the StatusCode3xx and EnhancedLocalRedirection are enabled for the 2 routes scenario, performCrankback is set to true that leads to this issue.
Steps to Replicate: - Configure the SBC for A to B call over ERE.
- Configure ERE to return two routes for Initial call R1, R2.
- Enable the flag statusCode3xx, EnhancedLocalRedirection on TG IPSP.
- Send to INVITE from UAC.
- Send to 300 Multiple Choice from UAS with Contact header and embedded headers.
| The code is modified to ensure that performCrankback is not set to true when both the EnhancedLocalRedirection and StatusCode3xx are enabled. Workaround: None. |
SBX-104214 | 2 | A SIPREC Codec negotiation issue occured. Impact: Without this fix, the wrong codecs are negotiated with the SRS when communication sessions is renegotiated.
Root Cause: Because of the wrong conditions in code, the codec information that is to be sent towards SRS is fetched from peer packet service profile rather than active service profile from the communication call leg.
Steps to Replicate: - The SBC receives INVITE with G711A, G711U
- Egress leg responds with A law and RTP stream is A law.
- The SBC sends an INVITE to SIPRec server with G711A law and SIPRec servers responds with A law.
- Egress leg sends re-INVITE and changes the order of codecs, G711U and G711A respectively.
- The SBC relays the re-INVITE to ingress peer with G711U, G711A respectively and ingress peer responds with G711A.
- The SBC was sending a re-INVITE with G711U codec to SIPRec Server.
With this fix, the SBC now sends a re-INVITE with G711A codec to SIPRec server. | The code is modified to fetch correct codec information from the communication session and the same is sent in recording session. Workaround: None. |
SBX-100864 | SBX-103376 | 2 | Portfix SBX-100864: The ASAN detected heap-use-after-free in DnsClientTcpSocketRecvMsg. Impact: When a connection to a DNS server running on transport protocol TCP closes, memory is accessed after it is freed, potentially leading to unexpected behavior. Root Cause: A connection to a DNS server running on transport protocol TCP closes. Steps to Replicate: Address Sanitizer (ASAN) build is used to find the issue. Configure a DNS server with transportProtocol TCP. Run a call which requires DNS lookup. | The code is modified to correct management of DNS connections running on transport protocol TCP. Workaround: None. |
SBX-103814 | SBX-104726 | 2 | Portfix SBX-103814: The RECORDING CDR does not have correct value for SRTP field during a switchover. Impact: The SIPREC related "RECORDING" CDR did not had correct values for SRTP related statistics fields during a switchover.
Root Cause: It was identified that there was a missing code that actually copies the SRTP related statistics fields data onto to the standby machine. As a result, whenever the standby machine comes up as active the SRTP related data in RECORDING CDR was not populated correctly. Steps to Replicate: - Execute a SRTP SIPREC scenario.
- Perform a switchover.
- Verify the RECORDING CDR.
| The code is modified to copy the SRTP related fields data onto standby machine. Whenever standby machine comes up as active, the SRTP related data in RECORDING CDR is populated correctly. Workaround: None. |
SBX-104213 | 2 | The SCM process cores when targets set for OPTIONS/MESSAGE. Impact: Without this fix, the SBC will core dump when the Out Of Dialogue messages like OPTIONS/MESSAGE are intercepted.
Root Cause: The double freeing of a data structure is causing the code dump.
Steps to Replicate: - Provision packet cable 2.0 Targets corresponding to the out of dialogue OPTIONS that will be sent to the SBC.
- Send OPTIONS to the SBC.
| The code is modified to avoid double freeing of the corresponding data structure. Also addressed couple of memory leaks concerned with the same data structure in error cases such as ARS blacklisting. Workaround: None. |
SBX-76462 | SBX-99744 | 2 | Portfix SBX-76462: The incorrect MaxAverageBitRate value is populated in the "ingress codecParams1" after a switchover. Impact: The incorrect MaxAverageBitRate value is populated in the "ingress codecParams1" after a switchover. Root Cause: Some of the codecs attribute values were being set to 0 after a switchover, and as a result those values were getting assigned to the default values. Steps to Replicate: Run aSILK_NB to SILK_NB call. After the switchover, the MaxAverageBitRate value is 0 instead of 20000 in the "ingress codecParams1 and egress codecParams1". | To fix the issue, those statements are removed and change the attribute fields as a result. Workaround: Some of the codes use certain attribute fields as being defined. But after the switchover, these used attributes field values have been changed to 0. For those codecs, these statements have been eliminated. |
SBX-95677 | SBX-104725 | 2 | Portfix SBX-95677: The SBC is not feeding delayed RBT on monitoring failure in a late media scenario in CLOUD ISBC and SWE ISBC. Impact: The SBC is not feeding delayed RBT on monitoring failure in a late media pass through call
Root Cause: The fix for SBC not feeding delayed RBT on monitoring failure in a late media pass through scenario was applicable only when bToneAsAnnc flag is enabled.
Steps to Replicate: - An INVITE received without SDP and no "PEM: supported" from UAC.
- UAS sends 183 with SDP and no PEM having PCMU,AMR.
- UAC send PRACK with SDP PCMU,G729 and UAS sends 200 OK for PRACK.
- UAS sends authorized RTP.
- UAS sends 180 without SDP and no PEM.
- UAC send PRACK and UAS sends 200 OK for PRACK.
After an RTP Monitoring failure, the SBC should play the tone. | The code is modified to address the issue. Workaround: None. |
SBX-97598 | SBX-103366 | 2 | Portfix SBX-97598: The LeakSanitizer detected memory leaks at SipSgGetHpcCallProfileFromDb. Impact: There was a memory leak when configuring and updating the HPC Call Profile gets the Strings Feature Code, Access Number and Number Translation. Root Cause: Configuring and Updating the CLI Hpc Call Profile gets the Strings Feature Code, Access Number and Number Translation. Steps to Replicate: None. | The code is modified so while de-allocating the list's while retrieving the data in the Feature Code, Access Number and Number Translation. Workaround: None. |
SBX-102985 | SBX-103393 | 2 | Portfix SBX-102985: The CDR field 'Ticks from Set up Msg to Service Est.' of a START record is getting logged with the wrong value. Impact: The CDR field 'Ticks from Set up Msg to Service Est.' of the START record is getting logged with the wrong value when the "End To End ACK" is enabled and "No CDR Change in End To End ACK" is disabled. Root Cause: Since the E2E ACK is enabled and No CDR Change in E2E Ack is disabled, the call connect time was not getting updated during the 200 OK and the value is still '0'. Due to this issue, the time difference of a call attempt time and the connect time was coming as a huge value. Steps to Replicate: 1. Enable IPSP flag "End to End ACK" on both TGs. 2. Disable the flag "No CDR Change in End to End Ack". 3. Make a call from A to B and let the call be connected with session refresh enabled. 4. Once the session refresh occurs, disconnect the call and check the CDR. | Workaround: None. |
SBX-103807 | SBX-104722 | 2 | Portfix SBX-103807: The SBC disables the SRTP for audio when the EP disables and re-enables the audio. Impact: The SBC disables SRTP for audio when EP disables and re-enables the audio.
Root Cause: During the modify offer processing, the SRTP value is taken from previous Active security PSP without checking if SRTP is valid or not.
Steps to Replicate: Audio and Video RTP to SRTP call between UAC-UAS: - UAC sends invite with Audio and video.
- UAS responds with Audio and Video cryptoline.
- UAC sends re-invite to disable Audio stream port=0 and inactive and Video with valid media port and sendrecv.
- UAS responds 200OK with port=0, a=inactive and no crypto line for audio and video with valid port and crypto line.
- UAC sends re-invite to add Audio stream back with valid media port and sendrecv and video with valid media port and sendrecv.
- UAS responds 200OK with valid Audio and Video crypto lines.
| Copy the Active security PSP only if the SRTP admin state is enabled to address the issue. Workaround: None. |
SBX-101264 | SBX-102822 | 2 | Portfix SBX-101264: The ingressBearerType and egressBearerType is "multimedia", even though negotiation is only with a single audio codec. Impact: The ingressBearerType and egressBearerType is "multimedia", even though negotiation is only a with single audio codec.
Root Cause: At present, the bearerType is set as audio only if Audio stream is present at the first index. As a result, audio only call with audio stream present at index>1 (say (video port=0) + audio (valid port)) gets marked as multi-media call.
Steps to Replicate: - Offer and answer contains video m line with valid port and audio m line with port 0.
BearerType: Multimedia - Offer and answer contains video m line with port 0 and audio m line with valid port.
BearerType: Voice - Offer and answer contains first audio m line with valid port and video m line with port 0.
BearerType: Voice - Offer and answer contains first audio m line with port 0 and video m line with valid port.
BearerType: Mutlimedia - Offer and answer contains multiple audio m-line.
BearerType: Multimedia - Initial Offer answer with multimedia and then send re-INVITE with only audio.
BearerType: Multimedia BearerType after Re-INVITE: Voice - Initial Offer answer with audio and then send re-INVITE with multimedia.
BearerType: voice BearerType after Re-INVITE: Multimedia - Initial Offer and answer contains video m line with valid port and audio m line with port 0 then send re-INVITE with audio m line with sendonly (This scenario is as per SBX-97358) BearerType: Multimedia. BearerType after Re-INVITE : Multimedia
| The code is modified to set the bearerType as audio irrespective of the audio stream index if the only active stream present in SDP is audio. Workaround: None. |
SBX-100868 | SBX-103588 | 2 | Portfix SBX-100868: The OAM does not push the configuration after a switchover to the standby OAM. Impact: The configuration changes on the standby OAM is not rejected. After a switchover, it would not take the same configuration changes as it is already done locally. It will not playback either the save and activate as there is no playback logs created. There is no way to push the changes to the managed nodes until another switchover. Root Cause: Skipping the playback log creation on the standby OAM caused an inconsistent state between the local configuration store and the playback logs. Steps to Replicate: Perform a switchover with the same configuration to reproduce the issue. | The code is modified so attempts to make configuration changes on the standby OAM node are now rejected. Workaround: Switchover back to the original active and restart the standby node so that it resyncs with the active. |
SBX-100483 | SBX-103383 | 2 | Portfix SBX-100483: Observed a coredump Comp_SamP after disabling the sipSigPort. Impact: While disabling the SIP signaling port, the SBC dumped core due to system error. Root Cause: In the SBC, the wrong context ID was used to fetch the metavar related information while configuring (enabling/disabling) the SIP signaling port. As a result, the SBC has generated a system error. Steps to Replicate: Bring up a Public Cloud (AWS) 1:1 HA system. Restart the standby SBC . Try to disable the SIP signaling port. The SBC generated the coredump due to system error. | The code is modified to pass the correct context ID information while fetching the metavar related information while configuring the SIP signaling port. Workaround: Execute the disabling of the SIP signaling port when the standby is up and running. |
SBX-102927 | SBX-105029 | 2 | Portfix SBX-102927: The problem with migration of table_version_info was causing the EVS codec attributes non-readable after upgrade from 7.2 to 8.2. Impact: The upgrade fails to set the default value for maxChannel flag.
Root Cause: The table_version_info table was not getting populated.
Steps to Replicate: The table_version_info table should have data on fresh install.
| The code is modified to address the issue. Workaround: The value in db for attribute3 in code entry table should be modified to set the default value of maxChannels. |
SBX-93308 | SBX-97314 | 2 | Portfix SBX-93308: No DLRBT Tone Play can be heard on User-A phone in a Blind Transfer scenario using 180 ringing with SDP. Impact: There is no DLRBT tone play heard on the transferee while transferrer does a blind transfer. Root Cause: When 180 with SDP received from transfer target, SBC is trying to activate the tone resources towards transferee side. But, before this tone activation occurs, the CUT_THRU is received from the transferred leg that is causing to abort the tone. Steps to Replicate: - Make a call from the customer to the Cisco phone User-A that is a passthrough call.
- Initiate the transfer call from the customer to the User B.
- After a REFER (Direct Media) on the User-A phone DLRBT is not played.
| The code is modified so it ignores this CUT_THRU received from the transferred leg and as a result, the tone is not getting aborted. When a CONNECT or RTP packet is received, then the tone is aborted. Workaround: N/A |
SBX-104149 | 2 | The SBC fails to send ACK for a self generated re-Invite when the E2E ACK and E2E re-Invite flags are enabled. Impact: The SBC fails to send ACK for a self generated re-Invite when the E2E ACK and E2E re-Invite flags are enabled.
Root Cause: When both the E2E re-Invite and E2E Ack are enabled, do not send the ACK re-enable, the SBC was not handling ACk properly for the self-generated re-Invite. There are scenarios when E2e is received RCVD from the Network where the ACK does not need to be sent for a re-Invite from the SIPSG in race condition scenarios. So there was no check to identify if the re-Invite is self generated or the RCVD from a network and wrong logic was executed for the self-generated Invite. Steps to Replicate: Test Configuration: ============= - Enable E2E ACK, E2E Reinvite, E2E PRACK, E2E UPDATE flags in IPSP.
- Enable flag "send sdp in 200 ok if 18x reliable" in IPSP.
Test Procedure: ===========
- UAC sends Invite with SDP.
- UAS sends 183 with SDP reliable.
- PRACK/200 OK is done.
- UAS sends UPDATE with SDP.
- UAC sends 200 OK with SDP.
- UAS sends 200 OK without SDP.
- UAC sends ACK.
| The code is modified so if the re-Invite is self generated then send ACK. Workaround: None. |
SBX-99409 | SBX-99697 | 2 | Portfix SBX-99409: The EMA is not displaying all recordings for the SIPREC status command. Impact: The proper SIPREC status was not displayed when more than one recording going on for a specific call on EMA or when checking the status with all the set of keys on the CLI. The SipRecStatus command was updated with new keys (GCID, legId, Recorder IP:port) but the application had a issue that it looked up the data only based on the GCID. Root Cause: When the status command is issued through the EMA, the EMA queries with all the keys and as a result, the application would end up fetching the first recording for each of the queries. Same thing happens when querying on CLI with all keys for specific entry we end up getting first entry for that GCID. As an example, when a quad recording is in progress on GCID1, when the SipRecStatus is queried using EMA, the EMA would query based on keys for each of the recording, say Recording1: {GCID#1, Ingress-leg, IP1} Recording2: {GCID#1, Ingress-leg, IP2} Recording3: {GCID#1, Egress-leg, IP3} Recording4: {GCID#1, Egress-leg, IP4}. For all of the above keys, the application would display the data corresponding to the first recording. Steps to Replicate: - Set up the SBC with SIPREC Quad Recording for a single main call.
- Check the status of the recordings on EMA.
| The code is modified to receive all the keys of the SIPREC status and display the correct information. Workaround: Check the status on the CLI without specifying all set of keys for the SIPREC status, |
SBX-104705 | SBX-105107 | 2 | Portfix SBX-104705: There was a memory leak on the glusterfsd. Impact: During a soak test on OAM, it was observed that the third party software glusterfsd process was leaking memory. If this occurred over a long duration, the OAM could run out of memory and a core would occur to that process.
Root Cause: The memory leak is observed for the glusterfsd process, which is the brick process. The use of the "gluster volume heal info" function causes the process memory usage to increase and not go down afterward.
Steps to Replicate: - Ensure both Active and Standby OAM are running.
- Monitor glusterfsd memory usage on both nodes.
| Use the "gluster volume heal statistics heal-count" command to determine the gluster bricks heal state. Workaround: Reboot OAM node OR Execute: gluster volume stop gvol1; gluster volume start gvol1. |
SBX-737 | SBX-105413 | 2 | Portfix SBX-737: The support for the 3072 bit long RSA keys is missing. Impact: The SBC needs to support the 3072-bit RSA keys in certificates.
Root Cause: A feature change was required to support the 3072-bit RSA keys in certificates in addition to the 2048-bit and 4096-bit RSA keys.
Steps to Replicate: - Test 3072-bit RSA key certificate on client. Make SIP-TLS call from the client to the SBC acting as TLS server.
- Configure remote certificates with a 3072-bit RSA key.
- Configure local certificates with a 3072-bit RSA key.
- Test a 3072-bit RSA key certificate on the SBC acting as SIP-TLS server.
| The code is modified for the 3072-bit RSA keys in certificates. Workaround: None. |
SBX-105363 | 2 | Unable to access any log with the Platform Manager and EMA. Impact: Unable to access log with the EMA and PM. Root Cause: The jquery.ui.datepicker was not removed as this is updated in the jquery-ui.min file.
Steps to Replicate: - Logged into the PM.
- Go to Troubleshooting => Call trace/Logs/Monitors => Log Management
- Select any categories to see logs.
- Should be able to access logs.
| Remove the jquery.ui.datepicker from the html file to address the issue. Workaround: None. |
SBX-102364 | SBX-105456 | 2 | Portfix SBX-102364: The SBC behavior is inconsistent with the isfocus parameter handling. Impact: Issue 1: The SBC is not transparently passing the complete Contact header in 200 OK of SUBSCRIBE when there is a isfocus parameter. Issue 2: The SBC is not adding the Record-Route in any message when doing a full Contact header transparency Root Cause: Issue 1: The SBC passes contact header transparently only when the isfocus is present in request as well as response and would not send the contact header transparently only when the contact header in response has isfocus parameter. Issue 2: The code to add a record route for notify and its response is not present. Steps to Replicate: - Configure the SBC for A to B call.
- Enable the flag contactTransparencyForIsFocusMediaTag on both TGs.
- Make a SUBSCRIBE-NOTIFY call flow.
| Issue 1: The code is modified to check if the service bit is not set (for the response) and check if the contact header has the isfocus parameter, if the parameter is present, set SIP_SERVICE_TYPE_CONTACT_TRANSPARENCY_FOR_ISFOCUS_PARAM for a single contact scenario. Issue 2: The code is modified to add the record route for notify and its response if isfocus parameter is present. Workaround: N/A |
PSX-35183 | SBX-104660 | 2 | Portfix PSX-35183: Setting the PSP with transcode conditional and then change it back to the TFT, all the settings from ‘conditionsInAdditionToNoCommonCodec’ are not reset back to the default values and in some cases affect call processing. Impact: When the transcoder free transparency (TFT) is enabled and some of the ‘conditionsInAdditionToNoCommonCodec" flags are enabled too, the call processing may be different than when only TFT is enabled.
Root Cause: In the original design, flags of "Conditions In Addition To No Common" are only displayed and configurable when PacketToPacketControl's transcode is Conditional. When a PSP's transcode is changed to other values from Conditional, all flags values would be preserved. Steps to Replicate: - Create a PSP, set transcode to Conditional.
- Configure flags of "Conditions In Addition To No Common", making some enable and some disable.
- Switch the transcode to "Transcoder Free Transparency".
- Switch the transcode back to Conditional.
- Check flags of "Conditions In Addition To No Common". They should be all disable.
| The code is modified to set all flags of "Conditions In Addition To No Common" to disable whenever the PacketToPacketControl's transcode is set to "Transcoder Free Transparency". Workaround: Before changing the transcode to "Transcoder Free Transparency". - Set the transcode to Conditional.
- Set all flags of "Conditions In Addition To No Common" to disable.
- Set the transcode to "Transcoder Free Transparency".
|
SBX-104990 | SBX-105465 | 2 | Portfix SBX-104990: In a secure call, the SBC does not increment port number in R-URI after processing Refer. Impact: In a secure call with TLS configured, if the call is REFERed with a REFER-TO header containing a FQDN and port number, the SBC sends out new invite to the specified FQDN and port number. If that INVITE fails and the SBC then sends a subsequent INVITE on the next route it does not correctly increment the RURI port number for TLS.
Root Cause: The SBC code does not take into account that a re-route after a REFER-TO with FQDN and port number target needs to increment the port number for TLS, if the target after the re-route is different to the original target specified in the REFER-TO.
Steps to Replicate: - With the recommended SBC configuration for MS Teams with TLS enabled between the SBC and MS Teams. Establish a call from PSTN to MS Teams.
- Send a REFER from MS Teams witch includes following header -
REFER-TO: <sip:sip2.pstnhub.microsoft.com:5061;transport=tls> - Based on the REFER, the SBC should route the call and send INVITE to sip2.pstnhub.microsoft.com using port 5061.
- Reject this INVITE from MS Teams with a 503.
- The SBC should then send an INVITE out using the second route to sip3.pstnhub.microsoft.com using port 5061.
- Complete the call signaling and verify referred call is established correctly.
| The code is modified to increment the RURI port number for TLS if doing a re-route to a target FQDN and port number that is different to the original target specified in the REFER-TO. Workaround: None. |
SBX-105319 | 2 | The SBC is not able to parse MSRP media packet 200. Impact: When the SBC received "200" as MSRP response, it did not forward the same to other end as it considers 200 as a invalid response in absence of "OK" string in 200.
Root Cause: The SBC was strictly parsing "200 OK" for MSRP success response due to that if it is received "200" as response, it did not forward the same to other end.
Steps to Replicate: Test 1: - Configure the SBC for MSRP-B2BUA support.
- Complete the INVITE signaling message for MSRP
- Send a MSRP request message from UAC to the SBC, the SBC should forward this to UAS.
- From UAS send "MSRP <transaction-id> 200" response message to the SBC.
- The SBC should successfully send it to UAC.
Test 2: - Configure the SBC for MSRP-B2BUA support.
- Complete the INVITE signaling message for MSRP
- Send a MSRP request message from UAC to the SBC, the SBC should forward this to UAS.
- From UAS send "MSRP <transaction-id> 200 OK" response message to the SBC.
- The SBC should successfully send it to UAC.
| The code is modified to consider 200 as valid MSRP response. Workaround: There is no workaround at the SBC for this issue, UAC/UAS need to send MSRP response as "MSRP <transaction-id> 200 OK" to avoid this issue. |
SBX-100122 | SBX-104972 | 3 | Portfix SBX-100122: There were various display issues related to media port range modifications. Impact: Issue 1,2,3: The CLI display of mediaPortRangeUnassigned to TGs was not regulated by the system media port range setting, causing the mediaPortRangeUnassigned CLI command displaying the wrong ports. Issue 4: If the basePorts for different TGs are the same in a same zone, their maxPorts will be added up in CLI display of mediaPortRangeAssigned. tcpPortRangeAssigned has the same problem. Root Cause: Issue 1,2,3: The root cause was that the SBC had not considered the system media port range setting as restriction when calculating unassigned ports. Issue 4: The root cause was that assigned media port range map had not been indexed by TG, but by basePort had been a mistake. Steps to Replicate: While working on the SBC CLI - Show configuration details system media mediaPortRange
- Show table addressContext addressContextName ipInterfaceGroup IG_name mediaPortRangeUnassigned
- Modify configuration details system media mediaPortRange to much smaller range.
- Repeat step 2, to make sure that mediaPortRangeUnassigned gives ports always within the range of "show configuration details system media mediaPortRange"
- Create multiple TGs in each zone. Assign mediaPortRanges to these TGs. Some range with the same basePort in the same zone. Some with different basePorts in the same zone.
- Repeat step 2 to make sure that mediaPortRangeUnassigned gives ports always within the range of "show configuration details system media mediaPortRange"
- Show table addressContext addressContextName ipInterfaceGroup IG_name mediaPortRangeByTGNameAssigned / mediaPortRangeUnassigned. Ensure that the outputs are correct.
- Repeat steps 2-7 with tcpPortRangeByTGNameAssigned / tcpPortRangeUnassigned
- Repeat the display steps above in EMA.
| The code is modified for the following issues: - Added system wide media port range into SBC SIPSG cache, so that the restriction will be checked before display of mediaPortRangeUnassigned.
- Changed the map of the assigned mediaPortRange to indexed by TG name, not basePort any more.
Therefore, the CLI/EMA syntax becomes mediaPortRangeByTGNameAssigned/ tcpPortRangeByTGNameAssigned, instead of mediaPortRangeAssigned / tcpPortRangeAssigned.
Workaround: It is a display issue, does not impact call. |
SBX-91111 | 2 | There was a No Way Video after A/V calls is resumed after hold. Impact: There was a No way video after a audio video call is resumed using a late media re-INVITE.
Root Cause: The SBC does not send "sendrecv" in 200 OK for late media re-INVITE, and instead sends the same datapath mode that was negotiated last, which could be inactive.
Steps to Replicate: Set up a audio and video call. Put the call on hold by sending a=inactive in audio and video SDP. Then send a late media re-INVITE to take the audio off-hold. The SBC will send SendRecv for audio and video in 200 OK and let the remote end choose if it wants to remain on hold or come out.
| The code is modified to send a sendrecv for other streams when the audio in call is being resumed aftera hold. Workaround: Do not use late media re-INVITE to come out of hold. |
SBX-105262 | SBX-105635 | 2 | Portfix SBX-105262: The SBC is sending unexpected Re-INVITE to egress side in SRTP early media scenario. Impact: The SBC is sending unexpected Re-INVITE to egress side in SRTP early media scenario.
Root Cause: This issue is caused because of a side-effect of SBX-103807.
Steps to Replicate: Call flow: - UAC sends Invite with 100 rel required.
- UAS sends 18x with SDP+SRTP (SHA-1-32).
- Ingress sends PRACK with SDP+SRTP (SHA-1-32).
| Copy the active security PSP only if audio stream is present to address the issue. Workaround: None. |
SBX-105114 | SBX-105701 | 2 | Portfix SBX-105114: Usage of the kill command output in active and standby CE_node logs. Impact: The kill command usage gets printed in the CE_Node log file of the managed nodes.
Root Cause: No glusterfs process is present when the kill command is executed by the glusterSetup.sh script called by sbxConfigUpdater.sh.
Steps to Replicate: - Reboot the Standby OAM.
- Ensure that kill usage does not appear in the CE_Node log file of the managed nodes.
| Redirect kill command error output to /dev/null to address the issue. Workaround: None. |
SBX-104360 | SBX-105562 | 2 | Portfix SBX-104360: The SWITCHOVER ACT Records are not generated in the SBC with the HA mode set as Nto1. Impact: On an N to 1 system, the SWITCHOVER record is not written to the accounting file on the new active node after a switchover.
Root Cause: The SWITCHOVER record is sent to the ENM process before it has opened the accounting file, so the record is not written.
Steps to Replicate: - Perform a switchover a system.
- Check that the switchover record is written to the accounting file.
| The SWITCHOVER record is stored and then written out when the accounting file is opened to address the issue. Workaround: None. |
SBX-86090 | SBX-104236 | 2 | Portfix SBX-104236: Our SIPREC implementation is prone to failure to record a stream and to tear down the SRS call leg when SRS (SIP Recording Server) sends a re-INVITE to SBC. Impact: SIPREC handling had race conditions issues in the scenario where a RE-INVITE was received on the main call and also RE-INVITE was received from SRS server at the same time. This resulted in recording failure and the SBC sent out BYE towards SRS. Root Cause: This race condition of RE-INIVITE from the main call end point and SRS server simultaneously was not handled on the SBC.
Steps to Replicate: - Make a SIPREC call.
- Send RE-INVITE with codec change/hold on main call (either from UAC or UAS) this triggers a RE-INVITE towards SRS.
- SRS also sends RE-INVITE at the same time when the SBC receives 200 OK for main call RE-INVITE.
| The RE-INVITE triggered/sent towards SRS due to the main call RE-INVITE is queued in the situation where the SIPREC leg is in middle of processing the RE-INVITE that was received from the SRS. The queued RE-INVITE is sent once the RE-INVITE transaction received from the SRS was completed. Workaround: The SRS can avoid sending an immediate hold RE-INVITE if no media is observed on SIPRec leg. |
SBX-104325 | 2 | There was a SCM coredump observed when multiple gateway TGs are created in a GW-GW call on a HA set up. Impact: On a HA set up, the Standby box SCM Process dumps core when the Standby starts to sync from Active, post a switch over, and the switch over occurs after a scenario where the Gateway TG's are created and then a GW TG with a lower index (Created earlier) is deleted. Example: - Create GWTG1, GWTG2 and GWTG3.
- Delete the GWTG2
- Run a switch over.
Root Cause: The coredump is caused due to difference in indexing of gateway TG's in active and standby boxes. The GW TG indexes were out of sync between the Active and Standby. The Active SBC had holes in the indices of the GW TGs after deletion. The standby SBC does not have holes for the GW TGs that are present post deletion and occupy different index when compared to active. Steps to Replicate: - HA set up with GW-GW configurations.
- Create 3 Gateway Trunkgroups: GWTG1, GWTG2 and GWTG3.
- Delete the GWTG2.
- Perform a switchover.
| The code is modified to ensure that the GWTG indexes on the Active and Standby are in sync. Workaround: None. |
SBX-104975 | 2 | The MCF sent back to ingress as the MPS. Impact: Some fax T.38 endpoints send entire DCS V.21 signal in one packet as opposed to 1 octet per packet. This can causes fax failures.
Root Cause: A burst of octets in a single packet is essentially a burst, and causes potential problems as these packets get queued for modulation and cause delay and later TCF (high speed) signal some packets get dropped.
Steps to Replicate: This issue was reproduced with a T.38 capture from field that contains a DCS followed by a TCF and a page.
Without a fix, the high speed modulated page signals starts and then, there is a gap and it restarts. (Picture is loaded in broken_page.png).
After the fix, the high speed modulated page signal is correct, it does not show het gap and restart behavior for 7.2. | The code is modified to accommodate larger bursts. Workaround: This bug is a specific interoperability problem with endpoints that exhibit burst single packet DCS signals. For such endpoints, we do not have a workaround, unless there is some configurations are available on those devices to modify this behavior. |
SBX-105736 | 2 | Sending m=application 0 UDP/BFCP (null) in case of UPDATE. Impact: The SBC sends m=application line in incorrect format in SIP UPDATE message.
Root Cause: The SBC does not format the m=application line for UDP/BFCP when sending UPDATE message.
Steps to Replicate: Test case 1: Reproduce the issue: The SBC sends an INVITE with SDP(with audio and video lines and m=application) and receives rel 18x with SDP (with audio and video lines only) followed by the final 200OK with SDP (with audio and video lines and m=application) if flag is enabled then SDP of 200OK should be ignored by the SBC. UPDATE message content: m=application 0 UDP/BFCP (null) Test case 2: Verify the issue the same scenario as test case 1. UPDATE message content: m=application 0 UDP/BFCP * | The code is modified to ensure the SBC sends the m=application line in correct format. Workaround: None. |
SBX-105610 | 2 | There were coverity issues in OAMNODE. Impact: When processing a show list command under the node branch from the OAM node, if the target node fails to read the command path in the request, the code will access memory immediately after freeing it. While in most cases this should not cause issues, accessing memory after it is freed is not good behavior and could result in unexpected behavior and potentially in the worst case coredumps.
Root Cause: Error handling flow in the code is incorrect. It hits some code for the success flow.
Steps to Replicate: Run coverity tests to reproduce the issue.
| The code is modified to address the issue. Workaround: None. |
SBX-105361 | SBX-105881 | 3 | Portfix SBX-105361: The SSH access was not re-enabled on for the linuxadmin after an upgrade. Impact: The SSH is enabled for root user in SBC 5400 after LSWU or PM upgrade.
Root Cause: The getVirtualType function in sonusUtils.sh incorrectly set the virtual type on the SBC 5400.
Steps to Replicate: Enable the SSH and run the LSWU, the SSH should not enable for root user.
| Validate the previous virtual type in getVirtualType function to address the issue. Workaround: None. |
SBX-105270 | SBX-105608 | 2 | Portfix SBX-105270: There was a cpxAppProc leak for a MRFP call. Impact: There was a small memory leak occurs on SBC/MRFP nodes when action/status/stats under the node branch is accessed through the OAM node CLI or EMS.
Root Cause: Resource references are cleared mistakenly after serving the request from the OAM node.
Steps to Replicate: Execute a node branch command repeatedly and monitor the CPX process size on the target node.
| Resource references are cleared only when the system is shutting down to address the issue.. Workaround: Avoid using node branch commands in automated/periodic operations. Manual use should be ok as the leak is small. |
SBX-102700 | SBX-106067 | 2 | Portfix SBX-102700: Number mapping (translated, RDI, To hdr, R-URI) is odd. Impact: The SBC is not adding translated number received from PSX to RequestURI when Diversion header is present in the ingress Invite.
Root Cause: If ingress Invite does not contain Diversion header, then SBC is adding translated number to RURI. So same result is expected when diversion header is present.
Steps to Replicate: - Make an SIP call by sending an Invite with Diversion header from UAC.
- Configure the PSX to return "translated number" for the called party number in policy response. The SBC includes the translated number in Request URI and routes the call.
| The code is modified to populate the RequestURI with the translated number even when the Diversion header is present in the initial Invite. Workaround: None. |
SBX-103222 | 2 | The SBC is not sending an INVITE to the MRF for a modified transcode call. Impact: Run a MRF call flow by configuring the MRF profile. Root Cause: The MRF Profile values are not correctly read by the application. Steps to Replicate: 1. Configure the System for doing the MRF call flows. 2. Try the MRF call flow, the MRF must be invoked. | The code is modified to read the values from a proper MRF path. Workaround: The sbxrestart should solve the issue. |
SBX-106004 | SBX-106240 | 2 | Portfix SBX-106004: The EMA display error when SMM deleted through the CLI. Impact: The EMA display error when SMM deleted through the CLI.
Root Cause: In the EMA, we are checking the ordering of the rules. If the Order is not continous then we are throwing the error.
Steps to Replicate: - Log in to the EMA
- Navigate to Profiles > Signaling > SIP Adaptor Profile.
- Select one SMM rule and try to edit it.
- There we do not found the error if the rules are not continuous.
| The code is modified to address the issue. Workaround: None. |
SBX-104759 | 3 | The IPv4 Path MTU Discovery (RFC1191) not working for the UDP. Impact: The SBC uses the MTU of the outgoing network interface as the Path MTU when sending out SIP-UDP packets. Without the fix, the SBC does not update Path MTU properly even if a router in the path sends "ICMP Destination Unreachable Fragmentation Needed" message with smaller Path MTU value. The large packets requiring fragmentation to fit the Path MTU from the SBC will not reach the SIP peer. Root Cause: While handling "ICMP Destination Unreachable Fragmentation Needed" error message for UDP packet, route/fib lookup did not consider ipInterfaceGroup and addressContext. This resulted in not updating Path MTU of the proper route entry to the peer for sending SIP-UDP packets. Steps to Replicate: The SBC sends SIP-UDP packets of length 1500 bytes toward the SIP peer when a path to the peer has a smaller MTU. A router with the smaller MTU sends "ICMP Destination Unreachable Fragmentation Needed" to the SBC. Without the fix, the SBC keeps on sending SIP-UDP packets, and the router keeps on sending "ICMP Destination Unreachable Fragmentation Needed" to the SBC. The SBC, with the fix, adjusts the Path MTU, performs the fragmentation on SIP-UDP packet and sends fragments to the SIP peer. | The code is modified to add ipInterfaceGroup and addressContext information in handling ICMP Destination Unreachable Fragmentation Needed message in the Linux kernel. Workaround: Disable Path MTU Discovery by setting ipNoPmutDisc value to. admin@SBCSWE03% set system admin sbcswe03 kernelParams ipNoPmtuDisc 2 admin@SBCSWE03% commit Note: The support for ipNoPmutDisc was added to 7.2.5R000, 8.2.4R000, and 9.2.0R001. |
SBX-103986 | SBX-104442 | 2 | Portfix SBX-103986: There was an incorrect RTP time stamp in the SBC packet capture. Impact: After an SBC upgrade, RTP/RTCP time stamp in the SBC packet capture shows the year 2036. Root Cause: Present logic was not considering the edge cases while checking the last modification time of the NTP log. Steps to Replicate: - Configure a remote syslog server:
set oam eventLog platformRsyslog linuxLogs ntpLog enabled set oam eventLog platformRsyslog servers server1 port 10514 protocolType udp remoteHost <remote host ip> com set oam eventLog platformRsyslog syslogState enabled com - Create a second dummy NTP server (just to trigger some logs to be written to ntp.log):
set system ntp serverAdmin 1.2.3.4 com - Delete the dummy NTP server:
del system ntp serverAdmin 1.2.3.4 com - Wait at least several seconds.
- Repeat steps 2 and 3.
| The code is modified for the edge case of NTP log last modification time. Workaround: None. |
SBX-105281 | 2 | AddressSanitizer error: heap-use-after-free on the address 0x6190000ba218 at pc 0x56473eecd69f bp 0x7f27682167e0 sp 0x7f27682167d8 Impact: The heap use after free error while running the PC2 ingress leg interception on OPTIONS/200OK call SBC_8.2x ASAN Build.
Root Cause: For the 4C, is using memory that is free by previous code. For the 6, the leak due to a missing null check. Steps to Replicate: - Create a ASAN Build.
- Set up a PC2 and run a call.
| The code is modified in the following manner: - Added a calling function before freeing the memory.
- Added a NULL check.
Workaround: None. |
SBX-106149 | 2 | The PSP qos value msrpDscp non-zero causes a PES process crash. Impact: The PES process crashes when the apps are starting up and if msrpDscp in the PSP QoS values are configured with non-zero.
Root Cause: A debug statement tried to print a integer as a string, causing memory problem.
Steps to Replicate: - Configure a non-zero msrpDscp value.
- Restart the SBC.
Before the code change, the PES will crash. After the code change, the PES will not crash. | The code is modified to print integer as integer. Workaround: None. |
SBX-102277 | 2 | The debug command caused the SCM process to core dump. Impact: We are hitting a Healthcheck timeout when displaying the output of the following debug command: "request sbx sipsg debug command "svcgrp -ce 0 -scm <x> -1"" Root Cause: The Heathcheck timeout error occurs due to taking too long to display the data for all of the service groups when there are very large number of trunk groups configured.
Steps to Replicate: - Configure the 1000 TGs
- Issue the following command:
"request sbx sipsg debug command "svcgrp -ce 0 -scm <x> -1""
| The code is modified to only display up to 50 service groups in order to prevent this Healthcheck timeout. Workaround: To prevent this issue, avoid using the following command if there are large number of TGs configured: "request sbx sipsg debug command "svcgrp -ce 0 -scm <x> -1"" |
SBX-102478 | SBX-103385 | 2 | Portfix SBX-102478: An Automated Upgrade failure for the SLB/SBC from 9.0 to 9.1. Impact: The newly upgraded OAM VM did not properly boot. On the investigation, it was seen that the Cluster IP was not set correctly, even though an upgrade was received from VNFM, which contained the correct Cluster IP.
Root Cause: The updated userData.json received from VNFM was overwritten with the initial boot userData.json (that did not contain the Cluster IP), even though there is code in convertVnfm.py specifically to prevent that from happening. On investigation, it was seen that a bad propagation of fixes from other releases into main introduced an indentation problem. Indentation is significant in python, and the bad indentation made the code that checked for an updated userData.json fail to work properly.
Steps to Replicate: Use different types of auto-upgrades should be tested, because they seem to expose the problem with non-updated userData.json more easily than a normal orchestration.
| The code is modified so the correct indentation is restored. Workaround: If the orchestration is failing without this fix, a restart of the VM should be manually triggered to have it re-run the code in question. This needs to be done before VNFM fails the upgrade (1 hour). |
SBX-103720 | 3 | There is packet verification improvements for T.38 stack. Impact: In some of the crashes from the field (e.g. SBX-101155), we have observed a frame in jitter buffer that has unreasonably large fld_cnt as compared to the size of the packet itself. This is a malformed packet and such packets may lead to crashes.
Root Cause: These malformed packets are the root cause.
Steps to Replicate: TBD | The code is modified to look for UDPTL packet size and frame size inconsistencies and to allow packets with inordinate field count to be accepted by the stack. This logic is improved to reject such packets. Workaround: None. |
SBX-103771 | 2 | Special characters in the DN hinders the EMA display. Impact: Special characters in DN are throwing error in the EMA.
Root Cause: Special characters were not supported for the DN through the EMA UI.
Steps to Replicate: - Create Route with a special character in DN.
- Save/Edit/Delete the Route.
| The code is modified to address the issue. Workaround: None. |
SBX-106509 | 2 | Restoring the backup SMM configuration is failing. Impact: Restoring the backup configuration was failing.
Root Cause: This issue is caused because the loadConfig was failing because of errors in HwModuleServer.cpp file.
Steps to Replicate: Run a load configuration from the CLI, and configure the load properly.
| The code is modified to address the issue. Workaround: None. |
SBX-105340 | 3 | The reenableOsAccount silently sets the account expiration to 30 days. Impact: Using the reeanbleOsAccount will add account aging to any OS account.
Root Cause: The logic does not take into account state of OS account aging or if OS account aging should be applied (e.g. root).
Steps to Replicate: With the OS account aging enabled: 1. Test the root: i. Set the reeanbleOsAccount for user root. ii. Check there is no aging is applied at OS level: chage -l root. 2. Test the Confd user: i. Create user through CLI. ii. Set the reeanbleOsAccount for this CLI user. iii. Check there is no aging is applied at OS level: chage -l <CLIUser>. 3. Test the OS user with a password: i. Create the OS user with a password. ii. Disable and then Enable OS account aging state. iii. Set the reeanbleOsAccount for this OS user. iv. Check the correct aging is applied at OS level: chage -l <OSUser>. | The code is modified to check in the OS account aging is enabled and is applied. Workaround: None. |
SBX-106256 | 2 | The Control Display of Table Columns is not working for the DiameterNode EMA page. Impact: The Control Display of Table Columns is not working for the DiameterNode EMA page. The options selected by the user were not retained and maintained properly when the user navigates to some other page Root Cause: Missing Null Checks on a userName parameter while updating the columns in DiameterNode Page.
Steps to Replicate: - Successfully verify the loading of the EMA Application.
- Successfully verify the rendering of the DiameterNode Page.
- Successfully verify that the columns are displayed according to the show/hide logic set in the page.
| The code is modified to ensure that exceptions are handled appropriately. Workaround: None. |
SBX-103135 | 2 | The SBC was sending an INVITE with incorrect b= line values. Impact: The SBC sends the wrong RR and RS values in the outgoing INVITE for a transcoded call. Root Cause: On the D-SBC, the NrmaComputeOfferPspForAnswerLeg() gets executed twice when intersecting. Once with ingress route PSP and once with egress Route PSP and even though we pass the right route PSP to the function, the rtpOptions passed to the function is wrong that results in the wrong computation of RR and RS values. Steps to Replicate: The SBC is configured to make a SIP-SIP call procedure:
1. Configuration: Egress PSP: AMR (WB) Bandwidth efficient. Ingress PSP: AMR (WB) Bandwidth efficient. 2. RTCP is enabled only on egress PSP and RR/RS bandwidth is configured as 500. 3. Flag 'Send RR/RS in SDP' is enabled in IP signaling profile for Egress. 4. Initiate a SIP-SIP Audio call with the Audio codec as AMR WB without RTCP bandwidth related parameters (RR/RS not present in SDP). 5. Observe the SBC sending wrong RR and RS values in outgoing INVITE. | The code is modified to pass the correct rtpOptions for computing the RR and RS values. Workaround: None. |
SBX-105256 | 2 | The SBC was sending AMR-WB twice and the SBC was accepting codec in answer that is not present in offer Impact: In a Late Media Call with HD Codecs configured in the Route PSP, the SBC was sending 2 HD codecs in its offer towards the Egress even when the "preventSameCodec" configuration flag is enabled in Trunk Group.
Root Cause: The SIPSG module was not passing the "preventSameCodecTransCode" flag to NRMA for Late Media calls.
Steps to Replicate: The steps cannot be replicated. | The code is modified to now pass the "preventSameCodecTransCode" flag for late media calls. For normal media calls, this is working in 8.2.3 releases Workaround: None. |
SBX-100320 | SBX-105238 | 2 | Portfix SBX-100320: There were SBC 9.1 coverity issues. Impact: In several modules, coverity pointed illegal access of NULL pointer, that may cause a crash in code.
Root Cause: Illegal use of pointers, without checking whether they are NULL or not.
Steps to Replicate: After running the coverity, the illegal access of pointers were not encountered again.
| The code is modified to correctly check the pointer, whether it is NULL or not. If it is NULL, then no further processing of that pointer is done Workaround: None. |
SBX-98015 | 2 | LSWU. Call/Registration Data syncInProgress. Impact: Issue#1: Upgrade failures with EDNS Feature The LSWU Upgrade from the SBC from pre 8.2 release to a 8.2 or higher release fails when EDNS servers are configured. When the ednsServer statistics table has non-zero values for the field “ednsFailures”, the SBC synchronizes the stats structure. Since the corresponding structure does not have serialization support, the sync is aborted and the upgrade fails. The ednsFailures stats are updated when the SBC encounters RCODE 1, 2 and 4 errors for EDNS qeueries. Example pre-8.2 configuration causing this issue: admin@PLUM> show status addressContext default dnsGroup DnsGrp dnsServerStatistics 2 { ipAddress 10.xx.xx.xx; queries 5; timeouts 0; errors 2; referrals 0; totalTcpConnection 0; tcpConnectionFailed 0; tcpConnectionSuccess 0; tcpConnectiontorndown 0; tcpFallback 0; ednsStatus supported; ednsFailures 1; } [ok][2020-11-06 04:07:27] Issue#2 The EDNS Server stats is lost during an upgrade from 8.2/9.0/9.1 to 9.2 because of an incorrect serialization code. Root Cause: Issue#1: Upgrade failures with the EDNS Feature There are multiple issues in serialization support for DNSC_REDUND_MIRROR_EDNS_SERVER_STAT_INFO_CMD_MSG_STR - The DNSC was not registered for Serialization till 8.2. The DNSC was registered for serialization support in 8.2.0R0 with the feature SBX-75865
- The postUnpack methods for the structures had wrongly updated the length of the message. This was also fixed in 8.2.0R0 with the feature SBX-75865.
Issue#2: The EDNS Status was lost The wrong datatype was used for serializing DNSC_REDUND_EDNS_SERVER_STAT_DATA, i.e. VariableSizeOfVariableDataArrayOperations instead of VariableSizeArrayOperations. Steps to Replicate: Procedure: - Configure a SBC HA pair for basic call with 8.2 version.
- Configure the DNS Server with eDNS Monitor enabled and a FQDN IP Peer.
set addressContext default dnsGroup DnsGrp ednsSupport enabled - Make a call for same FQDN and send RCODE error(1,2 or 4) from DNS server.
- Check the DNS statistics.
show status addressContext default dnsGroup DnsGrp dnsServerStatistics - Upgrade the Standby box followed by active box with post 8.2 SBC version.
- Upgrade should be successful and DNS statistics should be proper.
| The code is modified to handle the LSWU Upgrade of SBC from pre 8.2 release to a 8.2 higher release. Workaround: Issue#1: Upgrade failures with the EDNS Feature Before upgrading a box that is older than 8.2R0, the following commands on all the DNS Groups needs to be issued before we upgrade. Note: The ednsServer stats is lost as a consequence during the upgrade. - Issue a command to clear the EDNS statistics for all DNS Groups in the system.
admin@PLUM> request addressContext default dnsGroup DnsGrp dnsServerReset reason DNS Server statistics are Reset [ok][2020-11-06 04:08:13] admin@PLUM> show status addressContext default dnsGroup DnsGrp dnsServerStatistics 2 { ipAddress 10.xx.xx.xx; queries 0; timeouts 0; errors 0; referrals 0; totalTcpConnection 0; tcpConnectionFailed 0; tcpConnectionSuccess 0; tcpConnectiontorndown 0; tcpFallback 0; ednsStatus supported; ednsFailures 0; } [ok][2020-11-06 04:08:22] admin@PLUM> - Disable the ednsSupport to stop mirroring
set addressContext default dnsGroup DnsGrp ednsSupport disabled
|
SBX-104533 | 2 | The high CPU Utilization was observed on GPU UXPADs with 1152 chans/process. Impact: The transcoded calls using FMTD (Fax and modem tone detection) require most CPU cycles than expected. As a result, in a loaded system higher than expected CPU utilization is observed.
Root Cause: Root cause for this is that the FMTD module code was checked in with a debug compiler flag. The debug flag results in code is less optimal and consumes higher number of CPU cycles.
Steps to Replicate: This requires a use of high load to observe the problem. Typical with GPU use, the expected numbers are about 18432 G729A-G711U calls with a max UXPAD utilization to be 80-81%. Due to this bug, 90% CPU utilization is observed with about 13k calls. As a result, the test steps are: - Run a high load of transcoded calls with fix and observe CPU utilization.
- Run a high load of transcoded calls without fix and observe CPU utilization.
With a fix, the utilization should be same as that for 8.1.0R6 as a comparison. | The code is modified to make a file for the FMTD module to remove the debug flag and then rebuild the optimized library. Workaround: None. |
SBX-104827 | 3 | The SBC was terminating the call when a 491 response is received for the self generated Re-INV. Impact: The SBC is terminating the call when a 491 response is received from a Peer for the self generated Re-INV.
Root Cause: When a 491 response is received from the peer for the self generated Re-INV, the SBC is treating this as an error response and as a result, generates a internal clear event and the call is getting terminated.
Steps to Replicate: IPSP flag configuration: DML flag disabled. relayStatus4xx6xx flag enabled. Create a transparency profile and attach it to the egress TG. - Make a call from user A to user B with offer containing multiple codec towards user B.
- Let user B answer with multiple codecs, such that, the SBC triggers a media lock down Re-INV.
- Let user B send 491 Request Pending.
| The code is modified so that the call will not get terminated. Workaround: None. |
SBX-100912 | 3 | The search filter tab for Routing page in EMA is not working properly in 8.2.1R1. Impact: When user try to perform search for # % & _ in filter tab of EMA route page, results were not fetched as expected.
Root Cause: The search values are not encoded before making a request to get results.
Steps to Replicate: - Navigate to the Route screen in the EMA.
- Entered values with special character to perform a search.
- Received the result as expected.
| Encoding the values before making the request to get exact results addresses the issue. Workaround: None. |