cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
2393
Views
0
Helpful
5
Replies

Jabber SDK (Cisco Web Communicator) is slow to initialize

bdingwall
Level 4
Level 4

We're utilizing Cisco Web Communicator components from within chrome extension for several years
After switching to SDK 11.8.2 it is observed that initialization of SDK takes awhile.
What was found is:
1. initialize() call leads to invocation of Cisco Web Communicator extension
2. Cisco Web Communicator extension uses chrome.management.get() call in order to get extension name
for payload to be passed into Cisco Web Communicator native components
3. chrome.management.get() is async call, but Cisco Web Communicator extension never waits for
its completion and passes empty name as part of payload for Cisco Web Communicator native component
4. Cisco Web Communicator native component does not like that and triggers following entry in its log
===
2019-03-19 14:47:53,848 ERROR [0x00006b44] [src\jsdk\src\ClientManager.cpp(318) ] [webuc] [webuc::ClientManager::run] - Syntax error: parseChannelClientMessage ChannelClientMessage parsing failed. Error: Object with name: name does
n't exist. [{"ciscoChannelMessage":{"ciscoSDKClientMessage":{"name":"init","messageId":"0"},"client":{"id":"150968.101","url":"chrome-extension://cpaaimhcipgeaogdbdieicgfjbingani/","hostname":"cpaaimhcipgeaogdbdieicgfjbingani","type":"
Chrome"}}}]
===
5. Strangely enough if initialization attempt is being retried for at least a period of 90seconds, eventually SDK gets initialized.
6. This delay on initial load is however considered as a big issue by one of our customers
7. The only proper way of addressing this we would assume is to wait for chrome.management.get() completion before
connective it to a native port.
8. For the reference, versions of components being used:
Cisco Web Communicator extension: 3.1.0.363
Cisco Web Communicator: 11.8.2.254458
9. This problem is observed only in case if Cisco Web Communicator is being utilized from chrome extension.

5 Replies 5

kvyas
Level 1
Level 1

I am also facing a similar issue.

I have developed a chrome extension using jabber SDK 11.8.2.

When calling cwic.SystemController.initialize() from the extension, it works only when I open the "Inspect Views" of my extension from the chrome://extensions.

Without "Inspect Views", it doesn't seem to initialize properly.

 

Here are the logs from my chrome extension when I open "Inspect Views". : https://ibb.co/d2xQrrN

Without "Inspect Views" : https://ibb.co/K6QFCfR

 

It should be noted that there is no “send ciscoSDKServerMessage 'userauthorized' to client” log when initialization is not proper.

dstaudt
Cisco Employee
Cisco Employee

I would highly suggest opening a ticket with DevNet Developer Support: https://developer.cisco.com/site/support/

 

Sounds like a specific technical issue inside the Jabber SDK component, that will require engineering escalation, logs, validation with the developer, etc...

We certainly considered this as an option, problem is DevNet support site advises to post a request here - see attached.

As you might see there is no relevant technology available in the list.

Please advise what would be the most relevant pick there.

davidn#
Cisco Employee
Cisco Employee

Hi Bryan,

 

The cause is “name doesn't exist” in client message.

The correct init message should be as follow:


[{"ciscoChannelMessage":{"ciscoSDKClientMessage":{"name":"init","messageId":"0"},"client":{"id":"732462.101",”name”:” Video Call Demo”,"url":"chrome-extension://ibboolpkcgdjjbmdfapaeplihhbmlkbi/","hostname":"ibboolpkcgdjjbmdfapaeplihhbmlkbi","type":"Chrome"}}}

In your log, name:”Video Call Demo” is missing.

Please goto chrome -> more tools->developer tools-> console window, activate the video tab and input “window.document.title” to see the value, it should not empty.


Please use the Cisco sample code and check whether you are experiencing the same issue or not.

 

Regards,

 

David

Hi David,

Your comment is certainly right for the case when tab exist. We do not have a tab however,

we're interacting with SDK from extension background page.

And for this case this code exist in Cisco Web Communicator 3.1.0.363

===

chrome.management.get(f, function(a) {
console.log("Info for port.sender.id:"),
console.log(a),
a.name ? d(a.name) : console.log("Strange: object has no name")
}));

===

So there is an attempt in proxy extension to detect appropriate name/title of caller for our case, however result of

chrome.management.get is not applied to init payload, since it is executed asynchronously.

 

Thanks,