iTalk is a service run by Auckland ISP
Slingshot. It provides a SIP gateway to the NZ PSTN for $10/month. "local" calls and calls to other iTalk users are free, with reasonably cheap rates after that. Currently only 09 (Auckland) PSTN numbers are available, so local is only Auckland, but it is expected that this will expand to cover other parts of the country.
The best thing about iTalk is that it is built on open protocols such as SIP, making it easy for you to integrate it with Asterisk.
In order to make your Asterisk pbx "talk" to iTalk, you need to define an instance for it in your sip.conf so you can reference it to dial outside numbers eg.
[iTalk] type=friend secret=$your_italk_password username=649974xxxx fromuser=649974xxxx host=akl.italk.co.nz dtmfmode=rfc2833 insecure=very ;important nat=yes canreinvite=no disallow=all allow=ulaw allow=gsm
On 21 March 2007 I found that I needed to add the following to my sip.conf
allow=alaw
Also inside the sip.conf you need to register to the iTalk proxy for ingress calls. eg.
register => $username:$password@akl.italk.co.nz/$extension_to_forward_incoming_calls_to
inside extensions.conf (aside from having a valid extension to forward incoming calls to as specified in the register line above) you need to have rule to push egress calls out the "iTalk" sip define.
I route all egress calls out via it when people 'dial 1 to get out' so my rule inside extensions.conf looks like
exten => _1X.,1,Dial(SIP/iTalk/${EXTEN:1},30,Tr)
If you had other dial out methods for different toll areas you would obviously match it with the "09" prefix, ie.
exten => _09X.,1,Dial(SIP/iTalk/${EXTEN:1},30,Tr)
And when Slingshot/iTalk allow registering other area codes you could do your own toll bypass network all for only $10/areacode/month for unlimited calls ;)
ie.
have a declaration for each area code in sip.conf, then route via them based on what the user dials eg.
exten => _09X.,1,Dial(SIP/iTalkAKL/${EXTEN:1},30,Tr) exten => _04X.,1,Dial(SIP/iTalkWLG/${EXTEN:1},30,Tr) exten => _07X.,1,Dial(SIP/iTalkHLZ/${EXTEN:1},30,Tr) exten => _03X.,1,Dial(SIP/iTalkCHC/${EXTEN:1},30,Tr)
2 pages link to AsteriskItalkSetup: