I'm programming on a program that uses cell broadcast messages to determine your position. (http://gknavigation.de) - It was a project at "youth research" this year.
It is based on an idea of W.Back...
Now I want to get rid of a external gsm phone at the position determination, because the new Pocket PC Phone Edition have a integrated radio functionality.
I've written a small terminal-prog. for the XDA (http://gknavigation.de/beta.htm), which let's you sent modem-command into the gsm and recieve replies.
On the XDA2 it is working well until the line "AT command interpreter ready" is displayed on the terminal. After that common AT-commands like "AT+CBC" won't work any longer, and result with an "ERROR".
The line (and the errors as result) seems to apear after a few seconds the port is open.
I think I have opened the port and initialized the shared use of the gsm serial communication well. :?
Check out that Sourcecode please:
The .DLL-file-project, which is written in C++ and opens/closes the port:
http://mcflown.net/eVC/XDAcom_func/
The visual basic project, which is for reading and writing operations, and user interface:
http://mcflown.net/eVB/XDAterm/
Greeting and sorry for the hopfully not thaaat bad englisch!
F. Wetzel[/url]
Hasn't really nobody any suggestions?
:?
Florian
Summary
Hi,
Just wanted to let you know that I will have alook and see what I can do
for you.
Have you got a break down of what you are trying to achieve
Click to expand...
Click to collapse
A summ ups are written in German, sorry!
But i will try to describe it briefly:
My prog recieves the messages of the cell broadcast channel 221 by a mobile
phone connected via any inteface. (Bluetooth, IrDA, RS-232)
In Germany this channel contents data about the position and sending
direction of the mobile (fix installed) stations. With some (or many) tricks
i'm able to determinate your own own position up to a 50 meters. (in best
case - depending on the number of installed stations)
This is drawn on a map.
The prog is running under PPC and PC, but the PC version is less
interesting, because the PPC is more portable.
Newerdays, the PPCs have a integrated GSM radio module, so that it should be
possible to recieve those CB-messages vie the internal modem.
By that the users of XDA/MDA/... in Germany would get an alternative to GPS
for navigation/orientation without buying new hardware!
Lateron this prog is perhaps compatible with Tomtom. - I'm checking how to
do it!
Greeting, and thanks in advance!
Florian
hey xda internal access
Hey man i must say i respect you , you have done great work !!!
I am currently working on xda2 as university project and i need to access internal modem of xda ... so might need ur help ... i would wanna help u too and i probly will ... just letting u know i'll try a bit on ur prob and get back to ya ...
any advice ou can give me to access the internal modem ??
great job ! talk soon
On the XDA2 it is working well until the line "AT command interpreter ready" is displayed on the terminal. After that common AT-commands like "AT+CBC" won't work any longer, and result with an "ERROR". Crying or Very sad
The line (and the errors as result) seems to apear after a few seconds the port is open.
I think I have opened the port and initialized the shared use of the gsm serial communication well. Confused
Check out that Sourcecode please:
Click to expand...
Click to collapse
after read your source, i think:
- set Sleep time between each other AT commands > 100ms for response time of GSM modem
- try to close the com port and re-open it before sending another AT-command.
- try to use only RIL port or COM2, don't open them and use them at the same time.
hey i read through the code its good but i dont see how u get "AT Interpreter Ready" in the VB app ... i looked hard !!! can anyone enlighten me ??
I guess "AT Interpreter Ready" is the answer from device.
AT Interpreter Ready is sent by device after radio resets itself. You should never see this reply.
ok - when i get "AT interpreter Ready" from my terminal it allows me to send an AT commands, so in a way i'm guessing that i should get it -
Indeed it happens when the GSM resets does anyone have more explanations on how it appears ???
i get "AT interpreter Ready", too.
Compile
Could someone compile the DLL and EXE and post them here in one zip? Would save me having to install Visual Studio !
Related
I don't know where else to post this....I found this while looking for an alternative to the SPV Developers CellTracker app. It's an app called NiceTrack...the screenshots tell the rest of the story:
http://www.nicecuppa.com/nicetrack.asp
Background info: http://www.ascendingangels.com/nicecuppa.com/nicetrack.asp?story=1
Screenshots: http://www.ascendingangels.com/nicecuppa.com/nicetrack.asp?story=2
Download: http://www.ascendingangels.com/nicecuppa.com/nicetrack.asp?story=3 (Version 1.2)
The source code for that app can also be downloaded from the Background Info link.
The SPV Developers CellTracker app (Beta version only, hasn't been updated since December) for PocketPCs is located at the way bottom of the page:
http://www.thelogster.34sp.com/celltracker/
NiceTrack updates the tower changes in real-time whereas CellTracker does not. NiceTrack also shows the dbm signal strength on a cool chart and it also includes a logging function that allows you to rename the cells your phone has connected to while the app is active.
Signal strength chart: http://www.ascendingangels.com/nicecuppa.com/images/nicetrack/main-page.gif
Here are a couple hints based on my experience so far:
1) In order to fully save the renamed/logged cell sites, you must first tap Save next to where you renamed the cell site. Then you must also tap Options/Menu --> Save (extreme lower left) to save all changes since the app was launched.
2) Use Menu --> Exit to completely close the app.
I have tested this for use on my MDA II w/Windows Mobile 2003. I don't know if the app is compatible with WM5 PPCs or regular Windows Mobile smartphones.
Enjoy
Thanks for posting.
This software has been discussed before, and it is great:
http://forum.xda-developers.com/viewtopic.php?t=3347&highlight=nicetrack
However, I believe people are having difficulty converting it to WM5 (when I last checked). But great stuff either way.
V
Hi there,
Sharpstuff (NiceTrack author) here..
I've just bought a T-Mobile MDA Vario and have managed to get it working on that ( WM2005 )
The problem was that in the older phones the GSM modem was on COM2 and on my Vario it's now COM9. I've made the Com port configurable now, but it's still not 100%.
You can download it from my site www.nicecuppa.net
Let me know how y'all get on.
Cheers
-sharpstuff
Good stuff sharpstuff Wish I had a gps!
V
sharpstuff said:
Hi there,
Sharpstuff (NiceTrack author) here..
I've just bought a T-Mobile MDA Vario and have managed to get it working on that ( WM2005 )
The problem was that in the older phones the GSM modem was on COM2 and on my Vario it's now COM9. I've made the Com port configurable now, but it's still not 100%.
You can download it from my site www.nicecuppa.net
Let me know how y'all get on.
Cheers
-sharpstuff
Click to expand...
Click to collapse
Sharpstuff, you have an excellent app here. I had to search for a bit to find it but in the end, I'm quite glad to have it . I also like the pun you have for your site...it's quite distinctive since even as a German-American, I know when someone says "cuppa", they normally mean the cup of tea .
Keep up the good work and thanks for taking the time to develop such a great and invaluable app .
oooh.. *bookmark*
Do you have a regular Donate button somewhere? I see the shop, but I'd rather just get X amount straight to you, and not have to be awoken by some crazy delivery guy at 8am for a mug
Thanks for the kind thought...
But, I enjoy doing this stuff, so just click my google ads and I'm happy!
;-)
Got this to work on my 8125, almost... Clicking on 'add' under events causes it to crash with the following error:
NiceTrack.exe
NullReferenceException
Application::Run+0xf
MainForm::Main+0xa
....bummer - so close!
You need to select an event type eg. "Flash backlight" then click "add"..
Needs some validation there.. Plus, the events side of things isn't very useful at the moment, I need to implement some more event types.
Cheers
I installed it on my qtek9100 but it doesn't find a GSM-modem at all.
Also a Qtek9100, EN - found it on COM9 just fine
What would be really neat would be an event "Show Picture". That way it would be easy to make a make-shift map tracking thing. Simply grab a picture of the map off the internet, plunge a big dot on the map where you got the cell, save as image, and have that image displayed when entering that cell %) GIF files on the storage card, shouldn't take up too much space
Alternatively a full-fledged mapping thing could be developed, but that's a lot more work *nod*
@sharpstuff hey I installed it on my XDA EXEC, but when it scans for com and reaches com9 it just freezes...any ideas?
Hi there,
I'm having some problems with the detection code, and general functionality on WM5.
I am looking into it and will post a new version up ASAP, sorry for the problems..
stop being sorry and add that donate button *keeps clicking google ads once a day but hopes google won't start ignoring his IP address for excessive clicking...*
N!co said:
I installed it on my qtek9100 but it doesn't find a GSM-modem at all.
Click to expand...
Click to collapse
After a soft reset its working fine on COM9. Nice app.!
sharpstuff said:
Hi there,
I'm having some problems with the detection code, and general functionality on WM5.
I am looking into it and will post a new version up ASAP, sorry for the problems..
Click to expand...
Click to collapse
So is Release 1.3b a partial fix for WM5 users? I installed it on my MDA II and it detects my modem on COM2 without any problems. Both 1.2 and 1.3 seem to work on WM2003 PPCs.
http://www.nicecuppa.net/
http://www.nicecuppa.com/download/NiceTrack_Release_1_3.zip
TIA
Yep, it's an intermediate release. Basically, it reminds the user on startup to set the Com port in settings
I'm working on v1.4 at present, this has more error checking on the GSM code, and multi-threaded com port detection so the whole app doesn't hang
For what it's worth - it seems to randomly lock up on me - requires an 'end task'. Sometimes when this happens, and I try to fire it back up again, I just get an empty message box dialog; no title, just the close button.
ZeBoxx said:
For what it's worth - it seems to randomly lock up on me - requires an 'end task'. Sometimes when this happens, and I try to fire it back up again, I just get an empty message box dialog; no title, just the close button.
Click to expand...
Click to collapse
I get that messagebox at random even after I closed the app and its not in the list of running programs. Strange...
Hi. I am writing a freeware social networking application based on location services ( http://www.fightersoft.ro/mts/index.htm ). Although many devices are supported, it seems that the HTC TyTN isn't. To that end I acquired one and now I am on the quest on getting the cellid in my application.
The approach that should of worked was the COM port. However, no matter what COM port I open, I get a create file error. I am guessing that maybe the internal modem uses a weird port name such as COM550 or other letters instead of COM. I know that another way of getting the cellid is by using ril.dll (or even getting the handle to the gsm modem com port). However, in WM5 this is not documented at all on msdn.com - BUT for WM6 there is documentation.
Firstly, I want to ask anyone if they have extra information about this issue and secondly if by upgrading to WM6, the using the COM port approach works from the box (usually COM9)?
hi, I tryed many programs, which have actually support for cellid information, but no one work on herm, no matter if it was WM5 or WM6. on all phones, I had before it worked correctly... phone alarm also have this functionality, but shown only something like 00-00...
This is so frustrating. Every mobile device with GSM capabilities has a GSM modem insinde. That modem SHOULD be accesible from the OS by the means of COM ports. My guess is that this port is hidden or under a different name than the rest of the HTC devices where it resides on COM9.
CommMgrPro shows Cell Id and Location Area Code correctly on TyNT
I started this thread in the hopes that people will contribute with ideas towards getting this task done. Can you reveal any technical information on how you get the cellid information?
stargatesg1 said:
I started this thread in the hopes that people will contribute with ideas towards getting this task done. Can you reveal any technical information on how you get the cellid information?
Click to expand...
Click to collapse
Sure. Ril.dll gives you access to this information and works properly in WM5-WM6. And technically is easier than manager serial drivers......
Documentation isnt included in WM5 so it isnt "official" but realky It is included. The only problem for "not official" issue is you wont get support from microsoft....
Ask me what you want...
stargatesg1, if you have searched the forum, you'd already have the answer. For instance, this thread:
http://forum.xda-developers.com/showthread.php?t=280476&highlight=cellid
has a reference to RIL API. And I do remember I told you this some months ago in your another thread...
Here it is:
http://forum.xda-developers.com/showpost.php?p=1040464&postcount=27
It was at October 26 last year!
Basically I only need the cellid and the lac. I found that msdn.com offers documentation for ril.dll for WM6. This also works for WM5?
From what I learned from msdn.com is that I should do a ril.initialize first and then I should get the cell info using a fuction that I can't remember right now. Is this approach correct?
Lurker0, I know about this approach (I have mentioned it in my first post) however, I need more information because c++ native is not my primary envoirement for developing. That's why I kept searching for a way of getting the lac-cid from com ports so that I could do it directly from managed code.
stargatesg1 said:
Basically I only need the cellid and the lac. I found that msdn.com offers documentation for ril.dll for WM6. This also works for WM5?
From what I learned from msdn.com is that I should do a ril.initialize first and then I should get the cell info using a fuction that I can't remember right now. Is this approach correct?
Click to expand...
Click to collapse
Exactly. I downloaded Platform builder to have includes and libraries.
1) Initialize Ril
2.a) Request Position explicitally using a RIL_gettowerinfo
2.b) When you initializa Ril you can pass a callback to be notified upon location changes....
Did you read the source code for RIL interface that I pointed you to?
danielherrero, I see. Regarding the callback function is not neccessary in my app - the user or the app set on auto mode searches for changes in location. Thank you very much for your info.
Lurker0, yes I did, but like I said, I am not a very experienced c++ programmer and I need some documentation to get me started. I am also very greatful for your help and I am sure that I will use information from rilclass.cpp.
Thank you both, I will post back with the results as soon as I will have any.
Good luck
Hi StargateSG,
Did you succeeded in getting MTS working on Tytn?
Rgds
I had to leave the country on a business trip. I'll get back in a few days and I will start working on the problem.
danielherrero said:
CommMgrPro shows Cell Id and Location Area Code correctly on TyNT
Click to expand...
Click to collapse
Does nothing on the Blue Angel.
Hi all,
Here is the program to show the current CellID and Rxlev.
1) the cell database 2G.txt & 3G.txt should be placed to the root dir.
2) the site info. & SC are selected from the txt file base on the CellID
If you got any bugs, please report, I will try my best to improve (if I can) ....
sorry, I am not a professional programmer ....
More information that I only test it on HTC P3600i phones, it should be work on Hermes ....
Ок, I have idea.
Lets develop Today Plugin that display Cell ID and comment (Cell ID 20001 "Home" or 200201 "Work")
So, we get GPS-Cell!
P.S.: On my Wizard I have a problem - program work - when start - "Program will be closed" and too many error messages
P.P.S. Before error i see BS info - program work - but 1 or 2 sec only...
Good Idea, I wish to have such a Today Plugin.
i have same problem:
Error says: Install NETCFv35.Messages.EN.wm.cab
Kpyto said:
Ок, I have idea.
Lets develop Today Plugin that display Cell ID and comment (Cell ID 20001 "Home" or 200201 "Work")
So, we get GPS-Cell!
P.S.: On my Wizard I have a problem - program work - when start - "Program will be closed" and too many error messages
P.P.S. Before error i see BS info - program work - but 1 or 2 sec only...
Click to expand...
Click to collapse
The Capture Screen
The program crashes in my device too (SPV m700 / HTC 3600)
Seems cool, by the way. Reminds Celltrack on tornado...
The 2g.txt & 3g.txt must copy to c:\
eg. c:\2g.txt , c:\3g.txt
sourecode
Hi,
This looks really good!!! .
I've been trying to do this myself for the last few days as a mini project and I keep ending up down dead ends! Could you possibly send me the source code or perhaps some hints on how to get started!!!!
Thanks !!!!
Can you get me sourecode? I am learning about this.so,help me!
sourecode mail to me?Ok. [email protected]
frank8080 said:
Hi all,
Here is the program to show the current CellID and Rxlev.
1) the cell database 2G.txt & 3G.txt should be placed to the root dir.
2) the site info. & SC are selected from the txt file base on the CellID
If you got any bugs, please report, I will try my best to improve (if I can) ....
sorry, I am not a professional programmer ....
Click to expand...
Click to collapse
Amazing work Frank!
I'm writting an open source app named RemoteTracker (http://forum.xda-developers.com/showthread.php?t=394203) and I would like to use your code inside this project. If you agree please contact me.
Cheers,
Joubert
Hi IT people,
Handy Sniffer v2.0 has been released! It is cardinally altered.
11 protocol parsers are included and now anybody can develop new packet analyzers (.dll).
Unregistered version has a little restrictions but has no trial period.
You can find the program and module sample on our site.
http://winm-soft.atspace.com
Good Luck!
Great Release
Congratulations Alex, you managed to make cellular trafic capture, it's great news! Sorry that i didn't replyed to you about 1.6 but I had some personal problems that time. Anyway when we might expect WM5/6 version?
HS2 is specially designed for WM2003, WM5, WM6 and maybe smartphones (not tested). If there are some artifacts, ect. write me about it. I have WM5 and WM6 devices and HS2 and EDh work well. Play it! It is very great If anybody makes some additional protocol parser. Any ideas? Maybe some Instant Messenger protocol?
One more sample module
This is a sample module that can process each packet captured by sniffer. It replaces the main program module ("modules\hs_ether.dll") and calculates some Rx statistics. Maybe its source can be interested for somebody.
The link not work, now!
I clicked the previous link and all is ok. Copy is here.
Greetings AlexB,
I downloaded your program which sounds great. I installed the SDK certs and tried to get hsniffer running but it fails with an error message:
"Cannot activate the driver!" and then quits.
I'm using a HTC Kaiser with the latest official WM6 ROM from HTC.
If I start the program a second time, it starts without this error and if I click File->Tools->Adapters I get my adapters listed. Trying to start a capture generates the following error message: "Cannot get adapters list!"
Any hints? Did I miss something?
Hi c0rnholio,
I do not know why on some devices the sniffer cannot load the driver module (Windows\hsdriver.dll). The error 2 happens (ActivateDeviceEx, GetLastError, ERROR_FILE_NOT_FOUND) and next you see "Cannot activate the driver!". After this message the program works (you can open sample files) but cannot perform sniffing functions those need driver functionality. I think after this message the main window was behind and after next run you simply bring program window to top.
If anybody knows what causes such driver loading error I will be grateful for help. The program and driver are signed with SDK privileged certificate and it unfortunately does not help... **** happens.
Fixed it. The problem was that a GPRS connection was already established. After closing the existing connection the driver could be loaded and everything is working fine.
It is VERY strange! OK, if anybody ask me why HS does not work I'll say ask c0rnholio how need to do...
Hi,
i'm trying the new Handy sniffer into my TouchHD (Blackstone) but i can only get ARP packets (which are broadcasted). I also installed sdkcert as site advice, but nothing changes.
Alex, can you write down a list of devices which can capture in promiscuous mode?
In particular, how about Trinity and Blackstone?
Thanks!
sorry for my ignorance but what is the purpose of this? can i connect using gprs for free?
No, it's not for that purpose.
Handy Sniffer "Sniffs" (listen to) the traffic into a network. If working in "promiscuous mode" it can track down (and show to user) all the traffic (data in form of TCP packets) inside that network.
What's is supposed to?
There are many uses for this kind of tool, some legal and some ... "not legit".
While "sniffing" traffic of a given network, you can detect if someone is doing a unrightful use of the network, if an intrusion is being made, but also you can see passwords and other sensible data (like personal data).
It's like having a big hear cabable of listening network traffic. By itself, it can do nothing. It's up to the user to be capable of understanding packets of captured traffic.
So, forget a "stole the passwords" button. You'll not find it
woring with the HD2?
Hi, I have the HTC HD2, and I want to know if it was working with my phone?
I have actualy tried it, but the result was not good... (I only get ARP...).
thanks for any help
good for you guys, with my the HTC Kaiser I don't get anything...how do you do/set up the program
Thanks,
DOMy
Hi All,
Is there a tool which can get Cell id and LAC from command line for it to be used by other apps
Say I have script (mortscript)
Then I can call <Cellid APP> and get Cellid location where the device is
Then take action based on the Cell id.
Idea is to track the phone and let the owner know where all the phone on a web page.
I go from HOME -> LOC1 -> LOC2 ->Office (everyday)
Incase phone shows a path HOME -> LOC1 -> LOCX -> <UNKNOWN> .. the send a TEXT(SMS)/update page etc ... to alert the users.
Kind of way to make your phone secure.
Any suggestion if it can be done with any exiting tools and mortscript etc ...
http://www.xs4all.nl/~itsme/projects/xda/tools.html
has something called riltest ...
riltest - dumps all kinds of info from the phone via ril
But the zip files does not have this file... Could any one let me know if this file is available any where else.
Ok Got a riltest from Another forum which does similar ... ALMOST....
what it can do is dump all to a LOG file ... I am using a Mortscript
1. Run the app
2. make app to dump logs
3. get the details from the file.
4. close the app.
Now loop this for with a sleep ...
But still looking for better way.. Attached is the file for anyone who is looking for similar stuff.
Hi,
I too was looking for something in this line and ended up writing it myself.
Props to this chap for the code to get me started:
http://dalelane.co.uk/blog/?p=241
Basically you call 'RilCmdLine.exe' with a parameter indicating what field you want. It returns the field as an int to MortScript (I think you need MortScript 4.3b1 or above?).
Supports LAC, Country Code and Cell Tower ID.
The zip includes a test mortscript - you may just need to edit the path to RilCmdLine.exe
(Source code on request. I may even support it )
Hope this helps!
onion
Hi
Thanks for the exe file. However I am unable to see any result when I run the exe/mscr on my mobile (HTC 3300 WM6). I did edit the path also executed from cmd line on mobile.
Also Mortscript RunWait and Run will not return any results as per the Mortscript doc. So the result has to be redirected to a file.
Could you please check and let me know if the exe is required to be executed with different parameters.
Thanks
What version of Mortscript are you running?
I had to upgrade to 4.3b2 to get the return code from the exe.
Get it here
http://www.sto-helit.de/index.php?module=download&action=view&entry=125
In the notes for b1 mentioned the return code functionality being added.
Hope this sorts it for you
Perfect !! Thats works perfectly ... I updated to MortScript you have suggested.
Excellent Work !! ... Really good. Thanks man
Will it be possible that if I don't pass any Command line parameter ... Can I get all the values... Like CELL ID, LAC etc ..
Glad you like it
Unfortunately you can get all the values at once (at the minute you can only return numbers from the exe, so there is no way to separate them).
My original idea is something along what you suggest - if I get that working I will post a new exe up here.
Thanks
Thanks onionfx! This is just what I was looking for as well. Trying to do something similar to what wishme said. ;-) The common profile switchers out there are not very useful to me because I'm more of in a rural area, and cell towers are farther apart, so my home and work cellid overlap sometimes, so I want to also take into account signal strength to see if I can fine tune it better. Will probably use Mortscript since it's the only thing I've learnt to code with for Windows Mobile.
I'm bookmarking this page to see if you eventually get the prog to output all in one line (and reduce the CPU churn of calling the same prog several times).
BTW, how about also returning nearby cells in order of signal strength? That would be awesome to fine-tune your location even more!
Good work!
Cesar
Doing some thinking about this
I can't see any way of returning all the values at once.
The C code can only return an int in the range -2,147,483,648 to 2,147,483,647 and my CellID and LAC are 5 digits each so if they ever started with a digit greater than 2 I couldn't return it.
The 2 best options I think are writing another exe that dumps the data either to a file, or to the registry in a similar way as riltest above, but without the UI part.
Then write a script that could be included, and which has nice subs to access each parameter (or you are free to write your own script calls to do this).
I'm tending to the file as I imagine reading from the registry is a bit slower than reading the file (in one go and storing all the params as variables)?
Also I can do less damage if I use a dedicated file!
Anybody got any better ideas, or has a good reason to use the registry?
Goodnight
Are we talking about GSM signal strength
REGISTRY entry: HKLM\System\State\Phone\Signal Strength (DWORD value)
More here: http://wiki.modaco.com/index.php/Windows_Mobile_5_Registry_Tweaks
Also is it possible to get all other the cellids at any point not the one phone is connected to ? I have not see any app providing this info.
Except for Google maps on mobile (without GPS) it uses triangulation technique to get the Latitude and longitude of a location with all cell id locations available. for this method to work we requires atleast 3 cell id.
Does RILCELLTOWERINFO gives details about other towers also ?
I wonder what the requirements are for the command line tool?
It locks up when I run it on my MotoQ smartphone.
onionfx said:
Supports LAC, Country Code and Cell Tower ID.
The zip includes a test mortscript - you may just need to edit the path to RilCmdLine.exe
(Source code on request. I may even support it )
Click to expand...
Click to collapse
I can't get this to work. I get "-1" for all 3 values. Anyone offer any reasoning as to why this may be? I believe my ROM includes .Net framwork, but I'm not sure how to check.
Thanks
onionfx said:
Basically you call 'RilCmdLine.exe' with a parameter indicating what field you want. It returns the field as an int to MortScript (I think you need MortScript 4.3b1 or above?).
Supports LAC, Country Code and Cell Tower ID.
The zip includes a test mortscript - you may just need to edit the path to RilCmdLine.exe
(Source code on request. I may even support it )
Hope this helps!
onion
Click to expand...
Click to collapse
Excellent work! Thank you!
Thanks onionfx for your contribution. I might need it for a use similar to the one described by wishme.