Some people like
Voip.ms. Their rates seem about the same as Callcentric. I believe their porting is cheaper. I have no experience with them.
There is another free way to do this. Less dialing, but still a pain. It would use the OBi110 callback feature. A Winnipeg caller would call your GV number and hang up after 1 or 2 rings. If they don't hang up before 10 seconds (default) the OBi110 will answer the call. The OBi110 will use the callerid and SP1 for the callback. After the caller answers the callback they will be prompted to Continue Call, Make New Call or Another Callback. They would enter "1" to be connected to your phone.
I setup 2 numbers (111-1111 and 222-2222) for people that can call your GV number without any extra expense. I defined a PIN to prevent people from making an outbound call on the OBi110.
Change Voice Services -> SP1 Service -> X_InboundCallRoute to:
{(10241111111|12042222222):ph},{(1204xxxxxxx):aa($1)},{ph}
Voice Services -> Auto Attendant ->
PrimaryLine: SP1 Service
UsePin: Checked
Pin1: (any digits)