[This is preliminary documentation and is subject to change. Blank topics are included as placeholders.]

Tests the ability of a user to make a call to a phone number located on the Public Switched Telephone Network (PSTN).


Test-CsPstnOutboundCall -TargetFqdn <String> -TargetPstnPhoneNumber <String> [-Force <SwitchParameter>] [-OutVerboseVariable <String>] [-RegistrarPort <Nullable>] [-UserSipAddress <String>]
Test-CsPstnOutboundCall -TargetFqdn <String> -TargetPstnPhoneNumber <String> -UserCredential <PSCredential> -UserSipAddress <String> [-Force <SwitchParameter>] [-OutVerboseVariable <String>] [-RegistrarPort <Nullable>]


Parameter Required Type Description




Fully qualified domain name of the pool to be tested.




PSTN telephone number to be called when conducting the test. The target phone number must look something like this +14255551298: a plus sign (+) followed by the country code (1), the area code (425) and the phone number (5551298). Do not use dashes, parentheses, or any other characters when specifying the phone number.



SIP address

SIP address for the user account to be tested. For example: -SenderSipAddress "sip:kenmyer@litwareinc.com". The UserSIPAddress parameter must reference the same user account as UserCredential.



PS credential object

User credential object for the account to be tested. The value passed to UserCredential should be an object reference obtained by using the Get-Credential cmdlet. For example, this code returns a credentials object for the user litwareinc\kenmyer and stores that object in a variable named $x:

$x = Get-Credential "litwareinc\kenmyer"

You need to supply the user password when running this command.



SIP port used by the Registrar service. This parameter is not required if the Registrar uses the default port 5061.




Reports detailed activity to the screen as the cmdlet runs.



Switch Parameter

Suppresses the display of any non-fatal error message that might arise when running the command.

Detailed Description

Test-CsPstnOutboundCall is an example of a Communications Server "synthetic transaction." Synthetic transactions are used in Microsoft Communications Server to verify that users are able to successfully complete common tasks such as logging on to the system, exchanging instant messages, or making calls to a phone located on the Public Switched Telephone Network (PSTN). These tests can be conducted "manually" by an administrator, or they can be automatically run by an application such as Microsoft System Center Operations Manager.

Synthetic transactions are typically conducted in two different ways. Many administrators will use the CsHealthMonitoringConfiguration cmdlets to set up a "health registrar" for each of their registrar pools. A health registrar is nothing more than a pair of users who have been preconfigured for use with synthetic transactions. (Typically these are test accounts and not accounts belonging to actual users.) With a health registrar configured for a pool, administrators can simply run a synthetic transaction against that pool without having to specify the identities of (and supply the credentials for) the user accounts involved in the test.

Alternatively, administrators can run a synthetic transaction using actual user accounts. For example, if two users are unable to exchange instant messages, an administrator could run a synthetic transaction using the two user accounts in question (as opposed to a pair of test accounts) and try to diagnose and resolve the problem. If you decide to conduct a synthetic transaction using actual user accounts keep in mind that you will have to supply the logon names and passwords for each user.

When you run Test-CsPstnOutboundCall the cmdlet first attempts to log the test user on to Microsoft Communications Server. If the logon succeeds, the cmdlet will then attempt to place a phone call across the PSTN gateway. This phone call will be placed using the dial plan, voice policy, and other policies and settings assigned to the test account.

When conducting its test, Test-CsPstnOutboundCall will make an actual phone call: the target phone will ring and must be answered for the test to succeed.

Return Types

Test-CsPstnOutboundCall returns an instance of the Microsoft.Rtc.SyntheticTransactions.TaskOutput object.


-------------------------- Example 2 --------------------------

Copy Code
Test-CsPstnOutboundCall -TargetFqdn atl-cs-001.litwareinc.com -TargetPstnPhoneNumber "+15551234567" 

The preceding example checks to see if a preconfigured test user can log on to the pool atl-cs-001.litwareinc.com and then make a phone call across the PSTN gateway. This command will work only if a health monitoring registrar has been defined for the pool atl-cs-001.litwareinc.com. If it has, then the command will determine whether the first test user in the registrar can log on to the system and, if so, make a phone call to a phone located on the PSTN network.

If a registrar has not been defined then the command will fail because it will not know which user to employ when doing the test. If you have not defined a health monitoring registrar for a pool then you must include the -UserSipAddress parameter as well as the corresponding credentials for the user account involved in the test. Test-CsPstnOutboundCall will then conduct its checks using the specified user.

-------------------------- Example 2 --------------------------

Copy Code
$cred1 = Get-Credential "litwareinc\jhaas"

Test-CsPstnOutboundCall -TargetFqdn atl-cs-001.litwareinc.com -TargetPstnPhoneNumber "+15551234567" -UserSipAddress "sip:jhaas@litwareinc.com" -UserCredential $cred1

The commands shown in Example 2 test the ability of a test user (litwareinc\jhaas) to logon on to Microsoft Communications Server and then make a phone call over the PSTN gateway. To do this, the first command in the example uses the Get-Credential cmdlet to create a PowerShell credential object containing the name and password of the user Jonathan Haas. (Because the logon name - litwareinc\jhaas - has been included as a parameter, the resulting Windows PowerShell Credential Request dialog box only requires the administrator to enter the password for the Jonathan Haas account.) The resulting credential object is then stored in a variable named $cred1.

With the credential object in hand, the second command in the example determines whether or not the test user can log on to Microsoft Communications Server and then make a phone call to the target phone number (+15551234567). To carry out this task, Test-CsPstnOutboundCall is called, along with the following parameters: -TargetFqdn (the fully qualified domain name of the registrar pool); -UserSipAddress (the SIP address for the user making the call); -UserCredential (the PowerShell object containing the credentials for the test user); and –TargetPstnPhoneNumber (the phone number being called).