Create conference with no participants in Twilio - twilio

I am using Twilio Studio and I have a flow where I ask user A if he wants to call with user B.
In case user A clicks 1 (yes), I want to create a conference and put user A inside this conference.
In case user A clicks 3 (no) he just continues in my Studio Flow.
In the case user A clicks 1 (yes), then I proceed to call user B with the "Make Outgoing Call" widget and ask him if he wants to call with user A.
In case user B clicks 1 (yes), I want to place him in the conference where user A is waiting.
In case user B clicks 3 (no), I want him to continue with the flow, and I want to move user A out of the conference and let him continue with the flow.
I am currently using an "HTTP Request" widget to send a request to my server which updates the user's call flow to a conference. The obvious problem with this is that in case user B says no, he will not return to Twilio Studio.
The possible solutions I have in mind are:
Create an empty conference call before putting user A in it. And use the conference_sid in the "Connect Call To" widget for user A (and send it to B afterwards). My problem here is that I'm unsure whether an empty conference can be created.
In case an empty conference cannot be made, do step 1 but put myself in the conference. Problem: I don't think it's possible to have to TO & FROM number the same.
Use solution as mentioned in nr.2 but buy a second phone number that's only purpose is to return conferences with himself included. (need to make sure that if user A or B leaves, the conference shuts down). Call this second nbr with the first one.
I'm not sure if the first or second suggestion is even possible. And if not, is the 3rd a viable option, are there (better) alternatives for cost and/or simplicity?

Related

Twilio voice calling with schedule calls

We are building a voice calling application ie (https://github.com/twilio/voice-quickstart-ios#11-make-client-to-client-call), calling working good with great sound quality. We have a new requirement to schedule a call outside of the application, ie instead of the call occurring through the application, it will occur by a normal dial-in number.
Our use case as follows
Caller clicks on agents profile.
The caller sees a list of available dates/times that agents are available. Let's say April 10th at 1 pm PST is available.
Caller selects April 10th at 1 pm and presses "Schedule".
The caller is prompted to pay $100 for a 1-hour call at the selected time.
The caller enters credit card information and presses "Pay".
The caller sees a confirmation message:
Your call is now booked with John Smith! Please call (555-555-5555 -
Twilio number) at 1 pm on April 10th, 2020.
We want to know the following
If a user calls to a Twilio number, can we redirect that call to our agents(ie we have several registered agents in our application)
When users calling, we want to know who is calling and where to redirect this call.
I think we can manage scheduling with our application logic. Let us know, what all services Twilio provides for executing such a scenario, we would love to know is there is any other way around. Your help is much appreciated.
Thank you.
You can look at products such as Twilio Studio. Studio allows you to easily set-up a call forwarding scenario, but the hyperlinked article has many way to accomplish this task. It sounds like you have already built out the agent assignment functionality.

Twilio iOS sdk - one to one video calls

I'm trying to achieve one to one video calls using Twilio video service. I already configure my server side for generating tokens. So, what should I do now?
Do I need to create room for each user on app start and then join this room with another user? Or it should be some specific room (combination of user1 data + user2 data), if so - when user2 joins this room how should I handle room notifications on user1 side?
For one to one user call I would suggest every user might have unique username or anything which is unique ,so you can build up logic for room name like username1-username2 , and whenever username1 tries to call username2 we can set up logic on backend in a way that will generate token of specific room only.
On receiver end username2 can receive VoIP or remote notification and this notification user data (payload) should contain room name to be joined so that when username2 receives call or notification, we can make request for joining in same room in which username1 already exist.

How to detect busy state in Twilio iOS SDK?

I have successfully implement a APP to APP calling in iOS app using Twilio iOS SDK.
I have facing a problem in that Twilio SDK. I have explain with some step as below.
There are three user. User A, User B, User C
Step 1 : User A is calling to User B.
Step 2 : Now User C is calling to User A. User A is already talk with User B so what about User C. How can i identify busy state.
You can check this from your server-side app and relay the result to your iOS app.
The Dial verb includes an attribute named action which lets you specify a web application URL for Twilio to request when the call leg ends. That request includes a parameter named DialCallStatus which will tell you why the called ended. The DialCallStatus values include busy indicating Twilio received a busy signal when trying to connect to the called party.
https://www.twilio.com/docs/api/twiml/dial#attributes-action-dial-call-status-values
Once your web application knows the DialCallStatus, you can relay it back to your iOS app and notify User C accordingly.

How can I know the key press value during phone call by Twilio

How can I know that, user press 1 or 2 or 3 during phone call by twilio. After pressing the key (1 or 2 or 3) user will get options. Like if he/she presses 1 user will listen some text, if user presses 2 he/she will redirect to another person and so on. I can do this individually i.e. I can set a message or I can set a phone number of user1 and I make a call to user2. When User2 receives the call he/she will be redirected to user1. But I can not do this by the pressing value.
Twilio developer evangelist here.
You can do this using the <Gather> verb in TwiML. <Gather> allows you to set how many keypresses you want to record and then a URL to redirect to once you have received those keypresses. When Twilio makes the request to the next URL you will get a Digits parameter in the request which will contain the keys pressed.
Here's the documentation for <Gather> and a tutorial for a phone menu. Hope this helps!

alert to back office personnel on client side triggering?

I am building a ruby on rails project. it is a portal. I have a situation as follows:
the user browses around. Suddenly he gets a doubt.
I want to keep a small text box and a button that says "call me".
To clarify the doubt the user can enter his phone number in the "call me" box.
now the back office personnel should get an alert or a notification about this.
I tried implementing juggernaut, but became a nightmare since the site is in a shared host and i couldn't configure the port.
a. An ugly solution, with pooling:
Why not make a page that autorefreshes every 1 sec (for the backoffice staff) that just pools the table with customer requests for new data? So, one controller that stores that phone request (the telefone number, etc) and one admin controller that displays unread phone requests from the DB.
It is simple to implement, does not consume too many resources.
b. if you really want something that should 'ring', you can integrate a SMS gateway and send a message to a backoffice phone number.
SO thread about SMS GW
Why not just sending an email to the backoffice?

Resources