public void SendCommand(AGICommand command) { string buffer = command.BuildCommand() + "\n"; try { socket.Write(buffer); } catch (IOException e) { throw new AGINetworkException("Unable to send command to Asterisk: " + e.Message, e); } }
public AGIReply SendCommand(AGICommand command) { agiWriter.SendCommand(command); agiReply = agiReader.ReadReply(); int status = agiReply.GetStatus(); if (status == (int)AGIReplyStatuses.SC_INVALID_OR_UNKNOWN_COMMAND) { throw new InvalidOrUnknownCommandException(command.BuildCommand()); } if (status == (int)AGIReplyStatuses.SC_INVALID_COMMAND_SYNTAX) { throw new InvalidCommandSyntaxException(agiReply.GetSynopsis(), agiReply.GetUsage()); } if (status == (int)AGIReplyStatuses.SC_DEAD_CHANNEL && _SC511_CAUSES_EXCEPTION) { throw new AGIHangupException(); } if ((status == 0) && agiReply.FirstLine == "HANGUP" && _SCHANGUP_CAUSES_EXCEPTION) { throw new AGIHangupException(); } return(agiReply); }