Patch webOS Roam Control



= Roam Control=

Creating a "Roam Only" mode
This will allow users to add "Roam Only" mode to WebOS 1.3.1 Palm Pre.

Procedure
SSH in to rooted Pre Mount filesystem as r/w, navigate to phoneprefs folder and create a backup of current preflist-assistant.js mount -o remount,rw / cd /usr/palm/applications/com.palm.app.phoneprefs/app/controllers cp preflist-assistant.js preflist-assistant.js.bak

Edit preflist-assistant.js

vi preflist-assistant.js

At line 240 (WebOS 1.3.1), find: {label : $L("Automatic"),value: "any"} {label : $L("Automatic"),value: "any"}, {label : $L("Roam Only"),value: "roamonly"}
 * and replace with:

At lines 1457-1460 (WebOS 1.3.1) find: if(payload.extended.mode == 'any') { this.voiceRoamingModel.currentVoiceRoaming = "any"; $('dataroamingrow').show; }		else if(payload.extended.mode == 'roamonly') { this.voiceRoamingModel.currentVoiceRoaming = "roamonly"; $('dataroamingrow').show; }
 * and add below:

At lines 1449-1455 (WebOS 1.3.1) find:

if(this.voiceRoamingChoices.length = 3) { This.voiceRoamingChoices[1] = { label: $L("Automatic"), value: "any" }; this.voiceRoamingChoices.pop; }

Add // in front of each line to comment it out. Save the file

Mount the filesystem as r/o, reboot the phone and, from the dialer, go to Preferences and test out your new mode!

mount -o remount,ro / reboot

Credit
Original: w5mw Modified for 1.3.1

Scripting possibilities
You can use luna-send to change these settings from the command line. I run this bash (not sh) script from cron to change to roamonly whenever my phone is connected to my access point because my carrier's signal is poor where I live and calls are dropped in automatic mode.

NOTE: This Script is Only Verified to Work with WebOS <= 1.3.5.1


 * 1) !/bin/bash
 * 2) roam-at-home v.02 ############

MYSSID="put-your-ssid-here" MYSSID2="put-another-ssid-here-or-leave-as-is" MYSSID3="put-another-ssid-here-or-leave-as-is" MYSSID4="put-another-ssid-here-or-leave-as-is"

function ROAMONLY { luna-send palm://com.palm.telephony/roamModeSet  '{"mode" : roamonly }' }                                                                                                          function ANY { luna-send palm://com.palm.telephony/roamModeSet  '{"mode" : any }' }                                                                                                               SSID=$( iwconfig eth0 | grep  ESSID | awk -F 'ESSID:"' '{print $2}' | awk -F '"' '{print $1}' ) if [ "$SSID" == "$MYSSID" -o "$SSID" == "$MYSSID2" -o "$SSID" == "$MYSSID3" -o "$SSID" == "$MYSSID4" ]; then ROAMONLY else ANY fi jjonez