How to develop skype calling functionality using Azure Bot Service - bots

I am working on Bot technology, I had developed one simple skype bot with skype calling feature using calling controller template through this below link.
https://docs.botframework.com/en-us/csharp/builder/sdkreference/calling.html
Before posted question here I read the below documentation about azure bot service.
https://docs.botframework.com/en-us/azure-bot-service/#navtitle
In the above link, all samples are related to only Messages but I want the Skype calling functionality using azure bot service.
Can you please tell me how to develop on simple bot with skype calling functionality using azure bot service concept?
-Pradeep

Here is the documentation for voice calling using the Azure Bot Framework. It states:
If you are building a bot for Skype, your bot can communicate with
users via audio call. Audio calls are useful when the user does not
want to or cannot provide input by typing, tapping, or clicking. A bot
may support other user controls such as rich cards or text in addition
to audio calls, or communicate through audio calls only.
This involves instantiating a CallingController which then registers an event for ProcessIncomingCallAsync. Once you have answered the call using this method you can do things like play an audio file over the call, record what the caller says, or capture dialpad number entry.

Related

Talk to an Azure Cognitive services bot with a phone

I created an Azure bot with cognitive services, and enabled the direct speech client and skype channels.
I can talk to the bot using the Direct Speech Client application, but I would like to talk to it from my phone, via Skype. I mean place a call to it not text.
I know MS is deprecating the Skype and all its associated components but they are still available.
When I place a call to the bot i hear a MS Azure message saying "You cannot talk to this bot yet but we are working on it" Is there a way I can get it to work ?
I cannot find the documentation on Github either.
As said in the error message, they are working on it, so currently it is not available

Does Cortana azure bot channel needs speech to text services?

I am developing an Azure bot, and I am intending to link it to Cortana channel. But not sure if that need the speech to text to be part of the services needed to create that bot. or Cortana client handles the communication between cortana and the bot with the text?
Responding via speech is completely under your control. The entire Cortana experience can be driven via text entry on Windows 10 and mobile app. However, your skill may not pass certification if published because of screen-less devices like the Invoke and best practice of responding with voice is triggered by voice. You can pull DeviceInfo and fail gracefully if there is no display.

Whatsapp as a channel with Microsoft Bot Framework using Clickatell

Working with a customer who wants to use Microsoft Bot Framework and "Whatsapp" as a channel. Though Whatsapp has released its public business API, it is still in limited public preview and Microsoft Bot Framework understandably doesn't yet support it. As an alternate, we are planning to use "Clickatell" for whatsapp integration, where Bot Framework would call the Clickatell APIs and enable integration with Whatsapp. Has anyone worked on this scenario and can throw some light on any challenges? such as how this custom channel would work and how security etc would be handled in the non-standard channel (Whatsapp)
Thanks
If I understand this correctly – Microsoft/Azure Bot will allow the business to implement AI based bots specific to their business to interact with users on various channels, WhatsApp being one. This can be done today, and will have no bearing on any roadmap items. This is how Clickatell Touch integrates today.
If there is an expectation to enable a bot within the WhatsApp application to make the interactions “rich” (like in FB messenger), then that will be a discussion with WhatsApp directly.

How to Auth from an external service to the bot framework?

I have an external service with is own database where the users can log in.
Now I have a bot in NodeJS using Bot Builder and the Bot Framework.
I want to link them.
Is there anyway that the bot recognize the users from the other service everytime they open a new conversation and everytime they write something in the bot?
I've just tried with web chat before and I know that with channels that they support like Facebook, Telegram, Skype etc is easy to recognize the users every time they come back, but I don't know how if it is possible to do this with an external service where the users are already logged in and they want to talk with the chatbot.
I don't know how could I generate an authtoken or something that the bot framework read it and recognize the user.
You can use the DirectLine API to allow your bot and a custom client to communicate to each other, a sample can be found here, and here if you want to use WebSockets.
You can also add authentication to your bot via Azure Bot Service to use OAuth as stated here, where you will find samples too.

How to get conversation details in microsoft bot framework for skype?

I'm able to get conversation details for webchat using https://webchat.botframework.com/api/conversations/[conversationId]/messages
Service URL for skype channel is https://skype.botframework.com, but I dont find any documentation for getting conversation details
You can use the DirectLine Rest API (see docs).
The Direct Line API is a simple REST API for connecting directly to a single bot. This API is intended for developers writing their own client applications, web chat controls, mobile apps, or service-to-service applications that will talk to their bot.
Within the Direct Line API, you will find:
An authentication mechanism using standard secret/token patterns
The ability to send messages from your client to your bot via an HTTP POST message
The ability to receive messages by polling HTTP GET
A stable schema, even if your bot changes its protocol version
You need to enable the DirectLine channel for your bot on (see screenshot)
You don't have to access each specific channel endpoint separately, you can do it all (with some limitations) through the DirectLine API.
Start a New Conversation
POST /api/conversations
Get Messages in a Conversation
GET /api/conversations/{conversationId}/messages
Send a Message
POST /api/conversations/{conversationId}/messages
The full details are in the docs as linked above.
Hope this helps
Can you be more specific about conversation details and what you're looking for?
Generally, you shouldn't assume those URL's are static BTW; an incoming message from the Bot Framework will have a ServiceURL that should be used for the life of that conversation. Some services may have multiple ServiceUrl's that they give out for different users.

Resources