At least 21 people drowned when a boat carrying dozens of migrants seeking asylum in Australia sank off the coast of Java, Indonesian officials say.

Reports say the boat carried people from Lebanon, Jordan and Yemen. Rescue officials said 50 survivors had been taken ashore in the Cianjur district.

Australian Prime Minister Tony Abbott has promised to intercept migrant boats at their point of embarkation.

Mr Abbott is expected to discuss the issue when he visits Jakarta on Monday.