Tinkster brings up a good point. It is a good idea to be exact on the input set. If there are other patterns, you can have a separate sed command for each possible pattern.
You could run "egrep -v '^[[:digit:]]{10}$' tel.txt. If all of the numbers are 10 digits, there should be not output.
A phone number in the US would look like (701)555-5555. Having a simple textfile of numbers assumes that they all use the same format, and locale. Even if this is the case, what happens if one of the entries has an error. You might want to add a rule to reject it, or to write the entry to a separate file.
Code:
jschiwal@hpamd64:~> cat tel.sed
#n
/^[[:digit:]]\{10\}$/!w badnumber
/^[[:digit:]]\{10\}$/s/^\([[:digit:]]\{3\}\)\([[:digit:]]\{3\}\)\([[:digit:]]\{2\}\)\([[:digit:]]\{2\}\)/(\1)\2-\3-\4/p
jschiwal@hpamd64:~> cat numbers
0523842156
0524566478
0783333333
07755555555
jschiwal@hpamd64:~> rm badnumber
jschiwal@hpamd64:~> sed -f tel.sed numbers
(052)384-21-56
(052)456-64-78
(078)333-33-33
jschiwal@hpamd64:~> cat badnumber
07755555555