You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/automation/troubleshoot/change-tracking.md
-1Lines changed: 0 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -136,7 +136,6 @@ Here are possible causes specific to this issue:
136
136
Verify that the daemon for the Log Analytics agent for Linux (**omsagent**) is running on your machine. Run the following query in the Log Analytics workspace that's linked to your Automation account.
title: Azure Communication Services - best practices for Calling Native SDK
3
-
description: Learn more about Azure Communication Service best practices for Calling Native SDK.
3
+
description: Learn about Azure Communication Services best practices for the Calling Native SDK.
4
4
author: garchiro7
5
5
manager: chpalmer
6
6
services: azure-communication-services
@@ -11,47 +11,47 @@ ms.topic: include
11
11
ms.service: azure-communication-services
12
12
---
13
13
14
-
## Azure Communication Services native SDK best practices
14
+
## Best practices for the Azure Communication Services Calling Native SDK
15
15
16
-
This section provides information about best practices associated with the Azure Communication Services voice and video calling native SDK.
16
+
This section provides information about best practices associated with the Azure Communication Services Calling Native SDK for voice and video calling.
17
17
18
-
## Supported platforms
18
+
###Supported platforms
19
19
20
-
Here are the minimum OS platform requirements to ensure optimal functionality of the Calling Native SDKs.
20
+
Here are the minimum OS platform requirements to ensure optimal functionality of the Calling Native SDK.
21
21
22
-
### [iOS](#tab/ios)
22
+
####[iOS](#tab/ios)
23
23
24
-
- Support for iOS 10.0+ at build time, and iOS 12.0+ at run time.
25
-
- Xcode 12.0+.
26
-
- Support for **iPadOS** 13.0+.
24
+
- Support for iOS 10.0+ at build time and iOS 12.0+ at runtime
25
+
- Xcode 12.0+
26
+
- Support for iPadOS 13.0+
27
27
28
-
### [Android](#tab/android)
28
+
####[Android](#tab/android)
29
29
30
-
- Support for Android API Level 21 or Higher.
31
-
- Support for Java 7 or higher.
32
-
- Support for Android Studio 2.0.
30
+
- Support for Android API Level 21 or higher
31
+
- Support for Java 7 or later
32
+
- Support for Android Studio 2.0
33
33
34
-
We highly recommend identifying and validating your scenario by visiting the supported [Android platforms](../sdk-options.md?#android-platform-support)
34
+
We highly recommend that you identify and validate your scenario by using the information in [Android platform support](../sdk-options.md?#android-platform-support).
35
35
36
-
### [Windows](#tab/windows)
36
+
####[Windows](#tab/windows)
37
37
38
-
- Support for UWP (Universal Windows Platform).
39
-
- Support for WinUI 3.
38
+
- Support for Universal Windows Platform (UWP)
39
+
- Support for WinUI 3
40
40
41
41
---
42
42
43
-
##App request device permissions
43
+
### Verify device permissions for app requests
44
44
45
-
To use the Calling Native SDKs for making or receiving calls, it's necessary to authorize each platform to access device resources. As a developer, you should prompt the user for access and ensure that are enabled. The consumer authorizes these access rights, so verify that they have been granted permission previously.
45
+
To use the Calling Native SDK for making or receiving calls, consumers need to authorize each platform to access device resources. As a developer, you must prompt the user for access and ensure that permissions are enabled. The consumer authorizes these access rights, so verify that they currently have the required permissions.
46
46
47
-
### [iOS](#tab/ios)
47
+
####[iOS](#tab/ios)
48
48
49
-
-`NSMicrophoneUsageDescription` for microphone access.
50
-
-`NSCameraUsageDescription` for camera access.
49
+
-`NSMicrophoneUsageDescription` for microphone access
50
+
-`NSCameraUsageDescription` for camera access
51
51
52
-
### [Android](#tab/android)
52
+
####[Android](#tab/android)
53
53
54
-
In the Application Manifest (`app/src/main/AndroidManifest.xml`). Verify the following lines:
54
+
In the application manifest (`app/src/main/AndroidManifest.xml`), verify the following lines:
Go to `Package.appxmanifest` and select capabilities:
70
70
71
-
-`Internet (Client)`&`Internet (Client & Server)` for network access.
72
-
-`Microphone` to access the audio feed of the microphone.
73
-
-`Webcam` to access the video feed of the camera.
71
+
-`Internet (Client)`and`Internet (Client & Server)` for network access
72
+
-`Microphone` to access the audio feed of the microphone
73
+
-`Webcam` to access the video feed of the camera
74
74
75
75
---
76
76
77
-
## Configure the logs
77
+
###Configure the logs
78
78
79
-
Implementing **logging** as per the [logs file retrieval tutorial](../../tutorials/log-file-retrieval-tutorial.md) is more critical than ever. Detailed logs help in diagnosing issues specific to device models or OS versions that meet the minimum SDK criteria. We encourage to the developers that start configuring the Logs API without the logs the Microsoft Support team **won't be able** to help debug and troubleshoot the calls.
79
+
Implementing logging as described in the [tutorial about retrieving log files](../../tutorials/log-file-retrieval-tutorial.md) is more critical than ever. Detailed logs help in diagnosing problems specific to device models or OS versions that meet the minimum SDK criteria. We encourage developers to configure logs by using the Logs API. Without the logs, the Microsoft support team can't help debug and troubleshoot the calls.
80
80
81
-
## Track Call ID
81
+
###Track CallID
82
82
83
-
**`CallID`** is the unique ID for a call. It identifies correlated events from all of the participants and endpoints that connect during a single call, in Most cases you use it to review the logs and Microsoft Support team ask for it to help troubleshoot the calls. You **should** track the `CallID` in your telemetry that you configure in your app, you can follow the guidelines in the [troubleshooting guide](../troubleshooting-info.md) to understand how to retrieve it for each platform.
83
+
`CallID` is the unique ID for a call. It identifies correlated events from all of the participants and endpoints that connect during a single call. In most cases, you use it to review the logs. The Microsoft Support team asks for it to help troubleshoot the calls.
84
84
85
-
## Subscribe to UFD (User Facing Diagnostics) and media quality statistics
85
+
You should track the `CallID` value in the telemetry that you configure in your app. To understand how to retrieve the value for each platform, follow the guidelines in the [troubleshooting guide](../troubleshooting-info.md).
86
86
87
-
-[User Facing Diagnostics (UFD)](../voice-video-calling/user-facing-diagnostics.md) that can be used to examine various properties of a call to determine what the issue might be during the call that affects your customers.
88
-
-[Media quality statistics](../voice-video-calling/media-quality-sdk.md) examine the low-level audio, video, and screen-sharing quality metrics for incoming and outgoing call metrics. We recommend that you collect the data and send it to your pipeline ingestion after your call ends.
87
+
### Subscribe to User Facing Diagnostics and media quality statistics
89
88
90
-
## Error Handling
89
+
You can use these Azure Communication Services features to help improve the user experience:
91
90
92
-
If there are any errors during the call or implementation, the methods return error objects containing error codes. It's crucial to use these error objects for proper error handling and to display alerts. The call states also return error codes to help identify the reason behind call failure. You can refer to [the troubleshooting guide](../troubleshooting-info.md), to resolve any issues.
91
+
-[User Facing Diagnostics](../voice-video-calling/user-facing-diagnostics.md): Examine properties of a call to determine the cause of problems that affect your customers.
92
+
-[Media quality statistics](../voice-video-calling/media-quality-sdk.md): Examine the low-level audio, video, and screen-sharing quality metrics for incoming and outgoing call metrics. We recommend that you collect the data and send it to your pipeline ingestion after a call ends.
93
93
94
-
### Managing Video Streams
94
+
### Manage error handling
95
95
96
-
Make sure to dispose of the `VideoStreamRendererView` when the video is no longer displayed on the UI. Use `VideoStreamType` to determine the type of the stream.
96
+
If there are any errors during the call or implementation, the methods return error objects that contain error codes. It's crucial to use these error objects for proper error handling and to display alerts. The call states also return error codes to help identify the reasons behind call failures. You can refer to the [troubleshooting guide](../troubleshooting-info.md) to resolve any problems.
97
97
98
-
##General memory management
98
+
### Manage video streams
99
99
100
-
**Preallocate Resources**. Initialize your calling client and any necessary resources during your app's startup phase rather than on demand. This approach reduces latency when starting a call.
100
+
Be sure to dispose of `VideoStreamRendererView` when the UI no longer displays the video. Use `VideoStreamType` to determine the type of the stream.
101
101
102
-
**Dispose Properly**. Ensure that all call objects are correctly disposed of after use to free up system resources and avoid memory leaks. Make sure to unsubscribe from *events* preventing memory leaks.
102
+
### Conduct general memory management
103
103
104
-
## Camera or microphone being used by another process
104
+
**Preallocate resources**. Initialize your calling client and any necessary resources during your app's startup phase rather than on demand. This approach reduces latency in starting a call.
105
105
106
-
It's important to note that on mobile devices if multiple processes try to access the camera or microphone at the same time, the first process to request access will take control of the device. As a result, the second process will immediately lose access to it.
106
+
**Dispose properly**. Dispose of all call objects after use, to free up system resources and avoid memory leaks. Be sure to unsubscribe from *events* that might cause memory leaks.
107
107
108
-
##Optimize the APP size using UI Library
108
+
### Consider how processes access the camera or microphone
109
109
110
-
Optimizing the size of libraries in software development is crucial for several reasons, particularly as applications become increasingly complex, and resource-intensive.
110
+
On mobile devices, if multiple processes try to access the camera or microphone at the same time, the first process to request access takes control of the device. As a result, the second process immediately loses access to it.
111
111
112
-
Application Performance: Smaller libraries reduce the amount of code that must be loaded, parsed, and executed by an application. This can significantly enhance the startup time and overall performance of your application, especially on devices with limited resources.
112
+
### Optimize library size
113
113
114
-
Memory Usage: By minimizing library size, you can decrease the runtime memory footprint of an application. This is important for mobile devices, where memory is often constrained. Lower memory usage can lead to fewer system crashes and better multitasking performance.
114
+
Optimizing the size of libraries in software development is crucial for the following reasons, particularly as applications become more complex and resource intensive:
115
+
116
+
-**Application performance**: Smaller libraries reduce the amount of code that an application must load, parse, and execute. This reduction can significantly enhance the startup time and overall performance of your application, especially on devices that have limited resources.
117
+
118
+
-**Memory usage**: By minimizing library size, you can decrease the runtime memory footprint of an application. This decrease is important for mobile devices, where memory is often constrained. Lower memory usage can lead to fewer system crashes and better multitasking performance.
119
+
120
+
For more information, see:
115
121
116
122
-[UI Library for iOS](https://github.com/Azure/communication-ui-library-ios/wiki/Calling-Composite-Demo-Application-Size)
117
123
-[UI Library for Android](https://github.com/Azure/communication-ui-library-android/wiki/Calling-Composite-Demo-Application-Size)
0 commit comments