@ -1550,7 +1550,7 @@ static int action_redirect(struct mansession *s, const struct message *m)
const char * exten = astman_get_header ( m , " Exten " ) ;
const char * exten = astman_get_header ( m , " Exten " ) ;
const char * context = astman_get_header ( m , " Context " ) ;
const char * context = astman_get_header ( m , " Context " ) ;
const char * priority = astman_get_header ( m , " Priority " ) ;
const char * priority = astman_get_header ( m , " Priority " ) ;
struct ast_channel * base, * chan, * chan2 = NULL ;
struct ast_channel * chan, * chan2 = NULL ;
int pi = 0 ;
int pi = 0 ;
int res ;
int res ;
@ -1572,14 +1572,6 @@ static int action_redirect(struct mansession *s, const struct message *m)
astman_send_error ( s , m , buf ) ;
astman_send_error ( s , m , buf ) ;
return 0 ;
return 0 ;
}
}
if ( chan - > tech - > get_base_channel ) {
base = chan - > tech - > get_base_channel ( chan ) ;
if ( base ) {
ast_mutex_unlock ( & chan - > lock ) ;
chan = base ;
ast_mutex_lock ( & chan - > lock ) ;
}
}
if ( ast_check_hangup ( chan ) ) {
if ( ast_check_hangup ( chan ) ) {
astman_send_error ( s , m , " Redirect failed, channel not up. \n " ) ;
astman_send_error ( s , m , " Redirect failed, channel not up. \n " ) ;
ast_channel_unlock ( chan ) ;
ast_channel_unlock ( chan ) ;
@ -1593,14 +1585,6 @@ static int action_redirect(struct mansession *s, const struct message *m)
ast_channel_unlock ( chan2 ) ;
ast_channel_unlock ( chan2 ) ;
return 0 ;
return 0 ;
}
}
if ( chan2 & & chan2 - > tech - > get_base_channel ) {
base = chan2 - > tech - > get_base_channel ( chan2 ) ;
if ( base ) {
ast_mutex_unlock ( & chan2 - > lock ) ;
chan2 = base ;
ast_mutex_lock ( & chan2 - > lock ) ;
}
}
res = ast_async_goto ( chan , context , exten , pi ) ;
res = ast_async_goto ( chan , context , exten , pi ) ;
if ( ! res ) {
if ( ! res ) {
if ( ! ast_strlen_zero ( name2 ) ) {
if ( ! ast_strlen_zero ( name2 ) ) {