Пример #1
0
 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);
     }
 }
Пример #2
0
 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;
 }