《dialogic 摘挂机的检测.doc》由会员分享,可在线阅读,更多相关《dialogic 摘挂机的检测.doc(6页珍藏版)》请在金锄头文库上搜索。
1、Disconnect SupervisionWhen the caller hangs up, Dialogic card does not detect the disconnection. Why?Most of the PBXs and switches today do not use loop current drop to notify the other party of the disconnection. Instead,They use disconnect tone, which is usually the same as busy tone. Disconnect t
2、one will be sent to the called party as soon asthe calling party hangs up. For local calls, however, the disconnect tone is usually sent to the calling party 30 seconds after thecalled party hangs up. Dialogic cards, by default, is enabled to detect loop current drop. However, disconnect tone superv
3、ision is not enabled. How to implement Disconnect Tone Supervision? There are two ways of implementation: Advanced Tone Feature (driver approach) Global Tone Detection (application approach)1. Advanced Tone FeatureThis feature is currently available on DOS, Windows 95 and Windows NT (Streams version
4、 SDK only). This method makesuse of Tone Set File created by PBXpert or PBXpert/32. By simply using appropriate TSF file, you can make your system towork on any analog switches or PBXs. To enable this feature, do the following:For Windows NT:Click Start/Programs/Dialogic System Software/Advanced Ton
5、e Features program item. Then tick Disconnect ToneSupervision and Tone Set File Enabled buttons on the Advanced Tone Features window. Lastly, specify the TSF file to beused.For Windows 95:Similar to that of Windows NT. The path is Start/Programs/Dialogic Development Package/Configuration Manager. Th
6、enclick Advanced button on the Dialogic Configuration Manager window. For DOS:After Dialogic voice driver is loaded, run TONEDNLD.EXE program to overwrite the default tone definitions contained in thedriver with those contained in the TSF file. genload d40drv -h TONEDNLD -f -hAfter ATF is enabled, t
7、he default tone definitions contained in the driver are overwritten with those contained in the TSF file. When the disconnect tone is detected, an LCOFF event will be generated, as if it is a loop current drop event. The examplein asynchronous callback model below shows how to terminate dx_play() fu
8、nction upon detection of disconnect tone.void start_playback (int index) DV_TPT tpt1 = 0; dx_clrtpt(tpt,1); tpt0.tp_type = IO_EOT; tpt0.tp_termno = DX_LCOFF; tpt0.tp_length = 1; tpt0.tp_flags = TF_LCOFF; : if (dx_play(Channelindex.voxhdl, &Channelindex.iott, tpt, EV_ASYNC) = -1) :int play_handler (v
9、oid) : device = sr_getevtdev(0); cause = ATDX_TERMMSK(device); if (cause & TM_LCOFF) printf(Play terminated due to Loop Current Dropn); disconnect(device); : Make sure you do not enable DM_LCOFF with dx_setevtmsk(), otherwise TDX_CST event will be generated and capturedby CST handler. 2. Global Tone
10、 DetectionThis approach can be used in all platforms. You need to add codes into your application to detect the specified disconnecttone(s). To make your application more portable across PBXs, I suggest that you make your application read a parameter filein which the disconnect tone definitions is d
11、efined. The example below shows you how to do it:#define POTS_DISCTONE 201void main(int argc, char *argv) : for(n=0; nNumOfChannels; n+) if (dx_deltones(Channeln.voxhdl) = -1) process_error(Channeln.voxhdl, dx_deltones); / Singapore disconnect tone 425 Hz, 750 ms on, 750 ms off if (dx_bldstcad(POTS_DISCTONE,425,30,75,6,75,6,2) = -1) process_error(Channeln.voxhdl, dx_bldstcad); for(n=0; ncst_event)