执行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 ();

但请注意,该命令启动NEW星号进程,所以不是最优的。最好的方法是使用星号AMI接口(它只是tcp连接,所以使用的资源更少)并发出AMI动作命令。有许多已经开发的AMI接口,包括c#接口。

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

相关内容

  • 没有找到相关文章

最新更新