I have tried to put your code into my dial plan, but I must not be putting it in the correct place. Here is my working dial plan. I can dial out and I can receive calls. I'd really like to get the TNAME and OpenCnam working.
Currently with this dial plan, I get the correct incoming phone number sometimes, but other times I get the 206.682.0185 Washington number. I checked and Ipkall doesn't currently have any numbers available. Do you think I should switch to the Ipcomms number?
Thanks for all your help!
# Copyright(c) 2010 Mike Telis
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
http://www.apache.org/licenses/LICENSE-2.0# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
# Click "View raw file" in the lower right for the best copy/paste view
AREA_CODE = '763' # my area code
GV_USER = 'XXXXX@gmail.com' # my GV e-mail address (user@gmail.com)
GV_PASS = 'XXXXXXX' # my GV password
CB_NUMBER = '14250000000' # my 11-digit SIP number (only one) Ipkall
SPEED_DIAL = { # my speed dial numbers
'411' => '8003733411', # Free411
'266' => '4153767253@podlinez.com', # CNN Headlines
}
begin
sys.Log "** Call from #{req.Header.From} to #{req.URI.User} **"
if sys.Out # if outbound call
num =
req.URI.User.to_s # Get a string copy of the number to dial
num = SPEED_DIAL[num] || num # Substitute with speed dial entry, if any
case num
when /@/ then sys.Dial num # URI dialing
when /^[2-9]\d{6}$/ # Local call, 7-digit number
num = '1'+ AREA_CODE + num # prefix it with country and area code
when /^[01]?([2-9]\d{9})/ # US number with or without country code
num = '1' + $1 # add country code and truncate number to 10-digit
when /^(011|00|\+)(\d{9,})/ # international number
num = '+' + $2 # GoogleVoiceCall works with '+' prefix only
else sys.Respond 603, 'Wrong number, check & dial again'
end
sys.Log "Calling #{num} via Google Voice"
sys.GoogleVoiceCall GV_USER, GV_PASS, CB_NUMBER, num, '.*', CB_NUMBER =~ /^1747/ ? 7 : 1, 30
else # sys.Out
sys.Dial "#{sys.Username}@local"
end
rescue
sys.Log("** Error: " + $!) unless $!.to_s =~ /Thread was being aborted./
end