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/communication-services/concepts/voice-video-calling/known-issues-native.md
+2-19Lines changed: 2 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,29 +11,12 @@ ms.topic: conceptual
11
11
ms.service: azure-communication-services
12
12
---
13
13
14
-
# Known issues associated with the Azure Communication Services Calling Native and Native UI SDKs.
14
+
# Known issues associated with the Azure Communication Services Calling Native and Native UI SDKs
15
15
This article provides known issues related to using the Azure Communication Services native calling SDKs.
16
16
17
17
## Issues with Android API emulators
18
18
19
-
When utilizing Android API emulators on Android 5.0 (API level 21) and Android 5.1 (API level 22), some crashes are expected.
20
-
21
-
## Android chat and calling conflicts
22
-
23
-
You can't use Azure Communication Services chat and calling Android SDK at the same time, the chat real-time notifications feature doesn't work. You might get a dependency resolving issue.
24
-
25
-
To resolve this issue, you can turn off real-time notifications by adding the following dependency information in your app's build.gradle file and instead poll the GetMessages API to display incoming messages to end users.
> If your application uses the notification APIs like `chatAsyncClient.startRealtimeNotifications()` or `chatAsyncClient.addEventHandler()`, you will see a runtime error.
19
+
When utilizing Android API emulators on Android 5.0 (API level 21) and Android 5.1 (API level 22), some crashes are expected.
Copy file name to clipboardExpand all lines: articles/communication-services/how-tos/calling-sdk/includes/push-notifications/push-notifications-android.md
+22-9Lines changed: 22 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,9 +1,9 @@
1
1
---
2
-
author: probableprime
2
+
author: sanathr
3
3
ms.service: azure-communication-services
4
4
ms.topic: include
5
-
ms.date: 09/08/2021
6
-
ms.author: rifox
5
+
ms.date: 08/06/2024
6
+
ms.author: sanathr
7
7
---
8
8
> [!IMPORTANT]
9
9
> On June 20, 2023, Google announced that it [deprecated sending messages using the FCM legacy APIs](https://firebase.google.com/docs/cloud-messaging). Google is removing the legacy FCM from service in June 2024. Google recommends [migrating from legacy FCM APIs to FCM HTTP v1](https://firebase.google.com/docs/cloud-messaging/migrate-v1).
@@ -25,10 +25,10 @@ A set of permissions is required for the Android application in order to be able
25
25
```
26
26
27
27
## Overview
28
-
Mobile push notifications are the pop-up notifications you see on mobile devices. For calling, we'll be focusing on VoIP (Voice over Internet Protocol) push notifications. We'll register for push notifications, handle push notifications, and then un-register push notifications.
28
+
Mobile push notifications are the pop-up notifications you see on mobile devices. For calling, we'll be focusing on VoIP (Voice over Internet Protocol) push notifications. We register for push notifications, handle push notifications, and then unregister push notifications.
29
29
30
30
> [!NOTE]
31
-
> To Register for Push Notifications and handling of the Push Notifications for a Custom Teams Endpoint (CTE) the API's are the same. The API's described below can also be invoked on the `CommonCallAgent` or `TeamsCallAgent`class for Custom Teams Endpoint (CTE).
31
+
> Registering for Push Notifications and handling of the incoming Push Notifications for a Teams user, the APIs are the same. The APIs described here can also be invoked on the `CommonCallAgent` or `TeamsCallAgent`classes.
In your project level's *build.gradle* file, add the following in the `dependencies` section if it's not already there:
45
+
In your project level's *build.gradle* file, add the following line in the `dependencies` section if it's not already there:
46
46
47
47
```groovy
48
48
classpath 'com.google.gms:google-services:4.3.3'
@@ -54,7 +54,7 @@ Add the following plugin to the beginning of the file if it's not already there:
54
54
apply plugin: 'com.google.gms.google-services'
55
55
```
56
56
57
-
Select *Sync Now* in the toolbar. Add the following code snippet to get the device registration token generated by the Firebase Cloud Messaging SDK for the client application instance Be sure to add the below imports to the header of the main Activity for the instance. They're required for the snippet to retrieve the token:
57
+
Select *Sync Now* in the toolbar. Add the following code snippet to get the device registration token generated by the Firebase Cloud Messaging SDK for the client application instance. Be sure to add the below imports to the header of the main Activity for the instanceto retrieve the token.
@@ -128,7 +128,7 @@ Add the following service definition to the `AndroidManifest.xml` file, inside t
128
128
</service>
129
129
```
130
130
131
-
-Once the payload is retrieved, it can be passed to the *Communication Services* SDK to be parsed out into an internal *IncomingCallInformation* object that will be handled by calling the *handlePushNotification* method on a *CallAgent* instance. A `CallAgent` instance is created by calling the `createCallAgent(...)` method on the `CallClient` class.
131
+
Once the payload is retrieved, it can be passed to the *Communication Services* SDK to be parsed out into an internal *IncomingCallInformation* object that will handle calling the *handlePushNotification* method on a *CallAgent* instance. A `CallAgent` instance is created by calling the `createCallAgent(...)` method on the `CallClient` class.
132
132
133
133
```java
134
134
try {
@@ -140,7 +140,7 @@ catch(Exception e) {
140
140
}
141
141
```
142
142
143
-
When the handling of the Push notification message is successful, and the all events handlers are registered properly, the application will ring.
143
+
When the handling of the Push notification message is successful, and the all events handlers are registered properly, the application rings.
144
144
145
145
## Unregister push notifications
146
146
@@ -154,3 +154,16 @@ catch(Exception e) {
154
154
System.out.println("Something went wrong while un-registering for all Incoming Calls Push Notifications.")
155
155
}
156
156
```
157
+
158
+
## Disable internal push for incoming call
159
+
160
+
There are two ways that a push payload of an incoming call can be delivered to the callee.
161
+
- Using FCM and registering the device token with the API mentioned above, `registerPushNotification` on `CallAgent` or `TeamsCallAgent`.
162
+
- When a `CallAgent` or `TeamsCallAgent` is created, SDK also registers with an internal service to get the push payload delivered.
163
+
164
+
Using the property `setDisableInternalPushForIncomingCall` in `CallAgentOptions` or `TeamsCallAgentOptions` it's possible to instruct the SDK to disable the delivery of the push payload using the internal push service.
Copy file name to clipboardExpand all lines: articles/communication-services/how-tos/calling-sdk/includes/push-notifications/push-notifications-ios.md
+14-1Lines changed: 14 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@ ms.author: rifox
11
11
Mobile push notifications are the pop-up notifications you see on mobile devices. For calling, we'll be focusing on VoIP (Voice over Internet Protocol) push notifications. We'll register for push notifications, handle push notifications, and then un-register push notifications. For a guide on CallKit integration in your iOS application, refer here, [CallKit integration with iOS ACS SDK](../../callkit-integration.md).
12
12
13
13
> [!NOTE]
14
-
> To Register for Push Notifications and handling of the Push Notifications for a Custom Teams Endpoint (CTE) the APIs are the same. The APIs described can also be invoked on the `CommonCallAgent` or `TeamsCallAgent`class for Custom Teams Endpoint (CTE).
14
+
> Registering for Push Notifications and handling of the incoming Push Notifications for a Teams user, the APIs are the same. The APIs described here can also be invoked on the `CommonCallAgent` or `TeamsCallAgent`classes.
15
15
16
16
## Set up push notifications
17
17
@@ -72,3 +72,16 @@ callAgent.unregisterPushNotification { (error) in
72
72
}
73
73
}
74
74
```
75
+
76
+
## Disable internal push for incoming call
77
+
78
+
There are 2 ways that a push payload of an incoming call can be delivered to the callee.
79
+
- Using APNS and registering the device token with the API mentioned above, `registerPushNotification` on `CallAgent` or `TeamsCallAgent`.
80
+
- When a `CallAgent` or `TeamsCallAgent` is created, SDK also registers with an internal service to get the push payload delivered.
81
+
82
+
Using the property `disableInternalPushForIncomingCall` in `CallAgentOptions` or `TeamsCallAgentOptions` it's possible to instruct the SDK to disable the delivery of the push payload using the internal push service.
#Customer intent: As a developer, I want to enable push notifications with the Azure Communication Services sdks so that I can create a calling application that provides push notifications to its users.
14
+
#Customer intent: As a developer, I want to enable push notifications with the Azure Communication Services SDKs so that I can create a calling application that provides push notifications to its users.
15
15
---
16
16
17
17
# Enable push notifications for calls
@@ -35,7 +35,7 @@ Once the register push notification API is called when the device token informat
35
35
In case that you want to revoke an identity you need to follow [this process](../../concepts/identity-model.md#revoke-or-update-access-token), once the identity is revoked the Registrar entry should be deleted.
36
36
37
37
>[!Note]
38
-
>For CTE (Custom Teams Endpoint) the max TTL value is **24 hrs (86,400 seconds)** there's no way to increase this value.
38
+
>For a Teams user the max TTL value is **24 hrs (86,400 seconds)**. There's no way to increase this value. Contoso should wake up the application every 24 hours in the background and perform the registration of the device token. In iOS platform please follow the instructions [here](https://developer.apple.com/documentation/uikit/app_and_environment/scenes/preparing_your_ui_to_run_in_the_background/using_background_tasks_to_update_your_app) and for Android [here](https://developer.android.com/develop/background-work/background-tasks) to wake up the application, fetch the new token and perform the registration.
titleSuffix: Azure Communication Services Calling and Chat SDK
5
+
author: sanathr
6
+
title: Calling and Chat SDK in an Android application
7
+
ms.author: sanathr
8
+
ms.service: azure-communication-services
9
+
description: How to use both Calling and Chat SDK together in an Android application.
10
+
---
11
+
# Add Calling and Chat SDK in an Android application
12
+
13
+
This tutorial describes how Contoso can integrate both Calling and Chat SDK in an Android application.
14
+
15
+
## Current limitation
16
+
17
+
With Android Calling SDK versions earlier than `2.11.0`, building an Android application with both the Calling and Chat SDK's resulted in the following errors:
18
+
19
+
```
20
+
Duplicate class com.skype.rt.XXX found in modules jetified-azure-communication-calling-1.2.0-runtime (com.azure.android:azure-communication-calling:1.2.0) and jetified-trouter-client-android-0.1.1-runtime (com.microsoft:trouter-client-android:0.1.1)
21
+
22
+
2 files found with path 'lib/x86/libc++_shared.so' from inputs: - …\.gradle\...-azure-communication-calling-1.2.0\jni\x86\libc++_shared.so - …\.gradle\...-trouter-client-android-9.1.1\jni\x86\libc++_shared.so
23
+
```
24
+
25
+
This issue was caused because of the conflicting `.jar` and `.so` files included in the Calling SDK package `com.azure.android:azure-communication-calling` and a transitive dependency package that the Chat SDK package `com.azure.android:azure-communication-chat` imports, `com.microsoft:trouter-client-android`.
26
+
27
+
## Solution
28
+
From Android Calling SDK version 2.11.0 onwards, Contoso can integrate both the Calling and Chat SDKs within the same Android application. This was accomplished by making the Calling SDK rely on com.microsoft:trouter-client-android, similar to the Chat SDK’s dependency on the Trouter package, and eliminating the conflicting .jar and .so files previously included in the Calling SDK.
29
+
30
+
## Implementation steps
31
+
32
+
Specify the version of the Android Calling and Chat SDK in your application's Gradle build file as shown in the example:
The version of `com.azure.android:azure-communication-chat` can be any version. The latest release version is used here as an example. However, the version of the Trouter package `com.microsoft:trouter-client-android` included with the Chat SDK `com.azure.android:azure-communication-chat` needs to be excluded. When the application is built, the Trouter package version included by the Calling SDK package `com.azure.android:azure-communication-calling` will be used.
42
+
43
+
## Next steps
44
+
Quickstart sample is available in GitHub [Android QuickStarts](https://github.com/Azure-Samples/communication-services-android-quickstarts.git) under `Add-Chat-Calling` folder and follow the `README.md` on instructions how to run the sample.
0 commit comments