小编JMK*_*JMK的帖子

使用 SIP 中继、PBX 电话系统等

这不是一个有黑/白是/否答案的问题,这更像是一个建议请求,所以我希望这不会违反任何规则,如果确实如此,我深表歉意,如果被要求将删除。

我会将我认为最有帮助的答案标记为正确答案。

基本上我在一家拥有 PBX 电话系统的公司工作。它拥有三台名为“Maximisers”的机器,第一台完全在内存中运行基于 linux 的命令行操作系统,并控制另外两台。

第一个 maximiser 也有一个 LDAP 数据库,我对它知之甚少。

每个都有 15 个以太网端口,每个端口都有一个 SIP 电话插入其中。每个“Maximiser”也有 4 个 LAN 端口。

问题是我对幕后发生的事情知之甚少。我们需要完成的任何工作都依赖于为 VPN 提供硬件的公司。

我要求的是有人为我指出正确的方向。我想以编程方式(最好在 C# .Net 中)检索有关电话系统在任何给定时间发生的情况的信息,记录通话并控制电话,这样我们就可以拨打出站电话,而无需电话中的人员输入数字本身。

时间在这里不是问题,我有足够的时间阅读我需要阅读的任何书籍,我只需要一些关于从哪里开始的指导。

提前致谢

c# tapi sip pbx

5
推荐指数
1
解决办法
3050
查看次数

C#XML - 使用XML Writer进行多命名空间声明

我正在尝试使用C#中的System.Xml.Xmlwriter创建具有多个名称空间的XML文档,并在编译时收到以下错误:

在同一个开始元素标记内,前缀''无法从''重新定义为'http://www.acme.com/BOF'.

我的全部代码如下:

        XmlWriterSettings settings = new XmlWriterSettings { Encoding = Encoding.UTF8, Indent = true };

        XmlWriter writer = XmlWriter.Create("C:\\ACME\\xml.xml", settings);

        writer.WriteStartDocument();

        writer.WriteStartElement("BOF");
        writer.WriteAttributeString("xmlns", null, null, "http://www.acme.com/BOF");  //This is where I get my error
        writer.WriteAttributeString("xmlns", "xsi", null, "http://www.w3.org/2001/XMLSchema-instance");
        writer.WriteAttributeString("fileName", null, null, "test.xml");
        writer.WriteAttributeString("date", null, null, "2011-10-25");
        writer.WriteAttributeString("origin", null, null, "MYORIGIN");
        writer.WriteAttributeString("ref", null, null, "XX_88888");
        writer.WriteEndElement();

        writer.WriteStartElement("CustomerNo");
        writer.WriteString("12345");
        writer.WriteEndElement();

        writer.WriteEndDocument();

        writer.Flush();
        writer.Close();
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

谢谢

约翰

c# xml xmlwriter

5
推荐指数
1
解决办法
5222
查看次数

我应该在VB6中明确声明我的变量

我在Visual Basic 6中编写了一些代码,我注意到我甚至不需要声明变量来实现.

以下(明确声明):

Dim foo As String
foo = "Bar"
Run Code Online (Sandbox Code Playgroud)

似乎与此一样工作(隐式声明):

Dim foo
foo = "Bar"
Run Code Online (Sandbox Code Playgroud)

或者这个(没有声明):

foo = "Bar"
Run Code Online (Sandbox Code Playgroud)

我知道在C#中我需要在使用它之前声明一个变量,并且隐式和显式声明都是可以接受的.我也知道在Python中,在使用它们之前根本不会声明变量.

关于Visual Basic 6(以及扩展VBA)哪个适当?

谢谢

vb6 standards vba coding-style

5
推荐指数
3
解决办法
2332
查看次数

提交通过NuGet添加的库

我有一个Visual Studio项目,我已经致力于VisualSVN(通过Visual Studio中的VisualSVN=> Commit菜单).我通过NuGet为这个项目添加了许多库.

我的同事已下载我上传到SVN的项目(via VisualSVN=> Get solution from Subversion...),发现这些库已丢失,他不得不重新下载它们.

几个问题:

  1. 这是设计的吗?或者我没有正确提交我的解决方案?或者我的同事没有正确地将解决方案下载到他的机器上?
  2. 如果这是设计的,那么重新添加对从SVN服务器下载的解决方案的引用的正确方法是什么?我担心我可能添加了一个引用并使用它,并且它可能已经更新,因为每当我的同事通过NuGet重新添加相同的引用时,他将获得更新的更新版本,并且这将破坏我的计划.这是一个有效的问题吗?

visualsvn visual-studio-2010 visual-studio nuget

5
推荐指数
1
解决办法
637
查看次数

为什么不推荐在同一解决方案中混用VB.Net和C#?

当我注意到下面有一个好奇的评论时,我正在读这个问题:

不确定问题是什么:你可以在一个解决方案中使用VB.NET和C#项目(虽然我不建议这样做).

我这样做了很多,因为我们有传统的VB.Net代码,新代码是用C#编写的.这真的不推荐吗?为什么不?

c# vb.net visual-studio

5
推荐指数
2
解决办法
5637
查看次数

从NetworkStream调用BeginRead

好的我想连接到a Socket并使用System.Net.Sockets.NetworkStream该类读取网络流.这是我到目前为止:

NetworkStream myNetworkStream;
Socket socket;

socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, 
    ProtocolType.IPv4);
socket.Connect(IPAddress.Parse("8.8.8.8"), 8888);

myNetworkStream = new NetworkStream(socket);

byte[] buffer = new byte[1024];
int offset = 0;
int count = 1024;

myNetworkStream.BeginRead(buffer, offset, count, ??, ??);
Run Code Online (Sandbox Code Playgroud)

现在我需要一个AsyncCallback和一个Object state来完成我的BeginRead方法,但我甚至不确定这是否会起作用.我此时有点失落!我在哪里需要离开这里?

c# network-programming networkstream

4
推荐指数
1
解决办法
2万
查看次数

我可以使用变量作为Microsoft Access VBA中的控件的名称

我有一个Microsoft Access弹出窗体,我用它来查找地址.一旦用户找到了邮政编码,地址就会被放入启动表格的各种文本框中.问题是,这个弹出窗体是从整个数据库中的各种形式启动的,因此它将结果放入的文本框位于不同的位置.

我尝试以下列方式解决这个问题.我有一个总是打开的交换机,所以我有一个隐藏的文本框,我以编程方式将我正在启动弹出窗体的表单的名称.然后我声明一个字符串变量,它被设置为这个隐藏文本框的当前值,如下所示:

Dim currentForm As String
currentForm = [Forms]![foo]![bar]
Run Code Online (Sandbox Code Playgroud)

然后我尝试将我的地址详细信息放入相关的文本框中,如下所示:

Forms!currentForm![txtCurrentAdd1] = rst![Line1]
Run Code Online (Sandbox Code Playgroud)

然而,这不按计划工作,我做错了什么?

谢谢

ms-access vba

4
推荐指数
2
解决办法
5万
查看次数

使正在运行的进程成为活动窗口

好的,我有三个Microsoft Access数据库.我希望能够以编程方式在这些之间切换.我有一个void方法,它接受一个名为dbName(我的数据库名称)的字符串参数.

public void SwitchDatabase(string dbName)
{

}
Run Code Online (Sandbox Code Playgroud)

我知道我的Access数据库的MainWindowTitle是什么,每个数据库有不同的MainWindowTitle所以我可以创建一个Process类的数组,并使它相等,所以System.Diagnostics.Process.GetProcesses().然后我可以遍历我正在运行的进程,直到找到ProcessName为MSACCESS且MainWindowTitle正确的那个,如下所示:

Process[] processList = Process.GetProcesses();

foreach (Process theProcess in processList)
{
    string processName = theProcess.ProcessName;
    string mainWindowTitle = theProcess.MainWindowTitle;
}
Run Code Online (Sandbox Code Playgroud)

一旦我找到了这个,我就可以获取进程ID,现在我想让这个进程成为我的活动窗口.我该怎么做呢?

谢谢

c# ms-access

4
推荐指数
2
解决办法
2万
查看次数

我无法在Visual Studio 2010上激活VIsual SVN

直到最近我才使用VisualSVN的试用版.当它过期时,我的雇主购买了我通过单击RegistrationVisualSVN菜单输入的许可证密钥.

但是,即使执行此操作,所有VisualSVN选项仍然在工具栏和上下文菜单中显示为灰色.

我已经尝试修复Visual SVN,卸载并重新安装它并修复Visual Studio 2010,仍然没有乐趣.

我是否错过了设置此步骤的一步?

svn visualsvn visual-studio-2010

4
推荐指数
1
解决办法
4410
查看次数

如何在VB6中访问字符串的各个字符

考虑以下VB代码:

    Dim fooBar As String
    fooBar = "Foo Bar"

    Dim q As String
    q = fooBar(0)
Run Code Online (Sandbox Code Playgroud)

在VB.Net中,这个编译并且我的q字符串变量设置为字母"F",但是在VB6中我得到编译错误,因为编译器需要一个数组.

我在VB6的一个场景中,能够以这种方式处理字符串非常有用,就像通过索引器或类似的东西访问单个字符一样.

如何在VB6中访问字符串的各个字符?

谢谢

string vb6

4
推荐指数
1
解决办法
5755
查看次数