Seven migrants were rescued, but at least 20 are missing after their boat sank en route to Italy from Libya, the mayor of the Italian island of Lampedusa said on Wednesday.