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.