Users hear an echo when making a call using Skype for Business

Users hear an echo when making a call using Skype for Business either as a published app or published desktop with HDX RealTime Optimization Pack.

Let’s imagine you are UserA and in a conversation with UserB. Echo is when your voice is retransmitted back to you by User B. The effects of this can be distracting and lead to poor user experience, especially in multiparty calls.

SCENARIO

The most important take away here is that echo is not produced on the side where it is heard.

Example of a conversation with no acoustic echo cancellation (AEC):

  • User 1 places an audio call to User 2
  • User 1 is using a headset (composite device) as an audio device.
  • User 2 is using a separate device for speakerphone and microphone (Non-Composite device) where speakerphone does not have an AEC. (acoustic echo cancellation).
  • User 2 does not hear the echo from their end.
  • User 1 hears his own echo when speaking.

User-added image
Note: The Echo is produced when one of the users in multiparty call is using a separate device for speakerphone for audio output and a microphone phone for audio input or speakerphone with an inbuilt microphone which does not support AEC (acoustic echo cancellation).

Related:

  • No Related Posts

RVCを活用してアラーム情報を取得する

#!/usr/bin/bash



function retrieveObjInfo() {

echo “”

echo “===================================”

echo $1

echo “===================================”

x=’$1′

echo “——— Summary of $x ————–“

echo $PASS | rvc -c “show localhost/$i$2$x” -c “quit” ‘administrator@vsphere.local@localhost’ 2> /dev/null | tail -n +4

echo “——— Alarms of $x —————“

echo $PASS | rvc -c “alarms localhost/$i$2$x” -c “quit” ‘administrator@vsphere.local@localhost’ 2> /dev/null | tail -n +4

echo “——— Config Issue of $x ———–“

echo $PASS | rvc -c “issues localhost/$i$2$x” -c “quit” ‘administrator@vsphere.local@localhost’ 2> /dev/null | tail -n +4

}





IFS=$’n’

echo “vCenter SSO user is administrator@vsphere.local”

read -sp “vCenter SSO Password: ” PASS

echo “”

for i in $(echo $PASS | rvc -c “ls localhost” -c “quit” ‘administrator@vsphere.local@localhost’ 2> /dev/null | grep datacenter | cut -d ” ” -f 2 | sed -r “s/x1B[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g”);

do

CLUSTER=””

echo “Detected Cluster list of DataCenter $i”

echo “———————“

echo $PASS | rvc -c “ls localhost/$i/computers” -c “quit” ‘administrator@vsphere.local@localhost’ 2> /dev/null | grep cluster | cut -d ” ” -f 2 | sed -r “s/x1B[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g”

echo “ALL”

echo “NONE”

echo “———————“

echo “”

read -p “Selected Cluster Name (Default:ALL) > ” CLUSTER

if [ “$CLUSTER” = “” ]

then

CLUSTER=”ALL”

fi

for j in $(echo $PASS | rvc -c “ls localhost/$i/computers” -c “quit” ‘administrator@vsphere.local@localhost’ 2> /dev/null | grep cluster | cut -d ” ” -f 2 | sed -r “s/x1B[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g”);

do

if [ “$CLUSTER” != “ALL” -a “$CLUSTER” != “$j” ]

then

break

fi

retrieveObjInfo $j “/computers/”

for k in $(echo $PASS | rvc -c “ls localhost/$i/computers/$j/hosts” -c “quit” ‘administrator@vsphere.local@localhost’ 2> /dev/null | tail -n +4 | grep host | grep -v localhost | cut -d ” ” -f 2 | sed -r “s/x1B[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g”);

do

retrieveObjInfo $k “/computers/$j/hosts/”

for n in $(echo $PASS | rvc -c “ls localhost/$i/computers/$j/hosts/$k/vms” -c “quit” ‘administrator@vsphere.local@localhost’ 2> /dev/null | tail -n +4 | cut -d ” ” -f 2- | sed -r “s/x1B[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g” | cut -d “:” -f 1 );

do

retrieveObjInfo $n “/computers/$j/hosts/$k/vms/”

done

done

done

for l in $(echo $PASS | rvc -c “ls localhost/$i/datastores” -c “quit” ‘administrator@vsphere.local@localhost’ 2> /dev/null | tail -n +4 | cut -d ” ” -f 2 | sed -r “s/x1B[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g” | cut -d “:” -f 1);

do

retrieveObjInfo $l “/datastores/”

done

for m in $(echo $PASS | rvc -c “ls localhost/$i/networks” -c “quit” ‘administrator@vsphere.local@localhost’ 2> /dev/null | tail -n +4 | cut -d ” ” -f 2- | sed -r “s/x1B[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g” | sed -r “s/ (vds)//g” | cut -d “:” -f 1 );

do

echo “”

echo $m

m=’$m’

echo “——— Summary of $x ————–“

echo $PASS | rvc -c “vds.show_running_config localhost/$i/networks/$m” -c “quit” ‘administrator@vsphere.local@localhost’ 2> /dev/null | tail -n +4

echo “——— Alarms of $x —————“

echo $PASS | rvc -c “alarms localhost/$i/networks/$m” -c “quit” ‘administrator@vsphere.local@localhost’ 2> /dev/null | tail -n +4

echo “——— Config Issue of $x ———–“

echo $PASS | rvc -c “issues localhost/$i/networks/$m” -c “quit” ‘administrator@vsphere.local@localhost’ 2> /dev/null | tail -n +4

done

done

unset IFS

Related:

  • No Related Posts

Windows 10 1809 Upgrade Scripts are incorrect

I do not need a solution (just sharing information)

I’m testing the latest scripts to upgrade from Windows 10 1803 to Windows 10 1809 using the scripts located here: https://support.symantec.com/en_US/article.HOWTO125015.html

In my testing, I discovered that the scripts (SED_Win8_10_Upgrade_SED_10.4.2_MP1_RS5.zip and SED_Win7_Upgrade_SED_10.4.2_MP1_RS5.zip) don’t work.  Sepcifically, there’s a line of code that’s incorrect in WinRS5-upgrade-SED1042MP1.cmd

For anyone else running into this problem, below is the broken code with what needs to be changed:

Incorrect:

REM check if all drivers are available
set driverslist=PGPsdk PGPwded
for %%b in (%driverslist%) do (
	REM Check for Driver files
	IF NOT EXIST "%driverdir%%%b.sys" (
		echo -----------------
		echo "%driverdir%%%b.sys" file missing...
		GOTO drivermissing
	)
	REM Check for Driver installer files
	IF NOT EXIST "%driverdir%%%b.inf" (
		echo -----------------
		echo "%driverdir%%%b.inf" file missing...
		GOTO drivermissing
	)
	REM copy required files to the upgrade folder
	copy /Y "%driverdir%%%b.*" "%PGPTempPath%."
	IF %ERRORLEVEL% NEQ 0 GOTO cpyfailed
)

Correct:

REM check if all drivers are available
set driverslist=PGPsdk PGPwded
for %%b in (%driverslist%) do (
	REM Check for Driver files
	IF NOT EXIST "%driverdir%%%b.sys" (
		echo -----------------
		echo "%driverdir%%%b.sys" file missing...
		GOTO drivermissing
	)
	REM Check for Driver installer files
	IF NOT EXIST "%driverdir%%%b.inf" (
		echo -----------------
		echo "%driverdir%%%b.inf" file missing...
		GOTO drivermissing
	)
	REM copy required files to the upgrade folder
	copy /Y "%driverdir%%%b.*" "%PGPTempPath%."
	IF !ERRORLEVEL! NEQ 0 GOTO cpyfailed
)

%ERRORLEVEL% should be !ERRORLEVEL!

The way Symantec has it coded, %ERRORLEVEL% during that loop reads out as 128 which causes the script to always go to “cpyfailed”.

0

Related:

  • No Related Posts

7021472: Setting the Telnet Terminal Type for UNIX Hosts

Background

A UNIX host computer may use a different terminal type for connecting than Reflection uses for emulation. If you are having trouble running a UNIX host application with a Telnet connection, it is possible that the Telnet negotiation between Reflection and the host is incorrect. Since by default the Telnet terminal type is not linked to the emulation terminal type, each needs to be configured independently.

Two Terminal Types in Reflection: Telnet and Emulation

Reflection has two settings for terminal type: the Telnet terminal type, and the emulation terminal type.

Telnet Terminal Type

When Reflection makes a Telnet connection to a host computer, the Telnet protocol negotiates a terminal type with the host. UNIX hosts typically use this value to set the $TERM value of the terminal environment, but a default file such as .profile or .login can override the negotiated $TERM value. The Telnet terminal type can be configured in Reflection Desktop 16, Reflection 2014, or Reflection 2011 from Document Settings > Host Connection > Configure Connection Settings > More Settings > General tab, and in Reflection from the Connection Setup dialog box > More Settings > General tab.

Emulation Terminal Type

Reflection uses this value, configured in Reflection Desktop 16, Reflection 2014, or Reflection 2011 from Document Settings > Terminal Configuration > Select Terminal Type, and in Reflection from the Setup menu, to identify the type of terminal Reflection will emulate. The default is VT500-7. Note: Since VT500 emulation includes VT200, VT300 and VT400, you receive these levels when the emulation terminal type is set to VT500-7 or VT500-8.

Configuring the Correct Telnet Terminal Type

Follow the steps below to configure the Telnet terminal type for your host.

In Reflection Desktop 16, Reflection 2014, or Reflection 2011:

  1. If you are currently connected, disconnect your session.
  2. In the quick access toolbar, click the Document Settings icon.
  3. Under Host Connection, click Configure Connection Settings. Verify that Telnet is the Network Connection Type selected, and then click More Settings.
  4. On the General tab, in the Terminal type field, enter the Telnet terminal type for your host by selecting from the drop-down menu or typing in the correct terminal type for your UNIX or OpenVMS host computer. Click OK twice.
  5. Click Connect to make a Telnet connection to your host.
  6. Verify that the host applications are working correctly. To verify the term setting on a UNIX host, issue the set or echo $TERM command.
    • If the host applications work correctly, continue with step 7.
    • If the host applications still do not function correctly, disconnect the session. Repeat steps 2 through 6 above, using a different Telnet terminal type in step 4.
  1. In the quick access toolbar, click the Save button and save your current session document, entering a unique file name, such as the name of the host computer. Click Save.

In Reflection 14.x:

  1. If you are currently connected, disconnect by clicking the Disconnect icon on the toolbar. (Or click Connection > Disconnect.)
  2. Click Connection > Connection Setup.
  3. Select Network in the Connect Using group box and click TELNET.
  4. Click More Settings.
  5. Your next action depends on the product:
    • For Reflection for UNIX and OpenVMS and Reflection for ReGIS Graphics, in the Terminal Type field (found on the General tab), enter the Telnet terminal type for your host by selecting from the drop-down menu or typing in the correct terminal type for your UNIX or OpenVMS host computer.
    • For Reflection for HP (on the General tab), select the “Use emulation terminal ID” check box. Accept the remaining default values.

Click OK.

  1. Click Connect to make a Telnet connection to your host.
  2. Verify that the host applications are working correctly. To verify the term setting on a UNIX host, issue the set or echo $TERM command.
    • If the host applications work correctly, continue with step 8.
    • If the host applications still do not function correctly, disconnect the session. Repeat steps 2 through 7 above, using a different Telnet terminal type in step 5.
  1. Save the Telnet terminal type to your Reflection settings file:
    1. Click File > Save As to open the Save Settings dialog box.
    2. Enter a name for your settings file. You can give the settings file a unique name, such as the name of the host computer.
    3. Click Save.

Related:

Re: Networker connecting to host failed: remote system error- No connection could be made because the target machine actively refused it

[root@foo ~]# file /opt/nsr/admin/nsr_envexec

/opt/nsr/admin/nsr_envexec: POSIX shell script, ASCII text executable

[root@foo~]# cat /opt/nsr/admin/nsr_envexec

#!/bin/sh

#

# $Id: //NW/dev/nw_9_1/nsr/scripts/nsr_envexec.sh#1 $ Copyright (c) 2011 EMC Corporation

#

#

# Copyright (c) 2011 EMC Corporation.

#

# All rights reserved. This is an UNPUBLISHED work, and

# comprises proprietary and confidential information of EMC.

# Unauthorized use, disclosure, and distribution are strictly

# prohibited. Use, duplication, or disclosure of the software

# and documentation by the U.S. Government is subject to

# restrictions set forth in a license agreement between the

# Government and EMC or other written agreement specifying

# the Government’s rights to use the software and any applicable

# FAR provisions, such as FAR 52.227-19.

#

#

# Source Bourne shell scripts to set the environment, and then

# execute the remaining arguments as a shell command.

#

usage()

{

echo “Usage: $1 [-u user_env_file] [-s sys_env_file] command [argument…]”

}

# Local variables

USR_ENV_FILE=

SYS_ENV_FILE=

while getopts “u:s:” ARG

do

case $ARG in

u) USR_ENV_FILE=$OPTARG;;

s) SYS_ENV_FILE=$OPTARG;;

?) usage “$0” >&2; exit 1;;

esac

done

shift `expr $OPTIND – 1`

if [ $# -lt 1 ]

then

usage “$0” >&2

exit 1

fi

# Source a user environment file if exists.

if [ -f “$USR_ENV_FILE” ]

then

# Ensure that others are not given write permission

m=`LC_ALL=C ls -l “$USR_ENV_FILE” | cut -c 9`

if [ “$m” = “w” ]

then

fmt >&2 <<EOF

WARNING: Ignored user environment file ‘$USR_ENV_FILE’ for a security reason.

Examine the contents of the file, and ensure that the file has no write

permission to ‘others’.

EOF

else

. “$USR_ENV_FILE” || echo >&2

“WARNING: Unable to source user environment file ‘$USR_ENV_FILE'”

fi

fi

# Source a NetWorker system environment file if given.

if [ ! -z “$SYS_ENV_FILE” ]

then

if [ -r “$SYS_ENV_FILE” ]

then

. “$SYS_ENV_FILE”

else

echo >&2 “WARNING: Unable to source environment file ‘$SYS_ENV_FILE'”

fi

fi

# Execute the remaining arguments as a shell command.

exec “$@”

[root@foo~]#

Related:

Re: Re: Networker connecting to host failed: remote system error- No connection could be made because the target machine actively refused it

[root@foo ~]# file /opt/nsr/admin/nsr_envexec

/opt/nsr/admin/nsr_envexec: POSIX shell script, ASCII text executable

[root@foo~]# cat /opt/nsr/admin/nsr_envexec

#!/bin/sh

#

# $Id: //NW/dev/nw_9_1/nsr/scripts/nsr_envexec.sh#1 $ Copyright (c) 2011 EMC Corporation

#

#

# Copyright (c) 2011 EMC Corporation.

#

# All rights reserved. This is an UNPUBLISHED work, and

# comprises proprietary and confidential information of EMC.

# Unauthorized use, disclosure, and distribution are strictly

# prohibited. Use, duplication, or disclosure of the software

# and documentation by the U.S. Government is subject to

# restrictions set forth in a license agreement between the

# Government and EMC or other written agreement specifying

# the Government’s rights to use the software and any applicable

# FAR provisions, such as FAR 52.227-19.

#

#

# Source Bourne shell scripts to set the environment, and then

# execute the remaining arguments as a shell command.

#

usage()

{

echo “Usage: $1 [-u user_env_file] [-s sys_env_file] command [argument…]”

}

# Local variables

USR_ENV_FILE=

SYS_ENV_FILE=

while getopts “u:s:” ARG

do

case $ARG in

u) USR_ENV_FILE=$OPTARG;;

s) SYS_ENV_FILE=$OPTARG;;

?) usage “$0” >&2; exit 1;;

esac

done

shift `expr $OPTIND – 1`

if [ $# -lt 1 ]

then

usage “$0” >&2

exit 1

fi

# Source a user environment file if exists.

if [ -f “$USR_ENV_FILE” ]

then

# Ensure that others are not given write permission

m=`LC_ALL=C ls -l “$USR_ENV_FILE” | cut -c 9`

if [ “$m” = “w” ]

then

fmt >&2 <<EOF

WARNING: Ignored user environment file ‘$USR_ENV_FILE’ for a security reason.

Examine the contents of the file, and ensure that the file has no write

permission to ‘others’.

EOF

else

. “$USR_ENV_FILE” || echo >&2

“WARNING: Unable to source user environment file ‘$USR_ENV_FILE'”

fi

fi

# Source a NetWorker system environment file if given.

if [ ! -z “$SYS_ENV_FILE” ]

then

if [ -r “$SYS_ENV_FILE” ]

then

. “$SYS_ENV_FILE”

else

echo >&2 “WARNING: Unable to source environment file ‘$SYS_ENV_FILE'”

fi

fi

# Execute the remaining arguments as a shell command.

exec “$@”

[root@foo~]#

Related:

Re: NSR PEER INFORMATION

In old days I used something like this:

#!/bin/ksh

#

#set -x

clear

OUT=$(/usr/bin/nsr_render_log -S ‘today 00:00:00′ /nsr/logs/daemon.raw | grep “Conflicting NSR peer information resources detected for host” | cut -d’ -f2 | awk ‘{print $1}’ | sort -u)

echo “Following host(s) have been found to have conflicting NSR peer information:”

echo “===========================================================================”

IFS=” “

BZZ=$(print – “$OUT”)

echo $OUT

echo “”

unset IFS

if [ “`echo -n`” = “-n” ]; then

n=””

c=”c”

else

n=”-n”

c=””

fi

echo $n “Do you wish to continue? [y/n]: $c”

read ANSWER

if [ “$ANSWER” = “n” -o “$ANSWER” = “N” ]; then

echo “***** you guys… I’m going out!”

exit 0

elif [ “$ANSWER” = “y” -o “$ANSWER” = “Y” ]; then

for HOST in $BZZ

do

echo “Running printf “delete type: NSR peer information; name: $HOST\n” | /usr/sbin/nsradmin -p 390113 -i -“

printf “delete type: NSR peer information; name: $HOSTn” | /usr/sbin/nsradmin -p 390113 -i –

echo “NSR peer record for $HOST removed”

done

else

echo “Wrong answer… Bye bye”

exit 0

fi

In more modern days, you can use nsradmin -p nsrexec -C -y “NSR peer information” (but I think that switch is not available in 8.1 release you use).

Related:

Re: Networker 9.1 Pre/post Scripts Issue (with Enterprise Vault)

Hello,

i am trying to backup Enterprise Vault 11 and I am able to successfully set the backup mode using a powershell command. I even managed that a simple pre scirpt is executed by networker and the backup mode is set.

But the “default” save command is not run after the script has been started. I do not know how to send an exit 0 and networker uses this information to move on.

My pre-script looks like that:

nsr_pre_BACKUP_mode_EV.bat

————-

@ECHO OFF

SETLOCAL

ECHO === SET BACKUP MODE ===

C:WindowsSysWOW64WindowsPowerShellv1.0powershell -psconsolefile “C:Program Files (x86)Enterprise VaultEVShell.psc1” -command “& {Set-VaultStoreBackupMode -Name hasenkamp -EVServerName evserver01 -EVObjectType Site}”

ECHO Errorlevel: %errorlevel%

EXIT /B 0

ENDLOCAL

————

I started the script with only the powershell command but that did not work either and now I am trying to figure out why the save command is not running

Anyone using pre/post scripts with Networker 9?

Regards

Patric

Related:

Networker 9.1 Pre/post Scripts Issue (with Enterprise Vault)

Hello,

i am trying to backup Enterprise Vault 11 and I am able to successfully set the backup mode using a powershell command. I even managed that a simple pre scirpt is executed by networker and the backup mode is set.

But the “default” save command is not run after the script has been started. I do not know how to send an exit 0 and networker uses this information to move on.

My pre-script looks like that:

nsr_pre_BACKUP_mode_EV.bat

————-

@ECHO OFF

SETLOCAL

ECHO === SET BACKUP MODE ===

C:WindowsSysWOW64WindowsPowerShellv1.0powershell -psconsolefile “C:Program Files (x86)Enterprise VaultEVShell.psc1” -command “& {Set-VaultStoreBackupMode -Name hasenkamp -EVServerName evserver01 -EVObjectType Site}”

ECHO Errorlevel: %errorlevel%

EXIT /B 0

ENDLOCAL

————

I started the script with only the powershell command but that did not work either and now I am trying to figure out why the save command is not running

Anyone using pre/post scripts with Networker 9?

Regards

Patric

Related: