当前位置:编程学习 > C#/ASP.NET >>

用C#实现asterisk来电显示功能

应用环境:服务器Trixbox2.6,其中集成了asterisk1.4版本+A800P模拟语音卡;客户端为windowsXP。

现在想实现一个很简单的功能:
    1、将asterisk(我用的是Trixbox)服务器放在局域网中,当外部电话打进来的时候,局域网的客户端PC可以得到来电信息,就像电话的来电显示一样,只是接收对象由电话变成PC。
    2、客户端获得来电号码以后,去公司的现有的程序的数据库中查找该号码对应的客户,并显示出客户信息;如果没有,则直接显示号码,并支持手工录入新客户信息到数据库中。

提示:asterisk中提供了asterisk manager API接口,可以写个程序,监控它的事件,从而实现所需要的功能。
网址:http://www.voip-info.org/wiki/view/Asterisk+manager+API

首先我先与asterisk服务器建立一个socket通信。

using System; 
using System.Net; 
using System.Net.Sockets; 
using System.Text.RegularExpressions; 
using System.Text; 

namespace AsteriskPrototype 

class AppConsole 

 [STAThread] 
 static void Main(string[] args) 
 { 
  Console.WriteLine("Quick and Dirty Asterisk Manager Daemon Test:\n"); 

  // Connect to the asterisk server. 
  Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
  IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("192.168.0.20"), 5038); 
  clientSocket.Connect(serverEndPoint); 

  // Login to the server; manager.conf needs to be setup with matching credentials. 
  clientSocket.Send(Encoding.ASCII.GetBytes("Action: Login\r\nUsername: mark\r\nSecret: mysecret\r\nActionID: 1\r\n\r\n")); 
  }
}
}

再往下不知道怎么办了,请高手指点一下。
--------------------编程问答-------------------- 楼主的头像导致你的帖子无人问津 --------------------编程问答-------------------- 兄弟,不如用用这个asterisk.net控件...开源的! --------------------编程问答--------------------
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,