The WeePhone Manual
WeePhone is a SIP (Session Initiation Protocol) softphone for the iPhone/iPod touch.
To use it, you configure it to register with your SIP provider's server
and then you place calls by entering a number or username and hitting the call
button (a green phone icon). This will attempt to locate the user or phone
number through your SIP provider and set up a call with them.
You can also call other sip devices directly (not through your SIP server),
by appending an '@' sign and an address/DNS name after the username. So if
I want to call another SIP phone on the network that has an IP address of
192.168.0.10 directly, I would enter username@192.168.0.10 and hit call.
This is the easiest way to test a call between two iPhones on the same network.
A word about SIP providers:
Some are completely free, but only provide you with a server so you can make
calls over the internet to other SIP phones on the same server.
Others charge you a fee, and allow you to use their hardware to make calls
over the public telephone network (usually at very affordable rates).
Sometimes you have to pay a monthly fee, and sometimes you just pay for minutes
in advance. Some will actually give you a credit of minutes to try the service
out.
To get started, sipphone.com is the easiest way to start making calls to actual
telephones.
A word about how SIP works:
SIP uses one port to communicate all call invitations and set up information,
and another port for the 'media' data, including the encoded audio,
number key presses, and video if applicable. Most newer routers do not
require opening ports to make outbound SIP calls because they are
SIP-aware, and will open ports as necessary for the call to work. But some
are not SIP-aware. In these cases it is sometimes necessary to open ports.
Set up:
Start WeePhone, and click on 'settings' in the upper left. Pretty much every SIP
provider will give you the necessary information to configure here.
SIP Username:
the username of the SIP account. For many providers, this is the
SIP number or phone number that you are assigned. Sometimes it is a
username, and the provider maps another SIP number to that username.
Password:
the SIP password for the account. You may have set this yourself,
or the SIP provider may have sent it to you an in an email.
SIP Domain/Server:
the domain name or IP address of the SIP server. Your provider should
have given this to you. Some examples include:
Sipphone.com: proxy01.sipphone.com:5060
Vonage: sphone.vopr.vonage.net:5061
FWD: fwd.pulver.com:5060
Voipbuster: voipbuster.com
SIP Proxy:
Some providers give you a separate outbound proxy to use. When that's the case
it's entered here. All outbound requests will go through the proxy, instead of
being sent directly to the sip registrar server for your domain. This field is
optional.
STUN Server:
STUN is a protocol used to discover your own IP address and port
number when behind a NAT router. May providers run their own STUN servers,
but one is as good as any, because they all provide you the same information.
In the case of some SIP-aware routers, STUN is not necessary and could cause
problems. If having problems logging in or setting up calls, you may want to try
diabling stun with the 'Use STUN' switch. You should also diable STUN if
the SIP server you are using is on the same network (or not on the other side of
a NAT router). By default this is set to stun.domain17.net:3478.
Use STUN:
this will disable the STUN protocol from being used. The device will
use it's own IP address when making SIP requests, instead of using STUN to
discover the actual internet-connected public IP address of any NAT routers.
Push Notification:
This enables 'apple push notification'. If enabled, when the app quits, it will
attempt to contact a global server over encrypted HTTPS, and asks the server
to log into the SIP account and monitor incoming calls.
Username, password, and SIP server/proxy are exchanged.
When an incoming call comes in, it is logged, and a push
notification is sent to your device. This is similar to a text message in
appearance with the addition of a button to allow running WeePhone.
When you next run WeePhone, the app contacts the server again, and tells
it to log out of the SIP account. At this time your SIP credentials are wiped out
from the server, and the list of missed calls is downloaded into the call log.
At no time are your credentials stored other than in memory.
Currently there is no way to answer an incoming call, you have to call back.
This may be supported with some SIP servers in the future. The server will only
stay logged into the SIP account for 24 hours, at which time you will get a
'user@domain timed out' push message. This feature will only work if your SIP
account and server are on the internet, and reachable via our push server.
If not, the app will give up trying to log into your account after 60 seconds,
and send you a 'timed out' push message.
Advanced settings:
Auth User:
Sometimes a separate authentication username is used to register from the
username that is associated with an extension. In some cases the username
is the extension (1234, for example) and the auth username is some
separate account (justinb, for example). This field is optional. Normally
only the username field needs to be filled out.
Media Port:
This is the port number that SIP requests will have media (audio)
sent to. In the case of some older non SIP-aware routers, it may be necessary
to port-forward (or "open a port") for this port number on your router or firewall.
If setting up calls works, but one or both sides can't hear each other, you should
try forwarding this port to your device's IP address. It's not usually necessary
to change this field in WeePhone though.
SIP Port:
This is the port number that SIP requests will come into and leave from. It's not
usually necessary to change this.
Force address:
If not blank, force WeePhone to use the address entered here in SIP messages.
Usually only necessary where STUN is unable to correctly detect the IP address
for the network currently on. Some SIP providers also only enable 'NAT' behavior
when they see a nonroutable IP address in the SIP messages.
Call tgt domain:
Call 'target' domain. When placing a call, attempt to resolve the domain (if any)
in the SIP URI (user@domain.com) via DNS, and then call the domain's SIP
server directly, bypassing any configured SIP servers/proxies.
GSM codec:
Disable the use of the GSM (lowest bandwidth, but slightly lower quality) codec,
forcing G.711 u-law or a-law to be used.
DNS SRV lookup:
When looking up a SIP address (during registration, or when call-target-domain used)
for a domain, search for a SRV record for that domain first. This occasionally
causes delays when searching when using a router with firmware that does
DNS proxying in a buggy way.
DNS cache sec:
When a DNS search is performed for the same domain/address within N seconds,
just use the previous result instead of actually querying the DNS server. Enabling
this may speed up calls or registration when DNS resolution is slow. Set to 0 to disable.
Echo cancel level:
Enable echo cancellation (only applies in speakerphone) when in a call.
Range is 0-100 to indicate how aggressively to perform echo cancellation.
DTMF length:
Determine the duration of the DTMF key presses sent to server.
Defaults to 2240 (about 1/4th of a second). Maximum is 8000 (about 1 sec).
# Prefix/Length:
When selecting an item from the contacts list, if the number's length is greater than
the right-hand field #, prefix the entry with the value in the left-hand field. (I.E. 'dial 9
for an outside line')
Replace X/Y (in version 1.4.2):
Comma separated match/replace pairs. When selecting a contact, if X matches,
replace with Y. For example, to replace + with 00 , enter +/00 . Add multiple
match/replace pairs by separating with commas like...
+/00,+1/001,408/1408
User Agent:
Allows setting the user-agent advertised in SIP messages. Some providers
do checks to make sure that only a certain device/softphone is being used.
This allows you to make WeePhone appear to be another client.
(A list of user-agent strings is at:
http://www.voip-info.org/wiki/view/SIP+user+agent+identification)
Troubleshooting:
* The 'Logged In' field stays at 'no', and never becomes logged in.
- Try turning on (or off) STUN and restarting the application if don't see the
'SIP response' field showing messages. Your SIP server is unreachable, or
is trying to reply to you at an incorrect IP/port. Also check that you are using
the correct address and port for the SIP server.
* A call is set up (Status is 'connected') but we can't hear each other.
- try opening the media port on any routers you are using (on both sides) of the
connection, if applicable. Some help for these issues can be found by googling:
http://www.google.com/search?q=sip+no+audio
* When calling, the call appears to hang, or it takes a long time to get SIP
responses.
- When making a call WeePhone makes several DNS queries to attempt to find the
SIP server/Proxy. With some WiFi routers (linksys, in particular) a DNS
'proxy' is performed. This process is apparently very buggy in some firmware,
so the DNS query can take a long time. If you check your iPhone's DNS server
setting in Settings>WiFi>(access point name) and see that the DNS is the same IP as the
router then your router is doing this. I recommend disabling DNS proxy on the
router (instructions: http://vonage.nmhoy.net/dnsproxy.html) or changing
the iPhone DNS setting to an actual server (4.2.2.2 is a public DNS one I
have sometimes used...).
* When placing a call, the SIP response shows error 488
- SIP error 488 indicates that the other end didn't see any acceptable codecs
in the list that your SIP phone sent. In version 1.3.3, WeePhone does not
support a-law, just u-law. This is fixed in version 1.4.0. This proplem is
pretty uncommon since most SIP devices/servers do support both a-law and u-law.
* If you have confirmed your correct settings for the SIP provider you use and
are still having problems, please contact support@domain17.net with details
about the problem you are having.