I need to make a data call through RIL api.
I deployed 2 different programs on 2 i-mate JASJAR palmars which uses
API. I'm able to make the data call and wait all the connection setup
until i receive from both sides RIL_NOTIFY_CONNECT.
I print those messages on the pocketconsole and the connection
speed is 9.6 kbit/s through the CSD (Circuit Switched Data) channel.
The problem is that when i try to RIL_GetSerialPortHandle and send
data to the other side i receive a strange handle with value 0xffffff.
Trying to call read/write on that handle doesn't work.
Is there any example-code about data calls with RIL?
Thanks.
RIL
1)Deny to TAPI to drop datacalls (search on this forum)
2)Initialize RIL and set callbacks(RIL_Initialize)
3)For originate - RIL_Dial
4)For answer - RIL_Answer
5)For hangup - RIL_Hangup
6)After connect get COM-device (RIL_GetSerialPortHandle)
I've found this valuable knowledge.
The only thing i'm not doing is the first point and i don't know how to.
Anyone knows?
Related
Has anyone ever successfully make/answer a TAPI data call? I can have the voice call working but not the data one.
Can someone point me some example?
thanks.
look into source code at www.cryptophone.de
the idea is to kill cprog.exe application so that it does not pops up at incoming call. Than you can answer the data call as usual using TAPI.
When I was making a data call, the receiving XDA did not popup the cprog at all. And my program at receiving side didn't show any message either. (But it works fine with voice call and the cprog showed up to intercept the call). Does this problem indicate that the data call doesn't work at all?
If I can get rid of the cprog, do you think the data call will get through?
thanks,
- David
this seems to be a problem of your operator. Maybe it does not support incoming data calls.
Hey all , my issue is about making DATA CALLS !!!!
I have managed to get the modem in my XDA2 to respond to my AT COMMANDS however i dont think that a data call is possible the old way. So i want to investigate TAPI , i have managed to write up a function which calls a number by the function TapiRequestMakeCall but i am not too sure how to use the other functions .... wanna HELP ?>??
Is it actually possible to make data calls by using TAPI ???
Yes it is.
Did you look at an answer I gave you a while back ?
http://forum.xda-developers.com/viewtopic.php?t=1716
Cheers
Paul
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 Everyone,
I am having a wierd issue with my HTC Tytn.When my Data connection is active I cannot make or recieve phone calls.Any incoming call goes straight to voicemail and any number I dial the phone will display "call ended" before it even starts to to ring. The minute I close the data connection the phone works again.I have updated my ROM to the latest English ROM.Could my unit be defective?
Thanks in advance!!!
Hmmm that's weird.
Your TyTN is acting as class C device (Data or Voice), and in fact TyTN is class B device (Data is suspended while on Voice).
Is your unit defective? Possible, but... first backup your TyTN completely, then re-update full ROM, set up data connection and call to check it while on active transfer. If it will be OK - your unit is OK and this is software/registry problem, if not your unit is might be defective. This is the quickest way to determine.
My device does this as well, but only when connected to Slingmobile.
Other "always on" programs are not affecting me.
Not sure if this helps or not Just trying to add more data.
data causing call dropouts
Hi,
Hope this helps, but here in Australia when using the Telstra HSDPA network on UMTS850, when i'm connected to a data session, I can't receive calls and the caller gets the "phone is switched off" message. If I force the phone to use the old UMTS2100 network, the phone will pause the data session and allow the incoming call. On another forum I have read that this is due to a limitation in the Ericsson 850MHz hardware which the telco is using on their mobile towers and they expect an upgrade to fix it sometime in January. I don't know if this is 100% true, but it is what i have read
If I have a data session in progress it gets disconnected whilst a phone call is in progress (I can receive calls fine, although I have had one or two occasions when people have rung me and it's gone straight to voicemail without notifying me of the call). After I hang up, the data session is reestablished.
Using T-Mobile in the UK for what it's worth.
This is a very weird issue, sorry I can't offer any more info or advice.
I'm on T-mob Flext WnW and have the same issue. When I have my data connection established (either gprs or HSDPA) anyone that tries to call goes straight to voice mail. I can make a call which temporarily stops the data session and then re-establishes it after I hang up.
Is this a known issue on T-mob?
In the HTC faq, it is meantioned that the handset is a GPRS class B device:
http://www.europe.htc.com/support/faq.html?id=119
This means that the data-traffic is suspend for voice calls.
http://www.gsmworld.com/technology/gprs/class.shtml
(I haven't tested this with my HTC, but my Nokia 6260 did behave like this)
The HTC faq also states the full 3G operation ought to allow for simultaneous voice and data calls. I personally interpret this that calls are possible together with a UMTS connection (but I could be wrong).
Jörg
For all with problems with connection while on data.
Most of us here have no problem with it, might be network you are logged, not fully compatible with class B.
My advice: check different phone (TyTN) if same occures, if yes then different handset (other brands). If it still is happening - call network and demand some explanations and upgades.
Still supporting my first post to hard reset device and check if without all software you have same problem.
And for the record - most of mobile operators calls this "Ring-through problem"
JUST FYI
Cingular says that for some reaosn streaming data (for my my slingbox) will not interupt. So phone always goes to voicemail.
Once I get the higherspeed data in my area this problem should go away.
This was posted by another in response to my question, and also confirmed when I called Cingular. Although it is possible we were both misinformed by support.
Hi,
I have written a program to make a CSD data call from one PPC to another using TAPI with the Cellular line provider. However, I want a clean line so that I can do throughput measurements but the provider seems to do its own error handling. I want to handle errors myself but I don't know how to get a line without automatic error handling. Cab anyone help ?
Mark.c
Just to make things a bit clearer -
If you make the call using AT modem commands you would use the CBST command to switch off automatic error control on the line. This is also known as transparent and non-transparent mode. Non-transparent is what I want. I think that this can be set by TAPI commands for high-speed data calls such as GPRS but I want to be able to set non-transparent mode for a basic low speed CSD call.
Is this possible ?
mark.c
Answering myself again :-( but I think that it is worth it as someone else might find some value here.
I have now established that transparent mode is what I want. A non-transparent CSD call invokes the network's error control mechanism. However I have found that it makes no difference, as my results are the same for both types of call. I get bad jitter and no errors in both modes. This tells me that the network may be ignoring the phone CSD setting and always using non-transparent mode. I actually remember someone else on this forum saying that some operators use non-transparent mode always. Perhaps I will have to abandon TAPI and try connecting using Hayes AT commands :-(
mark.c
My transfers suddenly went up to 1 GB/month. It was below 200 MB normally.
I compared my GPRS data transfer list with the speaking details and it turned out that some times GPRS got connected while I was talking on the phone.
Is this possible?
I really don't want to pay for a billing mismatch of my carrier... and it's a loooot of money, I tell ya!
"If I am connected to the Internet (e.g. via GPRS ), can I still receive calls?
If you are Sending or Receiving Data via GPRS at the moment the voice call arrives, you will not receive the voice call. Otherwise your phone will ring and you will have the choice to Answer or Ignore the voice call. If you answer the voice call the GPRS data session will be suspended. In the future, some GSM networks may deploy functionality which allows incoming voice notifications to be received during the sending or receiving of the GPRS data. Answering the voice call will suspend the transfer of data."
Quoted from iMate K-Jam's FAQ: https://www.imate.com/Support_DeviceSupport.aspx?key=2fcbaa10-7bc3-47ba-8dfe-f242d72bc339&cmd=faqs
Is this true, is this half-true, it depends, or please somebody explain it to me!
Thanks in advance
You get either data connection or voice. If the Wizard had a 3G radio, then you could have both as long as 3G was available where you were.
Yeppeee! That's what I supposed to hear!
Now I can deny to pay those false bills.
Thank you very much!
I'm not sure if your provider will accept my comment as expert testimony!
That's just for me to be sure about my truth
They said I must ask HTC an authentication of that my phone is unable to do that. Then they revoke their bills.
Thanks again!