Through my last three weeks on holiday I got a lot things implemented in msmcomm. We now have the following working:
- call support: dial, answer and end calls (only call forwarding and call conference stuff is missing)
- various network information: network-list, rssi, current nework, network time, mode preference (GSM/UMTS/auto)
- various system related things: set system time, modem audio tuning parameters, audio profiles, charging
- SIM: read/write/delete phonebooks, verify pin, enable/disable pin, change pin, sim info (imsi, misdn), phonebook properties
This is already a lot we can work with. For all messages we have simple error handling like checking the received message for an error code etc. Only on some response messages we don't have the right offset for the error return code yet. But finding it is just a matter of time 🙂
The next step will be SMS support. I already started with this and can receive an incoming SMS. Luckily the msmcomm protocol is using the same PDU format for reporting SMS as it is defined in TS 23.040. This makes it easy for us to implement it beside our already existing SMS implementation in fsogsmd.
Next step will be sending SMS messages. I already dumped the messages webOS is sending and receiving for this. I just have to look deeper into them and implement all important messages, responses and events in libmsmcomm.
If you want to try everything to can do the following:
WARNING: Before you do any of the steps below, do a full backup of all our data on the device! The Freesmartphone team provides this as is without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of this program is with you. Should this program prove defective, you assume the cost of all necessary servicing, repair or correction. In no event will the Freesmartphone team or any other party be liable to you for damages, including any general, special, incidental or consequential damages arising out of the use or inability to use this program (including but not limited to loss of data or data being rendered inaccurate or losses sustained by you or third parties or a failure of this program to operate with any other programs)
Compile the serial_forward utility (http://git.freesmartphone.org/?p=cornucopia.git;a=tree;f=tools/serial_forward) for the Palm Pre (use OpenEmbedded or you favourite toolchain) and copy it onto the device.
Ensure that you have USB networking enabled on your Pre
Connect to your Pre with novaterm
Stop the TelephonyInterfaceLayer:
$ stop TelephonyInterfaceLayer
- Reset the modem
$ pmmodempower cycle
- Run serial_forward with:
$ ./serial\_forward -n /dev/modemuart -p 3001 -t hsuart
- On your local PC configure the usbnet interface:
$ ifconfig usb0 192.168.0.1
Install msmcommd on your local PC
Edit /etc/msmcomm.conf to look like this:
source_type network source_path 192.168.0.202:3001 log_target stderr
- Start msmcommd:
You will see msmcommd doing the initial low level setup
Compile msmvterm and launch it:
- Type ‘help’ within msmvterm to see all available commands
NOTE: Only after you have done
change_operation_mode reset and
test_alive the modem can received other commands!