Example #1
0
        string GetStateTxt(EStateId state, string tag)
        {
            if (tag == "release")
            {
                return("Release ");
            }
            if (tag == "transfer")
            {
                return("Transfer ");
            }
            if (tag == "conference")
            {
                return("Conference ");
            }
            switch (state)
            {
            case EStateId.ACTIVE: if (tag == "hold")
                {
                    return("Hold ");
                }
                break;

            case EStateId.ALERTING: return("Accept ");

            case EStateId.HOLDING: if (tag == "hold")
                {
                    return("Retrieve ");
                }
                break;

            case EStateId.INCOMING: return("Accept ");
            }
            return("");
        }
Example #2
0
        /// <summary>
        /// Change state by state id
        /// </summary>
        /// <param name="stateId">state id</param>
        internal override void ChangeState(EStateId stateId)
        {
            switch (stateId)
            {
            case EStateId.IDLE: ChangeState(_stateIdle); break;

            case EStateId.CONNECTING: ChangeState(_stateCalling); break;

            case EStateId.ALERTING: ChangeState(_stateAlerting); break;

            case EStateId.ACTIVE: ChangeState(_stateActive); break;

            case EStateId.RELEASED: ChangeState(_stateReleased); break;

            case EStateId.INCOMING: ChangeState(_stateIncoming); break;

            case EStateId.HOLDING: ChangeState(_stateHolding); break;

            case EStateId.TERMINATED: ChangeState(_stateTerminated); break;
            }
            // inform manager
            if ((null != _manager) && (Session != -1) && (DisableStateNotifications == false))
            {
                _manager.updateGui(this.Session);
            }
        }
Example #3
0
 public void AddState(EStateId eStateId, IState state)
 {
     if (!_states.ContainsKey(eStateId))
     {
         _states.Add(eStateId, state);
     }
 }
Example #4
0
        public static string GetCallState(EStateId type)
        {
            switch (type)
            {
            case EStateId.ACTIVE: return("Active Call.");

            case EStateId.ALERTING: return("Ringing..");

            case EStateId.CONNECTING: return("Connectiong..");

            case EStateId.HOLDING: return("Waiting..");

            case EStateId.IDLE: return("Idle");

            case EStateId.INCOMING: return("Incoming Call..");

            case EStateId.NULL: return("Ready.");

            case EStateId.RELEASED: return("Released.");

            case EStateId.TERMINATED: return("Terminated.");

            default: return("");
            }
        }
Example #5
0
        public IStateMachine getCallInState(EStateId stateId)
        {
            List <IStateMachine> calls = this[stateId];

            if (calls.Count == 0)
            {
                return(new NullStateMachine());
            }
            return(calls[0]);
        }
Example #6
0
        public int getNoCallsInState(EStateId stateId)
        {
            int cnt = 0;

            foreach (KeyValuePair <int, CStateMachine> kvp in _calls)
            {
                if (stateId == kvp.Value.getStateId())
                {
                    cnt++;
                }
            }
            return(cnt);
        }
Example #7
0
        /// <summary>
        /// Collect statemachines being in a given state
        /// </summary>
        /// <param name="stateId">state machine state</param>
        /// <returns>List of state machines</returns>
        public ICollection <CStateMachine> enumCallsInState(EStateId stateId)
        {
            List <CStateMachine> list = new List <CStateMachine>();

            foreach (KeyValuePair <int, CStateMachine> kvp in _calls)
            {
                if (stateId == kvp.Value.getStateId())
                {
                    list.Add(kvp.Value);
                }
            }
            return(list);
        }
        public int getNoCallsInState(EStateId stateId)
        {
            int num = 0;

            foreach (KeyValuePair <int, IStateMachine> pair in this._calls)
            {
                if (stateId == pair.Value.State.Id)
                {
                    num++;
                }
            }
            return(num);
        }
        public ICollection <IStateMachine> enumCallsInState(EStateId stateId)
        {
            List <IStateMachine> list = new List <IStateMachine>();

            foreach (KeyValuePair <int, IStateMachine> pair in this._calls)
            {
                if (stateId == pair.Value.State.Id)
                {
                    list.Add(pair.Value);
                }
            }
            return(list);
        }
 public IStateMachine getCallInState(EStateId stateId)
 {
     if (this._calls.Count != 0)
     {
         foreach (KeyValuePair <int, IStateMachine> pair in this._calls)
         {
             if (pair.Value.State.Id == stateId)
             {
                 return(pair.Value);
             }
         }
     }
     return(new NullStateMachine());
 }
 public List <IStateMachine> this[EStateId stateId]
 {
     get {
         List <IStateMachine> calls = new List <IStateMachine>();
         foreach (KeyValuePair <int, IStateMachine> call in _calls)
         {
             if (call.Value.State.Id == stateId)
             {
                 calls.Add(call.Value);
             }
         }
         return(calls);
     }
 }
Example #12
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="session"></param>
 /// <param name="stateId"></param>
 /// <returns></returns>
 public CStateMachine getCallInState(EStateId stateId)
 {
     if (_calls.Count == 0)
     {
         return(null);
     }
     foreach (KeyValuePair <int, CStateMachine> call in _calls)
     {
         if (call.Value.getStateId() == stateId)
         {
             return(call.Value);
         }
     }
     return(null);
 }
Example #13
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="session"></param>
 /// <param name="stateId"></param>
 /// <returns></returns>
 public IStateMachine getCallInState(EStateId stateId)
 {
     if (_calls.Count == 0)
     {
         return(new NullStateMachine());
     }
     foreach (KeyValuePair <int, IStateMachine> call in _calls)
     {
         if (call.Value.State.Id == stateId)
         {
             return(call.Value);
         }
     }
     return(new NullStateMachine());
 }
Example #14
0
        /// <summary>
        /// Enable or disable menu items regarding to call state...
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void contextMenuStripCalls_Opening(object sender, CancelEventArgs e)
        {
            // Hide all items...
            foreach (ToolStripMenuItem mi in contextMenuStripCalls.Items)
            {
                mi.Visible = false;
            }

            if (listViewCallLines.SelectedItems.Count > 0)
            {
                ListViewItem lvi = listViewCallLines.SelectedItems[0];

                if (SipekResources.CallManager.Count <= 0)
                {
                    return;
                }
                else
                {
                    EStateId stateId = ((CStateMachine)lvi.Tag).StateId;
                    switch (stateId)
                    {
                    case EStateId.INCOMING:
                        acceptToolStripMenuItem.Visible   = true;
                        transferToolStripMenuItem.Visible = true;
                        break;

                    case EStateId.ACTIVE:
                        holdRetrieveToolStripMenuItem.Text    = "Hold";
                        holdRetrieveToolStripMenuItem.Visible = true;
                        transferToolStripMenuItem.Visible     = true;
                        //sendMessageToolStripMenuItem.Visible = true;
                        attendedTransferToolStripMenuItem.Visible = true;
                        break;

                    case EStateId.HOLDING:
                        holdRetrieveToolStripMenuItem.Text    = "Retrieve";
                        holdRetrieveToolStripMenuItem.Visible = true;
                        break;
                    }
                }
                // call
                releaseToolStripMenuItem.Visible = true;
            }
        }
Example #15
0
        private void contextMenuStripCalls_Opening(object sender, CancelEventArgs e)
        {
            try
            {
                if (listViewCallLines.SelectedItems.Count == 0)
                {
                    e.Cancel = true; return;
                }

                ListViewItem lvi     = listViewCallLines.SelectedItems[0];
                EStateId     stateId = ((CStateMachine)lvi.Tag).StateId;
                acceptToolStripMenuItem.Visible       = stateId == EStateId.INCOMING;
                holdRetrieveToolStripMenuItem.Visible = stateId == EStateId.ACTIVE || stateId == EStateId.HOLDING;
                holdRetrieveToolStripMenuItem.Text    = stateId == EStateId.ACTIVE ? "Hold Call" : "Retrieve Call";
                releaseToolStripMenuItem.Visible      = true;
                releaseToolStripMenuItem.Text         = "Release Call";
                transferCallToolStripMenuItem.Visible = stateId == EStateId.ACTIVE || stateId == EStateId.INCOMING;
            }
            catch { }
        }
Example #16
0
    public void ChangeState(EStateId eStateId)
    {
        IState localState;

        if (_states.TryGetValue(eStateId, out localState))
        {
            if (_nowState != localState)
            {
                if (_nowState != null)
                {
                    _previousState = _nowState;
                    if (_previousState != null)
                    {
                        _previousState.Exit();
                    }
                }
                _nowState = localState;
                _nowState.Enter();
            }
        }
    }
Example #17
0
        public void changeState(EStateId stateId)
        {
            switch (stateId)
            {
            case EStateId.IDLE:  changeState(_stateIdle); break;

            case EStateId.CONNECTING: changeState(_stateCalling); break;

            case EStateId.ALERTING: changeState(_stateAlerting); break;

            case EStateId.ACTIVE: changeState(_stateActive); break;

            case EStateId.RELEASED: changeState(_stateReleased); break;

            case EStateId.INCOMING: changeState(_stateIncoming); break;

            case EStateId.HOLDING: changeState(_stateHolding); break;
            }
            if (null != _manager)
            {
                _manager.updateGui();
            }
        }
Example #18
0
 public ICollection <IStateMachine> enumCallsInState(EStateId stateId)
 {
     return(this[stateId]);
 }
Example #19
0
 public override void changeState(EStateId stateId)
 {
   ;
 }
Example #20
0
 /// <summary>
 /// Change state by state id
 /// </summary>
 /// <param name="stateId">state id</param>
 internal override void ChangeState(EStateId stateId)
 {
   switch (stateId)
   {
     case EStateId.IDLE: ChangeState(_stateIdle); break;
     case EStateId.CONNECTING: ChangeState(_stateCalling); break;
     case EStateId.ALERTING: ChangeState(_stateAlerting); break;
     case EStateId.ACTIVE: ChangeState(_stateActive); break;
     case EStateId.RELEASED: ChangeState(_stateReleased); break;
     case EStateId.INCOMING: ChangeState(_stateIncoming); break;
     case EStateId.HOLDING: ChangeState(_stateHolding); break;
     case EStateId.TERMINATED: ChangeState(_stateTerminated); break;
   }
   // inform manager 
   if ((null != _manager) && (Session != -1) && (DisableStateNotifications == false)) _manager.updateGui(this.Session);
 }
Example #21
0
 public void changeState(EStateId stateId)
 {
     switch (stateId)
       {
     case EStateId.IDLE:  changeState(_stateIdle); break;
     case EStateId.CONNECTING: changeState(_stateCalling); break;
     case EStateId.ALERTING: changeState(_stateAlerting); break;
     case EStateId.ACTIVE: changeState(_stateActive); break;
     case EStateId.RELEASED: changeState(_stateReleased); break;
     case EStateId.INCOMING: changeState(_stateIncoming); break;
     case EStateId.HOLDING: changeState(_stateHolding); break;
       }
       if (null != _manager) _manager.updateGui();
 }
Example #22
0
 public abstract void changeState(EStateId stateId);
Example #23
0
        /// <summary>
        /// Collect statemachines being in a given state
        /// </summary>
        /// <param name="stateId">state machine state</param>
        /// <returns>List of state machines</returns>
        public ICollection<CStateMachine> enumCallsInState(EStateId stateId)
        {
            List<CStateMachine> list = new List<CStateMachine>();

              foreach (KeyValuePair<int, CStateMachine> kvp in _calls)
              {
            if (stateId == kvp.Value.getStateId())
            {
              list.Add(kvp.Value);
            }
              }
              return list;
        }
Example #24
0
    /// <summary>
    /// Set state
    /// </summary>
    public void SetState(EStateId stateId)
    {
        print("SetState = " + stateId);

        if(!_states.ContainsKey(stateId))
        {
            print ("State " + stateId + " does not exist");
            return;
        }

        if(_currentState != null)
        {
            if(_currentState.StateId != stateId)
            {
                _currentState.Deactivate();
                _currentState = null;
            }
        }

        StateBase nState = _states[stateId];
        _currentState = nState;
        _currentState.Activate();
    }
Example #25
0
 public int getNoCallsInState(EStateId stateId)
 {
   return this[stateId].Count;
 }
Example #26
0
 internal abstract void ChangeState(EStateId stateId);
Example #27
0
 public IStateMachine getCallInState(EStateId stateId)
 {
   List<IStateMachine> calls = this[stateId];
   if (calls.Count == 0)
   {
     return new NullStateMachine();
   }
   return calls[0];
 }
Example #28
0
 public ICollection<IStateMachine> enumCallsInState(EStateId stateId)
 {
   return this[stateId];
 }
Example #29
0
 public List<IStateMachine> this[EStateId stateId]
 {
   get {
     List<IStateMachine> calls = new List<IStateMachine>();
     foreach (KeyValuePair<int, IStateMachine> call in _calls)
     {
       if (call.Value.State.Id == stateId) {
         calls.Add( call.Value );
       }
     }
     return calls;
   }
 }
Example #30
0
 public VExpState(EStateId id, VExpression owner) : base((int)id, owner)
 {
 }
Example #31
0
 public int getNoCallsInState(EStateId stateId)
 {
     int cnt = 0;
       foreach (KeyValuePair<int, CStateMachine> kvp in _calls)
       {
     if (stateId == kvp.Value.getStateId())
     {
       cnt++;
     }
       }
       return cnt;
 }
Example #32
0
 public int getNoCallsInState(EStateId stateId)
 {
     return(this[stateId].Count);
 }
Example #33
0
 internal override void ChangeState(EStateId stateId)
 {
   ;
 }
Example #34
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="session"></param>
 /// <param name="stateId"></param>
 /// <returns></returns>
 public IStateMachine getCallInState(EStateId stateId)
 {
   if (_calls.Count == 0) return new NullStateMachine();
   foreach (KeyValuePair<int, IStateMachine> call in _calls)
   {
     if (call.Value.State.Id == stateId) return call.Value;
   }
   return new NullStateMachine();
 }
Example #35
0
 internal override void ChangeState(EStateId stateId)
 {
     ;
 }
Example #36
0
 internal abstract void ChangeState(EStateId stateId);
Example #37
0
 public override void changeState(EStateId stateId)
 {
     ;
 }
Example #38
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="session"></param>
 /// <param name="stateId"></param>
 /// <returns></returns>
 public CStateMachine getCallInState(EStateId stateId)
 {
     if (_calls.Count == 0)  return null;
       foreach (KeyValuePair<int, CStateMachine> call in _calls)
       {
     if (call.Value.getStateId() == stateId) return call.Value;
       }
       return null;
 }
Example #39
0
 public abstract void changeState(EStateId stateId);
Example #40
0
 public List <IStateMachine> this[EStateId stateId]
 {
     get { return(SearchCalls(s => s.State.Id == stateId)); }
 }
Example #41
0
 /// <summary>
 /// Initialise a new instance of the class
 /// </summary>
 public StateBase(EStateId stateId)
 {
     _stateId = stateId;
 }