Find Phone Numbers in messy data
In principle this seems close to a NER task, you could try to annotate a sample and train a sequence labeling model on it. However this would require quite a lot of work to get it right: annotation, then probably a good bit of trial and error to tune the right combination of features.

In a case like this I would rather go for a few carefully chosen regular expressions, they are likely to perform at about the same level without requiring as much work.