Giter VIP home page Giter VIP logo

webex-android-sdk's Introduction

Cisco Webex Android SDK

The Cisco Webex Android SDK makes it easy to integrate and secure messaging, meeting and calling features in your Android apps.

SDK types:

  • WebexCalling SDK : WebexSDK-Wxc.aar

    • This SDK supports only WebexCalling feature
    • It does not support CUCM calling.
  • Meeting SDK : WebexSDK-Meeting.aar

    • This SDK supports Messaging and Meeting features
    • It does not support CUCM Calling and Webex Calling
  • Full SDK : WebexSDK.aar

    • Supports all the features.
    • Details of all features can be found here

All the SDKs are independent of each other. Developers can use either one of them to fulfil their use case.

Documentation

Support

License

All contents are licensed under the Cisco EULA

See License for details.

webex-android-sdk's People

Contributors

adamrangs avatar alicexdiao avatar ankbat avatar ankibatr avatar bbender avatar ciscorankush avatar dengqiming avatar gmoens-vuzix avatar kliu avatar knamoach avatar kunniu avatar lasharm2 avatar minli5 avatar mrshiy avatar raghsund avatar rohits5-cisco avatar xionxiao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webex-android-sdk's Issues

Getting "Missing attribute" when entering correct email after wrong email in WebEx login

We are using WebEx Android SDK 2.8.0.10

When trying to login into webex portal in webview of Android in our app, we get an issue like this

  1. Entering wrong email first time
  2. Now, instead of telling "Wrong email" the Email Text Box clears itself
  3. Then when user enters the correct email and clicks sign in,
  4. User gets this page "Missing attribute"
image

We don't know how to fix this issue? Please help us.

Code:

        val oAuth2 = OAuthWebViewAuthenticator(
            BuildConfig.CLIENT_ID,
            BuildConfig.CLIENT_SEC,
            BuildConfig.SCOPE,
            BuildConfig.REDIRECT_URL
        )
        val webex = Webex(applicationContext as Application, oAuth2)
        agent.webex = webex
        oAuth2.authorize(binding.OAuthWebView) { result: Result<Void?> ->
            if (result.isSuccessful) {
}
}

Can't get history message

I used this function to get list message by room_id

messageClient.list(roomId!!, before, 50, null) { result ->

But I got an issue after back and request list few times

I got this error
OkHttp https://conv-r.wbx2.com/... Parse json error: java.lang.ClassCastException: android.net.Uri$StringUri cannot be cast to java.lang.String
E/ServiceReqeust:263: OkHttp https://conv-r.wbx2.com/... HTTP Error: WebexError[errorCode=UNEXPECTED_ERROR, message=Illegal body in the response, ]

Not sure why this happen, I don't touch anything, just go back and request few times, then issue will happen

Webex.phone().register() is only successful one time

After upgrading to SDK 2.5.0, I noticed that you can only successfully call Webex.phone().register() one time. If you kills the app or restart the Android device, register() no longer completes successfully:

2020-05-13 10:42:30.651 2565-2685 D/HttpClient:53: OkHttp https://wdm-a.wbx2.com/... [HTTP] <-- 405 Method Not Allowed https://wdm-a.wbx2.com/wdm/api/v1/devices/android/c36956f1-2cb8-403d-9599-0b4d1bd5d7b3 (636ms)
...
2020-05-13 10:42:30.692 2565-2565 I/PhoneImpl:156: main Register failed, WebexError[errorCode=-7001, message=405/Method Not Allowed/{"message":"Request method 'POST' not supported","errors":[{"description":"Request method 'POST' not supported"}],"trackingId":"CLIENT_9f3b70d1-9605-4daf-b1d9-4d7d8578bae0_1"}, ]

If you log out or clear data on the app and log back in, you get one more success and then it fails all future tries.

Downgrading back to 2.4.0 fixes the problem.

Thumbnail value null for pdf document in setMessageObserver

when I receive a new message i added listener like below,

webex.messages().setMessageObserver(
	new MessageObserver() {
		public void onEvent(MessageEvent event) {
			if (event instanceof MessageReceived) {
				Message currentMessage = ((MessageReceived) event).getMessage();
				List<RemoteFile> messageFiles = currentMessage.getFiles();
				RemoteFile messageFile = messageFiles.get(0);
				Log.e("thumbnail value ==> ", messageFile.getThumbnail());
			}
		}
	}
);

Thumbnail value null if I receive new message with document(pdf).
and when I receive Image file, thumbnail value exists.
please refer below screenshots.
PDF File
RemoteFile Response for PDF: File{fileSize=1209423, version='a0e8407c27b54b2d9494a829e4c1a957', author=null, mimeType='application/pdf', updated=null', contentId=e78d5af0-d57d-4a21-ae43-7396c627fb20', image=', isHidden=false}
image

Image File
RemoteFile Response for Image: File{fileSize=20609, version='89e7edd09bc94bb8860e3312b31e2dc0', author=null, mimeType='image/jpeg', updated=null', contentId=a0697586-ba52-4829-8091-dde1972ae648', image=Image{url=https://files-api-k.wbx2.com/v1/spaces/adeddae9-deca-41f5-bee2-987adabb1b73/contents/f9a22dfe-8916-45ed-883c-3bb681599eae/versions/f1a016a5dedc494991c7087e6aebd932/bytes, width=306, height=540}', isHidden=false}
image

and when fetch messages using webex.messages().list, thumbnail value exist or same message file
image

remote video view renders blank

Hi Team,
Steps to Reproduce:

  1. two parties can able to join in space for video call in VideoCallActivity.
  • remote view renders incoming video, local renders my video from my camera (Expected)
  1. when one user navigated to some other activity in application and navigate back to VIdeoCallActivity.
  • local is rendering video from my phone camera, but remote is rendering blank
  • but can able to receive and send audio from/to remote user

Upgrading CISCO SDK from 2.8 to 3.7

Facing a problem with SpaceID. Does not getting spaceId most of the time after authorising JWT token. I have tested apk of kitchenSink app 3.7.0 in that also we are not getting spaceId many times. I have tested KitchenSink app 3.6.0 apk in that we are able to get spaceId.

When desktop user shares a whiteboard, SDK sees a new participant called "Injector"

Using SDK 3.2.1. This is easily reproducible with the Kitchen Sink app.

  1. Join a space on Kitchen Sink app and from a desktop.
  2. View participants list on Kitchen Sink app, only two users should be present.
  3. Have desktop user start sharing a whiteboard.
  4. View participants list on Kitchen Sink app again. Notice there are now 3 users, one of them is called "Injector". Desktop side does not display this user.

Upgrading CISCO SDK from 2.8 to 3.6.0/3.7.0 - While on going call if we minimize app and again open then Remote Video disappear

Below is the use cases :

  1. Join call
  2. Now when call is on going just minimize App and again open RemoteView will be disappear

Second Use case :

  1. When call is on going and If you open another activity or screen and again come back to Video calling screen then RemoteView will be disappear.

This both issue are still observable in 3.6.0 and 3.7.0 KintchenSink apk

Kindly suggest the solution for the same as this Video calling is important feature

Android - Application Size is High for React Native Application

We are using Cisco Native libraries in our existing project for audio & video calling. We are facing a size issue with the Native library. It increases the size by around ~350 on the initial application launch only. We are facing this issue in Native Android only.

Android application size increases in a below manner for our application:

  1. App size on the play-store is around ~60 MB.
  • As libraries are compressed in this stage.
  1. After installation it is around ~200MB.
  • As libraries are de-compressed in this stage.
  1. After launch it is around ~350.
  • As all Native libraries (.so files) are copied to the User data folder.

There might be a few possibilities by which we can reduce the size as below:

  1. Cisco supports React Native
  2. Cisco reduce the library size
  3. Can we download the Cisco library on demand? which means for those users who are using our audio/video functionality we download the Cisco library runtime on their devices & provide our desired functionalities.

Can you please provide a suggestion or solution on how we can reduce our Android application size?

This needs to be addressed as soon as possible, as due to the higher size of the application on a device we are losing our customers...

WebexError.getErrorMessage() does not return localized strings

WebexError.getErrorMessage() can return simple strings when errors happen internally within the SDK, such as "Device is not registered" or "permission deined" (note the misspelling).

WebexError.getErrorMessage() can also return a JSON response from the server with an embedded message property containing the error message.

In both cases, the messages are not localized for the device language. WebexError.getErrorCode() does not help in most cases as it is either ErrorCode.UNEXPECTED_ERROR or ErrorCode.SERVICE_ERROR, so these can't be used to pick a localized message for display.

Apk size is huge

Hi Team,
As I am using webex sdk for my project with compile('com.ciscowebex:androidsdk:2.8.0@aar', { transitive = true }), the APK size is more than 140mb.
i added below configurations for my app
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
And when i check APK of this Kitchensinkapp repo, this apk is also 80mb.

please check below screenshot for reference
kitchensink-app-apk-analiser

Why does startShare always return false?

I want to run share screen but it always returns false

private fun startShareScreen() {
        Log.d(TAG, "shareScreen")

        val isSharing = isLocalSharing()
        Log.d(TAG, "shareScreen isSharing: $isSharing")
        if (!isSharing) {
//            updateScreenShareButtonState(ShareButtonState.DISABLED)
                getCalling()?.startSharing(CompletionHandler { result ->
                    Log.e("sharingScreenMe",result.isSuccessful.toString())
                })
        } else {
            getCalling()?.stopSharing(CompletionHandler { result ->
                Log.e("stopSharingScreenMe",result.isSuccessful.toString())
            })
        }
    }

Upgrading CISCO SDK from 2.8 to 3.7 : App got crash while join the call in Android CISCO sdk 3.7

Hello Team,
When i am going to join a video call app will get crashed.
I need one clarification here:
My code written in java using CISCO android sdk 2.8 version which is working fine. Now we are upgrading CISCO sdk to 3.7.0.(which is written in kotlin)
First thing can i integrate CISCO android SDK 3.7 in to my existing Java code ?

** webExAgent.getWebEx().getPhone().dial(spaceId, MediaOption.Companion.audioVideo(localVideo, remoteVideo), new CompletionHandler<Call>() {
                        @Override
                        public void onComplete(Result<Call> result) {

                            if(result.isSuccessful()){
                                Log.i("Call", "===onComplete: ");
                            }
                        }
                    });**

above is the code how i am calling dial() method from Java code. This code will cause a crash.
Below i am attaching evaluated error screenshot while debugging above code

Screenshot 2022-11-17 at 4 11 00 PM

Conversation not found error while initiate call

@Team,
When i try to initiate a call in space with jwt authentication i am unable to start call for first time. ending up with the below error
E/ServiceReqeust:263: OkHttp https://conv-k.wbx2.com/... HTTP Error: WebexError[errorCode=SERVICE_ERROR, message=404/Not Found/{"errorCode":1404001,"message":"Conversation not found","errors":[{"errorCode":1404001,"description":"Conversation not found"}],"trackingId":"webex-android-sdk_9cce6edc-4712-41b4-9398-6f00a5fc7b4b_7"}, ]
and when i debug got below error
ResultImpl[_data=null, _error=WebexError[errorCode=SERVICE_ERROR, message=404/Not Found/{"errorCode":1404001,"message":"Conversation not found","errors":[{"errorCode":1404001,"description":"Conversation not found"}],"trackingId":"webex-android-sdk_490d3ca6-b677-4b5a-9efe-faaceea5acfd_7"}, ], ]
JWTAuthentication:
JWTAuthenticator jwtAuthenticator = new JWTAuthenticator(); jwtAuthenticator.authorize(jwt_token);

Webex instance:
Webex webex = new Webex(currentApplication, jwtAuthenticator);

Device Registration(Success):
`

        webex.phone().register(new CompletionHandler<Void>() {
            @Override
            public void onComplete(Result<Void> result) {
                try {
                    if (result.isSuccessful()) {
                        joinCall();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                    onCallFailed();
                }
            }
        });`

Join/Initiate call:
`

        private void joinCall() {
          if (!TextUtils.isEmpty(spaceId)) {
		          webex.phone().dial(spaceId, MediaOption.audioVideo(local, remote), new CompletionHandler<Call>() {
			          @Override
			          public void onComplete(Result<Call> result) {
				          if (result.getError() != null) {
					          onCallFailed();
                                                     //Error is occuring here like result.data() == null
				          } else {
					          //call initial setup
				          }
			          }
		          });
          } else {
	          onCallFailed();
          }
      }`

Crash when remote user starts or stops sharing

Using SDK 3.2.1. This is very similar to previous crash I reported:

#83

But rather than crashing when you leave a meeting, the SDK is crashing when the remote user shares their screen, or stops sharing their screen. Sometimes it's the second time they share, sometimes the third.

2022-02-08 12:25:01.642 14609-14707/webex E/webex: JNI ERROR (app bug): accessed deleted Global 0x3006
2022-02-08 12:25:01.690 14609-14707/webex A/webex: java_vm_ext.cc:542] JNI DETECTED ERROR IN APPLICATION: use of deleted global reference 0x3006
2022-02-08 12:25:02.090 14609-14707/webex A/webex: runtime.cc:558] Runtime aborting...
2022-02-08 12:25:02.125 14609-14707/webex A/libc: Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 14707 (Thread-1466), pid 14609 (webex)

I can't reproduce this with the kitchen sink app.

My app does a lot of switching out of render views and calls Call.setVideoRenderViews() and Call.setSharingRenderView() multiple times. The crash always seems to happen when calling one of these methods. Never the first time, but some time later during the call.

When I'm done with a render view, I try calling those two methods while passing in null, for example Call.setSharingRenderView(null) to try to clean up after myself. This does not seem to help. The docs say this:

"If is nil, it will update the video state as inactive to the server side."
"If is nil, it will update the content sharing state as inactive to the server side."

But I don't think this is true. When you decompile the SDK, you see this:

public void setVideoRenderViews(@nullable Pair videoRenderViews) {
if (videoRenderViews == null) {
this.logDebug(this.tag, "setVideoRenderViews: Do nothing.");

public void setSharingRenderView(@nullable View view) {
if (view == null) {
this.logDebug(this.tag, "setSharingRenderView: Do nothing.");

Passing in null does nothing in either case. This does not seem to match the docs.

I think cleaning up these old render views would help, but there does not appear to be a way to do that with the SDK.

App crashes when entering and leaving the video call several times

Hi,
I got a crash while using SDK, this happens occasionally when I go in and out of the videocall several times too often (I enter the activity where I have the videocall, go back and so on). This happens on all kinds of devices (on some devices the error happens earlier than on others).

I'm using com.ciscowebex:androidsdk:3.4.0@aar
Compile SDK: 31
Target SDK: 31

Logcat:

A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
A/DEBUG: Build fingerprint: 'google/sdk_gphone64_x86_64/emulator64_x86_64_arm64:12/SE1A.211012.001/7818354:userdebug/dev-keys'
Revision: '0'
A/DEBUG: ABI: 'x86_64'
A/DEBUG: Timestamp: 2022-05-23 19:39:08.376631000+0200
A/DEBUG: Process uptime: 0s
A/DEBUG: Cmdline: com.jose.webextest
A/DEBUG: pid: 17384, tid: 20104, name: Thread-5  >>> com.jose.webextest <<<
A/DEBUG: uid: 10149
A/DEBUG: signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
A/DEBUG: Abort message: 'terminating'
A/DEBUG:     rax 0000000000000000  rbx 00000000000043e8  rcx 00007320b71365cf  rdx 0000000000000006
A/DEBUG:     r8  0000000000000000  r9  0000000000000000  r10 0000731da2353360  r11 0000000000000203
A/DEBUG:     r12 0000731da2353550  r13 0000003000000008  r14 0000731da2353358  r15 0000000000004e88
A/DEBUG:     rdi 00000000000043e8  rsi 0000000000004e88
A/DEBUG:     rbp 00000000000009b0  rsp 0000731da2353350  rip 00007320b71365cf
A/DEBUG: backtrace:
A/DEBUG:       #00 pc 000000000005e5cf  /apex/com.android.runtime/lib64/bionic/libc.so (abort+191) (BuildId: 5db8d317d3741b337ef046540bbdd0f7)
A/DEBUG:       #01 pc 00000000000a508b  /data/app/~~6nvITrx6DlFc8Hl7mqpciA==/com.jose.webextest-0IIHjCCB9MKwOqSlXq7LIg==/base.apk!libc++_shared.so (BuildId: eea9bba2241fbd330c93a1617b4d7bfb607e3000)
A/DEBUG:       #02 pc 00000000000a5189  /data/app/~~6nvITrx6DlFc8Hl7mqpciA==/com.jose.webextest-0IIHjCCB9MKwOqSlXq7LIg==/base.apk!libc++_shared.so (BuildId: eea9bba2241fbd330c93a1617b4d7bfb607e3000)
A/DEBUG:       #03 pc 00000000000bafa2  /data/app/~~6nvITrx6DlFc8Hl7mqpciA==/com.jose.webextest-0IIHjCCB9MKwOqSlXq7LIg==/base.apk!libc++_shared.so (BuildId: eea9bba2241fbd330c93a1617b4d7bfb607e3000)
A/DEBUG:       #04 pc 00000000000baf47  /data/app/~~6nvITrx6DlFc8Hl7mqpciA==/com.jose.webextest-0IIHjCCB9MKwOqSlXq7LIg==/base.apk!libc++_shared.so (std::terminate()+55) (BuildId: eea9bba2241fbd330c93a1617b4d7bfb607e3000)
A/DEBUG:       #05 pc 00000000000a442d  /data/app/~~6nvITrx6DlFc8Hl7mqpciA==/com.jose.webextest-0IIHjCCB9MKwOqSlXq7LIg==/base.apk!libc++_shared.so (std::__ndk1::thread::~thread()+13) (BuildId: eea9bba2241fbd330c93a1617b4d7bfb607e3000)
A/DEBUG:       #06 pc 0000000004ee57cb  /data/app/~~6nvITrx6DlFc8Hl7mqpciA==/com.jose.webextest-0IIHjCCB9MKwOqSlXq7LIg==/base.apk!libomnius-service-jni.so (BuildId: ebac04a1fbeff333e4b99cd7c06a7462394e2b04)
A/DEBUG:       #07 pc 0000000004ee5978  /data/app/~~6nvITrx6DlFc8Hl7mqpciA==/com.jose.webextest-0IIHjCCB9MKwOqSlXq7LIg==/base.apk!libomnius-service-jni.so (BuildId: ebac04a1fbeff333e4b99cd7c06a7462394e2b04)
A/DEBUG:       #08 pc 00000000021e6670  /data/app/~~6nvITrx6DlFc8Hl7mqpciA==/com.jose.webextest-0IIHjCCB9MKwOqSlXq7LIg==/base.apk!libomnius-service-jni.so (BuildId: ebac04a1fbeff333e4b99cd7c06a7462394e2b04)
A/DEBUG:       #09 pc 00000000021dc612  /data/app/~~6nvITrx6DlFc8Hl7mqpciA==/com.jose.webextest-0IIHjCCB9MKwOqSlXq7LIg==/base.apk!libomnius-service-jni.so (BuildId: ebac04a1fbeff333e4b99cd7c06a7462394e2b04)
A/DEBUG:       #10 pc 00000000021e4db4  /data/app/~~6nvITrx6DlFc8Hl7mqpciA==/com.jose.webextest-0IIHjCCB9MKwOqSlXq7LIg==/base.apk!libomnius-service-jni.so (BuildId: ebac04a1fbeff333e4b99cd7c06a7462394e2b04)
A/DEBUG:       #11 pc 0000000004ee4175  /data/app/~~6nvITrx6DlFc8Hl7mqpciA==/com.jose.webextest-0IIHjCCB9MKwOqSlXq7LIg==/base.apk!libomnius-service-jni.so (BuildId: ebac04a1fbeff333e4b99cd7c06a7462394e2b04)
A/DEBUG:       #12 pc 0000000004eea357  /data/app/~~6nvITrx6DlFc8Hl7mqpciA==/com.jose.webextest-0IIHjCCB9MKwOqSlXq7LIg==/base.apk!libomnius-service-jni.so (BuildId: ebac04a1fbeff333e4b99cd7c06a7462394e2b04)
A/DEBUG:       #13 pc 00000000000c758a  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+58) (BuildId: 5db8d317d3741b337ef046540bbdd0f7)
A/DEBUG:       #14 pc 000000000005fd87  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+55) (BuildId: 5db8d317d3741b337ef046540bbdd0f7)

Any idea what might be going on? Thanks

Application crash on sdk version 3.9.1

Hello!)

We updated the SDK to version 3.9.1 on Android, but after the update, our app started crashing.
Tell me please:

  1. Are you aware of this problem?
  2. When to expect a fix?
  3. Is there any workaround to solve the problem?

I've added an example below:

Crashlytics - Stack trace

Application: ua.alfabank.mobile.android

Platform: android

Version: 3.13.0 (527)

Issue: 224d853e55a9b4b2676ff87bf5c1f879

Session: 64B939AB011400012ACDDBF69B91D2F2_DNE_0_v2

Date: Thu Jul 20 2023 16:48:14 GMT+0300 (Eastern European Summer Time)

Fatal Exception: java.lang.IllegalStateException: The viewmodel IOmniusServiceBridge is destroyed
at com.ciscowebex.androidsdk.internal.IOmniusServiceBridge.addLibsLoadingTime(IOmniusServiceBridge.java:764)
at com.ciscowebex.androidsdk.OmniusWrapper.addLibsLoadTimeMetrics(OmniusWrapper.kt:557)
at com.ciscowebex.androidsdk.Webex.(Webex.kt:86)
at ua.alfabank.mobile.android.zendeskchat.domain.WebexCallProcessor2.createWebex(WebexCallProcessor2.kt:66)
at ua.alfabank.mobile.android.zendeskchat.domain.WebexCallProcessor2.call(WebexCallProcessor2.kt:86)
at ua.alfabank.mobile.android.zendeskchat.presentation.viewmodel.VideoChatCallViewModel.initWebexAndCall(VideoChatCallViewModel.kt:94)
at ua.alfabank.mobile.android.zendeskchat.presentation.viewmodel.VideoChatCallViewModel.init$lambda-0(VideoChatCallViewModel.kt:86)
at ua.alfabank.mobile.android.zendeskchat.presentation.viewmodel.VideoChatCallViewModel.lambda$xN42U0ULKHzU_wg4atdj1v1WN0E(VideoChatCallViewModel.kt)
at ua.alfabank.mobile.android.zendeskchat.presentation.viewmodel.-$$Lambda$VideoChatCallViewModel$xN42U0ULKHzU_wg4atdj1v1WN0E.run(lambda:8)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7945)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:603)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

Thanks in advance.

Screen Shared not stretching video content properly

Hi,

I'm testing the WebEx Android SDK, and tried to share content in a conference meeting, but saw that the sharing content video is not using the right aspect ratio & stretch the content properly, so I would like to know if I'm missing something when I set up the component.

Share

Thanks

No outgoing video from SDK

This was working in 3.2.1. It broke in 3.3.0. It is fixed in 3.3.0.1-SNAPSHOT. I'm reporting here just as an FYI. Hopefully the fix remains in the final version of 3.3.0.1 or 3.3.1.

  1. Using SDK app, call a desktop user.
  2. On SDK side, make sure outgoing video is enabled. Confirm this by seeing outgoing video preview.
  3. On desktop, SDK app video is not visible, only the user's avatar displays.

In the Android log, you see this over and over again:

W/VideoEncoder: flush exception: java.lang.IllegalStateException

I tried to recreate this in the KitchenSink app and was unable to do so. Video flows fine in both directions. I diffed the KitchenSink between 3.2.1 and 3.3.0. I don't see anything relevant to try in my app.

Crash app related Webex SDK - com.webex.wme.WifiStatus.CheckReachableVia

Hi Webex Team
I got a crash while using SDK, this is first time I saw this crash.

I'm using com.ciscowebex:androidsdk:2.7.0.6-SNAPSHOT@aar
Compile SDK: 30
Target SDK: 30

Fatal Exception: java.lang.SecurityException: getDataNetworkTypeForSubscriber at android.os.Parcel.createExceptionOrNull(Parcel.java:2373) at android.os.Parcel.createException(Parcel.java:2357) at android.os.Parcel.readException(Parcel.java:2340) at android.os.Parcel.readException(Parcel.java:2282) at com.android.internal.telephony.ITelephony$Stub$Proxy.getNetworkTypeForSubscriber(ITelephony.java:8881) at android.telephony.TelephonyManager.getNetworkType(TelephonyManager.java:3063) at android.telephony.TelephonyManager.getNetworkType(TelephonyManager.java:3027) at com.webex.wme.WifiStatus.CheckReachableVia(WifiStatus.java:54)

Video fails to stream on latest release

Moving from the SDK version 2.3.0 to 2.4.0 fails video streaming capabilities. The Video is a blank screen although audio can be heard.
No changes within the app have been made and rolling back to 2.3.0 works seamlessly.

Using
classpath 'com.android.tools.build:gradle:3.6.2'
classpath 'com.google.gms:google-services:4.3.3'

SpaceClient.getMeetingInfo() is not returning

Noticed this issue beginning with SDK 3.2. It is not consistent user to user, but for a given user the behavior is consistent.

When you call SpaceClient.getMeetingInfo(spaceId, handler), you provide a CompletionHandler to be called back when the results are available. But in some cases the CompletionHandler is never called back.

I have a space with two users in it. When I log in as one of those users, the space info loads successfully and the CompletionHandler is called back.

D/WebexApplication: attempting to get meeting info for space c5fe25c0-62ed-11ea-8891-ef9e6eaf861e D/WBX_TEAMS-ucf: tid[0x7c37f13548] ConversationService.cpp::2350 getRoomMeetingInformation:Attempting to fetch meeting info from server side for conversation c5fe25c0-62ed-11ea-8891-ef9e6eaf861e D/WBX_TEAMS-ucf: tid[0x7c37f13548] TelephonyAdapter.cpp::1258 logPrivateData:LOCUS_DTO: RestRequest: {"lookupType":"CONVERSATION_URL","sequence":{"entries":[],"rangeEnd":0,"rangeStart":0},"value":"https://conv-a.wbx2.com/conversation/api/v1/conversations/c5fe25c0-62ed-11ea-8891-ef9e6eaf861e"} for notificationId = , pid = 8072 D/WBX_TEAMS-ucf: tid[0x7b8c7384f0] TelephonyAdapter.cpp::1258 logPrivateData:LOCUS_DTO: RestResponse: {"conversationUrl":"https://conv-a.wbx2.com/conversation/api/v1/conversations/c5fe25c0-62ed-11ea-8891-ef9e6eaf861e","displayMeetingUrl":"private","isCallInEnabled":false,"isSparkPstnEnabled":false,"locusCallUrl":"private","locusUrl":"https://locus-a.wbx2.com/locus/api/v1/loci/da6438f2-3363-31ef-864e-2cbde89f1b67","maxParticipants":100,"meetingLink":"private","meetingNumber":"__removed__","numericCode":"__removed__","sipMeetingUri":"private","uri":"private"} for notificationId = , pid = 8072 D/WebexApplication: meeting info loaded successfully for space c5fe25c0-62ed-11ea-8891-ef9e6eaf861e

Then I log out and log back in with the other user in the space, the CompletionHandler is never called back and the log is different.

D/WebexApplication: attempting to get meeting info for space c5fe25c0-62ed-11ea-8891-ef9e6eaf861e D/WBX_TEAMS-ch: [FUNCTION_CALL] ZygoteInit.java::858 main:IOmniusServiceBridge.getMeetingInfo() D/WBX_TEAMS-ucf: tid[0x7b8c9344f0] HttpRequestManager.cpp::2600 _removeOutstandingRequest:requestId: 251a590e-87f4-427d-9006-7550b368e423, Outstanding HTTP requests: 0 D/WBX_TEAMS-ucf: tid[0x7c37f13548] ConversationService.cpp::2350 getRoomMeetingInformation:Attempting to fetch meeting info from server side for conversation c5fe25c0-62ed-11ea-8891-ef9e6eaf861e D/WBX_TEAMS-ucf: tid[0x7c37f13548] TelephonyService.cpp::12731 getSpaceMeetingInfo:will get space meeting from webex appapi D/WBX_TEAMS-ucf: tid[0x7c37f13548] WebexMeetingInfoManager.cpp::36 getSpaceMeetingInfo:use wbxappapi for conversation meetingInfo W/WBX_TEAMS-ucf: tid[0x7c37f13548] WebexMeetingInfoManager.cpp::145 getMeetingInfoFromWebexMeetingService:WebexMeetingService not loaded D/WBX_TEAMS-ch: [FUNCTION_RETURN] ZygoteInit.java::858 main:<-- 5ms IOmniusServiceBridge.getMeetingInfo(): void

Notice, it says "WebexMeetingService not loaded". Not sure if this part of the problem.

For the user that doesn't work, it consistently doesn't work. For the user where it works, it consistently works. Force stopping the app or uninstalling/reinstalling does not change the behavior.

I call getMeetingInfo() from a background thread. I tried changing to calling on the main UI thread, there is no difference. The CompletionHandler is never called back in either case.

com.ciscowebex:androidsdk:2.5.0 - Video calling blank screen remote view

2.5.0 version of the SDK does not display remote video in the remote view media view renderer layout when calling from the integration widget. To duplicate this issue, supply an access token and use a personId or email here https://code.s4d.io/widget-demo/production/index.html and call a very basic implementation of the SDK and remote view shows a black screen.

Whereas when downgrading to 2.2.0 it shows the remote video in the Android test app as expected.

We are looking to use the new messaging features in 2.5.0 and are running into the video issue.

Audio Output through the wrong speaker when video is enabled

The audio does come to the phones top speaker and therefore its very silent. I would expect it to be played through the loudspeaker when calling with video enabled, so that you hear the person you are calling. Maybe there is a way to set the default audio output for the call?

Also when setting the output via switchAudioOutput to the speaker when a headset is connected, it switches back to the top speaker when the headset is disconnected during the call. I would expect the output to go back to the speaker it was set before.

Fatal Exception: java.lang.SecurityException

Hello Team,

We are using com.ciscowebex:androidsdk:2.8.0.5-SNAPSHOT@aar lib version in our project.

We are getting crash in library on file AudioDeviceConnectionManager.java line 228.

Fatal Exception: java.lang.SecurityException Need android.permission.BLUETOOTH_CONNECT permission for AttributionSource { uid = 10457, packageName = com.aster.virtualcare.patient, attributionTag = null, token = android.os.BinderProxy@4c550cd, next = null }: A2dpService

Can you help us on same?

Thank you in advance.
Dhrupal

Upgrading latest 3.7.0 with existing 2.8.0.5-SNAPSHOT@aar

Hello Team,

I have upgraded CISCO lib from 2.8.0.5-SNAPSHOT@aar to 3.7.0.

My application is crashing when i am trying to initialise webex:
JWTAuthenticator authenticator = new JWTAuthenticator(); Webex webex = new Webex(currentApplication, authenticator); webex.initialize(new CompletionHandler<Void>() { @Override public void onComplete(Result<Void> result) { } });

Error getting:
image

Following is set up information:

  1. distributionUrl=https://services.gradle.org/distributions/gradle-6.9-all.zip
  2. buildToolsVersion = "31.0.0"
    minSdkVersion = 24
    compileSdkVersion = 31
    targetSdkVersion = 31

Webex.phone().register() is still broken

As previously reported:

#20
#26

This issue is not fixed in 2.6.0.

2020-09-28 11:37:14.899 3576-3613 E/ServiceReqeust:187: OkHttp https://wdm-a.wbx2.com/... HTTP Error: WebexError[errorCode=-7001, message=405/Method Not Allowed/{"message":"Request method 'POST' not supported","errors":[{"description":"Request method 'POST' not supported"}]}, ]
2020-09-28 11:37:14.904 3576-3576 I/PhoneImpl:156: main Register failed, WebexError[errorCode=-7001, message=405/Method Not Allowed/{"message":"Request method 'POST' not supported","errors":[{"description":"Request method 'POST' not supported"}], ]

However, it's worse than it was before because now you can't simply log out and log back in to fix this. Now you have to clear app data or uninstall. Otherwise you can never make calls due to the following error in the log:

2020-09-28 11:40:07.470 3576-3608 E/PhoneImpl:413: Background-Serial-(removed) No call context: null

How to set more than two layouts?

How to set up more than two video call layouts? Because from the documentation I got, it didn't work well, when another user entered the room, the layout didn't add up at all, even though I followed the documentation.

Support for Android < 27

Hi,

Although the readme states support for API >= 21, it appears to be restricted to 27.

When I add the Webex Android SDK to a project (as per the readme instructions) and target an Android sdk of version 23, I receive the following error:
Invoke-customs are only supported starting with Android O (--min-api 26)

This error occurs just with the addition of the Webex Android SDK dependency, without any other code.

For the project I am trying to add webex support to, I have a restriction on Android 23.

Can you help?

Thanks,

Terence Mackie

Messages list API crash

Hello,

I'm using the android Webex SDK, and since the last update when I'm making the messages list API call the app SDK crashes.

client .messages().list(this.roomId, null, 50, null, result -> {}

the error I get is

com.cisco.spark.android.authenticator.NotAuthenticatedException

But I'm already authorized and also able the make a video call to Webex's room

Thanks
Yaniv

MediaOption.setPin() doesn't appear to work

When attempting to dial a Webex meeting that requires a password, SDK 2.6.0 reports back error code HOST_PIN_OR_MEETING_PASSWORD_REQUIRED. Prompting the user for a host key or meeting password and setting it via MediaOption.setPin() does not appear to do anything because the SDK just keeps sending back the same error code and you cannot join the meeting. This issue is also seen in the Kitchen Sink app.

Steps to reproduce:

  1. Schedule a Webex meeting on the website, making sure you require a password, and start it.
  2. In the Kitchen Sink app, login and click the INITIATE CALL button.
  3. Switch to the screen that let's you enter an "Address for dial".
  4. Enter the meeting ID followed by "@webex.com".
  5. Click the red button with the green phone icon.
  6. When prompted, enter either host key or meeting password (full password or numeric password for video systems).
  7. Click CONFIRM.
  8. Noticed you are prompted for host key or meeting password again and you can't get past this screen.

crash when leaving meeting

Starting happening after upgrading to SDK 3.0. When you leave a meeting, sometimes there will be a JNI crash. It seems to depend on the interaction the user has with the app. In particular, the following steps seem to trigger the crash.

  1. Join a meeting
  2. Stop video
  3. Start video
  4. Do something that causes Call.setVideoRenderViews(videoRenderViews) to be called
  5. Leave meeting or have the remote side hang up
  6. Crash

The kitchen sink app doesn't have a way to do step 4, so I have not been able to recreate the crash in that app.

In our app, we have a way that you can swap the incoming and outgoing videos so they change places, this is what calls setVideoRenderViews(). We can also navigate to another screen that has separate VideoRenderViews and this also causes the crash when you leave. This would seem to indicate some kind of leak related to VideoRenderViews and having multiple of them in your app that get switched between. These views are not getting cleaned up properly when the meetings ends.

I've attached the crash log.

webex_leave_meeting_crash.txt

SDK crashes app when choosing View License on Activate License dialog

Using SDK 2.6.0.

The dialog that pops up asking you to activate a license, if you choose View License, the app crashes with the following stack trace:

android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
at android.app.ContextImpl.startActivity(ContextImpl.java:912)
at android.app.ContextImpl.startActivity(ContextImpl.java:888)
at android.content.ContextWrapper.startActivity(ContextWrapper.java:379)
at com.ciscowebex.androidsdk.phone.internal.PhoneImpl.lambda$dial$15$PhoneImpl(PhoneImpl.java:336)

unable to import

Hi Team,
unable to import this project into android studio, saying no module found
image_2020_09_29T12_19_51_489Z
I appreciate quick response
Thank you

login Authorized

{"error_description":"The server encountered an unexpected condition which prevented it from fulfilling the request","error":"Internal Server Error"}

405 Method not allowed on register device

Updated to recent version of the Webex SDK
Gradle dependency is as follows

implementation('com.ciscowebex:androidsdk:2.5.0@aar', {
    transitive = true
})

Happens when a oauth authenticator uses saved credentials

HTTP Error: WebexError[errorCode=-7001, message=405/Method Not Allowed/{"message":"Request method 'POST' not supported","errors":[{"description":"Request method 'POST' not supported"}],"trackingId":"CLIENT_772d762b-4007-406d-94c9-97a89b58f72c_1"}, ]
2020-07-04 13:53:18.036 27738-27738/com.refero.refero.staging E/WEBEX: FAILED TO REGISTER PHONE

We do believe it to be this section of the SDK that could be causing the issue

com.ciscowebex.androidsdk.phone.internal.RegisterOperation line 71
using POST instead of PUT specifically for updating existing devices

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.