IPKall is shut down effective May 1st, 2016

Free personal Washington State (USA) PSTN number that forwards to any SIP or IAX destination you specify, including your own Asterisk server.


Instructions on setting up a direct incoming IPKall phone number under Asterisk, bypassing FWD

First, register an IPKall number at either of the web addresses provided above.
IPKall will ask for the following information:

SIP phone number
SIP proxy
Email Address
Password (4 digit PIN)
Voicemail preferences

When specifying the SIP phone number, you can use any number, but you should try to avoid using
a number that's already an extension in your extensions.conf file.
Put the IP address (or hostname) of your Asterisk server into the SIP proxy field.
If your SIP proxy is not running on the default port 5060, then you will need to specify the port.
For example, if your IP is and your SIP proxy is running on port 7777,
then you would enter as the SIP proxy. Be sure to enter a valid e-mail address.

Here is a sample IPKall configuration for sip.conf and extensions.conf.
Place this under [inbound] in extensions.conf. (note, if [inbound] already exists, don't add it again):
important note: your incoming context may be, and probably is different than [inbound].
Replace [inbound] with the appropriate context in both extensions.conf and the "context=" line below.

exten => 508,1,Goto(your-main-menu|s|1)

Where 508 is the SIP phone number you specified when setting up IPKall.
Now, put the following information in your sip.conf file:

[508] ;IPKall

How it works

1. When you dial your IPKall DID, IPKall sends a request (i.e. 508@ to your SIP proxy
2. Asterisk accepts the request, since the [508] context in sip.conf tells Asterisk to accept incoming calls with the number "508"
3. Asterisk searches extensions.conf for the "inbound" context (since we specified context=inbound in the [508] context)
4. Asterisk then matches extension "508" in the [inbound] context, jumping to "your-main-menu" in this example.

Codecs Supported

G.729 (since Feb 2006)


If you just get a busy signal when calling your IPKall number, try the following:

1. From the Asterisk CLI (asterisk -r) turn on sip debugging by typing "sip debug", try calling your IPKall number again, when you get the busy signal, turn off sip debugging by typing "sip no debug". Then read through the debugging information for clues.

2. Make sure host=voiper.ipkall.com is specified in the IPKall context (in the above example, [508]), without this option you will likely get "SIP/2.0 404 Not Found" or "Found no matching peer or user for" sip debug errors. Since we are specifying a hostname, make sure DNS resolution works (nslookup voiper.ipkall.com)

3. If any part of the network between your Asterisk server and the Internet uses NAT, specify externip= and localnet= in sip.conf. Set externip= to your external IP address and localnet= to your local subnet

For example:

4. If you have a firewall restricting access to your Asterisk server, make sure UDP ports 5060 and 10000 through 20000 are properly forwarded.

Setup with Trixbox2.2.4 Edited Sept. 2007

Settings for add Trunk in freepbx

1. click add sip trunk
2. leave everything blank except the following items

Outgoing Settings

Trunk Name: ipkall
Peer Details


Incoming Settings

USER Context from-trunk
USER Details:


edit sip.conf
and make sure you change context = from-trunk
Here is a section of my sip.conf

; Note: If your SIP devices are behind a NAT and your Asterisk
;  server isn't, try adding "nat=1" to each peer definition to
;  solve translation problems.

#include sip_general_additional.conf

externip = xx.xx.xx.xx   ;your external IP
localnet =  ;your local IP most people are 192.168.1.x/
bindport = 5060           ; Port to bind to (SIP is 5060)
bindaddr =    ; Address to bind to (all addresses on machine)
; If you need to answer unauthenticated calls, you should change this
; next line to 'from-trunk', rather than 'from-sip-external'.
; You'll know this is happening if when you call in you get a message
; saying "The number you have dialed is not in service. Please check the
; number and try again."
context = from-trunk ; Send unknown SIP callers to this context

The easiest thing I found to do for routing calls is to setup inbound with everything blank and select
what you want your call to do. Ring group, ring IVR, ECT. You can be more specific later for different
inbound calls but this is what I used for testing for IPKALL inbound.

Created by: jht2, Last modification: Wed 02 of Mar, 2016 (00:29 UTC) by admin
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+