用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#