| 订阅 | 在线投稿
分享
 
 
 

Delphi之东进模拟语音卡(D160A)可复用源码

2007-09-15 05:02:57 编辑來源:互联网 国际版 评论
 
 
  Delphi之东进模拟语音卡(D160A)可复用源码

  网友急需,先开源吧,文档过几天慢慢补。

  作者:成晓旭

  设计简介:

  1、 将卡、通道分别单独进行设计与封装。

  2、 所有的外部操作接口都封装在卡类这一类。

  3、 在我的项目中,在卡类这一级还增加了适配器或者代理,分别实现了Adapter或Proxy模式;以尽可能地解耦卡设备的实现细节与具体应用业务之间的关系。因为,我们的系统中使用了几家不同的卡设备,另一方面,这些卡设备,在不同的软件系统中,又有不同的业务应用需求。

  4、 当然,卡这一级,也可以实现一个统一的接口,这样对外部可以表现出相对统一的行为,以方便业务层代码的调用,比如说:在数据采集的应用中,统一的接口可以让采集控制层不必依赖于具体的采集设备和通信方式,可以一致地实现数据收发,不管通信方式是RS232、RS485、TCP/IP、PSTN,还是别的方式或者通信设备。

  5、 在通道设计中,核心的就是一个“状态机模式”,通过轮巡通道状态来管理硬件卡设备,并且,还自己设计了一个业务级的“业务状态机”,来抽象业务方面需要关心的“业务状态”,通过增加“业务状态机”这样一个中间层,以解耦业务状态与设备状态之间的依赖。(这一点,在我看到的所有卡厂商提供的各类Demo程序里面都没有这样做,这也无形中误导了很多的开发人员,我看到的所有应用软件开发的源码都是:设备细节、尤其是通道状态,与业务逻辑代码紧紧地耦合在一起,难解难分)。

  6、 此设计的另一个亮点是:IoC模式的应用(2004年自己在设计此类时还不知道这个概念,全凭自己的经验总结出这样的设计)。对通道进入“呼入成功”、“呼出成功”等业务状态的调用代码从通道类是解耦出来:设计一个接口,在各个业务状态的处理方法中,再调用接口方法,将具体的业务处理逻辑委托给实现此接口的对象。并且这个接口的实现是通过“依赖注入”实现IoC的。这样设计,就达到了很好的可复用性和灵活性。

  7、 当然,更好的实现可以采用AOP(面向方法编程)的思想或者实现技术,这样可复用性更好,如此设计,在业务与卡方法的调用之间,耦合度将是最低的。

  8、 目前的版本,没有在代码中体现接口的实现……

  9、 类图(以后补上):

   10、卡类源码:

王朝网络
//------------------------------------------------------------------------------

王朝网络
//

王朝网络
// 产品名称: 成晓旭的个人软件Delphi源码库

王朝网络
// 产品版本: CXXSoft delphi code source lib 2.0

王朝网络
// 模块名称: Delphi之东进模拟语音卡类

王朝网络
// 模块描述:

王朝网络
// 单元文件: unDJCard160A.pas

王朝网络
// 开发作者: 成晓旭

王朝网络
// 备注: 任何人使用此文件时,请保留此段自述文件,谢谢!

王朝网络
// 开发时间: 2004-08-03

王朝网络
// 修改历史:

王朝网络
// 修改描述:

王朝网络
//------------------------------------------------------------------------------

王朝网络
unit unDJCard160A;

王朝网络


王朝网络
interface

王朝网络
uses

王朝网络
Windows,

王朝网络
unDJTC08a32,unDJNewSig,

王朝网络
unBaseDefine,unDJ160ADefine,

王朝网络
unDJChanne160A;

王朝网络
type

王朝网络
TCXXCommCard160A = class(TObject)

王朝网络
private

王朝网络


王朝网络
ChannelNumber:Word;

王朝网络
channelObject:array of TCXXDJChannel160A;

王朝网络
OnCardChannelState:TTrunkStatusEvent;

王朝网络


王朝网络
procedure Stop();

王朝网络
procedure ReleaseCommDevice();

王朝网络
function GetChannelObjectOrder(const aChannelID:Word):Word;

王朝网络


王朝网络
public

王朝网络


王朝网络
constructor Create(const trunkEvent:TTrunkStatusEvent);

王朝网络
destructor Destroy(); override;

王朝网络


王朝网络
function LoadCommDevice(const loadAll:boolean=false):boolean;

王朝网络
function Startup():boolean;

王朝网络
function GetAFreeChannel():Word;

王朝网络
function GetChannelNumber():Word;

王朝网络
function DialPhone(const aChannelID:Word;const DialPhoneNumber:PChar):boolean;

王朝网络
function HangUp(const aChannelID:Word):boolean;

王朝网络


王朝网络
end;

王朝网络


王朝网络


王朝网络
implementation

王朝网络


王朝网络
王朝网络
...{ TCXXCommCard160A }

王朝网络
constructor TCXXCommCard160A.Create(const trunkEvent:TTrunkStatusEvent);

王朝网络
begin

王朝网络
ChannelNumber := 0;

王朝网络
Self.OnCardChannelState := trunkEvent;

王朝网络
end;

王朝网络


王朝网络
destructor TCXXCommCard160A.Destroy;

王朝网络
var

王朝网络
Loop:Word;

王朝网络
begin

王朝网络
Stop();

王朝网络
if (Length(channelObject) > 0) and (channelNumber > 0) then

王朝网络
begin

王朝网络
for Loop := 0 to ChannelNumber - 1 do

王朝网络
begin

王朝网络
if Assigned(channelObject[Loop]) then

王朝网络
begin

王朝网络
channelObject[Loop].Free();

王朝网络
channelObject[Loop] := nil;

王朝网络
end;

王朝网络
end;

王朝网络
end;

王朝网络
ReleaseCommDevice();

王朝网络
end;

王朝网络


王朝网络
function TCXXCommCard160A.DialPhone(const aChannelID: Word;

王朝网络
const DialPhoneNumber: PChar): boolean;

王朝网络
var

王朝网络
K:Word;

王朝网络
begin

王朝网络
Result := false;

王朝网络
K := GetChannelObjectOrder(aChannelID);

王朝网络
if (K <> ErrorTrunkNumber) and (Assigned(channelObject[K])) then

王朝网络
begin

王朝网络
Result := channelObject[K].DialPhone(DialPhoneNumber);

王朝网络
end;

王朝网络
end;

王朝网络


王朝网络
procedure TCXXCommCard160A.ReleaseCommDevice();

王朝网络
begin

王朝网络
DisableCard();

王朝网络
FreeDrv();

王朝网络
end;

王朝网络


王朝网络
function TCXXCommCard160A.GetAFreeChannel(): Word;

王朝网络
var

王朝网络
Loop:Word;

王朝网络
begin

王朝网络
Result := ErrorTrunkNumber;

王朝网络
for Loop := Low(channelObject) to High(channelObject) do

王朝网络
begin

王朝网络
if (channelObject[Loop].GetChannelType() = ctEmpty) then continue;

王朝网络
if (channelObject[Loop].GetChannelStatus() = atsFree) then

王朝网络
begin

王朝网络
Result := channelObject[Loop].GetChannelID();

王朝网络


  break;

王朝网络
end;

王朝网络
end;

王朝网络
end;

王朝网络


王朝网络
function TCXXCommCard160A.GetChannelNumber(): Word;

王朝网络
begin

王朝网络
Result := channelNumber;

王朝网络
end;

王朝网络


王朝网络
function TCXXCommCard160A.GetChannelObjectOrder(

王朝网络
const aChannelID: Word): Word;

王朝网络
var

王朝网络
Loop:Word;

王朝网络
begin

王朝网络
Result := ErrorTrunkNumber;

王朝网络
for Loop := Low(channelObject) to High(channelObject) do

王朝网络
begin

王朝网络
if (channelObject[Loop].GetChannelID = aChannelID) then

王朝网络
begin

王朝网络
Result := Loop;

王朝网络


  break;

王朝网络
end;

王朝网络
end;

王朝网络
end;

王朝网络


王朝网络
function TCXXCommCard160A.HangUp(const aChannelID: Word): boolean;

王朝网络
var

王朝网络
K:Word;

王朝网络
begin

王朝网络
Result := false;

王朝网络
K := GetChannelObjectOrder(aChannelID);

王朝网络
if (K <> ErrorTrunkNumber) and (Assigned(channelObject[K])) then

王朝网络
begin

王朝网络
channelObject[K].ChannelHangUp();

王朝网络
Result := true;

王朝网络
end;

王朝网络
end;

王朝网络


王朝网络
function TCXXCommCard160A.LoadCommDevice(const loadAll:boolean): boolean;

王朝网络
const

王朝网络
loadEmpty = true;

王朝网络
var

王朝网络
Loop,tempNumber:Word;

王朝网络
isFlag:LongInt;

王朝网络
function CheckLoadTrunk():boolean;

王朝网络
begin

王朝网络
Result := loadAll or ((NOT loadAll) and(TChannelType(CheckChType(Loop)) <> ctEmpty));

王朝网络
end;

王朝网络
begin

王朝网络
isFlag := LoadDRV();

王朝网络
Result := (isFlag=0);

王朝网络
if NOT Result then Exit;

王朝网络
tempNumber := CheckValidCh();

王朝网络
Result := EnableCard(tempNumber,1024*8)=0;

王朝网络
if NOT Result then

王朝网络
begin

王朝网络
FreeDrv();

王朝网络
Exit;

王朝网络
end;

王朝网络
Result := Sig_Init()=1;

王朝网络
if NOT Result then Exit;

王朝网络
SetBusyPara(700);

王朝网络
SetPackRate(PACK_64KBPS );

王朝网络
channelNumber := tempNumber;

王朝网络
SetLength(channelObject,channelNumber);

王朝网络
for Loop := 0 to channelNumber - 1 do

王朝网络
begin

王朝网络
if CheckLoadTrunk() then

王朝网络
begin

王朝网络
channelObject[Loop] := TCXXDJChannel160A.Create(OnCardChannelState);

王朝网络
channelObject[Loop].CreateCommChannel(Loop);

王朝网络
end;

王朝网络
end;

王朝网络
end;

王朝网络


王朝网络
function TCXXCommCard160A.Startup(): boolean;

王朝网络
var

王朝网络
Loop:integer;

王朝网络
begin

王朝网络
for Loop := 0 to channelNumber - 1 do

王朝网络
begin

王朝网络
channelObject[Loop].Resume();

王朝网络
end;

王朝网络
Result := true;

王朝网络
end;

王朝网络


王朝网络
procedure TCXXCommCard160A.Stop();

王朝网络
var

王朝网络
Loop:integer;

王朝网络
begin

王朝网络
for Loop := 0 to channelNumber - 1 do

王朝网络
begin

王朝网络
channelObject[Loop].Suspend();

王朝网络
channelObject[Loop].Terminate();

王朝网络
channelObject[Loop] := nil;

王朝网络
end;

王朝网络
end;

王朝网络


王朝网络
end.

王朝网络


  11、 通道类源码:

王朝网络
//------------------------------------------------------------------------------

王朝网络
//

王朝网络
// 产品名称: 成晓旭的个人软件Delphi源码库

王朝网络
// 产品版本: CXXSoft delphi code source lib 2.0

王朝网络
// 模块名称: Delphi之东进模拟语音卡通道类

王朝网络
// 模块描述:

王朝网络
// 单元文件: unDJChanne160A.pas

王朝网络
// 开发作者: 成晓旭

王朝网络
// 备注: 任何人使用此文件时,请保留此段自述文件,谢谢!

王朝网络
// 开发时间: 2004-08-03

王朝网络
// 修改历史:

王朝网络
// 修改描述:

王朝网络
//------------------------------------------------------------------------------

王朝网络
unit unDJChanne160A;

王朝网络


王朝网络
interface

王朝网络


王朝网络
uses

王朝网络
Windows,Classes,SysUtils,

王朝网络
unBaseDefine,unDJ160ADefine,

王朝网络
unDJTC08a32,unDJNewSig;

王朝网络
Type

王朝网络
TCXXDJChannel160A = class(TThread)

王朝网络
//TCXXDJChannel160A = class(TObject)

王朝网络
private

王朝网络
channelType:TChannelType;

王朝网络
oldChannelState,channelState:TTrunkState;

王朝网络
channelID:Word;

王朝网络
phoneNumber:string;

王朝网络
dtmfString:string;

王朝网络


王朝网络
isConntectd:boolean;

王朝网络


王朝网络
isDialOut:boolean;

王朝网络
aTrunkState:TTrunkStatus;

王朝网络


王朝网络
procedure InformTrunkStatus(const aMsgFlag: TLVOperateFlag);

王朝网络


王朝网络
procedure ClearTrunkStatus();

王朝网络
function CheckSigHangup():boolean;

王朝网络
function CheckCallIn():boolean;

王朝网络
function SwitchOnCallIn():boolean;

王朝网络


王朝网络
procedure ProcessCallInSuccess();

王朝网络
procedure ProcessDialSuccess();

王朝网络


王朝网络
procedure ProcessCheckDialSend();

王朝网络
protected

王朝网络
procedure Execute(); override;

王朝网络
public

王朝网络
strMessage:string;

王朝网络
OnChannelState:TTrunkStatusEvent;

王朝网络


王朝网络
constructor Create(const trunkEvent:TTrunkStatusEvent);

王朝网络
destructor Destroy();override;

王朝网络


王朝网络
procedure CreateCommChannel(const aChennelID: Word);

王朝网络
procedure ChannelProcessor();

王朝网络


王朝网络
function GetChannelID():Word;

王朝网络
function GetChannelStatus():TTrunkState;

王朝网络
function GetChannelType():TChannelType;

王朝网络
function DialPhone(const DialPhoneNumber:PChar):boolean;overload;

王朝网络
function DialPhone(const DialPhoneNumber:PChar;const PreDialNumber:PChar):boolean;overload;

王朝网络
procedure ChannelHangUp();

王朝网络


王朝网络
function GetDialOut():boolean;

王朝网络
end;

王朝网络
implementation

王朝网络


王朝网络
王朝网络
...{ TCXXDJChannel160A }

王朝网络


王朝网络
procedure TCXXDJChannel160A.ChannelHangUp();

王朝网络
begin

王朝网络
isDialOut := false;

王朝网络
StopSigCheck(channelID);

王朝网络
HangUp(channelID);

王朝网络
Sig_ResetCheck(channelID);

王朝网络
StartSigCheck(channelID);

王朝网络
InitDTMFBuf(channelID);

王朝网络
ClearTrunkStatus();

王朝网络
InformTrunkStatus(lvofUpdate);

王朝网络
end;

王朝网络


王朝网络
procedure TCXXDJChannel160A.ChannelProcessor();

王朝网络
var

王朝网络
dState:Word;

王朝网络
begin

王朝网络
PUSH_PLAY();

王朝网络
FeedSigFunc();

王朝网络
CheckCallIn();

王朝网络
case channelState of

王朝网络
atsFree:

王朝网络
begin

王朝网络
//

王朝网络
end;

王朝网络
atsCallIning:

王朝网络
begin

王朝网络
SwitchOnCallIn();

王朝网络
end;

王朝网络
atsCallInSuccess:

王朝网络
begin

王朝网络
if CheckSigHangup() then Exit;

王朝网络
ProcessCallInSuccess();

王朝网络
end;

王朝网络
atsCheckSendDial:

王朝网络
begin

王朝网络
ProcessCheckDialSend();

王朝网络
end;

王朝网络
atsDialing:

王朝网络
begin

王朝网络
dState := Sig_CheckDial(channelID);

王朝网络
case dState of

王朝网络
// S_NORESULT:

王朝网络
S_CONNECT:

王朝网络
begin

王朝网络
channelState := atsDialSuccess;

王朝网络
isConntectd := true;

王朝网络
end;

王朝网络
S_BUSY,

王朝网络
S_NOBODY,

王朝网络
S_NODIALSIG,

王朝网络
S_NOSIGNAL:

王朝网络
begin

王朝网络
channelState := atsHangOff;

王朝网络
end;

王朝网络
end;

王朝网络
strMessage := '拨号中...';

王朝网络
end;

王朝网络
atsDialSuccess:

王朝网络
begin

王朝网络
if CheckSigHangup() then Exit;

王朝网络
ProcessDialSuccess();

王朝网络
strMessage := '拨号成功';

王朝网络
end;

王朝网络
atsHangOff:

王朝网络
begin

王朝网络
ChannelHangUp();

王朝网络
end;

王朝网络
end;

王朝网络
if (oldChannelState <> channelState) then

王朝网络
begin

王朝网络
oldChannelState := channelState;

王朝网络
InformTrunkStatus(lvofUpdate);

王朝网络
end;

王朝网络
end;

王朝网络


王朝网络
function TCXXDJChannel160A.CheckCallIn(): boolean;

王朝网络
begin

王朝网络
Result := RingDetect(channelID);

王朝网络
if Result then

王朝网络
begin

王朝网络
OffHook(channelID);

王朝网络
if isDialOut then

王朝网络
channelState := atsDialSuccess

王朝网络
else

王朝网络
channelState := atsCallIning;

王朝网络
end;

王朝网络
end;

王朝网络


王朝网络
function TCXXDJChannel160A.CheckSigHangup(): boolean;

王朝网络
begin

王朝网络
Result := false;

王朝网络
if (Sig_CheckBusy(channelID)=1) then

王朝网络
begin

王朝网络
strMessage := '对方已挂机';

王朝网络
InformTrunkStatus(lvofUpdate);

王朝网络
StopPlayFile(channelID);

王朝网络
channelState := atsHangOff;

王朝网络
Result := true;

王朝网络
end;

王朝网络
end;

王朝网络


王朝网络
procedure TCXXDJChannel160A.ClearTrunkStatus();

王朝网络
begin

王朝网络
channelState := atsFree;

王朝网络
oldChannelState := channelState;

王朝网络
phoneNumber := '';

王朝网络
dtmfString := '';

王朝网络
strMessage := '';

王朝网络
isConntectd := false;

王朝网络
end;

王朝网络


王朝网络
constructor TCXXDJChannel160A.Create(const trunkEvent:TTrunkStatusEvent);

王朝网络
begin

王朝网络
Self.OnChannelState := trunkEvent;

王朝网络
Self.FreeOnTerminate := true;

王朝网络
inherited Create(true);

王朝网络
end;

王朝网络


王朝网络


王朝网络
destructor TCXXDJChannel160A.Destroy;

王朝网络
begin

王朝网络
Suspend();

王朝网络
ChannelHangUp();

王朝网络
//inherited Destroy();

王朝网络
end;

王朝网络


王朝网络
function TCXXDJChannel160A.DialPhone(const DialPhoneNumber:PChar;

王朝网络
const PreDialNumber:PChar): boolean;

王朝网络
begin

王朝网络
isDialOut := true;

王朝网络
phoneNumber := DialPhoneNumber;

王朝网络
OffHook(channelID);

王朝网络
InitDTMFBuf(channelID);

王朝网络
Result := Sig_StartDial(channelID,DialPhoneNumber,PreDialNumber,0)=1;

王朝网络
channelState := atsCheckSendDial;

王朝网络
end;

王朝网络


王朝网络
function TCXXDJChannel160A.DialPhone(

王朝网络
const DialPhoneNumber: PChar): boolean;

王朝网络
begin

王朝网络
Result := DialPhone(DialPhoneNumber,'');

王朝网络
end;

王朝网络


王朝网络
procedure TCXXDJChannel160A.Execute;

王朝网络
begin

王朝网络
while NOT Terminated do

王朝网络
begin

王朝网络
Synchronize(ChannelProcessor);

王朝网络
Sleep(10);

王朝网络
end;

王朝网络
end;

王朝网络


王朝网络
function TCXXDJChannel160A.GetChannelID(): Word;

王朝网络
begin

王朝网络
Result := channelID;

王朝网络
end;

王朝网络


王朝网络
function TCXXDJChannel160A.GetChannelStatus(): TTrunkState;

王朝网络
begin

王朝网络
Result := channelState;

王朝网络
end;

王朝网络


王朝网络
procedure TCXXDJChannel160A.InformTrunkStatus(const aMsgFlag: TLVOperateFlag);

王朝网络
begin

王朝网络
aTrunkState.lvFlag := aMsgFlag;

王朝网络
aTrunkState.TrunkID := IntToStr(channelID);

王朝网络
aTrunkState.TrunkType := channelType;

王朝网络
aTrunkState.TrunkTypeStr := ChannelTypeString[channelType];

王朝网络
aTrunkState.TrunkStep := channelState;

王朝网络
aTrunkState.TrunkStepStr := TrunkStateString[channelState];

王朝网络
aTrunkState.TrunkPhone := phoneNumber;

王朝网络
aTrunkState.TrunkData := dtmfString;

王朝网络
OnChannelState(aTrunkState);

王朝网络
end;

王朝网络


王朝网络
procedure TCXXDJChannel160A.ProcessCallInSuccess();

王朝网络
begin

王朝网络


王朝网络
end;

王朝网络


王朝网络
function TCXXDJChannel160A.SwitchOnCallIn(): boolean;

王朝网络
begin

王朝网络
OffHook(channelID);

王朝网络
InitDTMFBuf(channelID);

王朝网络
StartSigCheck(channelID);

王朝网络
channelState := atsCallInSuccess;

王朝网络
Result := true;

王朝网络
end;

王朝网络


王朝网络
procedure TCXXDJChannel160A.ProcessDialSuccess();

王朝网络
begin

王朝网络


王朝网络
end;

王朝网络


王朝网络
procedure TCXXDJChannel160A.CreateCommChannel(const aChennelID: Word);

王朝网络
begin

王朝网络
channelID := aChennelID;

王朝网络
channelType := TChannelType(CheckChType(channelID));

王朝网络
ClearTrunkStatus();

王朝网络
InformTrunkStatus(lvofAdd);

王朝网络
end;

王朝网络


王朝网络
function TCXXDJChannel160A.GetChannelType(): TChannelType;

王朝网络
begin

王朝网络
Result := channelType;

王朝网络
end;

王朝网络


王朝网络
function TCXXDJChannel160A.GetDialOut(): boolean;

王朝网络
begin

王朝网络
Result := isDialOut;

王朝网络
end;

王朝网络


王朝网络
procedure TCXXDJChannel160A.ProcessCheckDialSend();

王朝网络
begin

王朝网络
if(CheckSendEnd(channelID) = 1) then

王朝网络
begin

王朝网络
StartSigCheck(channelID);

王朝网络
channelState := atsDialing;

王朝网络
end;

王朝网络
end;

王朝网络


王朝网络
end.

王朝网络
 
 
Delphi之东进模拟语音卡(D160A)可复用源码 网友急需,先开源吧,文档过几天慢慢补。 作者:成晓旭 设计简介: 1、 将卡、通道分别单独进行设计与封装。 2、 所有的外部操作接口都封装在卡类这一类。 3、 在我的项目中,在卡类这一级还增加了适配器或者代理,分别实现了Adapter或Proxy模式;以尽可能地解耦卡设备的实现细节与具体应用业务之间的关系。因为,我们的系统中使用了几家不同的卡设备,另一方面,这些卡设备,在不同的软件系统中,又有不同的业务应用需求。 4、 当然,卡这一级,也可以实现一个统一的接口,这样对外部可以表现出相对统一的行为,以方便业务层代码的调用,比如说:在数据采集的应用中,统一的接口可以让采集控制层不必依赖于具体的采集设备和通信方式,可以一致地实现数据收发,不管通信方式是RS232、RS485、TCP/IP、PSTN,还是别的方式或者通信设备。 5、 在通道设计中,核心的就是一个“状态机模式”,通过轮巡通道状态来管理硬件卡设备,并且,还自己设计了一个业务级的“业务状态机”,来抽象业务方面需要关心的“业务状态”,通过增加“业务状态机”这样一个中间层,以解耦业务状态与设备状态之间的依赖。(这一点,在我看到的所有卡厂商提供的各类Demo程序里面都没有这样做,这也无形中误导了很多的开发人员,我看到的所有应用软件开发的源码都是:设备细节、尤其是通道状态,与业务逻辑代码紧紧地耦合在一起,难解难分)。 6、 此设计的另一个亮点是:IoC模式的应用(2004年自己在设计此类时还不知道这个概念,全凭自己的经验总结出这样的设计)。对通道进入“呼入成功”、“呼出成功”等业务状态的调用代码从通道类是解耦出来:设计一个接口,在各个业务状态的处理方法中,再调用接口方法,将具体的业务处理逻辑委托给实现此接口的对象。并且这个接口的实现是通过“依赖注入”实现IoC的。这样设计,就达到了很好的可复用性和灵活性。 7、 当然,更好的实现可以采用AOP(面向方法编程)的思想或者实现技术,这样可复用性更好,如此设计,在业务与卡方法的调用之间,耦合度将是最低的。 8、 目前的版本,没有在代码中体现接口的实现…… 9、 类图(以后补上): 10、卡类源码: [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762021.png[/img][/url]//------------------------------------------------------------------------------ [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762052.png[/img][/url]// [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762083.png[/img][/url]// 产品名称: 成晓旭的个人软件Delphi源码库 [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762114.png[/img][/url]// 产品版本: CXXSoft delphi code source lib 2.0 [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762161.png[/img][/url]// 模块名称: Delphi之东进模拟语音卡类 [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762192.png[/img][/url]// 模块描述: [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762208.png[/img][/url]// 单元文件: unDJCard160A.pas [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762271.png[/img][/url]// 开发作者: 成晓旭 [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762286.png[/img][/url]// 备注: 任何人使用此文件时,请保留此段自述文件,谢谢! [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762317.png[/img][/url]// 开发时间: 2004-08-03 [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762349.png[/img][/url]// 修改历史: [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762380.png[/img][/url]// 修改描述: [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762396.png[/img][/url]//------------------------------------------------------------------------------ [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762427.png[/img][/url]unit unDJCard160A; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762458.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762489.png[/img][/url]interface [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762521.png[/img][/url]uses [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762536.png[/img][/url] Windows, [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762567.png[/img][/url] unDJTC08a32,unDJNewSig, [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762599.png[/img][/url] unBaseDefine,unDJ160ADefine, [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762630.png[/img][/url] unDJChanne160A; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762646.png[/img][/url]type [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762677.png[/img][/url] TCXXCommCard160A = class(TObject) [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762708.png[/img][/url] private [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762739.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762755.png[/img][/url] ChannelNumber:Word; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762786.png[/img][/url] channelObject:array of TCXXDJChannel160A; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762817.png[/img][/url] OnCardChannelState:TTrunkStatusEvent; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762849.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762896.png[/img][/url] procedure Stop(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762927.png[/img][/url] procedure ReleaseCommDevice(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762958.png[/img][/url] function GetChannelObjectOrder(const aChannelID:Word):Word; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803762989.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763005.png[/img][/url] public [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763036.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763067.png[/img][/url] constructor Create(const trunkEvent:TTrunkStatusEvent); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763099.png[/img][/url] destructor Destroy(); override; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763130.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763161.png[/img][/url] function LoadCommDevice(const loadAll:boolean=false):boolean; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763177.png[/img][/url] function Startup():boolean; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763208.png[/img][/url] function GetAFreeChannel():Word; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763239.png[/img][/url] function GetChannelNumber():Word; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763271.png[/img][/url] function DialPhone(const aChannelID:Word;const DialPhoneNumber:PChar):boolean; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763286.png[/img][/url] function HangUp(const aChannelID:Word):boolean; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763317.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763349.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763380.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763396.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763442.png[/img][/url]implementation [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763458.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763489.png[/img][/url][url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763521.png[/img][/url]...{ TCXXCommCard160A } [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763552.png[/img][/url]constructor TCXXCommCard160A.Create(const trunkEvent:TTrunkStatusEvent); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763583.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763599.png[/img][/url] ChannelNumber := 0; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763630.png[/img][/url] Self.OnCardChannelState := trunkEvent; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763661.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763692.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763708.png[/img][/url]destructor TCXXCommCard160A.Destroy; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763739.png[/img][/url]var [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763786.png[/img][/url] Loop:Word; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763802.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763849.png[/img][/url] Stop(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763880.png[/img][/url] if (Length(channelObject) > 0) and (channelNumber > 0) then [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763911.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763942.png[/img][/url] for Loop := 0 to ChannelNumber - 1 do [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763958.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803763989.png[/img][/url] if Assigned(channelObject[Loop]) then [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764021.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764052.png[/img][/url] channelObject[Loop].Free(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764067.png[/img][/url] channelObject[Loop] := nil; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764099.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764130.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764161.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764177.png[/img][/url] ReleaseCommDevice(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764208.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764239.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764271.png[/img][/url]function TCXXCommCard160A.DialPhone(const aChannelID: Word; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764286.png[/img][/url] const DialPhoneNumber: PChar): boolean; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764317.png[/img][/url]var [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764349.png[/img][/url] K:Word; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764380.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764396.png[/img][/url] Result := false; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764442.png[/img][/url] K := GetChannelObjectOrder(aChannelID); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764474.png[/img][/url] if (K <> ErrorTrunkNumber) and (Assigned(channelObject[K])) then [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764505.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764521.png[/img][/url] Result := channelObject[K].DialPhone(DialPhoneNumber); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764552.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764614.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764630.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764661.png[/img][/url]procedure TCXXCommCard160A.ReleaseCommDevice(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764692.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764724.png[/img][/url] DisableCard(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764739.png[/img][/url] FreeDrv(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764771.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764802.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764833.png[/img][/url]function TCXXCommCard160A.GetAFreeChannel(): Word; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764849.png[/img][/url]var [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764880.png[/img][/url] Loop:Word; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764911.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764942.png[/img][/url] Result := ErrorTrunkNumber; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764958.png[/img][/url] for Loop := Low(channelObject) to High(channelObject) do [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803764989.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765036.png[/img][/url] if (channelObject[Loop].GetChannelType() = ctEmpty) then continue; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765067.png[/img][/url] if (channelObject[Loop].GetChannelStatus() = atsFree) then [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765099.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765130.png[/img][/url] Result := channelObject[Loop].GetChannelID(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765146.png[/img][/url] break; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765177.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765208.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765239.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765255.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765286.png[/img][/url]function TCXXCommCard160A.GetChannelNumber(): Word; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765317.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765349.png[/img][/url] Result := channelNumber; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765364.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765396.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765427.png[/img][/url]function TCXXCommCard160A.GetChannelObjectOrder( [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765458.png[/img][/url] const aChannelID: Word): Word; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765474.png[/img][/url]var [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765505.png[/img][/url] Loop:Word; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765536.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765567.png[/img][/url] Result := ErrorTrunkNumber; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765583.png[/img][/url] for Loop := Low(channelObject) to High(channelObject) do [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765614.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765646.png[/img][/url] if (channelObject[Loop].GetChannelID = aChannelID) then [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765677.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765708.png[/img][/url] Result := Loop; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765724.png[/img][/url] break; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765771.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765802.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765833.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765864.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765896.png[/img][/url]function TCXXCommCard160A.HangUp(const aChannelID: Word): boolean; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765911.png[/img][/url]var [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765942.png[/img][/url] K:Word; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803765974.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766005.png[/img][/url] Result := false; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766036.png[/img][/url] K := GetChannelObjectOrder(aChannelID); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766067.png[/img][/url] if (K <> ErrorTrunkNumber) and (Assigned(channelObject[K])) then [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766083.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766114.png[/img][/url] channelObject[K].ChannelHangUp(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766146.png[/img][/url] Result := true; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766177.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766192.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766224.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766255.png[/img][/url]function TCXXCommCard160A.LoadCommDevice(const loadAll:boolean): boolean; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766286.png[/img][/url]const [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766364.png[/img][/url] loadEmpty = true; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766396.png[/img][/url]var [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766411.png[/img][/url] Loop,tempNumber:Word; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766442.png[/img][/url] isFlag:LongInt; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766474.png[/img][/url] function CheckLoadTrunk():boolean; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766505.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766521.png[/img][/url] Result := loadAll or ((NOT loadAll) and(TChannelType(CheckChType(Loop)) <> ctEmpty)); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766552.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766614.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766630.png[/img][/url] isFlag := LoadDRV(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766661.png[/img][/url] Result := (isFlag=0); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766692.png[/img][/url] if NOT Result then Exit; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766724.png[/img][/url] tempNumber := CheckValidCh(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766739.png[/img][/url] Result := EnableCard(tempNumber,1024*8)=0; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766771.png[/img][/url] if NOT Result then [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766802.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766833.png[/img][/url] FreeDrv(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766864.png[/img][/url] Exit; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766880.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766911.png[/img][/url] Result := Sig_Init()=1; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803766974.png[/img][/url] if NOT Result then Exit; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767005.png[/img][/url] SetBusyPara(700); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767021.png[/img][/url] SetPackRate(PACK_64KBPS ); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767067.png[/img][/url] channelNumber := tempNumber; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767083.png[/img][/url] SetLength(channelObject,channelNumber); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767114.png[/img][/url] for Loop := 0 to channelNumber - 1 do [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767146.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767177.png[/img][/url] if CheckLoadTrunk() then [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767208.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767224.png[/img][/url] channelObject[Loop] := TCXXDJChannel160A.Create(OnCardChannelState); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767255.png[/img][/url] channelObject[Loop].CreateCommChannel(Loop); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767286.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767317.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767333.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767364.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767396.png[/img][/url]function TCXXCommCard160A.Startup(): boolean; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767427.png[/img][/url]var [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767442.png[/img][/url] Loop:integer; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767474.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767505.png[/img][/url] for Loop := 0 to channelNumber - 1 do [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767536.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767567.png[/img][/url] channelObject[Loop].Resume(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767583.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767614.png[/img][/url] Result := true; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767661.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767692.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767708.png[/img][/url]procedure TCXXCommCard160A.Stop(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767739.png[/img][/url]var [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767771.png[/img][/url] Loop:integer; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767802.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767833.png[/img][/url] for Loop := 0 to channelNumber - 1 do [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767849.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767880.png[/img][/url] channelObject[Loop].Suspend(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767911.png[/img][/url] channelObject[Loop].Terminate(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767942.png[/img][/url] channelObject[Loop] := nil; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803767958.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803768021.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803768099.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803768130.png[/img][/url]end. [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803768161.png[/img][/url] 11、 通道类源码: [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803768177.png[/img][/url]//------------------------------------------------------------------------------ [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803768208.png[/img][/url]// [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803768239.png[/img][/url]// 产品名称: 成晓旭的个人软件Delphi源码库 [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803768271.png[/img][/url]// 产品版本: CXXSoft delphi code source lib 2.0 [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803768286.png[/img][/url]// 模块名称: Delphi之东进模拟语音卡通道类 [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803768880.png[/img][/url]// 模块描述: [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803768927.png[/img][/url]// 单元文件: unDJChanne160A.pas [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803768974.png[/img][/url]// 开发作者: 成晓旭 [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769005.png[/img][/url]// 备注: 任何人使用此文件时,请保留此段自述文件,谢谢! [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769036.png[/img][/url]// 开发时间: 2004-08-03 [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769067.png[/img][/url]// 修改历史: [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769083.png[/img][/url]// 修改描述: [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769130.png[/img][/url]//------------------------------------------------------------------------------ [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769146.png[/img][/url]unit unDJChanne160A; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769177.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769208.png[/img][/url]interface [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769239.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769271.png[/img][/url]uses [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769286.png[/img][/url] Windows,Classes,SysUtils, [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769317.png[/img][/url] unBaseDefine,unDJ160ADefine, [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769349.png[/img][/url] unDJTC08a32,unDJNewSig; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769380.png[/img][/url]Type [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769411.png[/img][/url] TCXXDJChannel160A = class(TThread) [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769427.png[/img][/url] //TCXXDJChannel160A = class(TObject) [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769458.png[/img][/url] private [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769489.png[/img][/url] channelType:TChannelType; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769521.png[/img][/url] oldChannelState,channelState:TTrunkState; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769536.png[/img][/url] channelID:Word; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769567.png[/img][/url] phoneNumber:string; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769599.png[/img][/url] dtmfString:string; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769630.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769661.png[/img][/url] isConntectd:boolean; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769692.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769708.png[/img][/url] isDialOut:boolean; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769739.png[/img][/url] aTrunkState:TTrunkStatus; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769771.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769802.png[/img][/url] procedure InformTrunkStatus(const aMsgFlag: TLVOperateFlag); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769817.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769849.png[/img][/url] procedure ClearTrunkStatus(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769880.png[/img][/url] function CheckSigHangup():boolean; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769911.png[/img][/url] function CheckCallIn():boolean; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769942.png[/img][/url] function SwitchOnCallIn():boolean; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803769989.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770005.png[/img][/url] procedure ProcessCallInSuccess(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770036.png[/img][/url] procedure ProcessDialSuccess(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770067.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770099.png[/img][/url] procedure ProcessCheckDialSend(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770130.png[/img][/url] protected [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770146.png[/img][/url] procedure Execute(); override; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770177.png[/img][/url] public [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770208.png[/img][/url] strMessage:string; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770239.png[/img][/url] OnChannelState:TTrunkStatusEvent; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770255.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770286.png[/img][/url] constructor Create(const trunkEvent:TTrunkStatusEvent); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770317.png[/img][/url] destructor Destroy();override; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770349.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770364.png[/img][/url] procedure CreateCommChannel(const aChennelID: Word); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770396.png[/img][/url] procedure ChannelProcessor(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770427.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770458.png[/img][/url] function GetChannelID():Word; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770489.png[/img][/url] function GetChannelStatus():TTrunkState; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770521.png[/img][/url] function GetChannelType():TChannelType; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770552.png[/img][/url] function DialPhone(const DialPhoneNumber:PChar):boolean;overload; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770583.png[/img][/url] function DialPhone(const DialPhoneNumber:PChar;const PreDialNumber:PChar):boolean;overload; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770630.png[/img][/url] procedure ChannelHangUp(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770661.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770692.png[/img][/url] function GetDialOut():boolean; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770708.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770739.png[/img][/url]implementation [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770771.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770802.png[/img][/url][url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770833.png[/img][/url]...{ TCXXDJChannel160A } [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770880.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770911.png[/img][/url]procedure TCXXDJChannel160A.ChannelHangUp(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770958.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803770989.png[/img][/url] isDialOut := false; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771021.png[/img][/url] StopSigCheck(channelID); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771052.png[/img][/url] HangUp(channelID); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771083.png[/img][/url] Sig_ResetCheck(channelID); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771114.png[/img][/url] StartSigCheck(channelID); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771146.png[/img][/url] InitDTMFBuf(channelID); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771177.png[/img][/url] ClearTrunkStatus(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771208.png[/img][/url] InformTrunkStatus(lvofUpdate); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771239.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771271.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771286.png[/img][/url]procedure TCXXDJChannel160A.ChannelProcessor(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771317.png[/img][/url]var [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771349.png[/img][/url] dState:Word; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771380.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771396.png[/img][/url] PUSH_PLAY(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771427.png[/img][/url] FeedSigFunc(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771474.png[/img][/url] CheckCallIn(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771505.png[/img][/url] case channelState of [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771536.png[/img][/url] atsFree: [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771567.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771583.png[/img][/url] // [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771614.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771646.png[/img][/url] atsCallIning: [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771677.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771692.png[/img][/url] SwitchOnCallIn(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771724.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771755.png[/img][/url] atsCallInSuccess: [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771786.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771817.png[/img][/url] if CheckSigHangup() then Exit; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771849.png[/img][/url] ProcessCallInSuccess(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771880.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771911.png[/img][/url] atsCheckSendDial: [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771927.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771958.png[/img][/url] ProcessCheckDialSend(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803771989.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772021.png[/img][/url] atsDialing: [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772036.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772083.png[/img][/url] dState := Sig_CheckDial(channelID); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772099.png[/img][/url] case dState of [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772130.png[/img][/url] // S_NORESULT: [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772161.png[/img][/url] S_CONNECT: [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772192.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772224.png[/img][/url] channelState := atsDialSuccess; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772255.png[/img][/url] isConntectd := true; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772271.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772302.png[/img][/url] S_BUSY, [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772333.png[/img][/url] S_NOBODY, [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772364.png[/img][/url] S_NODIALSIG, [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772380.png[/img][/url] S_NOSIGNAL: [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772411.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772442.png[/img][/url] channelState := atsHangOff; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772474.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772505.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772536.png[/img][/url] strMessage := '拨号中...'; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772552.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772583.png[/img][/url] atsDialSuccess: [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772614.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772646.png[/img][/url] if CheckSigHangup() then Exit; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772661.png[/img][/url] ProcessDialSuccess(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772692.png[/img][/url] strMessage := '拨号成功'; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772724.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772802.png[/img][/url] atsHangOff: [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772833.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772864.png[/img][/url] ChannelHangUp(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772880.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772911.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772942.png[/img][/url] if (oldChannelState <> channelState) then [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772974.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803772989.png[/img][/url] oldChannelState := channelState; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773036.png[/img][/url] InformTrunkStatus(lvofUpdate); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773067.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773099.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773114.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773146.png[/img][/url]function TCXXDJChannel160A.CheckCallIn(): boolean; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773177.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773208.png[/img][/url] Result := RingDetect(channelID); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773224.png[/img][/url] if Result then [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773255.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773286.png[/img][/url] OffHook(channelID); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773317.png[/img][/url] if isDialOut then [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773349.png[/img][/url] channelState := atsDialSuccess [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773380.png[/img][/url] else [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773411.png[/img][/url] channelState := atsCallIning; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773442.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773474.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773505.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773536.png[/img][/url]function TCXXDJChannel160A.CheckSigHangup(): boolean; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773552.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773583.png[/img][/url] Result := false; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773614.png[/img][/url] if (Sig_CheckBusy(channelID)=1) then [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773646.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773661.png[/img][/url] strMessage := '对方已挂机'; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773692.png[/img][/url] InformTrunkStatus(lvofUpdate); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773724.png[/img][/url] StopPlayFile(channelID); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773755.png[/img][/url] channelState := atsHangOff; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773771.png[/img][/url] Result := true; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773802.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773849.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773864.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773911.png[/img][/url]procedure TCXXDJChannel160A.ClearTrunkStatus(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773927.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773958.png[/img][/url] channelState := atsFree; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803773989.png[/img][/url] oldChannelState := channelState; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774021.png[/img][/url] phoneNumber := ''; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774036.png[/img][/url] dtmfString := ''; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774067.png[/img][/url] strMessage := ''; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774099.png[/img][/url] isConntectd := false; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774130.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774161.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774192.png[/img][/url]constructor TCXXDJChannel160A.Create(const trunkEvent:TTrunkStatusEvent); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774224.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774239.png[/img][/url] Self.OnChannelState := trunkEvent; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774271.png[/img][/url] Self.FreeOnTerminate := true; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774317.png[/img][/url] inherited Create(true); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774349.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774380.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774396.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774427.png[/img][/url]destructor TCXXDJChannel160A.Destroy; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774474.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774489.png[/img][/url] Suspend(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774521.png[/img][/url] ChannelHangUp(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774552.png[/img][/url] //inherited Destroy(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774583.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774614.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774630.png[/img][/url]function TCXXDJChannel160A.DialPhone(const DialPhoneNumber:PChar; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774661.png[/img][/url] const PreDialNumber:PChar): boolean; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774692.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774724.png[/img][/url] isDialOut := true; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774739.png[/img][/url] phoneNumber := DialPhoneNumber; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774771.png[/img][/url] OffHook(channelID); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774802.png[/img][/url] InitDTMFBuf(channelID); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774833.png[/img][/url] Result := Sig_StartDial(channelID,DialPhoneNumber,PreDialNumber,0)=1; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774864.png[/img][/url] channelState := atsCheckSendDial; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774880.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774911.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774942.png[/img][/url]function TCXXDJChannel160A.DialPhone( [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774974.png[/img][/url] const DialPhoneNumber: PChar): boolean; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803774989.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775021.png[/img][/url] Result := DialPhone(DialPhoneNumber,''); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775052.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775083.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775114.png[/img][/url]procedure TCXXDJChannel160A.Execute; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775130.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775161.png[/img][/url] while NOT Terminated do [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775192.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775224.png[/img][/url] Synchronize(ChannelProcessor); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775239.png[/img][/url] Sleep(10); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775271.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775302.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775349.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775380.png[/img][/url]function TCXXDJChannel160A.GetChannelID(): Word; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775411.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775458.png[/img][/url] Result := channelID; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775474.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775505.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775536.png[/img][/url]function TCXXDJChannel160A.GetChannelStatus(): TTrunkState; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775567.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775583.png[/img][/url] Result := channelState; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775614.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775646.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775677.png[/img][/url]procedure TCXXDJChannel160A.InformTrunkStatus(const aMsgFlag: TLVOperateFlag); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775739.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775771.png[/img][/url] aTrunkState.lvFlag := aMsgFlag; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775786.png[/img][/url] aTrunkState.TrunkID := IntToStr(channelID); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775817.png[/img][/url] aTrunkState.TrunkType := channelType; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775864.png[/img][/url] aTrunkState.TrunkTypeStr := ChannelTypeString[channelType]; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775896.png[/img][/url] aTrunkState.TrunkStep := channelState; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775927.png[/img][/url] aTrunkState.TrunkStepStr := TrunkStateString[channelState]; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775958.png[/img][/url] aTrunkState.TrunkPhone := phoneNumber; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803775974.png[/img][/url] aTrunkState.TrunkData := dtmfString; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776005.png[/img][/url] OnChannelState(aTrunkState); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776036.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776067.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776083.png[/img][/url]procedure TCXXDJChannel160A.ProcessCallInSuccess(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776114.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776146.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776177.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776208.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776224.png[/img][/url]function TCXXDJChannel160A.SwitchOnCallIn(): boolean; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776255.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776286.png[/img][/url] OffHook(channelID); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776317.png[/img][/url] InitDTMFBuf(channelID); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776349.png[/img][/url] StartSigCheck(channelID); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776380.png[/img][/url] channelState := atsCallInSuccess; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776396.png[/img][/url] Result := true; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776427.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776458.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776489.png[/img][/url]procedure TCXXDJChannel160A.ProcessDialSuccess(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776505.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776536.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776567.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776599.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776630.png[/img][/url]procedure TCXXDJChannel160A.CreateCommChannel(const aChennelID: Word); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776646.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776677.png[/img][/url] channelID := aChennelID; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776708.png[/img][/url] channelType := TChannelType(CheckChType(channelID)); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776739.png[/img][/url] ClearTrunkStatus(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776771.png[/img][/url] InformTrunkStatus(lvofAdd); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776802.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776833.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776864.png[/img][/url]function TCXXDJChannel160A.GetChannelType(): TChannelType; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776896.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776911.png[/img][/url] Result := channelType; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776958.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803776989.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803777021.png[/img][/url]function TCXXDJChannel160A.GetDialOut(): boolean; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803777036.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803777067.png[/img][/url] Result := isDialOut; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803777099.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803777130.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803777161.png[/img][/url]procedure TCXXDJChannel160A.ProcessCheckDialSend(); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803777177.png[/img][/url]begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803777208.png[/img][/url] if(CheckSendEnd(channelID) = 1) then [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803777239.png[/img][/url] begin [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803777271.png[/img][/url] StartSigCheck(channelID); [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803777302.png[/img][/url] channelState := atsDialing; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803777333.png[/img][/url] end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803777349.png[/img][/url]end; [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803777380.png[/img][/url] [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803777411.png[/img][/url]end. [url=http://www.wangchao.net.cn/bbsdetail_997650.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1189803777442.png[/img][/url]
󰈣󰈤
日版宠物情人插曲《Winding Road》歌词

日版宠物情人2017的插曲,很带节奏感,日语的,女生唱的。 最后听见是在第8集的时候女主手割伤了,然后男主用嘴帮她吸了一下,插曲就出来了。 歌手:Def...

兄弟共妻,我成了他们夜里的美食

老钟家的两个儿子很特别,就是跟其他的人不太一样,魔一般的执着。兄弟俩都到了要结婚的年龄了,不管自家老爹怎么磨破嘴皮子,兄弟俩说不娶就不娶,老父母为兄弟两操碎了心...

网络安全治理:国家安全保障的主要方向是打击犯罪,而不是处置和惩罚受害者

来源:中国青年报 新的攻击方法不断涌现,黑客几乎永远占据网络攻击的上风,我们不可能通过技术手段杜绝网络攻击。国家安全保障的主要方向是打击犯罪,而不是处置和惩罚...

 
 
 
>>返回首页<<
 为你推荐
 
 
 
 转载本文
 UBB代码 HTML代码
复制到剪贴板...
 
 
 热帖排行
 
单纯美女 迷人女孩
校园甜美少女
忍辱负重
大学校园
 
 
王朝网络微信公众号
微信扫码关注本站公众号wangchaonetcn
 
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
©2005- 王朝网络 版权所有