首頁(yè)>>廠(chǎng)商>>CT中間件廠(chǎng)商>>朗深技術(shù)

使用Java應用程序快速實(shí)現自己的專(zhuān)用IVR

2009/06/04

1.涉及的組件
  Jcom.jar

2.應用環(huán)境
  使用Java Application開(kāi)發(fā)固定流程的IVR。

3.目標功能
  來(lái)話(huà)后放音,放音完成后掛機。

4.主要代碼片段
///////////////////////////////////////////////////////////////////////////////

Part 1: 主處理類(lèi)

package examples;

import lioncen.cti.jcom.engine.*;
import lioncen.cti.jcom.object.*;

import java.awt.*;
import java.awt.event.*;

/**
* 全局事件處理器
* 從CTIEventAdapter繼承,用來(lái)實(shí)現CTI全局消息處理
*/
class MyCTIEventHandler extends CTIEventAdapter
{
/**
* 來(lái)話(huà)通知,產(chǎn)生單獨的線(xiàn)程去處理邏輯
*/
public void callIncome(int pid, CALL call, String ano, String bno)
{
SCPMANAGER.ctiLog.Debug("MainEventHandler",
"PID=" + pid + " CallIncome: Ano=" + ano
+ " Bno=" + bno + " CallID=" + call.callID);

JComDemoThread teleThd = new JComDemoThread(call);
teleThd.start();
}

/**
* 掛機通知,輸出日志
*/
public void callEnd(int pid, CALL call)
{
SCPMANAGER.ctiLog.Debug("MainEventHandler",
"PID=" + pid + " CallEnd: CallID=" + call.callID);
}
}

/** 主處理類(lèi),應用入口
* 收到來(lái)話(huà)事件后,產(chǎn)生單獨的處理線(xiàn)程處理話(huà)務(wù)邏輯
*/
public class JComTest
{
//定義靜態(tài)的管理器對象
static SCPMANAGER mgr = new SCPMANAGER();

public static void main(String Args[])
{
Frame mywin = new Frame("JCom Test");
mywin.setSize(300, 300);
mywin.setBackground(Color.BLUE);
mywin.setVisible(true);
mywin.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
SCPMANAGER.ctiEngine.stop();
SCPMANAGER.ctiLog.Notify("Main", "程序正常退出");
System.exit(0);
}
});

//設置管理器對象的消息處理器
mgr.ctiEventListener = new MyCTIEventHandler();
}
}

///////////////////////////////////////////////////////////////////

Part 2: 電話(huà)處理線(xiàn)程類(lèi)

package examples;

import lioncen.cti.jcom.*;
import lioncen.cti.jcom.object.*;
import lioncen.cti.jcom.engine.*;


/**
* 線(xiàn)程事件處理函數
* 從CTIThreadEventAdapter繼承,用來(lái)實(shí)現線(xiàn)程消息處理
*
*/
class MyThreadEventHandler extends CTIThreadEventAdapter
{
/**
* 來(lái)話(huà)通知
*/
public void callIncome(CTITeleThread thd, CALL call, String ano, String bno)
{
SCPMANAGER.ctiLog.Debug("ThreadEventHandler", "PID=" + thd.processID
+ " CallIncome: Ano=" + ano + " Bno=" + bno);
}

/**
* 掛機通知
*/
public void callEnd(CTITeleThread thd, CALL call)
{
SCPMANAGER.ctiLog.Debug("ThreadEventHandler", "PID=" + thd.processID
+ " CallEnd: CallID=" + call.callID);
thd.terminate = true;
}

// 其它消息與本例子無(wú)關(guān),請參考JCOM API

}

/**
*
* 處理電話(huà)邏輯的線(xiàn)程類(lèi)
* 一個(gè)簡(jiǎn)單的例子
* 收到電話(huà)后應答,并開(kāi)始循環(huán)播放Welcome.vox文件,播放30秒后掛機
*/
public class JComDemoThread extends CTITeleThread
{
public JComDemoThread(CALL call)
{
//構造基類(lèi)
super(call);
//設置線(xiàn)程中管理器對象對應的時(shí)間處理器
thdSCPManager.thdEventListener = new MyThreadEventHandler();
}

public void Sleep(int msec)
{
try
{
sleep(msec);
}
catch (InterruptedException e)
{
}
}

public void run()
{
//應答電話(huà)
int ret = originalCall.answer();
if (ret == CTIConst.RET_FAIL)
{
System.out.println("應答失敗");
return;
}

//設置關(guān)聯(lián)的線(xiàn)程ID,后續關(guān)于此線(xiàn)程的消息將直接通知線(xiàn)程
originalCall.attachProcessID(processID);

//顯示來(lái)話(huà)信息
System.out.println("來(lái)話(huà):主叫="
+ originalCall.getAno()
+ " 被叫=" + originalCall.getBno()
+ " 時(shí)間=" + originalCall.getOccurTime());

//循環(huán)異步放音,播放CTI服務(wù)器上的D:\\vox\\welcome.vox文件
int taskid = originalCall.play(true, true, "D:\\vox\\welcome.vox");

//放音等待30秒
Sleep(30000);

//停止放音
originalCall.stopOP(taskid);

//掛機
originalCall.onHook();

//等待掛機消息,掛機消息處理函數中設置terminate為true
while (terminate == false)
{
Sleep(1000);
}

//線(xiàn)程清理,很重要!
finalize();
}
}

CTI論壇報道


相關(guān)鏈接:
使用C++Builder快速實(shí)現自己的專(zhuān)用IVR 2009-06-05
UniMedia Script++常用對象及使用 2009-06-03
UniMedia MSIX座席控件的使用 2009-06-02
UniMedia MSIX座席控件Delphi調用實(shí)例解析 2009-06-01
UniMedia IDE集成環(huán)境文件操作實(shí)例解析 2009-05-22
亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 安远县| 九台市| 班戈县| 陇南市| 溆浦县| 平阴县| 子长县| 新民市| 武山县| 颍上县| 那坡县| 隆子县| 岳普湖县| 临邑县| 靖边县| 于田县| 合阳县| 米脂县| 南漳县| 齐河县| 舒城县| 新源县| 全州县| 德化县| 大名县| 龙里县| 日喀则市| 惠东县| 武冈市| 北宁市| 游戏| 庆城县| 福清市| 鄯善县| 云龙县| 四平市| 吉林省| 黑山县| 南郑县| 泸定县| 临洮县| http://444 http://444 http://444 http://444 http://444 http://444