Я пытаюсь реализовать аудиовызов в своем собственном приложении реагирования, используя SDK для вызова связи Azure. Когда приложение находится на переднем плане, И IncomingCallListener настроен ДО, инициируется вызов, все работает нормально. Но если сначала инициируется вызов, а затем на принимающем устройстве устанавливается IncomingCallListener, входящий вызов никогда не принимается. Из https://learn.microsoft.com/en-us/azure ... rm-android я узнал, что я должен справиться с этой ситуацией, зарегистрировавшись для push-уведомлений. Поэтому я настраиваю push-уведомление о входящем вызове (voip для iOS) на сервере .net.
Когда инициируется входящий вызов, я получаю веб-перехватчик событий из сетки событий Azure. Но пакет SDK для вызовов Azure ожидает полезную нагрузку этого уведомления в очень специфическом формате, который не отображается внутри кода SDK.
Поэтому, пока я не знаю, что это за формат, я не могу исправить эту проблему с входящим вызовом . Может ли кто-нибудь помочь мне понять, каким должен быть формат полезных данных?
Примечание: я также пробовал использовать концентратор уведомлений Azure в сочетании с уведомлениями Azure, чтобы получать полезные данные push-уведомлений о входящем вызове непосредственно из Azure. В метриках центра уведомлений я вижу, что уведомления всегда терпят неудачу с этим сообщением об ошибке «Ошибки авторизации FCMv1».
Вот мой код для обработки полезных данных входящих вызовов.
public void setUpIncomingCall(Map map, String acsToken, String displayName, Context context) {
try{
if (callAgent == null) {
CallAgentOptions callAgentOptions = new CallAgentOptions();
callAgentOptions.setDisplayName(displayName);
callClient.createCallAgent(context, new CommunicationTokenCredential(acsToken), callAgentOptions).thenAccept(callAgent1 -> {
callAgent = callAgent1;
Log.e("incomingCall","created call agent");
incomingCallListener = new IncomingCallListener() {
@Override
public void onIncomingCall(IncomingCall incomingCall) {
Log.e("setUpIncomingCall", "Incoming call received");
currentIncomingCall = incomingCall;
}
};
callAgent.addOnIncomingCallListener(incomingCallListener);
PushNotificationInfo pushNotificationInfo = PushNotificationInfo.fromMap(map);
if (pushNotificationInfo != null) {
callAgent.handlePushNotification(pushNotificationInfo).thenAccept(aVoid -> {
Log.e("handleCallPush", "Push payload mapping success");
}).exceptionally(throwable -> {
throwable.printStackTrace();
Log.e("handleCallPush", "Failed to handleCallPush", throwable);
return null;
});
} else {
Log.e("incomingCall","incomingCall error pushNotificationInfo null");
}
}).exceptionally(throwable -> {
Log.e("incomingCall", "setUpIncomingCall error", throwable);
return null;
});
}
else {
Log.e("incomingCall","existing call agent");
incomingCallListener = new IncomingCallListener() {
@Override
public void onIncomingCall(IncomingCall incomingCall) {
Log.e("setUpIncomingCall", "Incoming call received");
currentIncomingCall = incomingCall;
}
};
callAgent.addOnIncomingCallListener(incomingCallListener);
PushNotificationInfo pushNotificationInfo = PushNotificationInfo.fromMap(map);
if (pushNotificationInfo != null) {
callAgent.handlePushNotification(pushNotificationInfo).thenAccept(aVoid -> {
Log.e("handleCallPush", "Push payload mapping success");
}).exceptionally(throwable -> {
throwable.printStackTrace();
Log.e("handleCallPush", "Failed to handleCallPush", throwable);
return null;
});
} else {
Log.e("incomingCall","incomingCall error pushNotificationInfo null");
}
}
} catch (Exception exception) {
exception.printStackTrace();
Log.e("setUpIncomingCall", "setUpIncomingCall error", exception);
}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... ith-push-n
Связь Azure, вызывающая SDK (android и ios), проблема с входящим вызовом с push-уведомлением/уведомлением VoIP ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение