how to get the notification when a call end - Windows Mobile Software Development

How to get the call process notification when a call end or shut down by remote network?
i don't want to use ril.lib.

If you make the call using ExTAPI (not RIL) then you will get a Callback then the call is over.
Search for 'lineCallbackFunc'.
Ben

It is relatevelly easy with lineCallbackFunc. You have to wait for the LINECALLSTATE_DISCONNECTED messages in dwParam1 of this function and than you have to check the second param to see what cause this event.
The code migth look like this:
case LINECALLSTATE_DISCONNECTED:
{
//Place your code here
switch(dwParam2)
{
case LINEDISCONNECTMODE_NORMAL:
//Place Your code here
}
}
Search MSDN for the list of LINEDISCONNECTMODE constants !!! (I wrote only one, there are more, of course
Regards

Yes, sorry I didn't ellaborate much I use much the same.
This function has six parameters, a random selection of which might contain information, which may or may not be documented. There are various incomplete examples from various people arround, or just dive in and see what you get...
This callback is (I belive) called from the RIL callback. The mapping is not 1-2-1, MS claim there is 'significant logic' between the two layers. So using RIL would ultimatelly get you closer to the truth. Certainly, I belive TAPI only gives access to your applications use of the phone, I belive RIL gives access to any applications use of any phone use.
Some help from TAPI.h where the messages are defined, may be found.
Anyway, this is what I use: First the 'dwMsg' = LINE_CALLSTATE, then examine the dwParam1, dwParam2. When dwParam1 = LINECALLSTATE_DISCONNECTED and dwParam2 != LINEDISCONNECTMODE_REJECT you have a fair chance that the phone has been disconnected.
The hard part is not the understaning of the callback, it's getting bl**dy call back correctly registered in the first place...
Ben

Related

make call

i want to make a call from my application, please help
PS: i am using .net cf
thanx
Use "phoneMakeCall "function
Find "phoneMakeCall" function infomation in MSDN library.
I was unable to find that function in the MSDN library. I found more, but they were .NET functions.
I am interested in the same functionality as the tel: protocol. Does anyone know what the parameter is that I can send to cprog.exe so it knows what number I want to dial (if it's possible). And if there is a way to make the phone automatically dial that number would be great.
The tel: protocol is really kind of weak for applications outside of IE. Having to launch a blank window is a horrible user experience.
Thanks in advance,
-- Mike
Hi there
Try this link:
http://smartdevices.microsoftdev.com/Learn/Articles/622.aspx
Discribed is a away to use the TAPI through p/Invoke.
It was a bit of hard work, but after only 1/2 a Day i made my first phonecall to a telephonenumber, stored in my App's database.
Generally i found out, that http://smartdevices.microsoftdev.com is a good starting point for searching information (and of course this forum ;-))
Hi
Thx for the link, It helped me a lot. I didn't get the VB.NET part of the sample code (Downloaded) to work when I was calling a phone number. It seems that the phone is not converted correctly. The SMS part of the VB sample works ok although.
The CS sample work OK, I could make a phone call in minuts, using the sample code.
So if I can't find the reason for the error in the VB sample, I must stick to the CS code.
Klaus E. Frederiksen, Denmark
PhoneMakeCall
This function dials the specified phone number.
LONG PhoneMakeCall(
PHONEMAKECALLINFO *ppmci);
Parameters
ppmci
Pointer to the PHONEMAKECALLINFO structure that contains the information related to the call to be placed.
Return Values
Value Description
Non-zero The function was not successful.
Zero The function was successful.
Remarks
This function must be called in order to initiate a phone call.
Guest said:
I was unable to find that function in the MSDN library. I found more, but they were .NET functions.
I am interested in the same functionality as the tel: protocol. Does anyone know what the parameter is that I can send to cprog.exe so it knows what number I want to dial (if it's possible). And if there is a way to make the phone automatically dial that number would be great.
The tel: protocol is really kind of weak for applications outside of IE. Having to launch a blank window is a horrible user experience.
Thanks in advance,
-- Mike
Click to expand...
Click to collapse
Details for .Net developers:
The PhoneMakeCall function is not the tricky part of this.
For .net newcomers it's P/Invoke that makes this a little more difficult,
than just using a dll.
1. You have to create a Class (for Example: Phone) that hold the functionality. Because we are using P/Invoke, don't forget using System.Runtime.InteropServices!
2. In your new created Phone Class declare 2 statics, that help us with the option of Prompting before making a call, one of them will fill the dwFlags part of our Infostructure:
private static long PMCF_DEFAULT = 0x00000001;
private static long PMCF_PROMPTBEFORECALLING = 0x00000002;
3. Now to define the allready by yrj mentioned PhoneMakeCallInfo structure. it should look like this:
private struct PhoneMakeCallInfo
{
public IntPtr cbSize;//size of struct
public IntPtr dwFlags;//prompt or not
public IntPtr pszDestAddress;//pointer to CharArray with
//Phone number
public IntPtr pszAppName;//nothing
public IntPtr pszCalledParty;//nothing
public IntPtr pszComment;//nothing
}
4. The import of the Phone.dll function should be no problem:
[DllImport("phone.dll")]
private static extern IntPtr PhoneMakeCall(ref PhoneMakeCallInfo ppmci);
5. Now you have to create a fucntion that instantiates a PhoneMakeCall infoStructure and call the newly Invoked PhoneMakeCall-function.
Now, have fun!

[App][Beta] ACR – Auto Call Recorder – Version 1.2.4

WARNING!!!
These applications are not legal in all countries/states. Check first before you use this software as you could get into serious trouble in some countries/states. (Wikipedia Reference)
Note: these programs requires .NET Compact Framework 3.5 Redistributable to work. Please install this first if it is not already on your device.
Also if you've just blown in here to download ACR and run, its in Post #3
ACR HD
This program was written for the Touch HD. If your device is not 480 pixels wide or WM6.5+ then I would not recommend you waste your time with this program. This version is for testing/comments only.
This version is for anyone who doesn't mind testing the application at the risk of their device. While I seriously doubt it would harm your device I still feel I need to ward off thoses that are under the impression this application was written with any sort of care or support.
Thiis program currently requires a contact with the FileAs name of Unknown to work properly/with Outlook Importer.
ACR – Auto Call Recorder
SETUP
Once installed go to your programs folder and you will see a new Icon for Auto Call Recorder. Click on the Icon and the options for Auto Call Recorder will be displayed. Once you have chosen your options click the Enable Recording button on the File Tab and close the Options Program. That’s it you are now automatically recording any calls your device has.
OPTIONS
There are two tabs of options to choose from. Most of these you will not need to use at all but where included to provide a better experience for some users who have different requirements such as limited memory, no use to record all calls and such.
File Tab
Folder to save calls in
From the top of the file tab, first we have a textbox showing where the files will be saved. On the right of this textbox is a button. This button when pressed will open a window so that you may change where ACR saves the files.
Ask to save Call
This checkbox when checked will make ACR prompt you with a choice to save the call once the call has finished. Note that even if you choose no you will still have the option to retrieve the last call up until you receive another call. The file Lastcall.wav is only overwritten when you receive another call.
Record Incoming Calls/Record Outgoing Calls
These checkboxes is pretty self explanatory, if you want ACR to record your incoming calls then check this box, if you don’t then uncheck this box. The same goes for Record Outgoing Calls.
Write to Debug File
Only use this option if you are having problems. At the moment the debug is very limited. When you have this option check ACR will write debug messages to a file ‘debug.txt’ in the installation folder.
Recording Tab
The recording tab contains the setting for the file to be recorded. First is the Wav format. This is either PCM or GSM6.10 PCM is a ‘raw’ wav format that will use about 1MB per minute. I have included this format for devices that do not support GSM6.10. The other format GSM6.10 is a ‘compressed’ Wav format and consumes approximately 30kB per minute. Obviously this is the preferred choice.
Bits per channel are either 8 or 16 bits. 16 bits is the preferred choice but I have also included 8 bits for slower devices.
Samples per Second are the number of samples taken each second. This is a matter of preference/device capability. The choices are 8000, 11025, 16000, 22050, 32000, 44100, 48000, 96000 and 192000Hz. If you have a slow device then you are better starting from the bottom and working your way up by testing to see which the best is for you. If you have a newer device then it is more a choice of how much space you want to use as the higher the number the more space the file will use. Also your device may not support the higher frequencies so I recommend starting with something like 48000Hz. If you set the frequency to high you will get gaps in your recordings.
DEVICES
This program will work on a number of devices at different degrees of success. Below is a few lists of devices and there reported success. If your device is not listed then try it anyway and don’t forget to report back you amount of success. If your device don’t match up to whats reported then please do
Devices known to work ‘Out of the box’ both ways
ASUS P835 (Stock ROM)
Touch HD (Stock ROM 6.1/WM6.5)
HTC Touch Diamond 2 (Stock ROM)
HTC FUZE (updated stock ROM)
HTC TYTN 2 (Stock ROM)
HTC Touch Pro 2 (Stock ROM)
Mio A702 - Not bad for 200Mhz
HTC Rhodium (Stock ROM)
HTC Touch 3G
HTC Trinity - P3600 (Stock ROM)
HTC Touch Cruise (Stock ROM)
HTC Prophet (WM 6.1)
HTC Herald - T-Mobile Wing (Stock ROM)
HTC Touch Elf (Stock ROM)
Samsung i780 (WM 6.1)
Samsung Omnia i900
Samsung Omnia 2
Plam Treo Pro (Stock ROM)
HTC Advantage 7501 (WM6)
HP iPAQ 614c
Devices that require registry setting to work both ways
HTC Touch Diamond – deep_purple reported that after installing GSM610 Codec he could use GSM6.10. Thanks mate.
HTC Touch Pro (EnergyROM / TIR 13R Lite ROM / RRE 6.5 Servies 6 v4)
HTC Blue Angel (Cooked ROM)
Devices that only work one way
Touch HD2
HTC XDA2
Xperia X1
Devices that don’t work
HTC Snap
HTC Vogue
HTC TyTN
HTC Gene
HP iPAQ 614c
TIPS AND FIXES
This is a condensed form of the previous thread and this thread. I will cover all the fixes found by the great folk at XDA.
Enable MicAGC. Its in Settings/System. Its not required by all devices though.
“I only hear my voice, the other party is very soft?” This is because you device is not setup to record both the incoming and outgoing voices. This can also be because your device is only ‘half-duplex’. To solve this try the suggestions in the Devices Post.
“ACR only records the first minute of the call?” This is because you have ‘fast sleep’ enabled on your device. Try something like Advanced Configuration Tool to disable fast sleep.
“I can’t see if it’s working?” ACR has no interface when it’s running. It was designed like this to keep memory usage to a minimum. If you are having troubles with this then I suggest you use the ‘Ask to save call’ option so you know it’s worked after the call. You can also see it running in a task manager program when you choose to show ‘view processes’.
DISCLAIMER / LICENSE / EULA
Please read carefully the terms and conditions of this End User License Agreement ("EULA") before installing ACR software ("Software"). This EULA provides a license agreement between authors of ACR ("Licensors") and you (person) ("Licensee") to use the Software and contains warranty information and liability disclaimers. By installing and using the Software you accept and agree to the terms of this EULA. If you do not agree with these terms and conditions, you must cancel the installation or, if the Software is already installed on your device, promptly uninstall it.
OWNERSHIP
The Licensee acknowledges and agrees that the Software is a product of the Licensors. It is protected under international copyright law. All copyrights are exclusively owned by Slothie.
LICENSE GRANT
The Software is freeware. However, the Licensee may use it only and exclusively for testing in either private personal or commercial usage, and only under conditions which do not contradict the restrictions noted below. If you want to use Software for anything else, you must contact the Licensors. Software may not be bundled or distributed with any other package without written permission of the Licensors.
NO WARRANTIES
The Software is distributed "as is" WITHOUT WARRANTY OF ANY KIND. The Licensee uses the Software at his own risk. The Licensors shall not be liable to the Licensee for any kind of consequences, which occur or not occur while installing, using or uninstalling the Software.
RESTRICTIONS
In accepting the EULA granted by Licensor, Licensee agrees that he shall not
1. Sublicense, sell, lease, rent, permit use of, give, or lend the Software
or any copy or portion thereof;
2. Decompile, disassemble, reverse engineer, analyse, or otherwise attempt to
discover the source code of the Software;
3. Use or incorporate the Software or any portion thereof in any other product
without the prior written permission of the Licensor;
4. Remove, alter, or obscure the copyright, trademark, proprietary, or other
notices from the Software or any of its components.
Licensee is allowed to edit existing or create new language layouts, and share them with other users. Licensee is allowed to edit existing or create new graphic elements, but only with respect to copyright and trademark notices.
DISTRIBUTION
The Licensee may NOT redistribute the Software by any mean (CD, DVD, Web site...) without permission from Licensors.
TERMINATION
The Licensee may terminate the EULA at any time. Also, the EULA will terminate automatically if Licensee fails to comply with the restrictions described above. Upon termination of the EULA, the Licensee shall remove all copies of the Software from his (her, its) device and all storage media.
Credits and Thanks
mskip for providing his registry settings from the 2 way recording Cab. Without these settings most devices would only be recording one side of the conversation so if you feel like buying him a beer you can here.
A big thanks to Rozenthal for letting me steal his legal stuff from FingerKeyboard.
A big thanks to Biker1 for helping all the lost people in this thread. You should get more credit than me.
Also thanks to [germany]merlot and deep_purple for testing.
Menneisyys for this great thread here.
Also all the people that reported device Successes/Failures/Tweaks/Registry Setting.
CHANGE LOG
Version 1.2.4
Extended Beta period.
Version 1.2.3
Fixed 12/24 hour time issue if the filename.
Version 1.2.2
Changed the file save format to include the date/time.
Version 1.2.1
Added Choose Folder Dialog.
Added code to stop Windows from shutting down the application in the background.
Added option to record Incoming Calls.
Added option to record Outgoing Calls.
Added Debug to File option.
Removed Readme Tab.
.
OUTLOOK IMPORTER
Outlook Importer is for both ACR and ACR HD. It will import all your saved calls into Microsoft Outlook on your PC. Calls are imported into the Journal.
This version is for anyone who doesn't mind testing the application at the risk of their device. While I seriously doubt it would harm your device I still feel I need to ward off thoses that are under the impression this application was written with any sort or care or support.
Oh yeah currently this app does not import call from the last day. I will hopefully expand on this to be an option but currently its the last 24 hours.
thanks a lot for the update dude
but where is the changelog ? What is new in this version
Great Work!
Waiting for changelog!
Hmmm what did I change?
I added a 'choose folder' for everyone that couldn't put a \ on the end of the path. I added a cancel statement to form closing so CE wouldn't close the app silently in the background. I added a couple of options to choose what calls are recorded. I added a crappy debug file function. I removed the readme tab. Oh and I added an option to save the call after its finished. I changed the file save to include the date. I still don't know why I did this? Hmm what else, don't know I've got the flu so I'm not really that switch on at the moment. Mostly I concentrated on the bugs from version 1.1. If your happy with version 1.1 I wouldn't bother changing if I was you.
oki doki !!
thanks dude
Thanks Slothie, very nice job
still, Record Outgoing Calls it's not working for me
it's unchecked all the time
eac said:
Thanks Slothie, very nice job
still, Record Outgoing Calls it's not working for me
it's unchecked all the time
Click to expand...
Click to collapse
Ok you'll have to help me out here? What is the device you are using? Also what ROM. So if you check record outgoing calls it unchecks itself?
I downloaded v1.2 and the following issues occur:
1) Record outgoing calls box is ticked but then unticks itself. I finally got it to stay ticked but no outgoing calls being recorded.
2) unable to delete recorded calls. Message pop up says System File, Access Denied.
When I first downloaded v1.2, outgoing calls were being recorded than above issues started occurring.
Downloaded v1.2 due to the Record Call Yes/No option.
Will download v1.1 for now.
I have a Diamond (cdma)
-------------
Slothie said:
Ok I'll fix this just as soon as I shoot the people that tested this. In the mean time I would recommend trying to set this in the registry directly if you can't wait until tomorrow. The setting are in Local Machine\Software\Inta\ACR and the value should be set to 'True'. With a capital T.
Click to expand...
Click to collapse
What caliber do you need? j/k
I will try the registry change.
Do you know why I cannot delete recorded calls?
Thanks and welcome back.
Hope your daughter is ok.
Scratch that! I think I found the problem. I just uploaded a newer version. Cheap and nasty style as I'm sick as a dog.
Oh thanks Biker, she is fine now except we all now have the swine flu as the hospital was overrun with infected patients. Little price to pay though as she is now walking again!
Can't delete recorded calls? As in they are read only?
Slothie said:
Ok I'll fix this just as soon as I shoot the people that tested this. In the mean time I would recommend trying to set this in the registry directly if you can't wait until tomorrow. The setting are in Local Machine\Software\Inta\ACR and the value should be set to 'True'. With a capital T.
Click to expand...
Click to collapse
I have set the value to 'True', but I still doesn't work. I saw that version 1.1 was removed, could this be reupload?
Thanx.
It's obvious but just in case, the registry value change to "True" is done to "RecordOut."
Slothie said:
Scratch that! I think I found the problem. I just uploaded a newer version. Cheap and nasty style as I'm sick as a dog.
Oh thanks Biker, she is fine now except we all now have the swine flu as the hospital was overrun with infected patients. Little price to pay though as she is now walking again!
Can't delete recorded calls? As in they are read only?
Click to expand...
Click to collapse
As they say, if you wanna get sick, go to the hospital!
Good to hear about your daughter. She will now have to take care of you
I can play back recorded calls but I cannot delete them.
Says System File. No Access.
Thanks.
Btw, made the registry change but box still unticks itself.
UPDATE:
v1.2.1 is working fine
Corrected the Record Out and box stays ticked.
In regards to not being able to delete any recorded calls, the following occurs:
I go to delete and and it asks me if I want to delete the call? I then click Yes. I get the Pop Up Message that says System File, still want to delete? I click Yes. I then get a message saying Access Denied.
BUT
when I exit the call log screen and I go back to the call log screen, the recorded calls that I could not delete ARE deleted
Edit:
I went to delete recorded calls but this time when the Pop Up asked if I want to delete specified call, I clicked Yes (as I did before) and when the System File pop Up appeared I just exited the screen.
When I returned to the call log screen, the calls were deleted as before.
Sorry for any redundancy but I want to be as specific as I can to help solve the problem.
Thanks.
thanx 4 rthat piece of soft...
will test on my diamond touch 2 now ;-)
Tested! Works fine even with both the incomming/outgoing calls and the final confirm!
Only two things:
In portrait mode would be useful to have a scroll bar since I can't see all the options in main page!
Can you put an "OK" in the low bar instead of use "X" in upper right corner to exit???

Send SMS Text Message

Hi Everyone,
I'm making a WinMo app that will help all those affected by Alzheimer's Disease, as well as its related illnesses. More information is at
JamesGeddes.com/TrackNan
It sends an SMS text to 1 or more mobile numbers when the patient goes outside of the GPS boundary, the only trouble is I can't work out how to get it to send SMS Text messages!
Any help would be fantastic as it will help this most worthy cause - I'll even come and buy you a drink if I can!
Thanks everyone!
James
Hey,
Is this program going to be run on Windows Mobile based phones / PPC or on a Personal Computer?
If it is on a phone, your choices are:
Using .NET CF:
Obtain GPS data (if a class is provided, i am not sure) and based on that data create an OutlookSession and Send a SMS with Microsoft.WindowsMobile.PocketOutlook
P\Invoke a C++ Method (http://msdn.microsoft.com/en-us/library/aa920513.aspx)
Using C++:
Use the methods i just mentioned before, except in a true C++ environment.
Otherwise, I have developed an application called CMail which will send SMS for you when it is run (Check my Signature for some of my projects) All you would need is a way to gather the GPS Data.
If it is on a PC:
I would reccomend looking up pre-set servers that send out SMS and make an app to link to those (just google and you will find ) ...
or you can send 'Email SMS' to phones.... IE: my number is 111-222-3333 and i use Tmobile...so you would email it to [email protected] (or .net? I cant remember)... THe list of these emails IS online
I hope this helps! (I think you are making a program for a great cause!)
Good Luck!
Hi,
I'll be running it on my HTC HD2, so on a Windows Mobile Phone. I'm working in C# and Microsoft have been unusually kind and given GPS code away with the WinMo6 SKD, so thats all good, however I just can't work out how to send a text!
Thanks!
James
It is really easy actually!
Just add a reference to your project for Microsoft.WindowsMobile.PocketOutlook. Then use the following:
Code:
SmsMessage x = new SmsMessage(RECIPIENT NUMBER, BODY);
x.send();
And that should do it!!
Hope this helps
I've use the following code
Code:
private void btn_send_Click(object sender, EventArgs e)
{
SmsMessage x = new SmsMessage(tb_Number, tb_Message);
x.send();
}[code]
However it returns
"The type or namespace name 'SmsMessage' could not be found (are you missing a using directive or an assembly reference?)"
What's going wrong?
OK, I got that working, I just forgot to put this at the top!
Code:
using Microsoft.WindowsMobile.PocketOutlook;
How do you send to multiple numbers though? I've asked the user to give me 3 mobile numbers in coma separated format, does that help?
well you can do a foreach loop
...
SO the user gives you 3 numbers :
123-456-7890
098-765-4321
132-465-7980
Store those to a String[]
Code:
string[] numbs = {1234567890, 09876543210, 1324657980};
foreach (string numb in numbs)
{
SmsMessage x = new SmsMessage(numb, BODY);
x.send();
}
That should do it. I had a few issues when i tried this with my program that i am upgrading ... It may give u a ArgumentException Invalid Address, but it still sends the SMS. To get rid of this just do the following:
Code:
string[] numbs = {1234567890, 09876543210, 1324657980};
try
{
foreach (string numb in numbs)
{
SmsMessage x = new SmsMessage(numb, BODY);
x.send();
}
}
catch {}
I found that sending an SMS took a little while - not too long, maybe about a second or something; but if you're sending to lots of people, the application may stop for a while.
I thought it would be better to use the "for each" idea Cyclonezephyrxz7 mentioned, and put it in a separate thread. I had alsorts of fun with it, but I found the answer.
I wrote something about it here:
http://forum.xda-developers.com/showthread.php?t=630537
I can post the code if you like (I've not got it here), but I wrote it in VB - it should be an easy port.
What this does is to allow your app to continue, while in the background the SMSs get sent - then the code raises an event when done.
Let me know, ok?
Paul.

[APP] Resident Mort - Scary Good, not Scary Evil

*Anyone get the reference? Haha*
Resident Mort
The Scripter's Companion​
Current News / Status:
Resident Mort is currently Under Development
Resident Mort is planned to be a background EXE that will extend the functionality of MortScript available to developers through the usage of the "PostMessage" function.
Resident Mort is planned to extend functionality by adding extra, possibly more complex, functions or even adding in the ability for more complex GUIs.
Features (Green = Implemented, Blue = In Testing, Orange = Planned, Red = Failed):
GetProcessList - Gets a list of Running Programs
GetRecentApps - Gets a list of Recent Apps (10)
CreateScript - Creates a MortScript with the provided info
MakeFile - Makes a file of any kind with the provided info
MakeFolder - Makes a folder at the specified location
RegToEvent - Registers a File to an event​
UnRegFromEvent - Unregisters a File from an event
IsIdEventRegistered - Checks to see if a File is registered to an event.
DispImg - Displays an Image to the screen [and gets where the user Presses]
MakeForm - The Initial call for setting up an 'advanced GUI' form
FormAddObject -A Call that will add one of the predefined objects to the form being created
DeployForm - The Final call for setting up an 'advanced GUI' form, displays it to the user
This application is being made for MortScripters, to possibly make some projects easier. Since I don't use MortScript so much any more, I do rely on you the developers who use MortScript, to tell me what you want in the program.
Since I have a good deal of Functions there, I will commence work on a primary release
Saved For Future Use - Features and Screenshots
like the idea! advanced guis would be very useful
so this is a compiler? I am not sure what this is about
-sorry
No, this is a Resident App, an EXE that is always running in the background. It will have certain functions in it which can be accessed by MortScripters.
All the functions can be called with PostMessage ( I will provide documentation on how to do so, when I make a first release ). Then the results will either be written in the REGISTRY, written to a FILE, or copied to the CLIPBOARD (depending on how the scripter wants to handle the task).
Does this clarify it a bit?
Thanks for sharing!
A small update:
I am using this 'decent' planning utility, to help me keep track of my growing projects. According to this utility, the program is close to 30% complete. Then again, this is just a 'decent' utility haha. I would say, in my estimation (since some Code is "Copy + Paste"), I am close to 60% to 75% done.
A small change in my plans:
While I originally had the intentions of making this program as simple as a PostMessage in MortScript, I found out the following two Limitations:
1) MortScript's PostMessage/SendMessage only support(s) sending Numbers in the wParam and lParam parameters...very disheartening.
2) Due to #1, I made an assistant EXE, which would be run instead of calling PostMessage [this way I could do it Natively in my own control], but it is MUCH harder to transfer data between two applications that I would have thought! Due to Virtual Stacks and Memory Allocation 'rules', I couldn't EASILY do this.
So Here is my change:
In order to use Resident Mort, scripters will have to do about 3 or 4 commands to run. The only real commands that need to be used are PostMessage and RegWriteString (Did I get those right?).
In any case, my Resident Mort will read the Registry for corresponding wParam and lParam values and use those [in the future I will attempt Clipboard integration, to avoid Registry Interfacing].
When I release this program to the public, I will try to include a MortScript file that shows how to use all the functions. I don't remember much of MortScript [unfortunately], but I was thinking it could be helpful to make a "Library" of MortScript functions so a script will only have to call that function. But that is if some kind dev. would like to help out later on
Anyways, Thats that for this update. Expect a result in the coming week.
That sounds interesting for adv. gui functions.
Cyclonezephyrxz7 said:
1) MortScript's PostMessage/SendMessage only support(s) sending Numbers in the wParam and lParam parameters...very disheartening.
Click to expand...
Click to collapse
That's not MortScript's fault, it is design of whole Windows CE kernel, more here
I'd go with background EXE, that would listen to messages WM_USER+somenumber, maybe even region (for different actions, so you'd have both lParam and wParam free for another parameters). If you need help with this part, drop me PM on MSN, I had to study this a bit in the PinchToZoom project myself.
@OndraSter : Yeah, I know that Windows CE has limitations, however it is not impossible. Such an ability could be implemented in a code-update to MortScript. I did my reseach (if you look at #2, I mention that I found it much harder to transfer data between exe's that I had hoped) and found that you can transfer data via SendMessage (the Synchronous method) using a TRANSFERDATASTRUCT and WM_COPYDATA. If MortScripts interpreter could identify a SendMessage with a String value in either wParam or lParam, then it would create such a structure and transfer it, the receiving app would HAVE to take care of deleting the data though, or you have mis-used RAM.
As for how it is going to work now, I did not consider using WM_USER + a value, mainly because my program won't be using other Messages, and will only act if the correct wParam/lParam are provided (preventing accidental execution if the System decides to post a message with the same ID). I have it mostly covered, and I am closing in on finishing (currently with Reg data retrieval only, no Clipboard yet). I have completed 3 of the 7 Proposed Functions (MakeFile, MakeFolder, CreateScript) and I would have finished RegToEvents, but I got sorta lazy hehe. DispImg shouldn't take me more than a few minutes when I get to it, and once I get the API calls for Processes and figure out how to read the MRU reg-entry, I will have the last 3 complete!
As for Clipboard data retrieval, unless I am using the entirely wrong API calls, MortScript has an interesting way of using the Clipboard...I tried copying simple strings like "hello world" to the clipboard using MortScript, then trying to retrieve them in my Resident Mort, but the clipboard always comes up empty... Any ideas anyone?
Thats that for now I am about ready to release....any other functions you want implemented?
As for how it is going to work now, I did not consider using WM_USER + a value, mainly because my program won't be using other Messages, and will only act if the correct wParam/lParam are provided (preventing accidental execution if the System decides to post a message with the same ID).
Click to expand...
Click to collapse
http://msdn.microsoft.com/en-us/library/ms644947(v=VS.85).aspx
Good idea, the only downside being that it will generate the Message Numbers each time it is run... It is not assured that the Post / Send Message MsgIDs will remain constant.
Thanks for the link however
Cyclone,
Sorry about taking so long to post here...
How about, when the BT is on, this reports what is "out there" based on what the BT stack is telling you.
That is, it should read the surrounding area, then report that is saw my BT dongle. In the car, it should report that it saw my BT GPS unit.
Then, I can use that information to change my profile. That is, when it sees the BT dongle, regular phone calls. When it sees the BT GPS unit, run speaker mode, or connect to the GPS unit for phone calls.
Thanks!
--Ironhead
P.S. it would need to support the Touch Pro 2, Rhodium (my understanding is that it is Widcomm BT stack)
I"ll see what I can manage. I am really 'grid-locked' in my work on a couple of projects already So a release of this may have to wait a while....Sorry
I wish I had caught you a little sooner...
AutohotkeyCE may be a better base to work from than Mortscript...
http://www.autohotkey.net/~Micha/AutohotkeyCE/html/index.htm
In fact... AHKCE should be able to cater to all of your needs without the separate resident app
Yeah, I have seen that before. This project is really just a little challenge for myself to expand upon MortScript [because I know it is widely used].
Thank you for the link/suggestion however
I've been playing with Mortscripts for a while, I'm really thinking I can do everything I want, right from there...
EXCEPT:
Actually getting the information from the BT stack. I just need to see if there are any registered BT devices around my phone (so I can tell if I am in my car, at home, at work, etc.).
--Ironhead
Bumpity bump!
Hehe...Yeah, sorry for the lack of work on this. Check out FFP_LockScreen. I am working on a new release. I have very little time now, and I can't manage more than just one or two projects at a time. Once I release FFP_LS 3.0, I can devote some time MAYBE to this project. It all depends on how quickly the XDA-Marketplace idea takes off.
Sorry =\
I you can add a tool to make an GUI... it s must be soo cool...

Hardcoded Password in GPS Library

Hey everyone, I've been a lurker for quite sometime, so I'm finally posting something. This is isn't in any of the dev sections because this is my first post.
When I first got my GNex (toroplus) was very annoyed with the capabilities of the gsd4t gps chip. Static navigation makes it really hard to use the chip for telemetry projects and the 1Hz position update doesn't give me enough sample data for the things I'm working on. I decided to do some investigation to see if it was limited to the hardware itself or the driver.
I scoured the forum, and tried a bunch of apps, found datasheets and the what not and nothing really improved my situation. I decided to take matters into my own hands and poke around lib_gsd4t.so (stock).
With verbose logging turned on, I noticed an interesting looking entry.
Code:
Hello EE downloder !!!.
{sgee.samsung.csr.com, instantfix.csr.com}, port : 80
Y3Nyc2xsOmROTkw5NnN1, /diff/packedDifference.f2p3enc.ee, format 2
EE_DOWNLOAD: EE_Download_Init done.
EE_Download_Init - returned 0 !!!.
EE_DOWNLOAD: EE_Download_Start successful.
EE_DOWNLOAD:EE_Download_Scheduler started; server_address=(sgee.samsung.csr.com,instantfix.csr.com), port=80, file=/diff/packedDifference.f2p3enc.ee
...
The string Y3Nyc2xsOmROTkw5NnN1 really stuck out to me. The character set fit in the base64 space which for some reason or another, developers seem to think base64 encoded text is somehow a good way to make things more secure. I have seen this numerous times. To me, it just makes it more noticeable that someone is trying to hide something.
So I went ahead and decoded the string and got
Code:
csrsll:dNNL96su
Just to be sure it wasn't some string unique to my phone, I checked where it most likely came from, which is the lib_gsd4t.so and it is indeed there (@offset 0x1b7429).
What's so special about that string?
I'm almost 100% sure that it is the username : password combo for downloading the SGEE data. I'm guessing it is using a post request (anyone wanting to use wireshark to packet sniff this can confirm) because there are extra parameters being used to retrieve the data.
Have I tried to access the file with those credentials?
No.
Why am I posting this?
I thought it was funny that the username and password are hardcoded in the driver and written to the logs. What's the point of having it password protected if you're just going to tell everyone the account credentials?
My actual job involves application security and I used this as an example for the other programmers on my team as to why we shouldn't ever mistake encoding for encryption and if you try to hide something, chances are you are actually drawing attention to it.
Oh also, is anyone interested in knowing more about the library. I have figured out quite a bit
How odd!
If you've figured out the gps drivers maybe you know how to make an updated file to disable static navigation? I op'd this thread http://forum.xda-developers.com/showthread.php?p=38684789 based on the ics version, but would love an android 422 based mod.
I posted my modded drivers. It may also require new configs.
afrotronics said:
I posted my modded drivers. It may also require new configs.
Click to expand...
Click to collapse
Did you ever figure out the proper request? (curl or wget?)

Categories

Resources