Getting started with Spare Phone

Intro
I would first like to thank you for purchasing Spare Phone! If you need assistance at anytime please email androidtouchdev@gmail.com and I'll be happy to help you.
Quick Start
Simply enter your Google Voice account info in the apps settings to login. The other settings are all optional and the defaults work well on the majority of devices.
Requirements
1.) Google Voice account.
Note: If you don't have an account you can create one here: Google Voice
2.) Android phone or tablet with Android 2.0+
Contact Info
email androidtouchdev@gmail.com
twitter @androidtouchdev

Settings Reference

Account
Authentication Type: You can choose 'Standard' or 'OAuth 2.0'. Standard will work even if the account has not been added to the device. Oauth 2.0 requires that the account be selected from the accounts(Android Settings->Accounts) already configured on the device. One of the benefits of OAuth is that you don't need to specify a password.
Username: Enter your Google Voice username or select the username if using OAuth.
Password(Standard authentication only): Enter your Google Voice password.
Network
Use Wireless: Enable to use Wi-Fi for calls.
Use 3G/4G Data: Enable to use 3G/4G mobile data for calls.
Enable Incoming Calls: This enables the app to always attempt to listen for incoming calls. To enable incoming calls please verify that 'Google chat' is enabled under your forwarding phones on the Google Voice website.
Sound
Ringtone: The ringtone to play when you receive an incoming call.
Keypad Sound: Enables the sound effect during keypad presses.
Hangup Sound: Enables the sound effect when a call ends.
Echo Cancel: Enables built-in echo cancellation(available only if the device reports this is supported)
Echo Cancel: Enables echo cancellation. Enable this setting if the remote side complains of an echo.
Note: Reducing the value of the 'Microphone Gain' setting to ~20% may also be required even with this enabled on certain devices.
Echo Level: Set the echo cancellation level.
Noise Reduction: Enables microphone noise reduction.
Noise Level: Set the noise reduction level. The default 'Medium' setting has a small amount of 'comfort' noise.
Contact Ringtones: Play the custom ringtone that has been assigned to the contact.
Reset Audio: Reset the audio when changing audio routes. This helps devices that experience audio delays when switching between outputs.
Audio Socket: Change the audio network socket type. Auto is highly recommended.
Microphone Input: Microphone input sources include: Default, MIC, VoIP, Camcorder, Voice Recognition. The VoIP setting enables hardware echo cancellation on some Android devices.
Microphone Gain: Basically the 'volume' of the microphone. Lowering this setting can eliminate echo if the remote party complains of an echo. Adjusting this setting above 100% may cause audio issues.
Microphone Buffer: The requested size of the microphone hardware buffer. The 'Default' is equal to 'Medium' and works well with most devices.
Speaker Output: Speaker outputs include: Default, Force to earpiece, VoIP. The 'Force to earpiece' option should only be selected if the device has audio issues and the audio only plays through the speakerphone. The 'VoIP' setting enables hardware echo cancellation on some Android devices.
Speaker Type: Speaker types include: 'Default' and 'STREAM_MUSIC'. The 'STREAM_MUSIC' option is required on somes devices(some tablets) that don't support the default audio stream.
Speaker Gain: The 'volume' of the received audio. This should only be used if the phones audio controls are not adequate to control the volume. Adjusting this setting above 100% may cause audio issues.
Speaker Buffer: The requested size of the speaker hardware buffer. The value set here will directly relate to the latency of the received audio but setting it too low will likely cause audio quality to drop. The 'Default' is equal to 'Medium' and works well with most devices.
Enable Bluetooth Gain: Enable to use different gain values while a Bluetooth headset is connected.
Bluetooth Microphone Gain: Basically the 'volume' of the Bluetooth microphone. Adjusting this setting above 100% may cause audio issues.
Bluetooth Speaker Gain: The 'volume' of the received audio. This should only be used if the phones audio controls are not adequate to control the Bluetooth volume. Adjusting this setting above 100% may cause audio issues.
Call Options
Voicemail: Enter your Google Voice phone number. Once this is set you can long press the 1 key in the dialer to call your Google Voice voicemail.
Area Code: Enter your local area code to enable 7 digit dialing.
UI Options
Screen Orientation: Change the apps screen orientation. The 'Default' setting will set the app to use the native device orientation. The 'Auto' setting will allow the app to auto-rotate assuming auto-rotate is enabled on the device. The remaining settings will lock the screen in the desired orientation.
Contact Photo: Enable to display the contacts photo.
Haptic Feedback: Enable haptic feedback(vibration) for button presses. This respects the global device setting so it must also be enabled on the device too.
Dialer Integration
Enable Dialer: Enable to integrate the app with the Android native dialer. Note: Requires 'Always Prompt' and/or 'Call Filters' too.
Use When Not Running: If this option is enabled then you can still use the native dialer to route calls through the app even when it's not active/running if an internet connection is available.
Always Prompt: If the number dialed is not in a 'Call Filter' then still ask if the app should be used for the call.
Call Filters: Here you can specify certain phone numbers to automatically use the app without prompting or to not use the app when a native call is placed.
Call Filter Examples:
To route ALL calls through Spare Phone without prompting: Verify 'Enable Dialer' is enabled and under 'Call Filters' enter the following 'RegEx' filter: .*
Note:The above is a period followed by an asterisk without any spaces.
To route calls that have the '1-408' country code/area code through Spare Phone without prompting: Verify 'Enable Dialer' is enabled and under 'Call Filters' enter the following 'Prefix' filter: 1408
Power / Sensors
Proximity Sensor: Turns the screen OFF if the device is held to your ear during a call(like the native dialer).
Keep Screen On: Enable this setting to keep the screen on during a call if your device has audio or Wi-Fi issues when the screen turns off.
CPU Sleep: Allows the CPU to enter the sleep state while the app is running. Note: There are some devices that have network connection issues if this is enabled.
Notifications
Signed In: Show a notification when signed in.
Note: If this is disabled a notification will still be displayed for connection failures.
Missed Calls: Show a notification for missed calls.
Presence
Login Priority: Specify the priority of the Spare Phone client if you are using other clients or devices with the same account. This allows you to control which client will receive incoming calls as the higher priority client will override other clients.
Below are the default priorities of some clients:
Gmail Chat: 24
OBi110: 33
Misc
Auto Press 1: Automatically press 1 when answering an incoming call.
Auto Press 1 Delay: The delay before accepting the call after answering.
Auto Start: Start the app automatically when the device is powered on.
Back Key Logout: If enabled this will logout and shutdown the app when the Android back key is pressed.
Override Lock Screen: Automatically dismiss the lock screen during an incoming call.

FAQ

Call Issues
I've NEVER placed a call successfully. Help!?
Please contact me for assistance.
The remote side complains of an echo. What setting will help?
Reducing the value of the 'Microphone Gain' setting to ~20% will reduce/eliminate echo on affected devices. The 'Microphone Gain' can be adjusted while on a call to find the best value.
There are also 'Echo Cancel' settings under 'Advanced Sound' for devices with certain CPU's.
Incoming audio is delayed by a few seconds or more. What setting will help?
Enable the 'Keep Screen On' option in the apps settings. This is caused by some devices that put the wifi in a power saving / high latency mode when the screen turns off regardless of what an app requests.
When trying to place a call I hear an audio message(female voice) stating 'The call cannot be completed'. Help!?
If you get this message you'll need to login to gmail.com from a pc/laptop and place an outbound call via the chat widget in the lower left of the page to resolve this issue. After the 1st successful call from gmail.com you should then be able to place calls successfully with the app.
How do I receive incoming calls?
To enable incoming calls the 'Google chat' forwarding phone must be enabled under the forwarding phones on the Google Voice website.
I'd like to still receive calls in Gmail(or another client) while using the app for outgoing calls. Is this possible?
Yes, adjust the value of the 'Login Priority' setting to be lower than the other client. Refer to the 'Login Priority' setting description for details.
Login Issues
The apps notification icon is red and states 'Login failed. Check username/password.' but I know it's correct.
The most common issue is that 2-step authentication is enabled on the account. If 2-step is enabled you'll need to create an application specific password here: Google 2-Step
Alternatively if you have 2-Step authentication enabled you can select 'OAuth2' under 'Authentication Type' assuming the account is already configured on the device.

Another common issue is that some Android keyboards automatically insert spaces after periods so if the username contains periods then please verify there are not any spaces in the username.
If the above does not apply then please erase and retype the username/password to verify that it's correct.
If you continue to have issues please contact me
Misc Issues
Please contact me for help.

Open Source Licenses

WebRTC License
Copyright (c) 2011, The WebRTC project authors. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of Google nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.