Although I've been using Google Voice for many years, I still kept my ancient cell #, just in case that # is still in someone's phone book. Finally, $30 a year to keep that # somehow sounded too much to me, so I decided to port it from PagePlusCellular to GV.
I logged into my GV account, went to settings and phones, clicked on the "Port/Change" button. It verified my cell # and charged me $20 for the port in. After a while, I checked the status and it said denied for wrong PIN. I gave the last 4 digits as the PIN and it went through this time. After about a day, the # was in my GV.
As you can see, the ported in # (-87) became my primary GV #, i.e., now when I place a GV call, the CID is this #, not my old GV # (-02). This is not what I wanted. Fortunately, once I made the secondary # (-02) permanent (another $20 to Google), I can swap primary and secondary numbers, anytime.
Normally, Google does not allow call forwarding from one GV # to another GV#. My this cell # was on both my personal and home GV accounts; so when someone called my home #, my cell phone rang too. Now the forwarding still works, even though the cell # has now become a GV#. Hopefully it'll keep this way, because Talkatone on my phone/tablet is logged on my personal GV account only. Talkatone can log into multiple GV accounts, but then receiving calls becomes not reliable. Furthermore, this feature costs $20 per year - I'd rather pay $30 to a real cell phone company like PagePlusCellular.
BTW, Talkatone now does transcoding, i.e., transfers GV's high bandwidth G.711 codec to a low bandwidth, 3G friendly codec. Finally, GV calls are very practical over 3G. It is very easy and simple too - all you need to do is: install Talkatone and, if you need to receive GV calls too, forward your GV to Google Chat (see above photo).
Let's wish Talkatone will be able to add more servers for transcoding; otherwise once more and more people use Talkatone, the servers might become too busy to offer the good call quality we enjoy now.