Skip to content

Commit dd6aeeb

Browse files
Abhishesingh msft/dtmf actions live tests (#36557)
* Live test for Continuous Dtmf Detection and Send Dtmf scenario * Live test for Start Continuous Dtmf Recognition
1 parent 3078ed4 commit dd6aeeb

File tree

5 files changed

+1068
-0
lines changed

5 files changed

+1068
-0
lines changed
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
using System;
5+
using System.Threading.Tasks;
6+
using NUnit.Framework;
7+
using Azure.Communication.CallAutomation.Tests.Infrastructure;
8+
using Azure.Core.TestFramework;
9+
using Microsoft.AspNetCore.Http;
10+
11+
namespace Azure.Communication.CallAutomation.Tests.CallMedias
12+
{
13+
internal class CallMediaAutomatedLiveTests : CallAutomationClientAutomatedLiveTestsBase
14+
{
15+
public CallMediaAutomatedLiveTests(bool isAsync) : base(isAsync)
16+
{
17+
}
18+
19+
[RecordedTest]
20+
public async Task ContinuousRecognitionTest()
21+
{
22+
/* Test case: ACS to ACS call
23+
* 1. create a CallAutomationClient and a target CallAutomationClient.
24+
* 2. create a call from source to one ACS target.
25+
* 3. get updated call properties and check for the connected state.
26+
* 4. start continuous dtmf recognition.
27+
* 5. again start continuous dtmf recognition and expect success.
28+
* 6. stop continuous dtmf recognition.
29+
* 7. wait for ContinuousDtmfRecognitionStopped event.
30+
* 8. again stop continuous dtmf recognition and expect success.
31+
* 10. clean up the call.
32+
*/
33+
34+
// create caller and receiver
35+
CommunicationUserIdentifier user = await CreateIdentityUserAsync().ConfigureAwait(false);
36+
CommunicationUserIdentifier target = await CreateIdentityUserAsync().ConfigureAwait(false);
37+
38+
CallAutomationClient client = CreateInstrumentedCallAutomationClientWithConnectionString(user);
39+
CallAutomationClient targetClient = CreateInstrumentedCallAutomationClientWithConnectionString(target);
40+
41+
// setup service bus
42+
var uniqueId = await ServiceBusWithNewCall(user, target);
43+
44+
// create call and assert response
45+
CreateCallResult response = await client.CreateCallAsync(new CallInvite(target), new Uri(TestEnvironment.DispatcherCallback + $"?q={uniqueId}"));
46+
47+
string callConnectionId = response.CallConnectionProperties.CallConnectionId;
48+
Assert.IsNotEmpty(response.CallConnectionProperties.CallConnectionId);
49+
50+
// wait for incomingcall context
51+
string? incomingCallContext = await WaitForIncomingCallContext(uniqueId, TimeSpan.FromSeconds(20));
52+
Assert.IsNotNull(incomingCallContext);
53+
54+
// answer the call
55+
var answerCallOptions = new AnswerCallOptions(incomingCallContext, new Uri(TestEnvironment.DispatcherCallback));
56+
var answerResponse = await targetClient.AnswerCallAsync(answerCallOptions);
57+
Assert.AreEqual(StatusCodes.Status200OK, answerResponse.GetRawResponse().Status);
58+
59+
// wait for callConnected
60+
var connectedEvent = await WaitForEvent<CallConnected>(callConnectionId, TimeSpan.FromSeconds(20));
61+
Assert.IsNotNull(connectedEvent);
62+
Assert.IsTrue(connectedEvent is CallConnected);
63+
Assert.IsTrue(((CallConnected)connectedEvent!).CallConnectionId == callConnectionId);
64+
65+
// test get properties
66+
Response<CallConnectionProperties> properties = await response.CallConnection.GetCallConnectionPropertiesAsync().ConfigureAwait(false);
67+
Assert.AreEqual(CallConnectionState.Connected, properties.Value.CallConnectionState);
68+
69+
try
70+
{
71+
// start continuous dtmf recognition
72+
var startContinuousDtmfResponse = await client.GetCallConnection(callConnectionId).GetCallMedia().StartContinuousDtmfRecognitionAsync(user);
73+
Assert.AreEqual(StatusCodes.Status200OK, startContinuousDtmfResponse.Status);
74+
75+
// again start continuous dtmf recognition and expect success
76+
startContinuousDtmfResponse = await client.GetCallConnection(callConnectionId).GetCallMedia().StartContinuousDtmfRecognitionAsync(user);
77+
Assert.AreEqual(startContinuousDtmfResponse.Status, StatusCodes.Status200OK);
78+
79+
// stop continuous dtmf recognition
80+
var stopContinuousDtmfResponse = await client.GetCallConnection(callConnectionId).GetCallMedia().StopContinuousDtmfRecognitionAsync(user);
81+
Assert.AreEqual(StatusCodes.Status200OK, stopContinuousDtmfResponse.Status);
82+
83+
// wait for ContinuousDtmfRecognitionStopped event
84+
var continuousDtmfRecognitionStopped = await WaitForEvent<ContinuousDtmfRecognitionStopped>(callConnectionId, TimeSpan.FromSeconds(20));
85+
Assert.IsNotNull(continuousDtmfRecognitionStopped);
86+
Assert.IsTrue(continuousDtmfRecognitionStopped is ContinuousDtmfRecognitionStopped);
87+
88+
// again call stop coninuous recognition and expect success
89+
stopContinuousDtmfResponse = await client.GetCallConnection(callConnectionId).GetCallMedia().StopContinuousDtmfRecognitionAsync(user);
90+
Assert.AreEqual(StatusCodes.Status200OK, stopContinuousDtmfResponse.Status);
91+
}
92+
catch (RequestFailedException ex)
93+
{
94+
Assert.Fail($"Unexpected error: {ex}");
95+
}
96+
finally
97+
{
98+
await CleanUpCall(client, callConnectionId);
99+
}
100+
}
101+
}
102+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
{
2+
"entries": [
3+
{
4+
"body": "{\u0022to\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022from\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LWFzc2UtMDEuY29udi5za3lwZS5jb20vY29udi9CajM5Mlhnc3hVMlc0M09JelVyYzRnP2k9NCZlPTYzODIwNzUwNzk1Njk0MDY1Ng==\u0022,\u0022callerDisplayName\u0022:\u0022\u0022,\u0022incomingCallContext\u0022:\u0022eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVliVy9iT0JMK0s0SVB1QTkzcFVWU0ZDVVNNQlpPbk94Nm03Zm1wZWtCd1FVVVJjbHFaVWxMeWJHVDd2NzNHOHBPNHRUZGJ1NXVDNndEeUNabk9NOHpJNUl6azg4RHJjcnlwTzZLck5DcUsrcHFJRDhQTWx2UDNYZVJEdVFnbGtxM2tpU3BValFSU0lRNFFpeGtGQ1VKWjBoRkNhVWFZeFduN0JiM0h4S2p6UEFJaGJHT1VNYmhFWXBBNFJRa1ZLakJtMEZhdEUycDdrL1UzSUI5bURCVjJ0UkYxVTBkSGlqcE5HQWhFaVJMRURPQ29TUlRCdEU0ekV5V2FzcFZCR3RLVmVVTGxSdTNwbHFVNVp0Qm8yeFg2S0pSRzBPeFlOb29sUUhIakNLV2lRakZTV1FRVDNTY0ppTE1lT0lNellvME5lQjJwc3JXUEhPNXZHOGN1OWJZTzJQSFRRT2FqYTBiWTd2N1BaV3ZNWDk3TStqcVB5RlF5dENkUUNWL0dLaTFFWXpSVng2UG4xY0ZLbEpHc1lSR2lJZEdJNWJ3Rk1GTWdKSW9VNmt4R1ZFazNRMlVOVzI5c0xxM08zaU4xNzhUd2JLb1ByVXVpS3JybEo2QnNWblhOYTMwZmRVVXc2d3M4bGtINjFiM3cvWVR2Sk9ocnVkTzR0OVJYemUrMXVoall4VENaS2oxbG9iVy9oM3hzOXArTXFtZjZFd1FsV0VVMERpRm5jQmhUNWlBSXF4NG1tVnBHUEF3OFdua0Y4UVBRdXl2aWZ4UWpBaFFucHUwVU9PcVhSb0wxTFFHWG5PM2lZRlNEaUZvL3dKOEg2bHNHRnZ6MGVqdUw4QnJUV1REYXBFMmwxWlZiVk5ieHcyR3dDeWtRMEtESWVIeE1NWXlZRkhzRDM3YnhIeS9yanBUZ2U3bmdWNy8zQnhKMVRUbDVyTHkyOVFkektTc0V4RGNqZkNOdmFucUVmSW9Kb0lISHZhbUo5NzBqSG1FUmtNTWY4UXB0S01Xb2dYTDNVQ1BOaXBzU0VRd3BDUWVSckVUSktQOVMwazI1OGhOZENQczlUL21JN1ZJaTlxRHJSNHo3L3p5ekIrL1AvTUlacDZBWitBUlFqd1NBM2pzaVFobVlPUW1ZMkNCdndtcFJyYlREYkp0OFdDMnhsa2kvK0d0MEJ4SXd6bjJ3SCt2aFp0QXB1M01zMGJmdVI5cjlSVnFpN3hTY0tUeWI2MTZ0aTJkRCtGNlhHaURGcGxWdVd6ZXFZZm51V2FaeWk0K2l2anhQeWZadEZIQjZYditjUDZqbUZoNnY4Vnl2bGl0UjFwVmFaR3F6a2h3M0x1YW5IbVVCRGpDbkFYa2hjdWJBSGIzd014bTVjcXpLazB0Qkt5WHc4dkNublhiWmEyM2E1eHVHUThGeEhmSGVQaEs0K0dYeGlrd2QwNHAzUUVBaFczQVFlMGxBQk1rcEs4QTZQVjJBZWozQllBZDE0ZUgwRENtQXBNbzlOeHBJMnpJNFl0aEQwNmI2STFiQXpsbVkvd0YvbGJ3dmVQTHEvT1Q2Y1FUT0JBaTVqVG1FY1ZCR0FZQzd5TFRaK1JZY0U3L0QrVHdHVGxpT0dJeDU0d0xURWtJTkw1RWhuUGVCN1ZSYlF2d0xJWkxnR1ArQlh3WVJDeDRGVDRFYldmYnNjMkwrNTRZNGRidWN4QmhMQUo0MjM4dUJQMCtFS1ZLVENubnFxaFFmMHV1WitkRktzbmpIWlVzalNyejJoYmRiQzZUcGZZYXBUK1pybEdGOVpZbWdkdGt3OWJlTjEwTkIzMThjSEc3ZjN4TGFIejcwL0Y0Ly9iaXB6RzVqYkZYVkhEVEdmbXcrbVhhSFpjUkZlTTRKQmNaWElCM1IzdVRqSDZncXJ5ZUhrM3c3T0h1N2VYQnIvVGZBZm1WUEJMWm1LZC9aTDZkSHRjZjl1ZmxZZnR4Zm4xbWo4K25EN3doazEveWlhOC9YVGZkWWRhdUxpN2pvamYvZUNFMmM5VkE5bURleGZUb3JVLzRKb2M4aVlUM1kwU3BIMzg1Ny9KSHYyUlhBbG5sWW5wK2NMSnRMWnQzYTBsU2RCYmU2MmdYQ2U1RmdCSmJCdGVMWWs5VmxWa2xvNnArb1krOXMvM2pxMTM4Mk0yUGQrY2h4WjBmVEw3bUNXeGlVNXBtVmxjR21UdEk0RHNjUUFVandsK3VDN3o5azYrNUg3djVyL2hIc1JPdzV4Vk5WOHpoaG4xRWdtUm9iR09oYkpidFRDRWFjbSt5TC9sRWppT0pLWkNRZTZHY01NbXduR0I1T0pFaWxKaExmaUFQaFdTeFBDQlNITWhKTEVNcXNaQ1lTUjVJeHFRNGxPSEVTY2Y3Y25Jb28xQWU3RWtPUmlacllMUHFlbjZlcThQa0RYeVd5K1Z3dmNHSHRjMXZic3dLcW1IZ1duWHR6UTI0ZzJhcGhWVTNOeXBwa1V2V3lIbnl3bHJ3Yk8ycFNQdUdvVXkxM1cwQ3AzNVpwTjNzTmpNbVRlQ3cvUTE2R2xjQTNRWlBkVU5yTllMNkxJZkU2cG9JOTNDeXh3cjR5T1I5b1U5VEVmRTB3Y2lra1VDTXVmWktRRk1WTTU1U0VXRnNRdGRVbVJiNnlyNUVPOVY2WVNINCtWUGpVSm5sYVphNWNycWZnSG9QaXNHMzV0NVZlcHZDckI4Tjd0dm85Rit6c2p2NEtGWlg3MmlleFhsWHZCdU53RDcwTDNCamdNN2x6NVAzQzNXcUFudHhsYmR2RDlXNzYvZitHSFRBckFYaVVCODVGbWZyeHFNd2ZhZFJ0T2NiMGJnczY2VUJ4enE3Y0V6MG91M3FlVjk2cnJxbkZnWHFUeGV3M3A5cGRWZDBUNTN5dHNTdHNuVlo5bzNDZjFWN2d4RUU2Y1QwMVRjTXR1dHZHUHA3SHdOQlArVHQ2b3BlcytCMCtuQmxOY3Voc0daL055TWV4QlJIa0N0RnlBWERQT1FRbjZJOVhwUmRjUWFkSGtSeUUvaWkzYk8xU2pYc2llZllweVpaNU51MU52dy9vSC9UeWhnZE1HZ0lWY1FWWWxFWUl4RkVBU0tKZ3F5ZlpaU0kwUFZCLzBzekNiaTVyUmZOeTBEL0J6RktOaENORUFBQSIsInNoclRva2VuIjoiZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y0NJNkluQnZjQ0o5LmV5SmhkQ0k2SW1WNVNqQmxXRUZwVDJsS1MxWXhVV2xNUTBwb1lrZGphVTlwU2xOVmVra3hUbWxKYzBsdVp6RmtRMGsyU1dreFRGTlVUbEpQVnpWUFZXcGthVlZ0T1cxbFJ6RnNWMjA1V1dOWFNrbFhhMlJzWkhsSmMwbHRkSEJhUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEtPUzVsZVVwb1pGZFJhVTlwU21sT1JGWnNUVVJyZDFsVE1XdFpWMHB0VEZSUmVFNUVWWFJaVkVFeVQwTXdkMDlIUlRSTmFteHBUWHBDYkU5SFVXbE1RMHB3WXpOTmFVOXBTbTlrU0ZKM1kzcHZka3d6VGpCamVUVXpZVmMxYTJJelpIcE1iVFZzWkVNNWFscEhUVEZaVjFac1dWTXdlRTVYVFRGTVZGSnJXV3BaZEZscVFUTlBVekZ0V1RKR2ExcEVTVEZOUkZacldYcEpka2xwZDJsaFYwWXdTV3B2ZUU1cVp6Rk5WR013VFVSbk5VeERTblZaYlZscFQycEZNazlFVlhoT2VsRjNUMFJyYzBsdFZqUmpRMGsyVFZSWk5FNVVTVEpOUkdNMFQxTjNhVmxYYkhaSmFtOXBVbFJLWVZveGJFZGhSMDU1WlZaWmNrNUhUVEZTZWtKcFRETmFhV1JwT1U5TmJHUldZVVZPUWxGVU1HbE1RMHBvWTBoQ2NGcERTVFpKYlVWNldWUk5lbGw2U21oTVZFazFUMGRWZEU1RVJtdE5VekExVFZSTk0weFhSVEZPUkZsNVRXMVZNazlFUm1wWmVVbHpTVzFHZDJOSGJHdFpWMDU1U1dwdmFVMXBTWE5KYlU1MVdtbEpObVY1U25Ga01uTnBUMjV6YVdFelVqVkphbTlwVld4T1FrbHBkMmxpYVVrMlNXNUdkMXA2U2xCaVZrcEVZakZLUzFaRVVtcGFWM2h5WW5wU05tVnVSbkpqYlRsell6TlJlbUl6YUROVVZXZDZVbFpSTUZKSGJHdGhNV1IxVDFkR2FGUnNTakJOU0d4UVkxVmplRlpYWnpOT2JYaENXbnBPYTJGSGFGbGFSR3g2V2pKYVNGTXpiSEpWYTFWMFlUSjBRbFJzYkdaV01FcEpUVEZXU0ZSWFRURlRWVkp2WWpCR1NsRnRNRFJaYW1nd1lUTnNUVk5FVWtWalZteE9VVEowU0dJeWJFZFVNRkpRV1RJNVdsb3lPVzlrYlRFd1YydFJORTVHT1VsaE1GcEtZVlZSZEZSRlduSmpTRlV6WkRGTmVHVllhRVJpTWprMlVURlpkMlZVVGt0UmJVNXZVek5XVlZkR09IcFViRXBHVVZkS2VtSkhWbGRhYTJoMVkwY3hhbUpVVVRCbFIwcHJZbFJzTWxONmJFbFJiVlpHVWxoS2MxWnVjRWhYVms1RFdESlJkR0pIV21aa1ZUUjBUbTVXU1dGc1JYUlRhMmgxWlVkV1dsaDZUa3hoUkZKWlQwY3dNVmxWZEZWVlNGSTBaRlJzZFUxc1RtbFpWMk0xWWxSVk1GVXpUa2xoYTA1MVpXeE9TVmRwTVZsVU1tUkxWRzVPVUdGc1FrcFdSMVl3VG1wak1HSlhTWGxTUjNCdlUwWk9OR1ZVWkcxUFZXeHZUVEZ3VWxOWE5VMVRWR1JWWkhwamRGWXpSalZqTUdoUVpFZFpkMU14VW1aYU1GWlpaRWhaZUUxSWNGZE9hbVJFVlZOSmMwbHRWV2xQYVVwQ1ZWVkdRMGxwZDJsWlYzaHVTV3B2YVZWc1RYbE9WRmxwVEVOS2NtRlhVV2xQYVVrMVlteHdlR0pyT1hOVFJURjVXV3M1TTFGWFZqRmphMUkwVlRGd1VsRlVRbGxXYWtaUlRYcEtWMXBXVlRKTlJFNTBWMWMxYWxVeGJGSkpiakU1VEVOS2NGcElRV2xQYVVwdlpFaFNkMk42YjNaTU0wNHdZM2sxTTJGWE5XdGlNMlI2VEcwMWJHUkRPV3BhUjAweFdWZFdiRmxUTUhoT1YwMHhURlJTYTFscVdYUlpha0V6VDFNeGJWa3lSbXRhUkVreFRVUldhMWw2U1haSmFYZHBZakpzYTBscWIybE5iVTB6VDFkT2FVNTZaM1JOTWs1cVdWTXdNRTB5Vm1sTVYwcHNXV3BKZEZscVFUVk9iVlpwVDFSSk1FNXRSVFJKYVhkcFkyMW5hVTlwU1hkTWEwWlRVMVZGTW1OVVpFZGxiVTVXVm01U2NrMXVaR3hhYm13d1RVZDRRMXBJWkc1aU1IQlpZMnhPWmsxdGRGZFJiVGxJV2pCc2VGRXlNVFpTUnpoM1ZUQkdRbEZUTkdsTVEwcDZaRmRKYVU5cFNYbFplbU0xV1RKSk0wOURNSHBaTWs1b1RGUlJlbHBYU1hSWmJWWnBUV2t4YVUxRWF6SmFWMGsxVFdwUk1sbFVaMmxNUTBvd1lWZFJhVTlwU21wYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNXbE1RMG94WkVkcmFVOXBTVFZSVkdkNlZrVTVUbFpFU25Ka1Z6bGFUVEpPTVZONmJIbFlNRVpDU1dsM2FXUnRWbmxKYW05cFRWTTBkMGx1TUM1eVRHWXdiRFIwV0RsUWEyNDVWa3hHVmtwUlgzaHRRakIzTFVOb01ETXpRVWhQYkRaM1RHVjVkamxtYlZwcGEyaFpWMDlHY1Zsc2R6RTJZMFJyTjJKQlpVZGlXSEUzZEc1YVV6QjVZM00wYVRaUlptWnpRVVF6T1RacmVVeFNRbm90WkRnMU1XMUdaVEpKV0RSamFXWk1kVWRHWlZodU1VOVRWamd6ZFdaRWJWZFdlVE5tVDFvNVpIYzJUbXBRTldoVVluUnlPREZNYkZoVE9FbE1iVTl2VVhwUk0zQktMVmRPVTJsSVYwOU1XVEpwTlV4bGVHeFlMVXA0VXpGMmRGODJTa3MxT1VKS2JHeHJNM3BrYlROdGMyRnNha2RVYVVNeWJqQjZObHByY0ZKbmIzZzVjVzVFTW5GRk1FUmlZVlV0ZGtGT2FtOU9OWGxCVEhOV1drZDRVRkpRV0dodlVHcFVjVmxOUTJKc1QwbFdZMGhTU0d4VGJsZE9VV1J2VFhKbU5EWTRURmx4TjFWVFRFSjNia2hPVm1RNWNrSXdVRkozWlZKWFFXTnlaMVJvV1ZkWmVraERUeTFCZWxKRldqTjBOWEl5YVVFaUxDSjBjeUk2TVRZNE5USXhNekF3Tml3aVlpSTZJalI1V1dKcGEwZHFVbWxpZWxCS01GZ3hTbFJWTjBwWkxVNDRWRUpLUms1MVNURkJUMnhxV2pGTU9HY2lMQ0p1YjI1alpTSTZJak0xTjJWaU5qVXlabVU0WlRRNFlqRmhOamd3TjJFMVpEVmhNMkk0TnpOaElpd2lZMjVtSWpwN0ltcDNheUk2ZXlKcmFXUWlPaUpITTNKbWJGOVZYMmRUZWxnNVZIRndXWGhmVFdjNVdHc3RiRGw1UzJWZmRGSTRXR3BRY1hwUldpMUJJaXdpWlNJNklrRlJRVUlpTENKcmRIa2lPaUpTVTBFaUxDSnVJam9pY1hCbk1rOXRVa052VWtwVU5HTmxiR3R2TkhwNmNXdHliMnh6ZEROdmVIZE5TRE5GVkRSRWFXUnJWMjQ1WVdGT1VuUXdlVTl4UnpGVmFEYzJiRUZuTTJSb2FGaGtPWE5uWmtkTGVXdFNSUzFyYTBGT1dWOVhRa2d6VlVkTll6VkpSR2h2UVVsQ2JUaGlPSFJyZVV4SU5FUnhXVTFEYTBkdmFVWlBSRTlqYjFsbmIyaDJiWFJhUkRnMFgwaHJSa2xwUkMxTVJtdHdkVGQzVXpGNWVFTnZiM3BEVmpCNU0wcENZMmhMZFZSWVh6Tk9Va1ZCWW5Oc1pWWm1TRzV3YldOdE5EUjRZbVJ0T1haTE9VaENaVVZGY214V2VrZFpVMEpmWkMxc1psOTFUaTAyZFVocVVTMUtTRzU0WlZsZk0wdG9ORmc0YlRWaFMxUlFkSGgxT1c0eVUySmhaemx0TlRSVGMwaHFRMjU2VTBoYUxWaFBaMHBPYzA5cVVFbFVaWFEyTnpSdFlqSkVhbWhJVTNoNU4yWTVTV2d6V2xGSmJreEpOMVIzTnkxWGNYbHpTRTkwWmpCTFZGOW5SVmgwZGpFd2VsWTJOME5SSW4xOWZRLk1RRFJYaWZWMHN4VWM5Vno2R0ZPai0weFhvLWNTVmJhZHRDNmxha21pRno3R2t4RnRVOTRaSmx4NUZxVjhjVVF2eWo2TWpCSTNKV2dNeHZWckhmLXhab1BZRXdzeW5uYVh1QlFNZG5wVkFrZjNwbU9weFlEclFCMGJReWFBODBnQklnS3A4aDJjT1lnczBSVmJWNGxPa0tmNVU5bS03YzBhZWxIdW1tYllDaW02cUI4Vlg2VVVld2FRV2hQVW9KR29vanlhMzk5MzMzT2Zoamw4eC16UlJ5UFJhZlZRTU9wMlF6aWxNTUhnUFNCRzlWM0pVWG5JX3VEQlBBeEhLZHc0VzMtWWRzcGUzNUQxUVpSLWpvSE9TR1IwMUE1anFqdk5PZmVJdm5mRjBkY1E2N3ZEN1RoYVluLWpVR1JNSnVHQ2RwaEVWYkpoX0RsZlVBS1BYSTVqdyJ9.\u0022,\u0022correlationId\u0022:\u0022aeec34ec-a76a-4758-9373-1ba539ff2195\u0022}",
5+
"messageId": "9bc5fb7513d044699906cda431aa190b",
6+
"partitionKey": null,
7+
"sessionId": null,
8+
"replyToSessionId": null,
9+
"correlationId": null,
10+
"subject": null,
11+
"contentType": null,
12+
"replyTo": null,
13+
"applicationProperties": {
14+
"Diagnostic-Id": "00-6eccc7a315d80d3da37d2ba486edff34-63d779c939b79c10-00"
15+
},
16+
"enqueuedTime": "0001-01-01T00:00:00+00:00"
17+
},
18+
{
19+
"body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/411f0700-6861-4f47-a70b-4e4d19840c61\u0022,\u0022type\u0022:\u0022Microsoft.Communication.ParticipantsUpdated\u0022,\u0022data\u0022:{\u0022participants\u0022:[{\u0022identifier\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022kind\u0022:\u0022communicationUser\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022isMuted\u0022:false},{\u0022identifier\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022kind\u0022:\u0022communicationUser\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022isMuted\u0022:false}],\u0022sequenceNumber\u0022:1,\u0022callConnectionId\u0022:\u0022411f0700-6861-4f47-a70b-4e4d19840c61\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LWFzc2UtMDEuY29udi5za3lwZS5jb20vY29udi9CajM5Mlhnc3hVMlc0M09JelVyYzRnP2k9NCZlPTYzODIwNzUwNzk1Njk0MDY1Ng==\u0022,\u0022correlationId\u0022:\u0022aeec34ec-a76a-4758-9373-1ba539ff2195\u0022},\u0022time\u0022:\u00222023-05-27T18:43:30.1303533\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/411f0700-6861-4f47-a70b-4e4d19840c61\u0022}]",
20+
"messageId": "4b7bad0873a9437b99646f0e6aefb50a",
21+
"partitionKey": null,
22+
"sessionId": null,
23+
"replyToSessionId": null,
24+
"correlationId": null,
25+
"subject": null,
26+
"contentType": null,
27+
"replyTo": null,
28+
"applicationProperties": {
29+
"Diagnostic-Id": "00-ef383c003c4b741feee6d11dca0179c3-34d05641ce487f6d-00"
30+
},
31+
"enqueuedTime": "0001-01-01T00:00:00+00:00"
32+
},
33+
{
34+
"body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/411f0700-6861-4f47-a70b-4e4d19840c61\u0022,\u0022type\u0022:\u0022Microsoft.Communication.CallConnected\u0022,\u0022data\u0022:{\u0022callConnectionId\u0022:\u0022411f0700-6861-4f47-a70b-4e4d19840c61\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LWFzc2UtMDEuY29udi5za3lwZS5jb20vY29udi9CajM5Mlhnc3hVMlc0M09JelVyYzRnP2k9NCZlPTYzODIwNzUwNzk1Njk0MDY1Ng==\u0022,\u0022correlationId\u0022:\u0022aeec34ec-a76a-4758-9373-1ba539ff2195\u0022},\u0022time\u0022:\u00222023-05-27T18:43:30.1303533\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/411f0700-6861-4f47-a70b-4e4d19840c61\u0022}]",
35+
"messageId": "8d92f8272ae54ce7977136aad6e34567",
36+
"partitionKey": null,
37+
"sessionId": null,
38+
"replyToSessionId": null,
39+
"correlationId": null,
40+
"subject": null,
41+
"contentType": null,
42+
"replyTo": null,
43+
"applicationProperties": {
44+
"Diagnostic-Id": "00-cbfd26a9080cdc8b9f0cd979add3851c-fd071e5430caacb4-00"
45+
},
46+
"enqueuedTime": "0001-01-01T00:00:00+00:00"
47+
},
48+
{
49+
"body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/411f0700-6861-4f47-a70b-4e4d19840c61\u0022,\u0022type\u0022:\u0022Microsoft.Communication.ContinuousDtmfRecognitionStopped\u0022,\u0022data\u0022:{\u0022callConnectionId\u0022:\u0022411f0700-6861-4f47-a70b-4e4d19840c61\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LWFzc2UtMDEuY29udi5za3lwZS5jb20vY29udi9CajM5Mlhnc3hVMlc0M09JelVyYzRnP2k9NCZlPTYzODIwNzUwNzk1Njk0MDY1Ng==\u0022,\u0022correlationId\u0022:\u0022aeec34ec-a76a-4758-9373-1ba539ff2195\u0022},\u0022time\u0022:\u00222023-05-27T18:43:36.599489\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/411f0700-6861-4f47-a70b-4e4d19840c61\u0022}]",
50+
"messageId": "de85dbf97f844bb38c1cd0ca67bd6f6e",
51+
"partitionKey": null,
52+
"sessionId": null,
53+
"replyToSessionId": null,
54+
"correlationId": null,
55+
"subject": null,
56+
"contentType": null,
57+
"replyTo": null,
58+
"applicationProperties": {
59+
"Diagnostic-Id": "00-30b683352510e031bb3cf03dc90bf822-c67e809ec85455be-00"
60+
},
61+
"enqueuedTime": "0001-01-01T00:00:00+00:00"
62+
}
63+
]
64+
}

0 commit comments

Comments
 (0)