执行asterisk cli命令C#

我需要帮助使用C#执行星号cli命令。 我可以打开终端窗口并启动星号(参见下面的代码),但是不知道如何在CLI中执行“sip show peers”命令。 有没有可行的办法呢?

using System; using System.Diagnostics; namespace runGnomeTerminal { class MainClass { public static void ExecuteCommand(string command) { Process proc = new System.Diagnostics.Process (); proc.StartInfo.FileName = "/bin/bash"; proc.StartInfo.Arguments = "-c \" " + command + " \""; proc.StartInfo.UseShellExecute = false; proc.StartInfo.RedirectStandardOutput = true; proc.Start (); while (!proc.StandardOutput.EndOfStream) { Console.WriteLine (proc.StandardOutput.ReadLine ()); } } public static void Main (string[] args) { ExecuteCommand("gnome-terminal -x bash -ic 'cd $HOME; sudo asterisk -vvvvr; bash'"); } } } 

你所要做的就是矫枉过正。 你只需要问星号命令,不需要bash或终端。

 Process proc = new System.Diagnostics.Process (); proc.StartInfo.FileName = "/usr/sbin/asterisk"; proc.StartInfo.Arguments = "-rx \" " + command + " \""; proc.StartInfo.UseShellExecute = false; proc.StartInfo.RedirectStandardOutput = true; proc.Start (); 

但请注意,该命令启动新的星号处理,因此不是最佳的。 最好的方法是使用星号AMI接口(这只是tcp连接,因此使用的资源少得多)并发出AMI操作命令。 有许多已经开发的AMI接口,包括C#one。

您可以直接从bash执行asterisk cli命令,只需执行-x到asterisk命令。 例如ExecuteCommand("gnome-terminal -x bash -ic 'cd $HOME; sudo asterisk -rx "sip show peers"; bash'");