There is no alternative, to claim asylum in Canada, you must be in Canada. You cannot do much while overseas.
You can apply for a visit visa, and once you're here, claim at the airport.
Easiest way for you would be, get recognized by UNHCR in your country as a refugee, and get sponsored to come to Canada.