• KevinG514
  • NEWBIE
  • 85 Points
  • Member since 2010

  • Chatter
    Feed
  • 3
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 11
    Questions
  • 25
    Replies

I'm getting this error message when I try to create a Stream Topic with a simple query:

 

SELECT CaseNumber, Owner, CreatedBy,Status, EngineeringReqNumber__c from Cases

 

Error Creating Push Topic:
sObject type 'Cases' is not supported. If you are attempting to use a custom object, be sure to append the '__c' after the entity name. Please reference your WSDL or the describe call for the appropriate names.

 

How do I know which obect supports streaming?  Is there a way to set the object to Streamable?  I can stream the Account object fine.  What's the difference between Account and Cases?



  • May 02, 2012
  • Like
  • 0

I just completed an integration using the OpenCTI.  Things work fine on my dev machine, fine on another developers machine, and fine on a test machine i had setup about a month ago.  The strange thing is that i just setup a new test machine so i could finish dev testing and now it is appearing that the remote calls through the api are not working.  So the first thing my integration does is check if it is in the console and then check the call center settings.  When i step into interaction.js for one of those, it appears that the post message to the host salesforce page is working as expected.  I don't know what is happening on the other end of the post message because the js is minimized to a huge pain to debug.  The callbacks that i set in my code aren't being called.  Also, when testing with the screenpop method, the screenpop never happens either, so it seems that the listener for the post messages isn't getting them.

 

To take out the possibility that my code is causing a problem, i went back to a test page i wrote which makes simple calls like in the examples of the api.  I have the same results.

 

Has anyone else run into this?  I find it strange that it works on my dev machine, but not a production machine.  


I'm not sure when this functionality broke, the last time that I tested and observed that it was working was at Dreamforce. When running our CTI integration (that we wrote) in the service cloud console, we can no longer save custom call log attributes. If we switch to the normal HTML view, things work fine. 

Looking into the code, i see that in OnCallEnd, there is this if statement 

if (pLog->GetIsCtiWidgetMode()) { 
pLog->SetAttribute(KEY_SAVE_CALL_LOG, pLog->GetSaveOnEnd()); 
} else { 
GetAppExchange()->UpsertCallLog(pLog); 


so the KEY_SAVE_CALL_LOG attribute is correctly getting set on the next ui update 

What i assume is supposed to be happening is that KEY_SAVE_CALL_LOG gets set to true and then there is a UI message to the CTI adapter to save what is in memory for the call log 

(From UIHandleMessage) 
} else if (message==KEY_SAVE_CALL_LOG) { 
UISaveCallLog(parameters); 


But that message never is sent. I tried to hack it to force a save on the call end, but then we got double tasks created for the call.

I'm curious on how people using the CTI 4.0 adapter are deploying it when they convert the url from HTTP to HTTPS.  From what i've seen, in order to get it to work with SSL you have to use Httpcfg.exe to bind a cert to the port.  Seems that would be a deployment issue if you had to do that on all machines.  What challanges/workarounds have other people encountered?

Thanks

Has anyone been able to get the 3.0 cti connector to run in citrix xenapp?  Currently we are getting an exception when trying to start the exe.  We are not logged into a browser yet so it isn't at the point where it is trying to load the com dll. 

 

Just wanted to see if anyone had success with it and what their configuration looked like.

Thanks

Is it possible to customize the call log in the CTI to be able to add additonal fields that can be mapped to the activity?  Currently you have the who/what and the notes section, I'd like to be able to add a second either free text area or drop down if possible.

 

Thanks

I ran into this issue this morning.  If i create a topic with the query string like this

 

SELECT Id FROM CASE WHERE RoutedInteractionId__c != null AND RoutingComplete__c = true 

 

I don't get any notifications on it.  When i change the query string to 

 

SELECT Id FROM CASE WHERE RoutedInteractionId__c != null AND RoutingComplete__c = true AND Status != 'New'

 

I do get notifications.  So it appears to be a problem with having only custom fields in the query string.  

Has anyone been able to get the streaming API to work with a .net service?  

 

I've tried the library https://github.com/Oyatel/CometD.NET but am having difficulties with it.  Wanted to see if anyone had better luck.

If i have a user posting a message to another user, the comment looks like "ABC to XYZ: What's up?"

 

When i query the posts through the api, i can find the information for who sent it (ABC) and what they said (What's up?) but i can't find where that message was posted to.  Anyone know what field i'm overlooking that has that data?
Thanks

When using a CTI with a custom apex page the CTI doesn't display while on that page.  Is there a way to have the CTI visible while on my custom page?

Thanks

Looks like there is a bug in CTI 2.0 with the new shortened width.  When there is long text, some of it gets cut off (see below Error message) so that text area wasn't shortened.  Also it looks like the long buttons like Place Call/Disconnect/Hold arn't centered any more. 

on the CTIButton, when i call SetLongStyle(true) it doesn't let me specify a custom button image.  If the color is Green, then my image is the same as the answer button, for a Red button it is the same as the disconnect button and for Beige, the image is the same as the one-step transfer image.  

 

Is there anyway to get it to use the IconURL property on the button, or am i stuck with those images?

Thanks 

I just completed an integration using the OpenCTI.  Things work fine on my dev machine, fine on another developers machine, and fine on a test machine i had setup about a month ago.  The strange thing is that i just setup a new test machine so i could finish dev testing and now it is appearing that the remote calls through the api are not working.  So the first thing my integration does is check if it is in the console and then check the call center settings.  When i step into interaction.js for one of those, it appears that the post message to the host salesforce page is working as expected.  I don't know what is happening on the other end of the post message because the js is minimized to a huge pain to debug.  The callbacks that i set in my code aren't being called.  Also, when testing with the screenpop method, the screenpop never happens either, so it seems that the listener for the post messages isn't getting them.

 

To take out the possibility that my code is causing a problem, i went back to a test page i wrote which makes simple calls like in the examples of the api.  I have the same results.

 

Has anyone else run into this?  I find it strange that it works on my dev machine, but not a production machine.  

I'm getting this error message when I try to create a Stream Topic with a simple query:

 

SELECT CaseNumber, Owner, CreatedBy,Status, EngineeringReqNumber__c from Cases

 

Error Creating Push Topic:
sObject type 'Cases' is not supported. If you are attempting to use a custom object, be sure to append the '__c' after the entity name. Please reference your WSDL or the describe call for the appropriate names.

 

How do I know which obect supports streaming?  Is there a way to set the object to Streamable?  I can stream the Account object fine.  What's the difference between Account and Cases?



  • May 02, 2012
  • Like
  • 0

I'm not sure when this functionality broke, the last time that I tested and observed that it was working was at Dreamforce. When running our CTI integration (that we wrote) in the service cloud console, we can no longer save custom call log attributes. If we switch to the normal HTML view, things work fine. 

Looking into the code, i see that in OnCallEnd, there is this if statement 

if (pLog->GetIsCtiWidgetMode()) { 
pLog->SetAttribute(KEY_SAVE_CALL_LOG, pLog->GetSaveOnEnd()); 
} else { 
GetAppExchange()->UpsertCallLog(pLog); 


so the KEY_SAVE_CALL_LOG attribute is correctly getting set on the next ui update 

What i assume is supposed to be happening is that KEY_SAVE_CALL_LOG gets set to true and then there is a UI message to the CTI adapter to save what is in memory for the call log 

(From UIHandleMessage) 
} else if (message==KEY_SAVE_CALL_LOG) { 
UISaveCallLog(parameters); 


But that message never is sent. I tried to hack it to force a save on the call end, but then we got double tasks created for the call.

We are experiencing the CTI adapter disconnects frequently.  The issue is very inconsistent.  The caller becomes unable to click the Answer button.  The Softphone disappears and the caller must click "Connect to CTI Adapter" button again. 

 

We are also noticing javascript page errors in the bottom left corner.

 

This is happening on the SimpliCTI Adapter version 4 as well as the Demo Adapter version 4.0.

  • April 05, 2012
  • Like
  • 0

Hi,

I am trying to build an app on .NET that uses the Streaming API and sends the notifications down to .NET Client. I am not sure i there is a Bayeux services references that can be used in .NET for this work.

 

Can anyone post any thoughts?

We've developed a CTI Adapter for Salesforce using the CTI Toolkit 4.0.  It appears to work on all platforms either with or without HTTPS, except that I can't get it to work with HTTPS on Windows XP.

Here are some of the situations that I've tried:

  • Windows 7, Internet Explorer 9 - works fine with either HTTP or HTTPS.
  • Windows XP, Internet Explorer 8 - works fine with HTTP but not with HTTPS.
  • Windows XP, Firefox 10.0.2 - works fine with HTTP but not with HTTPS.
  • Windows XP, Google Chrome 17.0.963.56 - works fine with HTTP but not with HTTPS.
  • Windows XP, Safari 5.1.2 - works fine with HTTP but not with HTTPS.


I've been following the instructions given in Chapter 6 (Configuring HTTPS for a CTI Adapter) of the CTI Toolkit Developer's Guide Winter '12, but to no avail.  On Windows XP with HTTPS, I am just presented with a button "Connect CTI Adapter" that appears to have no effect when clicked.  The log files are no help - they just have "BrowserHttpListener.Start: BrowserHttpListener has started listening".

Is anybody else able to confirm that they have a CTI Adapter with CTI Toolkit 4.0 working for HTTPS on Windows XP?  If so, then I must be doing something wrong.  If not, then perhaps it's a Salesforce problem that they need to look into.

Any help would be very much appreciated.

Thanks

I'm trying to build the "JavaClientExample" as described @ http://wiki.developerforce.com/index.php/Getting_Started_with_the_Force.com_Streaming_API

 

I am able to successfully connect to salesforce, but post that I get following error: (Any idea or help will be really appreciated)

Waiting for handshake
2011-10-20 11:29:24.779:INFO:org.cometd.client.BayeuxClient@229902:
java.net.ProtocolException: Unexpected response 401: TransportExchange@21375057=POST//na1.salesforce.com:443/cometd/handshake#7
	at org.cometd.client.BayeuxClient$PublishTransportListener.onProtocolError(BayeuxClient.java:969)
	at org.cometd.client.transport.LongPollingTransport$TransportExchange.onResponseComplete(LongPollingTransport.java:291)
	at org.eclipse.jetty.client.HttpExchange$Listener.onResponseComplete(HttpExchange.java:920)
	at org.eclipse.jetty.client.HttpExchange.setStatus(HttpExchange.java:263)
	at org.eclipse.jetty.client.HttpConnection$Handler.messageComplete(HttpConnection.java:622)
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:862)
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:214)
	at org.eclipse.jetty.client.HttpConnection.handle(HttpConnection.java:269)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:515)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:529)
	at java.lang.Thread.run(Unknown Source)

 

 Sorry if this question has already been asked, but I couldn't find it elsewhere. I written a custom CTI adapter that is to be sold onto customers. The documentation states the following on page 23:

 

salesforce_cti_developer_guide.pdf 

 

If you are creating a CTI adapter directly from a salesforce.com CTI Toolkit, request a client key from Salesforce Support and use it to update the following constant in CTIAppExchange.h:


#define CTI_CLIENT_KEY L"<your_client_key_value_here>"

 I contacted support towards the end of July and they didn't seem to know what I was talking about, but opened a case and said it would be sorted for me. After it being passed between departments, support are now ignoring my emails.

 

My question is basically, does anyone know the correct procedure for requesting the required client key? I've started to get a lot of pressure from my customer, as they've been able to trial it, but not roll it out.

 

Rgds,

 

Martin.

 

I ran into this issue this morning.  If i create a topic with the query string like this

 

SELECT Id FROM CASE WHERE RoutedInteractionId__c != null AND RoutingComplete__c = true 

 

I don't get any notifications on it.  When i change the query string to 

 

SELECT Id FROM CASE WHERE RoutedInteractionId__c != null AND RoutingComplete__c = true AND Status != 'New'

 

I do get notifications.  So it appears to be a problem with having only custom fields in the query string.  

The new Workbench 22.0.0 fully supports the Streaming API and is a great way to explore the new API. With this new utility, in one easy-to-use interface, you can:

  • Create and modify Push Topics (i.e. streamable SOQL queries) without disrupting streaming data
  • Manage multiple subscriptions
  • View subscribed data updates in pretty-printed raw JSON
  • Monitor long polling with adjustable levels
  • Listen to other meta channels
  • Automatically connect and disconnect on page load and unload

See a live demo of using Workbench for the Streaming API in the webinar.

 

See more information about Workbench.