예제 #1
0
        private void OnTransferRequest(int call, CORESIP_CallInfo info, CORESIP_CallTransferInfo transferInfo)
        {
            Debug.Assert(info.Type == CORESIP_CallType.CORESIP_CALL_DIA);
            _Logger.Debug("Nueva peticion de transferencia [CallId={0}] [DstId={1}] [DstIp={2}] [DstSubId={3}] [DstRs={4}]",
                          call, transferInfo.DstId, transferInfo.DstIp, transferInfo.DstSubId, transferInfo.DstRs);

            Top.WorkingThread.Enqueue("OnTransferRequest", delegate()
            {
                CORESIP_Answer answer = new CORESIP_Answer(SipAgent.SIP_DECLINE);
                General.SafeLaunchEvent(TlfTransferRequest, this, call, info, transferInfo, answer);

                if (answer.Value != 0)
                {
                    SipAgent.TransferAnswer(transferInfo.TsxKey, transferInfo.TxData, transferInfo.EvSub, answer.Value);
                }
            });
        }