I have a program that makes outgoing GSM data calls. I'm trying to find a way of not making calls when the phone is not in a state to make a call. Calling lineGetLineDevStatus return with some useful information but the data in dwDevStatusFlags does not show if the phone is locked or not. The flag LINEDEVSTATUSFLAGS_LOCKED does not seem to get set by the XDA software.
Does anyone know of a reliable way to check that the phone is in a state to make an outgoing call?
Thanks
I don't recall having this issue on any of my other phones, but I unintentially missed quite few important calls while using GPRS.
Is it supposed to be like this?
no sms and calls are suppose to disable grps unless they are finshed
wow, that was a quick response.
So, how do I fix this?
You can not fix it.
Interrupting a GPRS session to accept a voice call is a feature that some operators have chosen not to implement.
Hi guys,
I'm trying to write a code which uses a RIL.dll exports function to listen to incoming data calls (CSD).
My application does receive the first incoming RING notification, but then the incoming waiting call is disconnected. I was trying to analyze the AT commands log and figured out that after the first RING message "AT+CHLD=0\r" is executed, which sends a busy signal to the other party.
Another "interesting" fact is that I do receive incoming voice calls normally.
I tried to use TAPI to accomplish the same functionality and it worked just fine.
Thanks,
Miro
PS: I am using XDA2 with WM2003SE
I posted two days ago.
http://forum.xda-developers.com/viewtopic.php?t=21333
But I have not found the decision yet
I think RIL_SetCallWaitingStatus can helps. But this function doesn't seems work.
I tried RIL_SetCallWaitingStatus with no luck (It responds Ok, but no change occurs).
It is obvious that incoming call types can be somehow configured, because CellTSP.dll is working ok (most of the time) and is able to receive data calls.
RIL.dll from WM2003SE is exporting some new functions like RIL_SetPreferredPrivacyMode (I looked into RIL.DLL exports), maybe these functions are somehow relates to our desired functionality. But at the other hand CellTSP.dll (TAPI service provider) is not importing these new functions.
I tried to disassemble CellTSP.dll to look after it's initialization sequence, but with my small understanding of ARM assembly I didn't understand much.
IIIu30uD said:
I posted two days ago.
http://forum.xda-developers.com/viewtopic.php?t=21333
But I have not found the decision yet
I think RIL_SetCallWaitingStatus can helps. But this function doesn't seems work.
Click to expand...
Click to collapse
I think that RIL doesn't send DISCONNECT manualy.
I think that Service Provider sends DISCONNECT, because it think, that it must receive only VOICE.
heh
I removed all keys from HKEY_LOCAL_MACHINE\TAPI\TSP, and restarted device.
After reboot I catched error: "Unable to initialize TAPI monitor process!"
I started my program with RIL, and I received datacall correctly.
I was right.
Do you know how kill TAPI temporary?
You are good!
Previously I had a thoughts that maybe some other process is responsible of disconnecting data call, but I was unable to figure out that it's TAPI.
Nice job!
Now the problem is how to get CPROG.EXE back to work - some of it's componets uses TAPI (well maybe it's not a problem for you, but for me it is). I thought of patching the import entries of RIL.DLL at the import table of CellTSP.DLL and hide the RING data call notification from it. Or maybe not pass the RIL_ManageCalls function (which is responsible of disconnecting the data call) to the RIL.DLL. This way we can run TAPI TSP and not be worried about data calls disconnection.
I did import table patching before - i'll try to get it work here....
I think I have a better solution:
TAPI is responsible of disconnecting (marking as BUSY) incoming data calls. I guess it operates this way, because it's only active "clients" (CPROG modules for example) are handling voice calls only. It is obvious, becase when we are trying to handle data calls though TAPI, it does not disconnects incoming calls.
If these assumptions are correct, the only thing we should do, is to initialize TAPI line (lineOpen) with LINEMEDIAMODE_DATAMODEM and hold it until we exit the application. This way we can continue working directly with RIL and not worry about TAPI, which will not disconnect data calls.
I am "running" with this now....
I am afraid that in this way TAPI will try to set bearer mode. This is not interesting for me. I worked with RIL because I don't know how set bearer mode via TAPI (if possible).
would u agree to say that it would be possible to establisha data call using TAPI from an XDA to a remote unit ??
Hello Again,
I have written a simple TAPI monitoring App that wants to monitor outbound
calls only on a Smartphone 2003 device. This was made possible Thanks to
this newsgroup!!!
When a data call is progress. If i dial the a phone number while monitoring
APP is executing the phone gets into a wierd state where the end call key
does not respond the only way to end this call is to pull out the battery.
But if my monitoring app is not executing than the phone device behaves the
way it supposed too.
In Smartphone Voice Call has higher priority over the data call in progress
and hence the device suspends the data call when Voice call is made and
resumes the data call when voice call ends.
Question is there a way to suspend/resume data call using TAPI or any other
WinCE API?
Please help. Any suggestions comments would help. At times i wish MS made
TAPI browser available for WinCE devices.
thanks,
-Larry
I got the same problem, I have an aplication that monitors call and dials its own if necessary. If a GPRS is on and some dials , i stop the call and make my own call. But the windows dialer still coming back. It's calling "Unknown" and adds it to the call log. If I stop my call, the Windows Dialer is still running.
Did you ever fix your problem?
I'm fancing strange problem. I can call out to anybody and we can talk, but when someone call to me there is one signal and then message from network like: person U want reach is temporary unavinable...
So noone can call me
Is there any option in android to automaticaly reject calls? I wasn't changing anything in settings or soo, it stops working suddenly ;/