Just last week I blogged that this was coming on the roadmap, now here it is:
“SIP Tester” is a sample PowerShell script from Microsoft that you can use to test Direct Routing Session Border Controller (SBC) connections in Microsoft Teams. This script tests the basic functionality of a client-paired Session Initiation Protocol (SIP) trunk with Direct Routing.
The script submits a SIP test to the tester (a Microsoft service, https://calltester.pstnhub.microsoft.com), waits for the result, then presents it in a human-readable format.
You can use this script to test the following 4 scenarios:
Outgoing and incoming calls
This test case validates that outgoing and incoming calls work and that media can travel back and forth between two participants. This scenario helps identify possible configuration issues.
Use two Teams users in different tenants. This is the preferred approach as it does not require any manipulation on the SBC under test and therefore verifies call setup and media under near production conditions. Different tenants are needed because this approach removes the possibility of shorting the call on the Teams backend infrastructure and forces the signaling to go to the external PSTN partner.
This test case validates the Teams feature of ringing multiple endpoints (e.g. various devices with call forwarding enabled) for incoming calls.
This test case validates the situation when multiple participants are added to the initial 1:1 call, making it an ad hoc meeting with a mixer introduced to mix multiparty audio.
This test case validates the Teams feature to transfer the call as soon as a 1:1 call is established. This feature allows a participant to initiate a transfer (Basic or Consultative), transferring the call to another test user. In a consult transfer, the party initiating the transfer establishes a new call with the target of the transfer (the new party being introduced to the call) for consultation before the transfer actually takes place.
Download the SipTesterClient.ps script. Run the script in PowerShell in administrator mode.
The script needs the Adal.ps package to run. If it is not present, the script will try to install it automatically. To do this, run the script in administrator mode (first run only).
You must disable MFA (Multi Factor Authentication) for test users, otherwise an error message will be returned.
- TeamsOut username – Caller’s username in Teams (used to make an outgoing call)
- TeamsOutPassword – Caller’s password in Teams (used to make an outgoing call)
- TeamsInUsername – The call recipient’s user principal name in Teams (used to receive an incoming call).
- TeamsInPassword – Call recipient password in Teams (used to receive the incoming call)
- Recipient number – PSTN number which is routed to the TeamsIn user
- TeamsOutDataCenter – (Optional) Teams client’s preferred location (used to make an outbound call), valid values: [APAC-SG, APAC-HK, EMEA-DB, EMEA-AM, NOAM-BL, NOAM-DM]
- TeamsInDataCenter – (Optional) Teams client’s preferred location (used to receive incoming calls), valid values: [APAC-SG, APAC-HK, EMEA-DB, EMEA-AM, NOAM-BL, NOAM-DM]
- Username TeamsInEscalation – (Optional) User principal name of the escalation target in Teams (used to escalate the call)
- TeamsInEscalationPassword – (Optional) Escalation target password in Teams (used to escalate the call)
- TeamsInEscalationIncomingNumber – (Optional) PSTN number that is routed to the TeamsInEscalation user
- TeamsInEscalationDataCenter – (Optional) Teams client’s preferred location (used to escalate the call), valid values: [APAC-SG, APAC-HK, EMEA-DB, EMEA-AM, NOAM-BL, NOAM-DM]
- TeamsInTransferTargetUsername – (Optional) Transfer target user principal name in Teams (used to transfer the call)
- TeamsInTransferTargetPassword – (Optional) Transfer target password in Teams (used to transfer the call)
- TeamsInTransferTargetIncomingNumber – (Optional) PSTN number that is routed to the TeamsInTransferTarget user
- TeamsInTransferTargetDataCenter – (Optional) Teams client’s preferred location (used to transfer the call), valid values: [APAC-SG, APAC-HK, EMEA-DB, EMEA-AM, NOAM-BL, NOAM-DM]
- Username TeamsInSimulring – (Optional) Simultaneous Ring Target Teams Primary Username (used for Simultaneous Ring)
- TeamsInSimulringPassword – (Optional) Simultaneous Ring Target Teams Password (used for Simultaneous Ring)
- TeamsInSimulringIncomingNumber – (Optional) PSTN number that is routed to the TeamsInSimulring user
- TeamsInSimulringDataCenter – (Optional) Teams client preferred location (used for concurrent calls), valid values: [APAC-SG, APAC-HK, EMEA-DB, EMEA-AM, NOAM-BL, NOAM-DM]
- Content of the certificate – Base64 certificate content for authentication
- Vendor ID – (Optional) Used to verify call records for BV users
- CallDurationMinutes – Call duration in minutes
- MediaValidationFrequencyMinutes – Frequency of media validation during the call in minutes
- HideTable – (Optional) Will not print the test results table.
- Use User Credentials – (Optional) Use TeamsOut credentials for authentication.
- To flow – Direction of calls relative to the Teams backend, outgoing or incoming
- SipCallID – SIP call ID of the SBC under test
- Coded – Call result code, 0 for success, non-0 for failure (internal to Teams backend)
- TrunkFqdn – The actual SBC used for the test
- Channel ID – The call ID of internal teams
- State – General test result (passed or failed)
- Phrasing – Arbitrary phrase indicating the reason for failure if applicable