diff --git a/plugins/asterisk/asterisk b/plugins/asterisk/asterisk index e6581e11..75a203ed 100755 --- a/plugins/asterisk/asterisk +++ b/plugins/asterisk/asterisk @@ -85,8 +85,8 @@ sub asterisk_command { # Response: (Error|Follows|???) $line = $socket->getline; - if ($line ne "Response: Follows\r\n") { - while ( $line = $socket->getline and $line ne "\r\n" ) {} + if ($line !~ /^Response: Follows\r?\n$/) { + while ( $line = $socket->getline and $line !~ /^\r?\n$/ ) {} return undef; } @@ -94,12 +94,12 @@ sub asterisk_command { $line = $socket->getline; # Until we get the --END COMMAND-- marker, it's the command's output. - while ( $line = $socket->getline and $line ne "--END COMMAND--\r\n" ) { + while ( $line = $socket->getline and $line !~ /^--END COMMAND--\r?\n$/ ) { $reply .= $line; } # And then wait for the empty line that says we're done - while ( $line = $socket->getline and $line ne "\r\n" ) {} + while ( $line = $socket->getline and $line !~ /^\r?\n$/ ) {} return $reply; } @@ -130,13 +130,13 @@ if ( $socket ) { $socket->print("Action: login\nUsername: $username\nSecret: $secret\nEvents: off\n\n"); my $response_status = $socket->getline; - if ( $response_status ne "Response: Success\r\n" ) { + if ( $response_status !~ /^Response: Success\r?\n$/ ) { my $response_message = $socket->getline; - $response_message =~ s/Message: (.*)\r\n/$1/; + $response_message =~ s/Message: (.*)\r?\n/$1/; $error = "Asterisk authentication error: " . $response_message; } - while ( $line = $socket->getline and $line ne "\r\n" ) {} + while ( $line = $socket->getline and $line !~ /^\r?\n$/ ) {} } if ( $ARGV[0] and $ARGV[0] eq 'autoconf' ) { @@ -251,7 +251,7 @@ my $iaxchannels_response = asterisk_command($socket, "iax2 show channels"); $socket->close(); my $active_channels = 'U'; -$active_channels = $1 if $channels_response =~ /\n([0-9]+) active channels/; +$active_channels = $1 if $channels_response =~ /\n([0-9]+) active channels?/; print <