How to transfer a participant from a group call - microsoft-graph-api

I would like to be able to use a Bot to transfer a Teams call participant to another Teams Identify/UserID endpoint.
This seems possible if there is only one party connected to the Bot, by using
ICall.TransferAsync()
https://microsoftgraph.github.io/microsoft-graph-comms-samples/docs/calls/Microsoft.Graph.Communications.Calls.ICall.html#Microsoft_Graph_Communications_Calls_ICall_TransferAsync_Microsoft_Graph_InvitationParticipantInfo_System_Threading_CancellationToken_
However, this does not work if there is more than one party in the call, as that API method does not identify the participant to transfer, only the call.
How can I initiate a transfer of a selected participant in a group call to a target Teams UserID ?
Thanks

Find a workaround. Like create new conversation invite the participant, on success cut him from the conference, or something like that.
You will need a lot of workarounds when working with Teams, until MS improved it further.

Related

How to continue whispering when a participant has been put on hold in Twilio's API?

I have been using Twilio API for managing conferences. I have implemented a whispering feature. For example, in the same conference, there can multiple participants and Participant A will talk directly to another Participant B, while the rest of the conference doesn't hear this conversation. However, when a Participant C is put on hold, it looks like I lose the ability of continuing to whisper between A and B.
After a hold, are all the other participants muted by default and cannot communicate?
Is whisper able to work in this context? Or do I need to create a more complicated schema, like placing the participants in another conference so that they can talk, while C is on hold?

Twillio programable video how to notify from client 1 to client 2

I use Video WebRTC Go to build a peer to peer video chat app with Twilio.
Client 1 creates a room and gets access to that room. So how do we make client 2 aware of that this.
How do I pass the signal there is a call for him (Client 2).
Do I need to handle it my self? or Does Twillio provide a service to achieve that use case?
Hope my question is clear.
Any help!
Thanks in advance! =)
Twilio developer evangelist here.
When you create a room for the users to meet in you will need to make your users aware. There is nothing within Twilio Video specifically to do that.
There are service that Twilio provides that could be used for this, for example, you could SMS or email your user with a link to a page on your site where they can join the room. It depends on the user experience you want to create though.

Can you do a no-hold transfer in Amazon Connect

I have a deal I'm working on designing to deploy Amazon Connect to a contact center with 200 agents. Their volume is 95% outbound, and 5% inbound voice only. Their account managers receive qualified leads in their CRM (in this case SalesForce Service Cloud) and upon opening up the lead would like to click on the phone number in SalesForce and use the StartOutboundVoiceContact API to call the customer. Once they have the customer on the phone they would like to be able to do a no-hold consultative transfer to a different department that is staffed by loan officers and want to be able to do the following:
Agent A clicks on a button in the CCP or SF that places a new outbound call to a queue staffed with loan officers. Want to notify Agent B (the loan officer) that they are being reserved for a call from the account management department and then they "accept" the inbound call and Agent A is then able to bridge the two parties together and complete the transfer.
Is there a way to use DynamoDB, Custom CCP, and Lambda to build this type of solution?
Any thoughts or ideas would be greatly appreciate.
Sounds like you are looking for a "cold transfer"? This is doable using the Amazon Connect Streams API. Good blog post here that goes through several transfer scenarios.
It would not be possible to do a "no-hold" transfer for merging a call. Amazon Connect will always place someone on hold before joining a connection together for a conference call.
However, if you really wanted to bypass Amazon Connect's system, you could try the following( Using Amazon Connect Stream API ):
Silent the music for the queue that you are sending the call through.
Customer will be placed on hold for a few seconds.
Immediately merge the call onto the current call(Using Amazon Connect Stream API)
If agent connects within 7 seconds then current agent will terminate the call.
The one thing you can't get rid of would be the ringing to the third-party agent. Additionally, there may be some type of delay between the customer being placed on hold and being merged onto the current call. So, this may not be 100% ideal for your situation.

Twilio chat : Can I get a channel's message history without joining the channel?

I'm using Twilio chat SDK for iOS, and I've run into a problem. I can get the list of channels, get an individual channel, and get the message count for that channel successfully. The next thing I want to do is grab the last message from that channel using getLastWithCount. However, that method's completion is never called.
I need to do this without actually joining the channel, because I'm just trying to get the last message to display in a summary screen with many others. I don't want to join, because the other party may be online on the other end, and it would falsely display the user as online (even if briefly)- when it is simply an automated function at work. (They haven't entered the "chat room" yet.)
I've set client synchronization strategy to .all, and even tried synchronizing the specific channel before attempting getLastWithCount.
How would you get the last message in a Twilio chat channel without joining the channel?
Twilio developer evangelist here.
You can do this, but your users need to have a new permission to do so. The documentation on Users' Roles and Permissions is worth reading to learn more.
Default user permissions are:
createChannel
editOwnUserInfo
joinChannel
But you need one more that allows viewing channels and their messages without joining the channel. One that does this is editChannelName (not obvious, sorry about that).
To do this, you'll want to create a new role and give it those 4 permissions in total. You can then either assign that role to your users or set it as the default role for your Chat service. Once your users have this role and permissions they will be able to view the messages.
Let me know if this helps.

How to receive an event notification, like "channelAdded", when a new public channel is created

How can I listen for the creation of any new public channel on a chat service? I have seen client.channelAdded but it only works for private channels.
channelAdded
Fired when a Channel becomes visible to the Client. Fired for created
and not joined private channels and for all type of channels Client
has joined or invited to.
My use case is an internal support application where every first-time incoming SMS message from a customer user results in a new chat service channel for that particular customer user being created, and a chat message being added to the channel representing the SMS. The new channel is created via Twilio REST API.
I want to be able to have every agent user made away that there is a newly created channel (i.e. and open ticket), and then be able to join it if they want (thus making the channel public).
I supposed I could create all private channels and just invite all the agent users to the channel, but seems slightly hacky. Feels like there should be a cleaner way to do this.
Twilio developer evangelist here.
Thanks for the extra information you provided about your use case.
To start with, the channelAdded event will only fire under the circumstances that you described and not for every new public channel. Danila suggested using the webhook to trigger an event, but as you say you are already creating the channel yourself, so no need for a webhook.
Perhaps you could use a channel as a notification for your agents. Create a special channel that all logged in agents join. Then, when you create a new channel for a new open ticket, also send a message to the "open tickets" channel. You could use this channel to then simply notify your agents there is a new request, or you could fire off a function to get the latest channels so it is loaded and ready for your agent to join.
If you wanted something a little more lightweight than a chat channel for this, you could consider using a Twilio Sync list for the currently open tickets that you can then sync with your agents.
Let me know if that helps at all.
One of the possibilities to achieve desired is to add a webhook for the channel creation.
It may add member (customer support person) using REST API to the channel or will send a message to them using REST API.

Resources