I am currently seeking for a REST API for Skype for Business/Lync that will allow out team access information on various calls for our company made throughout the day(since they talk to customers), such as call duration, from, to, etc. that we can display in a repeater in our web page.
We would like to store this information if possible. I have found that perhaps Unified Communications Web API(UCWA) might be the best route to take, but have found nothing relating to a call history/log.
Would this be the correct first step in trying to achieve my goal using a REST API to access our company's Skype for Business/Lync call information?
Thank you.
There is currently no way to get this information through the UCWA API. (or any other Skype API atm)
One option is to use the Call detail recording (CDR) database instead.
The other option is to use the Skype for Business SDN SDK but it wouldbe way more involved. I would assume the CDR would be easier for you to use as it's just database access.
Related
I am using C# (.NET Core) with Bot Framework v4 to develop a bot service. I am a beginner to Bot Framework.
The problem statement goes as follows :
I want to be able to Store some questions on o365 SharePoint
subscription in a list. The data structure of the list will have a
column containing users who are the intended audience for the
question.
When a question is added to the list, I want my bot to send out the
questions to intended users on Microsoft Teams.
Even if the user is not online to teams, I would want to send out a
notification to the user on Teams chat, something like "Missed
conversation".
Now, I understand, on a very beginner level, that the key here is Proactive messaging using the Bot. What I can't figure out or find on any forum articles is that how do I write my bot to go to SharePoint (could be using polling or event driven) and fetch information and then send out the fetched data to Users on personal 1-to-1 team chat?
What I have done so far is :
I have written my SharePoint business logic to fetch information.
The bot calls this business logic when it receives an activity from
User. i.e. say, a user says "Hi" and the bot goes and fetches
information from SharePoint and returns it to the user in the chat
window.
Any help would be greatly appreciated.
Cheers,
Yogesh
My guess is that you should be able to accomplish the goals, but make sure to break this up into smaller problems when looking for assistance. You might need some other layers between the two to accomplish as well.
As you have found, proactive messages will be what you want to use from the bot side to message users without them engaging the bot first. You won't find any success (especially in Teams) if the users have never interacted with the bot before as there will need to be some sort of way for the bot to be able to know how to contact them (former conversation, etc). Please find more information here and here.
What I can't figure out or find on any forum articles is that how do I
write my bot to go to SharePoint (could be using polling or event
driven) and fetch information and then send out the fetched data to
Users on personal 1-to-1 team chat?
I have written my SharePoint business logic to fetch information. The
bot calls this business logic when it receives an activity from User.
i.e. say, a user says "Hi" and the bot goes and fetches information
from SharePoint and returns it to the user in the chat window.
So; it seems like the part you are missing is an intermediate layer that does polling or such. The proactive sample, is just using turn events to then 'proactively' message the user back. You might have to get creative. Have some sort of other service/timerjob/serverless function that might be able to assist.
This is an article for v3, but the general idea about proactive messages is good and helps understand how to best approach proactive message paradigm and ensure a good user experience:
https://learn.microsoft.com/en-us/azure/bot-service/dotnet/bot-builder-dotnet-proactive-messages?view=azure-bot-service-3.0#send-a-dialog-based-proactive-message
I was able to achieve the above mentioned tasks. For starters I was thinking too much and the solution was simple.
I wrote an infinite loop with asynchronous call to SharePoint at regular intervals using simple Task.Delay(milliseconds) and push the questions proactively when found.
As for 1-to-1 messaging, I am using Teams extension for Bot Framework to store individual channel information and send messages on private chat to users as and when there is something to send based on polling functionality above.
Hope that clears the air for someone, who might be looking to achieve anything similar.
Cheers,
Y
So I'm trying to find a "Best" way to interact(create a interface) with Active Directory read/write mode. So I'm deciding between this two aproaches:
Try and use the ADWS.
C# Implementation.
Apparently for ADWS is not that easy even though there is a full WSDL I'v not been able to locate it, to try to do some test via SOAPui...
Now fort the C# Implementation there are few implementations
but still I'm not sure if its 100% doable to have full READ/WRITE to AD i.e. creating accounts users, query for users info, etc. from lets say REST WS.
So My questions are
Is there a way of getting a WSDL from the AD server so that I can use that as a starting point? ( I don't want to get me into PowerShell stuff or the like)
Are there any good articles for the latest versions C# ,libs, etc... to help me implement this?
Is there a better way of doing this?
As an example This is what we're trying to do:
Scenario 1:
Create a Web Service (INTERFACE) that expose AD information
The Web Service could be REST or SOAP
The WS should read/Query/Write the AD
Any Application inside the network can consume the WS
Scenario 2 (What we currently plan to do):
Sharepoint Reads AD Information
Job should copy AD to DB
Applications can read this data
There should exist some replication between the DB and AD
Any suggestions will be more than welcome
I'm Using server 2008R2 ,Sharepoint foundations 2010
I'm assuming this is related to your previous question which mentioned Exchange.
My personal suggestion is to host a WCF service in IIS. You can set this service up to do whatever you want to suite your needs for the apps accessing it. You can probably do most of what you need to do through the System.DirectoryServices.AccountManagement namespace when it comes to User and Groups.
System.DirectoryServices will give you more granular control at the cost of more work. However, it is a little easier and reading and writing from/to custom attributes here.
If you're going to interact with Exchange 2010 you'll need to mess with Powershell. And you could use Powershell to do core AD work as well.
And of course if you're going to write your own web service you could make it REST.
Here is a link to MSDN with info about System.DirectoryServices and the various namespaces. I personally find AD to be a lot of fun to work with. There are many ways to do the same thing in it so I don't think there's one right answer for you. Go with what you're comfortable with or challenge yourself to do something new!
I am building a web site in ASP.net and C# that one of its components involves log-in to a website that the user has an account (for example cellular phone company) on behalf of the user, take information from this site and store it in our database.
I think this action called "scraping".
Are there any products that already does so that I can use to integrate with my software ?
I don't need a software that does it, I need some sort of SDK that I can integrate with my C# code.
Thanks,
Koby
Use the HtmlAgilityPack to parse the HTML that you get from a web request once you've logged in.
See here for logging in: Login to website, via C#
I haven't found any product, that would do it right so far.
One way to handle this is to
- do requests by your self
- use http://htmlagilitypack.codeplex.com/ to extract important information from downloaded html
- save extracted information by your self
Thing is, that depending on context, there are so many things to tune/configure, that you need very large product and still it won't reach custom solution performance/accuracy:
a) multithreading control
b) extraction rules
c) persistance control
d) web spidering (or how next link to parse is chosen)
Check the Web Scraping Wikipedia Entry.
However I would say since what we need to acquire via web-scraping is application specific, most of the time, it may be more efficient to scrape whatever you need from a web response stream.
we have BO Infoview runnig on our servrer. I would like to establish connection to it from a local windows app in C#. Do we have any API's for BO infoview??
Please help....
I don't know of any direct API to the Infoview product. The API does provide full access to recreate the Infoview interface if you so choose.
If you really want Infoview wrapped in a full client, then I would recommend just providing an IE control that is hardwired to your Infoview site.
If you chose to recreate the interface, I recommend wrapping the API in simpler to use objects, since there is a large amount of overhead to getting authenticated and handling opening a document.
You can use the openDocument URL commands: http://devlibrary.businessobjects.com/businessobjectsxir2/en/en/BOE_SDK/boesdk_java_dg_doc/doc/boesdk_java_dg/Report_Linking.html
Thanks,
Matt
First time poster. Back to programming after being away for a few years, trying to clean off the rust. I'm creating a dashboard that will run initially on my laptop (Macbook Pro, 10.4.x O/S). Amongst other things I want it to retrieve latest information from my online accounts. I'm starting with html, but will probably migrate to something else (TBD, possibly ruby or c#). What would sample code look like for logging into account, going through specific account workflow, retrieve data/docs/other, and pull it back to be stored locally.
It is a little open-ended, apologies and thanks in advance.
Are you looking for something like Google Gears?
It depends on the kind of accounts you want to log onto.
For instance there is a Google has an specific API for that Google Accounts API, other services provide similar API's some other do not.
So it depends pretty much what are your "online accounts" all about and if they do provide a public API or not.
EDIT
As per your comment and for the products you've mentioned, I'll suggest your to start looking at browsers plugin development and to start understanding the HTTP protocol and all the related technologies around it ( HTTPS, encryption, authentication etc. )
The public API let you easily login into an account, but you don't really need one to do it ( although it make life much more simpler ) If you do not have a public API, you can still login into any account by "simply" doing what the browser does. Sending an HTTP(s) request with the appropriate security mechanism and following the protocol.
If you know how does the browser send the request and you have the user trusting your their passwords, the only remaining thing you have to do is ... :) code it.
As of now the question is too broad to be answered. Pick one service at a time and ask specific questions about it.
I would suggest you to start with the previously mentioned "Google Accounts" API and learn from there.
One open source product that already manages google account authentication is "Ubiquity" you can take a peak at their source code and start understanding how do they fetch the user contact list.