Según tu código de ejemplo ya te intentas conectar por FTP pasivo:
 ftp_pasv ($ftp,true);  
El problema "creo" que lo tienes en que tu router actua de proxy (es así?) .. en ese caso necesitarías una conexión tipo:  
 Cita:  sven at cartell-network dot de
13-Feb-2002 09:27 
connection to a ftp server across proxy 
 Código PHP:
    $ftp_server = "proxy"; f.e. 123.456.789.10
$ftp_user_name = "username@ftpserver"; f.e. exampleuk@www.example.uk
$ftp_user_pass = "password";
 
$conn_id = ftp_connect($ftp_server, 2121);
$login_result = ftp_login( $conn_id, $ftp_user_name, $ftp_user_pass ); 
    
     Fijate en los datos de conexión . .el usuario con la @ y el domino al que apuntas finalmente ... (eso es bien importante ..) 
Un saludo,