Calling RILD layer functions for implement call conferencing in android - android

I want to implement Call conferencing in android, for this I am trying to call RILD functions from my android code, but not able to get the way of how to call RILD functions. I know how to call c and c++ functions from android using NDK, I also got RIL source code from here : Ril
For become more specific, I want to implement call conferencing when I am in call with some one and at the same time I got call from a specific number, so I will detect that specific number via applying call receivers and will try to call c and c++ functions of RILD via java code for implement call conferencing.
Please tell me the way of implementing call conferencing in android by calling RILD.

Call conferencing is a modem feature. There are APIs in the Android framework which are called when conference calling is activated. Call conferencing would work if the relevant APIs are implemented in the RIL. Here are a few APIs for conference calling:
RIL_REQUEST_CONFERENCE
RIL_REQUEST_HANGUP_WAITING_OR_BACKGROUND
RIL_REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND
For detailed information, you can visit the following link: https://github.com/mozilla-b2g/android-hardware-ril/blob/master/include/telephony/ril.h
Hope this helps :)

Related

Confused about Android Telecom subsystem order of events on incoming calls

In the following link:
https://developer.android.com/guide/topics/connectivity/telecom/selfManaged
I see the quote
Use the addNewIncomingCall(PhoneAccountHandle, Bundle) method to
inform the telecom subsystem about the new incoming call.
This makes no sense to me. How is my app notifying the Telecom subsystem about incoming calls? Isn't it the other way? It seems like a new call enters the device and the Telecom framework routes it to an app to handle the logic, e.g. my application. How would my app ever know about an incoming call before the Telecom system? What mechanism would notify my application of an incoming call? What service or activity would even call the addNewIncomingCall method?
Now, my intuition says I need to use a receiver to listen for an incoming call by detecting a change in the phone state. However, the following link says that is not the proper way.
https://developer.android.com/guide/topics/connectivity/telecom
That instead you should be using the inCallService and connectionService, which are services I am currently using.
Traditionally, standalone calling apps have relied on listening to the
phone state to try to determine when other calls are taking place.
This is problematic as the phone state does not take into account
other calling apps the user may have installed. Using a self-managed
ConnectionService helps you ensure that your app will interoperate not
only with native telephony calling on the device, but also other
standalone calling apps implementing this API. The Self-Managed
ConnectionService API also manages audio routing and focus for you.
I'm just not sure how they fit into the bigger picture of receiving incoming calls. All the documentation says you don't need to implement the inCallService if you don't want your own custom user interface. But I don't see how the connectionService gets a reference to the Call object otherwise.
Does anybody have a good flow chart or other graphical representation of how the Telecom subsystem functions at a high level? How the callbacks work in the framework?
Ideally I want to use the default dialer interface, dial pads, everything but be notified first of an incoming call and programmatically silently reject the call or pass it through to the default dialer.
Thanks!

What is InCallService(Android) equivalent in iOS

In Android, they have this new API called InCallService where you can get call events and for each call object you can do some action. I'm looking for equivalent in iOS. In iOS, I wanted to do the achieve the same thing specifically for outgoing call also. In iOS there is CXCallObserverDelegate protocol but in this case I can only get UUID of the call that's all I can get. I'm not able to do any additional action for the call. I wanted to execute DTMF tone once the call is active but it is not possible. In CallKit there is cxaction called CXPlayDTMFCallAction but this only applies for VOIP application and what I need is to execute the dtmf for gsm calls. Does anybody have any solution for here?

Android sip calling

we want to use conference calling in our app we managed to make a call but we are not able to make a conference call .
we tried to sipcoudiocall.attachCall(sipSession,sessionDescription);
but we are not able to make conference call can you help.

How to call a custom system call from C in Linux

I have implemented a custom system call sys_mycall for ARM architecture. After building and downloading on the phone the log is showing that sys_mycall is running.
My doubt is:
how do I call this system call from a C file.
can I somehow call this system call from java (using JNI or something). Just some hint on how to implement this on Android is required.
1) look at man 2 syscall for int syscall(int number, ...) with it you should be able call your sys call and pass the parameters you need/want.
2) Yes, use JNI for this. Create a JNI function to call your C code and from there just make the syscall.
This can be done using Android NDK
here is an example to call C code from Android application.

How to make call conferencing of two calls?

i have tried many things but not getting how to do conferencing in android.
i can receive incoming call and make another outgoing call...but not able to combine those calls as "menu option merge do"...
if i can take object reference of phone or call class(internal class of android) i can use conference method available theres
AFAIK, there is no API for this in the Android SDK, sorry.

Categories

Resources