Share via


The Mobile Secretary

I often invite my friends out to see a live band, a movie, or some other function where I won't be able to hear my phone ring or be able to answer it.  Usually, there is always one or two people who don't exactly make it on time (sometimes that is me, but that's another story for another day) and end up calling me to find out where we are sitting or if the evening's plans have changed.  But, since I am not able to answer the call, they just get my voicemail.  Not too informative for them.

I'd like to introduce (or reintroduce, if you attended my session at MEDC 2006 in Las Vegas) an app that I call The Mobile Secretary.  This app allows your Windows Mobile device to automatically respond to a missed call with a custom text message and optionally with your current calendar information.  You can customize the messages for various groups of people as well.  What if someone calls from their home phone number?  Well, as long as you have a contact's various phone numbers in your contact database, the text message will always be sent to their mobile phone.

There are 2 standard groups that you start off with.  The "<Default>" group applies to a caller who can be found in your contacts, but has not been assigned to a group you created.  The "<Unknown>" group applies to a caller that cannot be found in your contacts.  You can create as many other groups that you'd like.  Contacts can only belong to one group at a time.

Sometimes I use a secondary mobile phone that has a different phone number from my main phone.  In this case, I usually forward my calls to the secondary phone so that friends can still reach me.  This works well until someone sends a text message to my main phone.   So, I added a text message forwarding feature to The Mobile Secretary.  Just enter in the phone number in which to forward to, and all text messages sent to your device will be resent to the other device.  There is also the option of appending the sender info to the message so that you know who it originally came from as well.

This is an enhanced version of the application that I used to demonstrate some of our .Net APIs that were introduced in Windows Mobile 5.0.  In addition to Windows Mobile 5.0, you'll also need the .Net Compact Framework v2 installed on your device.

I'll be posting the source code soon so that you can see how this app works as well as get a survey of the Windows Mobile .net APIs. 

Some of the managed APIs that are used in this app include:

  • The State and Notification Broker (SystemState Class)
  • Send a Text Message (SmsMessage class)
  • Sms Interception (MessageInterceptor Class)
  • Microsoft.WindowsMobile.PocketOutlook
    • Contact Class
    • Appointment Class
    • Custom Properties
  • SelectPictureDialog
  • ChooseContactDialog
  • Phone class

Hope you find it useful as an application, a sample, or both!

MobileSecretary.CAB

Comments

  • Anonymous
    October 23, 2006
    PingBack from http://www.writingonyourpalm.net/2006/10/23/windows-mobile-team-blog-the-mobile-secretary/

  • Anonymous
    October 23, 2006
    There&#39;s a lot of possiblity to create cool stuff like this on Windows Mobile . Devices are waiting

  • Anonymous
    October 24, 2006
    Great little application. How does the Manage Remotely work? It would be nice to add an email option instead to text messaging. Please post the source code soon...

  • Anonymous
    October 24, 2006
    I agree with Stephen Skarlatos - email would be nice...

  • Anonymous
    October 24, 2006
    Third that..  Email would be absolutely awesome..  Especially since I no longer use SMS.

  • Anonymous
    October 24, 2006
    Nice little program. Thanks! Is there a way to add multiple text preset in the near future? That way one can make a few SMS texts and activate quickly. Also I could be handy to be able to import the already available contact groups without to have to make new groups.

  • Anonymous
    October 25, 2006
    Recently posted on the Windows Mobile US blog, here's a really nifty little app that acts as your personal

  • Anonymous
    October 25, 2006
    Thanks for sharing this. Very handy.

  • Anonymous
    October 25, 2006
    Stephen Skarlatos:   To turn on the "Manage Remotely" go to the advanced options and then choose "Manage Remotely".  Enter in a small password or pin and then choose "OK".  You'll get a list of the commands supported. There aren't too many yet and are largely there as examples of how you could do remote management (code coming soon).   You can list the Mobile Secretary groups that are on your phone and then enable or disable them by sending a text message to your phone.   for example, to list all the Mobile Secretary groups you would text: LIST.<pin> where <pin> is what you chose.  your device will then reply back with the list of groups.  Then you can enable a group by sending: ENABLE.<group#>.1.<pin> and disable a group by sending: ENABLE.<group#>.0.<pin> you can also send CURRAPPT.<pin> or NEXTAPPT.<pin> and the devices current or next appointment will be sent back. Email would be great, but unfortunately, Email interception is not supported.  Unless you meant being able to send an email rather than a text message, that is totally doable.

  • Anonymous
    October 25, 2006
    Marc: Yes, that's a great option.  I'll put the ability to use SMS presets on my list of features. Using/Importing categories is one feature I am planning to add soon as well... As well as the ability to export your settings. Thanks!  And i'm glad that you are enjoying the app!

  • Anonymous
    October 26, 2006
    Yes!  Sending email instead of SMS would be awesome!  In my case, I got tired of paying money to get SMS spam, so I disabled it completely.  But being able to reply via email would be awesome since most of the people whom I'd be replying to are coworkers anyway..

  • Anonymous
    October 26, 2006
    Would it be possible to enable an SMS auto-response when ignoring calls?

  • Anonymous
    October 26, 2006
    Scott: Sure, using email would be just as easy.  I'll put that on the list.  Thanks! DavidM:   That should work today... When you ignore a call, it still registers as a missed call.  The Mobile Secretary will see the missed call and will respond.

  • Anonymous
    October 26, 2006
    Every time I run the progam I get an error message that states "a registry key need to be defined first before events are registered." How do you get the program to run in light of this message?

  • Anonymous
    October 26, 2006
    DH: What device are you running this on?  

  • Anonymous
    October 27, 2006
    I have HTC Wizard AKU 3.2, CF2SP1 installed I get error: File or assembly name 'Microsoft.WindowsMobile.Status, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35' or one of its dependencies, was not found

  • Anonymous
    October 27, 2006
    Whoops a ltitle late in reporting this but Brian Cross has finally posted up the binary files for the

  • Anonymous
    October 27, 2006
    The comment has been removed

  • Anonymous
    October 27, 2006
    Neat tool.  I am going to try it this weekend.

  • Anonymous
    October 27, 2006
    rkhomenko: I'll take a look and see what i can find out z: I'm looking to post the source sometime this weekend.   1, 2, & 4, thanks, i'll look into that... great suggestions 3: I have one of the buttons "cancel send" so that if you JUST missed the call, you can avoid the auto message.  This has been the most common option for me, because if i even see that screen, it means that i just missed the call.  Maybe the Call back option is best to have on SK1.  SK2 is a menu so that i can fit all 3 options 5: What do you mean by the "phone menu"?   6: There are no plans currently to put the Mobile Secretary into ROM.  For now, it's a nice sample (hopefully) :)   Thanks for all of the suggestions and feedback!  Source coming this weekend

  • Anonymous
    October 28, 2006
    Last week I posted an application called The Mobile Secretary . A little application that auto-responds

  • Anonymous
    October 31, 2006
    Brian Cross released a insanely cool application called Mobile Secretary for Windows Mobile 5 devices.

  • Anonymous
    October 31, 2006
    Your reply to rkhomenko was: rkhomenko: I'll take a look and see what i can find out Did you find a solution to the mentioned problem? I use a Universal with AKU3.2 CF2SP1 and get the same error message.

  • Anonymous
    November 01, 2006
    The comment has been removed

  • Anonymous
    November 01, 2006
    Marc: Not yet, sorry... I haven't had time yet... i will try and take a look this week... thanks for keeping me honest :) Z: #3:  Gotchya... i'll think about that one... i totally see where you are coming from... the app actually works on both pocket pc and smartphone, so maybe if i only put the buttons there if i know i'm running on a pocket pc.  thanks! #5: I'm not sure if i can do that, but i'll see if that is possible... i've just never tried that.   New #1: Yes... something that i want to change and will.  It is quite a nice waste of space, eh? :) New #2: Another thing that i'm not sure if we can do or not, but i will look into it... I had always thought of adding a log that would provide this from within the app... that way you could see what was sent to who and when. New #3: Sure, that can be an option, but it could be confusing to the user if they are getting read receipts... i guess if that's the only time they requested them it may not be too bad.  that's a simple thing to add. New #4: Windows Mobile will split the SMS into multiple messages, but having a character count would still be nice so that you can limit the number of SMSs sent... Tons of great suggestions... thanks!  looks like i'll have some fun with all of the suggestions. As for the source code... it's posted... go check out: http://www.wimobot.com/wmapps/mobilesecretary

  • Brian
  • Anonymous
    November 02, 2006
    hi i can't run this software on my device because it says not latest .Net Compact Framework installed on this device. where can i get this from? thanks.

  • Anonymous
    November 03, 2006
    Hey Harry: This is where you find the .NET Compact Framework 2.0 SP1 Redistributable http://www.microsoft.com/downloads/details.aspx?familyid=0c1b0a88-59e2-4eba-a70e-4cd851c5fcc4&displaylang=en

  • Anonymous
    November 03, 2006
    BCross, I've got many more suggestions for enhancing Mobile Secretary.  Let me know if you'd like to hear them all to see which ones can be incorporated into your program.  Here are my two that would make your Mobile Secretary stand out, in addition to provide developers with examples of how to create Today Plugins and mess with Bluetooth audio. New Item #5:  One of the things that would be nice (atleast for the 8125/8525) would be to have an item for the Today screen that would show how many SMS messages have been sent.  Of course this number would reset when the "missed called" flag in the title bar is cleared. New Item #6:  In this scenario I'm using a Bluetooth headset.  A call comes in, and either I ignore it explictly or just let it ring until it goes to voicemail.  Mobile Secretary sent an SMS messages as configured.  What would be nice is to have a an audio file play over the bluetooth headset that says "SMS Sent Successfully".

  • Anonymous
    November 09, 2006
    I have the same problem as DH: Every time I run the progam I get an error message that states "a registry key need to be defined first before events are registered." How do you get the program to run in light of this message? Any help?

  • Anonymous
    November 19, 2006
    ... for example, to list all the Mobile Secretary groups you would text LIST.<pin>  (WHERE we write?): where <pin> is what you chose.  your device will then reply back with the list of groups.  

  • Anonymous
    November 25, 2006
    Thanks for the great app and pretty example! Where Mobile Secretary saves its data? i.e. groups names, their members and so on... I have found only one file: Application DataMobile SecretaryMobile Secretary.xml but it not contains group members.

  • Anonymous
    November 30, 2006
    Is it possible to turn the ringer off automatically? I would activate this app before getting into a meeting. So if I forget to turn on silent mode, can this app do that for me? I tried to install the app on imate JAMin - it did not come up - it seems to require a newer version of .NET than what is there on the phone. Will it not work with a previous version of .NET? Thanks.

  • Anonymous
    December 04, 2006
    The comment has been removed

  • Anonymous
    December 04, 2006
    Thanks again for all of the suggestions... they are great!  I haven't had a lot of time lately to get to them, but I hope to have some time as the holidays get closer :)   I will look into the error message that you have reported as well and see if i can repro it.   Just wanted to let you know that I have been keeping tabs, just haven't had time to play with the app lately :)  It happens... -Brian

  • Anonymous
    December 05, 2006
    after that error about dependencies, it says it failed to initialize .NET CF. that it should be reinstalled and suport info: -2147483643 (80000005)

  • Anonymous
    December 05, 2006
    that .NET Compact Framework 2.0 SP1 Redistributable simply will not install, and it happen's to that other similar app, SMSNotifier from Aali. when I try to install .NET CF it gives error that there's a newer version (??!) and that it has to be uninstalled prior to installing this one. I don't remember installing .NET CF before.

  • Anonymous
    December 10, 2006
    My device is HTC Universal with AKU 3.2 WWE ROM. I get the error: File or assembly name 'Microsoft.WindowsMobile.Status, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35' or one of its dependencies, was not found. What's wrong with me....

  • Anonymous
    December 13, 2006
    Love your app, it inspired me to write a complementary sort of application to use with your Mobile Secretary.   I wanted to use the calendar notification functions, but i don't use Outlook for anything. I use Google Calendar.  And there aren't any apps out there to sync up between the Google Calendars and Pocket Outlook.  So I wrote one I'm calling GCalSync. http://thegooley.wordpress.com/ I'll have a release + source available late tonight. Screenshots and process info are currently on my (new) design blog. cheerio gooley

  • Anonymous
    December 18, 2006
    What happens when someone calls you from a landline phone?  I get errors.  Is anyone else experiencing this?  Great start to a very needed program!

  • Anonymous
    December 18, 2006
    If someone calls you from a landline and they are in your contacts, then the Mobile Secretary will send the text message to their mobile phone (provided there is one in their contact card).   If the number is from an unknown caller, it will blindly send the sms to the number since it doesn't know what type it is.  If you are sensitive to SMS charges, you may want to disable that (hardcoded right now, but sounds like i need to make that an option when i get to it).   -- Brian

  • Anonymous
    December 21, 2006
    If you create a group with a blank name, the app crashes and will not restart. New Feature:

  1. What about an automated text/email reply to any recieved text from the group, not just missed calls.
  2. How about scheduled outgoing texts/emails using the calendar?
  3. Automated texts to attendees on change of appointment.
  4. What about answering and playing a group MP3/WAV file and using the record funtion. (Answermachine!)
  5. What about text response with attachment. (piture)
  6. What about group call divert?
  7. What about SOS/panic mode.  Call predetermined number and play MP3/Wav.  Also useful for sending predetermined voice messages on a schedule.
  • Anonymous
    January 04, 2007
    The comment has been removed

  • Anonymous
    January 12, 2007
    The comment has been removed

  • Anonymous
    January 23, 2007
    Hello, I installed this on my SPV m3100 and when I try to run it I get the following error: An unexpected error has occured in MobileSecretary.exe. Select Quit and then restart this program, or select Details for more information. Method not found: WaitOne System.Threading.WaitHandle. After selecting 'Details' I get: MobileSecretary.exe MissingMethodException Method not found: WaitOne System.Threading.WaitHandle. Any idea what's wrong with my device? I'd love to be able to use this app. Thanks.

  • Anonymous
    January 24, 2007
    Mobile Secretary Some additions:

  1. Can you add the missed calls to the calander?
  2. Add a configeralbel field within the message
  3. Keep a log of Sms's sent thanks
  • Anonymous
    January 30, 2007
    Hi Brian, Is it possible to embed a mini answering machine?
  1. Answer the call
  2. Turn the microphone off so that the external noise does not get in.
  3. Play a pre-configured audio file - this could be a prompt that the user will record.
  4. Record 15 seconds of audio from the caller.
  5. Hangup the call.
  6. Show a list of callers and play the respective audio files when selected. I think this will make it a lot more usable. Thanks for the great app. -- Subhabrata Biswas
  • Anonymous
    February 02, 2007
    Hi, i use MobileSecretrary from your site. It is able to make groups and so on, but if i check the field Send Meeting Info, there will no effect. I checked the field Send Message also, and created one message, and this work. Maybe someone could help me with my problem. Maybe it is possible that i dont understand i very well. I work with an xda neo (HPC-Mobile) and Windows Mobile 2005. Please give me a hint, what to do, so that Mobile Secretary will create a new entry in calendar.

  • Anonymous
    February 06, 2007
    Hi there, I like my new secretary very much :) Thanks for this great utility. But I still got a problem: I can not add any contacts from my phone, only from the SIM card. :( I installed it on a Fujitsu Siemens Pocket Loox T830. Any ideas? Thank you

  • Anonymous
    February 08, 2007
    The comment has been removed

  • Anonymous
    February 12, 2007
    I installed this application in my WM5 PocketPC/Phone. Within 12 hours it sent 174 messages to my boss whose call I missed twice. I was too embarrassed and immediately uninstalled it. I wonder what I did wrong.

  • Anonymous
    March 02, 2007
    i have had a similar problem on my mini s just kept repeatedly sending a text to the missed call !!!! disabled it all until a resolution is found as lost faith.

  • Anonymous
    April 07, 2007
    I've downloaded it but I'm unable to get to run.... help!

  • Anonymous
    April 09, 2007
    Following up on my last post about T-Mobile, here&#8217;s a quick software tip: The Mobile Secretary, which is a great little piece of software developed by BCross Just enter in the phone number in which to forward to, and all text messages sent to your

  • Anonymous
    April 11, 2007
    I like it. My friends appreciated that.

  • Anonymous
    May 06, 2007
    Can it be implemented to auto respond to incoming sms as well? It would be useful for when I'm driving to just tell them to call.. Thanks, useful app..

  • Anonymous
    May 13, 2007
    anyone know if this works on MS Smartphones?

  • Anonymous
    May 15, 2007
    May I hide incoming call window and show my own application window instead that to show caller's information?

  • Anonymous
    July 03, 2007
    I managed to load this prog. Which is a great one, unfortunately the 3rd time i ran it... ERROR ERROR ERROR... Doctor help please! =) MobileSecretary.exe NullReferenceException à System.Windows.Forms.ComboBox._NativeAdd() at ObjectCollection.Add() à MobileSecretary.MainForm.AddGroup() à MobileSecretary.MainForm.RefreshGroups() à MobileSecretary.MainForm.MainForm_Load() à System.Windows.Forms.Form.OnLoad() à System.Windows.Forms.Form._SetVisibleNotify() à System.Windows.Forms.Control.set_Visible() à System.Windows.Forms.Application.Run() à MobileSecretary.MainForm.Main()

  • Anonymous
    July 04, 2007
    using Microsoft.WindowsMobile.PocketOutlook; using Microsoft.WindowsMobile.PocketOutlook.MessageInterception;

  • Anonymous
    July 04, 2007
    using Microsoft.WindowsMobile.PocketOutlook; using Microsoft.WindowsMobile.PocketOutlook.MessageInterception;

  • Anonymous
    July 06, 2007
    I think the problem with the repeated calls is that when the counter gets to 0, it doesn't disable the timer.  Then the timer clicks every second and sends the message over and over and over and over (you get the point) until the quit() is processed. (this is only helpful if you've downloaded the source). I was able to fix that problem in the source, but the problem I'm having is an enoding issue.  I have a Moto Q with Windows Mobile 5.0 and when I use the Microsoft.WindowsMobile.PocketOutlook.SMSMessage and try to send "Test Message" I get "@T@e@s@t&quot;... after a lot of this and that I tried accessing the sms.dll directly and marshalling the data to and fro I was able to switch between Unicode and BigEndianUnicode which gave me the ability to turn it into "T@e@s@t@" (switch the @ symbol).  I could use UTF-8 but then I have to double the .length of the byte array from the encoder (System.Text.Encoding.UTF8.GetByte(message).Length * 2).  This had the nice effect of giving me "eTtsM ". Obviously the problem I'm having is a code page problem, but for the life of me I can't find the solution.  My Motorola Q is running on the Sprint network.  Any help?

  • Anonymous
    July 06, 2007
    I've fixed the problem... and it has to do with the MOL2 update... the fix is to not use the PocketOutlook functions to send an SMS.  You must use sms.dll and use System.Text.Encoding.ASCII.GetBytes(message) but when you create space, create double space and when you call SmsSendMessage() tell it that you're sending twice what you're sending... Also, before you do anything with the string make it an even length and flip every 2 bytes (turn Text Message into eTtxM seaseg). Hope this either helps for a fix from Microsoft or helps everybody who's having trouble with the MOL2 update from Motorola

  • Anonymous
    July 07, 2007
    This software is good, but when I add group more than 10 group. it's error (can't open program for config),Pls recheck or edit program,thx for good program ^_^

  • Anonymous
    July 24, 2007
    I have a Treo 700WX from Sprint and when I try to open The Mobile Secretary, i get an error message that says, "The Application (The Mobile Secretary) requires a newer version of the Microsoft .NET Compact Framework than the verson installed on this device.  I run WM 5.  What can I do?

  • Anonymous
    July 25, 2007
    A very useful piece of software for WM device that Microsoft did not considered.  Keep up the good work ! Not sure if enhancement could be made to also manage 'call deviation' at the same time. Useful when you forgot you phone at home and could get a complete 'backup' phone from someone else by just sending a simple SMS to your own phone....

  • Anonymous
    August 07, 2007
    The Mobile secreatary tool you've provided is quite powerful. One question on the functionality: It appears that the whole application launches every time an SMS is received... In case I send 2 or more SMS in quick succession, the application is going to miss those messages since Windows mobile does not let you launch more than one instance of the app. Is this a genuine problem you think, any way to fix it (and not keep the app running all the time) ?

  • Anonymous
    August 07, 2007
    Hi, just downloaded this great freeware.  Unfortunately, I can't seem to get it to work on my O2 mini.  Help pls?

  • Anonymous
    August 30, 2007
    The comment has been removed

  • Anonymous
    August 30, 2007
    Tempo fa, giracchiando per la rete, trovai un piccolo software per Windows Mobile (dalla 5 in poi) scritto

  • Anonymous
    September 21, 2007
    Every time I run the progam I get an error message that states "a registry key need to be defined first before events are registered." same to me here...

  • Anonymous
    October 06, 2007
    Recently posted on the Windows Mobile US blog, here's a really nifty little app that acts as your personal

  • Anonymous
    October 26, 2007
    Is is possible to write the same application in Native code or has anyone tried implementing on the native based app. If yes can you share your experience about it?

  • Anonymous
    November 13, 2007
    Nice program! It works nice on my Touch. Thanks for sharing!

  • Anonymous
    November 16, 2007
    Nice program! It works nice on my Touch. Thanks for sharing!

  • Anonymous
    November 28, 2007
    will the mobile secretary run on PPC 2003 SE? I have an Asus P505.

  • Anonymous
    December 01, 2007
    The comment has been removed

  • Anonymous
    December 18, 2007
    The comment has been removed

  • Anonymous
    December 25, 2007
    This is pretty nifty.  Any chance of getting an auto reply to SMS too?

  • Anonymous
    December 26, 2007
    Help - Source doesn't open in VS 2008 because file solution is marked for no modification and thus it the upgrade wizard can't touch it.  Naturally, I've removed VS2005 from my machine.  Can someone post a modifiable or updated code base? Thanks

  • Anonymous
    January 01, 2008
    anyone seen a WM 6.0 version of this?  i am using a MotoQ 9m and it does not work. it seems to work on the WM6.0 professional but not WM 6.0 standard, Troy Adams

  • Anonymous
    January 04, 2008
    The comment has been removed

  • Anonymous
    January 05, 2008
    I get the same error as Derrick Dee (4 July 2007) has this been fixed or are we both doing something wrong?

  • Anonymous
    January 07, 2008
    EXCELLENT APPLICATION!!! but... this was mentioned a while back (feb 13, 06; mar 2, 06) i just started using the application and i missed my friend's call twice, so she received over 100 texts in about a few minutes. has anyone found a fix for this? i REALLY want to use this application. THANKS!!!

  • Anonymous
    January 11, 2008
    I installed the application on my AT&T Tilt (WM6, HTC Kaiser derivative, I believe) and had problems similar to lou's - I missed three calls, and all three callers received tons of text messages.

  • Anonymous
    January 20, 2008
    I too have a Treo700wx and am getting the same issue with the device complaining about a registry key. Too bad, looks great. Hope there is a solution eventually.

  • Anonymous
    June 24, 2008
    how can i avoid sending mesages to fix numbers? after i missed a call from a fix number the program just stop with an eror. and i don't like that. i have to control al the time the screen to see if the program is still working! thanks a lot!

  • Anonymous
    November 16, 2008
    Do you have any plans for a WM 6.0 version?

  • Anonymous
    December 23, 2008
    The code works  fine on Pocket PC and does not  Smartphone. Any suggestions Thanks // SmsMessage message = new SmsMessage();            message.To.Add(new Recipient("9192654923"));            message.Body = "Hello, SAI.";            try            {                message.Send();            }            catch (Exception e)            {                string str = "Error in SMS Send call: ";                str += e.Message;                MessageBox.Show("SMS ERROR:" + str.ToString());            }