Exemplo n.º 1
0
        public new bool Save()
        {
            if (User.Current != null)
            {
                if (!User.Current.HasRight(Constants.DOMAIN_PROFILE_SETUP_RIGHT))
                {
                    throw new UnauthorizedAccessException();
                }
            }
            else if (Utility.IsSiteSetup)
            {
                throw new UnauthorizedAccessException();
            }
            bool ret = true;

            try
            {
                base.Save();
                this[SipProfileSettingTypes.sip_port] = SIPPort.ToString();
                this[SipProfileSettingTypes.rtp_ip]   = RTPInterface.IPAddress;
                this[SipProfileSettingTypes.sip_ip]   = SIPInterface.IPAddress;
            }
            catch (Exception e)
            {
                ret = false;
                EventController.TriggerEvent(new ErrorOccuredEvent(e));
            }
            return(ret);
        }
Exemplo n.º 2
0
            public bool Link(TPeerCnt PeerNum_, SIPPort IPPort_, Int32 ConnectTimeOut_)
            {
                try
                {
                    var Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                    Socket.NoDelay = _NoDelay;

                    SKey Key = _PeerMgr.Link(PeerNum_);
                    if (Key == null)
                    {
                        return(false);
                    }

                    if (!_Peers[Key.PeerNum].Link(Socket, IPPort_, Key, _Worker, ConnectTimeOut_))
                    {
                        _PeerMgr.UnLink(Key.PeerNum);
                        return(false);
                    }

                    return(true);
                }
                catch
                {
                    return(false);
                }
            }
Exemplo n.º 3
0
            public override bool Equals(System.Object obj)
            {
                SIPPort p = obj as SIPPort;

                if ((object)p == null)
                {
                    return(false);
                }

                return(IP == p.IP && Port == p.Port);
            }
Exemplo n.º 4
0
            // 유저 호출
            public bool Link(Socket Socket_, SIPPort IPPort_, SKey Key_, TEventHandler RecvEventHandler_, Int32 ConnectTimeOut_)
            {
                if (_Socket != null)
                {
                    return(false);
                }

                _RecvEvent            = new SocketAsyncEventArgs();
                _RecvEvent.Completed += new EventHandler <SocketAsyncEventArgs>(RecvEventHandler_);
                _SendEvent            = new SocketAsyncEventArgs();
                _SendEvent.Completed += new EventHandler <SocketAsyncEventArgs>(RecvEventHandler_);

                _Socket = Socket_;

                _RecvEvent.UserToken      = Key_;
                _RecvEvent.RemoteEndPoint = IPPort_.EndPoint;

                _Key    = Key_;
                _LongIP = IPPort_.IP;

                try
                {
                    if (!_Socket.ConnectAsync(_RecvEvent))  // _Worker 로 통보받을 필요 없음.
                    {
                        _HBRcvPeriod.NextLoose();
                        return(_Linked());
                    }
                    else
                    {
                        _Connecting     = true;
                        _ConnectTime    = Environment.TickCount;
                        _ConnectTimeOut = ConnectTimeOut_;
                    }
                }
                catch
                {
                    _LinkFailed();
                    return(false);
                }

                return(true);
            }
Exemplo n.º 5
0
 public bool Equals(SIPPort Obj_)
 {
     return(Obj_ != null && IP == Obj_.IP && Port == Obj_.Port);
 }