I am working on an android app in which I want to implement voice changing functionality during a call. I have googled a lot and I found that it is only possible using VOIP.
I have a few questions about that task:
Although I found that it is only possible using VOIP, but still let me ask my doubt, can we change the pitch of voice during a call in Rooted or Non-rooted mobile, programmatically.
If this implemented using VOIP, then what I come to know is that we have to maintain a asterisk server for this. Then does the voice changing process happen on asterisk server or at mobile side and how?
You can do this on the server side with Asterisk. I do not know how you want your app to be structured, but if you go the Asterisk way, the app will become like a conference call. Like so:
You call a number (Asterisk server).
Asterisk server dials desired number.
Your voice packets are transformed on the server and sent on to the receiver.
If your telecom laws do not support it, the number that flashes on the receiver's phone will have to be the Asterisk server/exchanges.
Related
Context to understand my need: I moved to an area without good cellular data coverage but with good cellular voice coverage.
I want to send small amounts of digital data over voice. Preferably over Android phones.
I was trying a way to connect my phone acting as a dial-up modem, but actually I don't think that is possible to use Android as Dialup/FAX Modem
Anyway I don't need that because I have my own servers and I can configure a PBX to receive calls and translate "voice" (sounds) to digital data and send something in response.
Could be great to use all TCP-IP through voice in my phone, but my question accepts answers that just translate "voice" to small amounts of ASCII bytes (or less than ASCII) that my server could send to internet in a predefined way.
So my idea is to programming something for both (Android and server), but maybe exists another easier way to do it (with or without a PBX) or somebody knows of a ready-made library that I can base my invention on. I'm open to start from some good point.
Extra: Also this "feature" could be used in emergencies. And also is a good idea to encrypt data through voice (that is something that you can't do because GSM encryption is broken).
I want to have one stationary device like an android phone that can use a standard local SIM card and forward all calls to a second device over some kind of VoIP protocol. When someone calls the phone number of the stationary device, I want my second device to ring and handle the call through something like linphone, element, or whatever. Ideally, it should be possible from the second device to initiate a call from the stationary device's phone number as well. Bridging SMS too would be nice, but I already have a solution for this on android.
There are many use cases like
when traveling abroad, being able to bring the latter device and receive/make calls via the stationary device at home
forwarding multiple phone numbers to a single device and e.g. switching off the work number when away from work
having privacy when the location of SIM cards is logged, by making calls over wifi from somewhere else than the stationary device
when traveling somewhere with bad mobile coverage but available wifi, without having to think about how the second device handles it
Are there any existing projects for doing this?
If not, then what would be necessary to make something myself? Is the best solution something like connected an android device by bluetooth to something running asterisk like was discussed here? Or has something changed in the past 11 years, maybe the existence of some working linux phones makes this possible on a dedicated purism or pinephone device?
I think you can achieve this with Brekeke SIP Server. I am using their solution to achieve something similar to what you want to do.
there are multiple ways to achieve it technically, but the most practical solution to your use case will be to use a VOIP Gateway device.
Actually we can not use a mobile phone as gateway between SIM and VOIP calls.
so you can buy a voip gateway example GOIP (single SIM) and put your sim, connect to your home internet and configure. your phones softphone (eg linphone) will be able to directly register on it and you will be able to make/receive calls and sms.
there will be a new problem as mobile OS platforms are more and more restrictive about power, your sip client will not be able to receive calls while in background for that you will need push, so you can use twillio's mobile sdk to make a client that works fine then forward your calls to twillio from gateway. since there is no number or telecom services involved, cost on twillio should be minimal.
A more common way to do this is with an operator service, rather than implementing it yourself.
The operator is able to see the routing to your number and simultaneously call multiple numbers you have set up. Different operators will have different names and details so you would need to speak to your local operator.
For example BT in the UK (who I have no affiliation to - just an example) provide a service called 'Follow ME': https://support.ringcentral.co.uk/s/article/9010?language=en_GB
If you do want to do it yourself than an open source PBC like Asterisk is indeed a good starting point.
I am searching for a way to send fax via android phone.
Sending fax uses converting voice to data, its been done for years on land wire phones
by calling to remote fax playing the voice we all familier with and thats it.
So how\is it possible that the android phone will call to othe fax and convert some img file
to voice and will play this voice one it called to other fax?
Seems to be an hard work.
I would use a web serivce (yes, need to be paid)...
http://www.interfax.net/it/dev/webservice
Try to look at this:
http://code.google.com/p/freeboxmobile/
good luck
FAX is a bi-directional protocol that goes through several stages of handshake before the actual image data is sent. Even if you could write an Android app to listen and "speak" the correct audio tones, the QOS (quality of service) of cellular voice is lower than that of land lines and would not succeed. The only FAX capability offered by some mobile service providers allows you to receive a fax to your mobile number and it will get stored to voicemail. From there you can forward the message to a land line to print it out at a later time.
As others have mentioned, your best bet is to use a web (cloud) based API for sending and receiving faxes.
I would like to do an application in android which translates speech from incoming call to text. Since i cant connect to mobile data while on call, i have to do the conversion offline.. Is it possible? Can I use any API or libraries to do it? Also is there any restrictions in tapping incoming voice? Please do reply..
Regular apps can record the phone owner side of the conversation, but to also record the remote user's voice, you need to have root access as well as a kernel patch.
As far as voice transcription, I don't know of any api you could use for free straight from the phone (assuming you get the recorded audio).
I am building an app that converts text messages to speech and sends them to the destination. At the other end, the speech is converted back to text messages.
I imagine it may be easy with Twilio but I don't want to use internet connection. A simple call should be enough to transmit the data.
Any idea on how I should proceed with this?
I don't think this is really possible to do, your tasks would be pretty heavy ...
TTS- that's no problem android has a library for that TTS and recording it
Make a phone call and monitor state Make phone call monitor state
Send your synthesized message - can't quite find a way to do this, seems problematic sending recorded messages over phone network it has been suggested that you could play the recording over the speaker and the microphone might pick that up, seems like a good way to introduce even more errors into the system though
On the other end something must answer - Answering a phone call
Record incoming call - this seems to be highly problematic on a non-rooted phone Recording incoming calls? or Recording incoming calls
Take the recording and do reliable STT without the benefit of a server back end, also highly problematic since the translation errors even on high end server apps are sometimes quite comical
So without a rooted phone with a custom rom I don't think all of this is possible even if you could overcome the poor quality of a double translation TTS -> STT
Twillo seems to be about making calls over the net vs. the phones digital network not about sending text (in essence) over a phone connection
Seems like a whole lot of extra work just to avoid an internet connection charge (of about 2 seconds and few bytes!)