Ejemplo n.º 1
0
        public WebOperate Exec(IPhone Phone)
        {
            int i = -1;

            switch (fun)
            {
            case "Connect": i = AgentApi.MornsunSvrConnect(p[0], int.Parse(p[1])); break;

            case "Disconnect": i = AgentApi.MornsunSvrShutdown(); break;

            case "Login": i = AgentApi.MornsunSvrLogin(p[0], p[1], p[2], p[3]);
                if (i == 0)
                {
                    Agent a = new Agent();
                    a.AgentId      = p[0];
                    a.ConnectionId = Phone.ConnectionId;
                    IAgent aa = Phone.List.Add(a);
                    if (aa != null && Phone.User.ContainsKey(aa.ConnectionId))
                    {
                        Phone.User[aa.ConnectionId].RemoveEvent();
                    }
                    else
                    {
                        Phone.AddEvent();
                    }
                }
                break;

            case "Logout": i = AgentApi.MornsunSvrLogout(p[0]);
                if (i == 0)
                {
                    Phone.List.Remove(p[0]);
                }
                break;

            case "AnswerCall": i = AgentApi.MornsunSvrAnswerCall(p[0], int.Parse(p[1])); break;

            case "Cancel": i = AgentApi.MornsunSvrCancel(p[0], int.Parse(p[1]), int.Parse(p[2]), int.Parse(p[3])); break;

            case "ChangeAgentPassword": i = AgentApi.MornsunSvrChangePassword(p[0], p[1], p[2]); break;

            case "SetAgentStatus": i = AgentApi.MornsunSvrChangeAgentStatus(p[0], byte.Parse(p[1]), p[2]); break;

            case "CompleteTransfer": i = AgentApi.MornsunSvrCompleteTransfer(p[0], int.Parse(p[2])); break;

            case "ConferenceCall": i = AgentApi.MornsunSvrConferenceCall(p[0], int.Parse(p[1]), p[2], p[3]); break;

            case "ConsultCall": i = AgentApi.MornsunSvrConsultCall(p[0], int.Parse(p[1]), p[2], p[3], p[4]); break;

            case "HangUp": i = AgentApi.MornsunSvrHangupCall(p[0], int.Parse(p[1])); break;

            case "HoldCall": i = AgentApi.MornsunSvrHoldCall(p[0], int.Parse(p[1])); break;

            case "ReteiveCall": i = AgentApi.MornsunSvrRetrieveCall(p[0], int.Parse(p[1])); break;

            case "MakeCall": i = AgentApi.MornsunSvrMakeCall(p[0], int.Parse(p[1]), p[2], p[3]); break;

            case "TransferCall": i = AgentApi.MornsunSvrTransferCall(p[0], int.Parse(p[1]), p[2], p[3], p[4]); break;

            case "SendTXTMessage": i = AgentApi.MornsunSvrSendTXTMessage(p[0], p[1], p[2]); break;
            }
            this.p   = new string[] { (i > -1).ToString() };
            this.fun = "callback";
            return(this);
        }