Every comparison-based sorting algorithm has a complexity of Omega(n * log n).
You might want to take a look at Radix Sort which has a complexity of O(n*k) where k is the number of digits. One of its drawbacks is that it can not be done in place.
http://en.wikipedia.org/wiki/Radix_sort
If you use any reasonable algorithm your millions of phone numbers will be sorted in less time than it takes to read this reply. Perhaps the real question is why are you sorting those numbers over and over and over so that choice of algorithm matters in the slightest. Sort them once and keep them sorted.