How to call from a 4g internet device - voip

I have a Huawei e5573 4g device (connects to internet through 2g 3g or 4g via a regular sim card, same as that used in a mobile phone).
It can receive and send messages (sms) and ussd too.
I was wondering if there is any way of using the device to make voice calls with it from the sim inserted inside it, just like in as a phone ?
Has anyone done that before ?
Thanks

If you mean using the device itself, then the answer is no as it does not have audio functionality - i.e. speaker and microphone.
It does support SMS as you say, if you log in to the router's web admin.
You can use any VoIP service over the date network, provided your network operator does not restrict or block them, but I am sure you know this.
There are some discussions on the web about opening the box and 'hacking' it, loading firmware etc but I suspect even if you found a way to get this to work it would be a very high effort / expensive way to just make a voice call device.

Related

Should a BLE device be paired or not ? or what are the conditions a device should have to be paired?

When connection to a custom BLE device from an app (android and ios) I have two options
a) first pair the device on the phone (like a headset or other devices) and then use it from the app to read and write data
b) without pairing on the phone, go inside the app, search for a device with a specific name or address, and just connect to it and read and write data.
when is one preferred over the other one ?
Its just when it needs to interact in the background or am I missing something?
The devices you see in your phones Bluetooth settings are Bluetooth Classic devices. There are some devices using both BLE and Bluetooth Classic which show up in the settings too, but the settings page is only for the Bluetooth Classic part of the device. Headphones for example are streaming music trough the Bluetooth Classic profile A2DP but might offer BLE services for additional features.
You always have to use a special app to communicate with the BLE part of a device. This could be an app provided by a manufacturer or a generic BLE scanner app such as nRF Connect.
As alexander.cpp already told you in his answer pairing (the exchange of keys) and bonding (saving of said keys) is not required for the communication with BLE devices and only needed if the device requires a secured connection.
Bonding (technically correct term for BLE, often called Pairing in non-technical speech) is mostly for security, we can send sensitive information because the receiver is verified and data is transferred in encrypted form.
Prefer to use bonding if the data is sensitive (means users feel uncomfortable if somebody they don't know receive their data). For example, I consider "current temperature = 25" as NOT sensitive. For detailed explanation, find "Bonding with a BLE device" in BLE guide by PunchThrough.
Also this is a good answer to a similar question: https://stackoverflow.com/a/42916081/10380092.
Your second question about background - no, bonding is not related to interaction in background.

Bluetooth Connection and Fileshaing

Is it possible to track bluetooth connections that are connected to eachother? and if yes, is it possible to see that they're sharing files/sending data with bluetooth?
It is for a personal chat program, that me and my friends are working on in C#.
The Bluetooth devices and related status can be found using APIs of Windows.Devices.Enumeration namespace that are available for C#. They shall help in getting general information about devices connected to or discoverable by the system. It shall help in finding devices internally connected to the system, externally connected, or nearby over wireless or networking protocols and get information about them. The DeviceWatcher in turn shall help in finding and receiving updates for devices (like getting notifications when devices get added, connected, disconnected, change online status, or change other properties.)

Is it possible to scan a bluetooth device to find it's capabilities

I am looking for a way to scan a device I own and discover "what it can do".
In other words, I'd like to know if a device is able to describe the way you have to communicate with it in order to build some application around it.
In my case it is a simple Christmas light that I'd like to play with but this could be used in different situations.
For classic bluetooth (BR/EDR):
When scanning for bluetooth devices (Inquiry), the bluetooth device will send an inquiry response (if it wants to be discovered) and maybe also an extended inquiry response (EIR). This EIR may already contain a list of services, the devices supports. This is a very fast way to get a picture of a remote device.
Moreover, the service discovery protocol (SDP) gives more information on a device. This takes some more steps. In SDP two devices can exchange their capabilites in kind of ping pong process.
For BLE:
After connecting a BLE device usually a service discovery takes place. The BLE peripheral (e.g. headset or a light) reports its capabilities to the central (e.g. smart phone). Some of these services have predefines functionalities. Additionally, it is free to the manufacturer to add custom services.

Disabling Google Cast discovery without WiFi

My app is integrated with the Google Cast SDK to cast videos to a Chromecast.
Since the device needs to be connected to a WiFi network to be able to connect and cast, I thought that maybe I could disable device discovery if the device is not connected to a WiFi network, so I don't waste battery and CPU cycles with useless tasks.
Then I wondered: do I really need to do this manually or is the SDK smart enough to make this decision?
I didn't find any information about it in the documentation, and I have no idea where else to look for it.
You should leave device discovery to the Cast SDK which has been optimized for various networking conditions.

VoIP service to make a bridge between Android phone and Ubuntu server

I want to write an application which will be a bridge between VoIP app and phone line.
E.G.:
- I am writing in Skype to user XXX "call to ******"
- User XXX call me back and by phone modem calling to ******
- So I can speak throw my VoIP and phone modem for free (except internet and phone fees)
I thought to use something like this.
The better description is here in Calling section.
But it is outdated and my server part is on Ubuntu
Could you please advice VoIP (e.g. Skype, Viber, WhatsApp, etc) which I can use for such purpose? It would be great to have a client on Android Phone and server on Ubuntu.
Thank a lot,
If I have well understood, the use case is:
A wants to call B through an application running in a mobile device
B has a phone land or mobile line, but not a VoIP one to receive the call.
Bridge between internet and phone lines is to be done at home (A's home) without specific subscription costs, that is to say, without the services of a VoIP provider (I should like here to suggest rethinking the use of a well stablished solution as costs to call phone lines from IP can be really cheap).
Well, there is a lot of solutions for this scenario. I am going to speak about one of them that I consider interesting because it opens the way to a lot of additional communication services.
First, the softphone. To make and receive calls, A will need an application in his or her device. Consider a softphone as Zoiper or Jitsi Meet.
Then, the gateway between VoIp and phone lines. Asterisk can do the work as a SIP server. It is a lightweight linux software with a lot of features. It can switch VoIP lines with land phone lines via FXS - FXO cards (if the phone lines are analogue ones), ISDN cards, VoIP interfaces, bluetooth using mobile devices, etc.
Last, but not least, the connection. Ok, you do not want to expose your gateway to the dangers of all those wicked people of internet, eager to stole your phone line minutes. Connection between mobile and server could be done using a VPN (e.g. OpenVPN), or through a web app (SIP on top of WebRTC).
Once you have the asterisk working at home, you could use it as an answering machine sending email messages with the received audio, as (if your local regulations allow it) a recorder, as an IVR or as a part of a security system, calling sequencially phone numbers in case of emergency.

Resources