一 :
Do not confuse a call leg with a call . A call leg represents one full-duplex link to a party whilea call represents the agglomeration of multiple (two or more) call legs. For example, a bridge is a form of call that
uses two call legs.
二:
Do not confuse the base class CTBCMCLeg with the class CTBCAFCallLeg. The later is a class used by the
ITBCAFCallFlow interface when dealing with multiple legs. It is designed to represent a leg within a call. It cannot be instanciated as a standalone object. Therefore, the above example used the CTBCMCLeg.
注 above example 指的是 make outgoing call
三 : 有各种不同的函数检查当前callleg的状态 , 例如 TBX_BOOL IsAccepted(); TBX_BOOL IsAlerted(); TBX_BOOL IsAnswered();
其中2个重要的函数是
TBX_BOOL IsPlayingStream();
和
TBX_BOOL IsRecordingStream();
可以检查callleg当前是不是正在播放stream或者录音。
---------------
还有2个函数不解, 是 TBX_BOOL IsPlayingDigit(); 和 TBX_BOOL IsPlayingEvent();
Digit怎么play ?
------
virtual TBX_VOID OnLegEvent( PITBCMCLegEvent in_pEvent ); 此函数用于处理用户事件
virtual TBX_VOID OnStreamPlayingDone( TBCMC_IVR_REASON_CODE in_Reason ); 当prompt播放完毕
virtual TBX_VOID OnStreamRecordingDone( TBCMC_IVR_REASON_CODE in_Reason ); 当 录音结束 , 这里有个问题, 录音时并没有设置录音时间的选项,那么何时才结束录音?
TBX_RESULT StopDigitCollection( PITBCMCErrorListener in_pErrorListener = NULL ); 启动按键收集
TBX_RESULT PlayEvent( CTBCMC_EVENT_ATTRIBUTE & in_Events, PITBCMCErrorListener in_pErrorListener = NULL ); 播发一段tone在leg上