I've spent days now searching for a way to route calls from an iOS application through a voip server to mobile number or fixed landline number (or send an SMS)... Essentially like voIP-GSM
I want to essentially have a similar system set up to Skype but with out the other user having the app, just directly call someone's phone using your data/wifi rather than your limited voice minutes or numbers if SMS.
One company who I know of that has worked out how to do this is: http://callsfreecalls.com/
I don't just want app-app communication like from twilio or rebtel!!
1) Would Asterisk or PJSIP help me in any way?
2) Would there be anyway I could do this all for free?
3) Will I have to create my own VoIP network or SIP server??
4) Will I be able to accomplish all this and put it into an iOS app?
Any ideas or help would be much appreciated. Thank you
Twilio evangelist here.
With Twilio Client you can make a VoIP connection from a mobile app into Twilio, then route that to any other number (mobile or landline). You are not restricted to app-to-app only calls.
When you create a Capability Token for Twilio Client, one of the parameters you can pass it is a TwiML Application SID. That TwiML Application maps to a URL that you can use to return TwiML instructions that Twilio will execute when a user initiates an outbound call from your iOS app. In those instructions, you can use the <Dial> verb to tell Twilio to dial a regular phone number, which we will bridge to the Twilio Client connection.
Hope that helps.
Related
I am trying to set up a very simple system where I can dial out to local numbers using a VOIP app or an ATA.
I have the local number on Twilio
I have a Sip Domain set up on Twilio
I have extensions and SIP Devices set up and working
Using Flow, I can: receive calls, transfer calls to Voicemail, Email and Txt Voicemails
What I cannot seem to figure out is how to just dial outbound calls. I have been over all the documentation but I am not a coder, and all the blogs on making an outbound call seem to require you to be running a host somewhere other than Twilio.
How do I set this up:
I pick up any SIP device authenticated to an extension on my SIP domain.
I dial a local POTS number and it rings that number using my Twilio Local number.
It all must happen on the Twilio platform (SIP Devices excluded)
I was hoping I could use Twilio flows to do that but I cannot figure it out.
Any help would be appreciated.
Thanks
I understand your question but it's a bit hard to understand at which point you are stuck. But I'm happy to point you to this blog post which aims for the same result. So you should be able to find the missing pieces in there.
what I am trying to achieve is to make a VoIP call from an iPhone to an iPhone using Twilio.
To do that I'm using the iOS SDK, the Twilio Voice to be more specific as the iOS SDK is superseded.
I have a server that generates an access token and when I create a call the Twilio API would make a request to my server and I would return a <Dial /> keyword with the client name and the connection would be established.
The problem is, this counts as two calls(iOS app to Twilio is the first one and when I return a TwML <Dial /> response is the second one) so the price is practically doubled.
Is there a way to make it as a single iOS app to an iOS app call? All my server does is to generate the TWiML using the parameters that are sent from the client anyway.
Oh and also in the documentation there are some talks about capability tokens but all the current documentation is using Access Tokens.
Are capability tokens relics of the past for the older API?
Thanks
Twilio developer evangelist here.
Twilio calls are always priced per leg, so in a call between two people you do always pay for the outgoing leg and the incoming leg. They may also have different lengths, if the outgoing call goes through some other TwiML before making the <Dial> for example.
However, if all you want to do is make calls between applications and you don't need to be able to make calls to the phone network then can I recommend you take a look at the Twilio Video project. While it is called "Video" you can use the SDK to make audio calls between apps too. And if you choose to create peer-to-peer rooms, then the audio stream is sent directly between the two devices and not charged as a call leg at all. The only extra thing you need to do is to generate the call notifications yourself.
As for capability tokens, they are indeed a left over bit of documentation. Capability tokens have mostly been renamed as access tokens so you can use them interchangeably. If you investigate the Video SDK, then everything will be Access Tokens too.
I recently integrated twillo iOS SDK in my iPhone app and it is working fine for native call it means i can make call from app to any verified phone numbers.
But my requirement is app to app call it means there is no native call.
So i would like to know if by using Twillio SDK, is it possible to call from application to application ? Something similar to whatsApp. So there will not be any phone number but both phones must have our apps with Twillio SDK integrated.
Please Help me.
Thanks.
Twilio developer evangelist here.
You absolutely can do app to app calls using the iOS SDK. Let me explain.
Your Twilio Client capability token is created with a TwiML Application, which supplies the URL that Twilio will hit when a call is created to find out what to do with it. Normally, you would pass a phone number as a parameter to your TCDevice's connect which would be handed to your app URL when the call connects. This would then be used to produce TwiML to direct the call onto that number, like this:
<Response>
<Dial>
<Number>{{ to_number }}</Number>
</Dial>
</Response>
To make this work for client to client calls, you can pass another client ID to the URL and on your server, instead of <Dial>ing to a <Number> you would <Dial> to a <Client>. Like so:
<Response>
<Dial>
<Client>{{ client_id }}</Client>
</Dial>
</Response>
You can discover which clients are available by listening for presence events with your TCDevice object. You will also have to handle incoming calls within applications.
I recommend following the Twilio Client iOS Quickstart guide all the way through, which will guide you through most of these points, including passing parameters to your application URL and generating the right TwiML to accomplish this (though it doesn't cover presence events).
Let me know if this helps at all.
Not sure it is possible with Twilio. We have used twilio for the same purpose u mentioned (Call to phone numbers) and was working fine. I think the main purpose of twilio is that. Anyways i'm not sure about it.
May be VoIP will suit for your functionality. PortSIP is a good SDK for voice and video communications between apps.
You can download the iOS SDK from here https://www.portsip.com/downloads-center/
It is payable like Twilio only if you want to use it for business.
For more refer here
Thanks.
Twilio support sip now. you must have some setting with your twilio account.
As I know ,you can follow here to set your twilio sip server and implement sip client on your ios client.
We have an iPhone app and would like to provide the ability for our users to voice call each other without needing landlines, telephone numbers or use their calling minutes. What is needed with Twilio to do mobile-app to mobile-app voice calls?
Twilio evangelist here.
I'd start by checking out or Twilio Client for iOS quickstart. The short version is you'll need to set up some kind of back end service that can generate tokens and TwiML instructions, then in your iOS app use our iOS SDK to connect to Twilio and make or receive calls.
Hope that helps.
I have a question and I need to know if this Twilio integration is possible.
My client needs to keep the same business phone number (as it is marketed and printed in all advertisement).
She has a landline phone handset which is connected to ATT&T with the business phone number, but we have a different number for tech support.
I want to be able to integrate Twilio so that it works like this:
1.Client calls studio phone number
2. Twilio receives the call and presents a (press 1 to speak with the front desk, press 2 to speak with tech support prompt)
3. They press 1 and the studio phone handset rings and the front desk rep is able to take the call.
3a. They press 2 and they are connected to our tech support number.
Please help. If you need any more clarification, please let me know. Thank you.
Twilio evangelist here.
It sounds like the best approach here is to port the business phone number into Twilio. This would let Twilio answer the incoming phone calls and execute your IVR for the callers, which solves steps 1 and 2 in your workflow.
For step 3, if you port the business phone number to Twilio then you'll need to find some other way to make the landline phone in the business ring since it won't have a phone number any more. There are a few ways to do this:
You could get a new phone number from AT&T that rings her landline.
You could go VoIP and build a Twilio Client application hosted either in web browser or a native iPhone or Android app.
With either of these options, from when the user selects option 1 in your IVR, you would just use the <Dial> verb to have Twilio make an outbound connection (either to the new landline number or to the Client instance name) and Twilio will bridge the incoming customers call with that outbound call.
Hope that helps.