Package org.cipango.server.transaction

Examples of org.cipango.server.transaction.ServerTransaction


     
      public ServerTransaction getServerTransaction(String id)
      {
        for (int i = 0; i < _serverTransactions.size(); i++)
        {
          ServerTransaction transaction = _serverTransactions.get(i);
          if (transaction.getKey().equals(id))
            return transaction;
        }
        return null;
      }
View Full Code Here


    public List<ServerTransaction> getServerTransactions(SipSession session)
    {
      List<ServerTransaction> list = new ArrayList<ServerTransaction>(_serverTransactions.size());
      for (int i = 0; i < _serverTransactions.size(); i++)
      {
        ServerTransaction transaction = _serverTransactions.get(i);
        if (transaction.getRequest().session().equals(session))
          list.add(transaction);
      }
      return list;     
    }
View Full Code Here

            && transaction.getRequest().session().equals(session))
          return true;
      }
      for (int i = 0; i < _serverTransactions.size(); i++)
      {
        ServerTransaction transaction = _serverTransactions.get(i);
        if (transaction.getState() < Transaction.STATE_COMPLETED
            && transaction.getRequest().session().equals(session))
          return true;
      }
      return false;
    }
View Full Code Here

        invokeServlet(response);
    }
   
    public void sendResponse(SipResponse response, boolean reliable) throws IOException
    {
      ServerTransaction tx = (ServerTransaction) response.getTransaction();
     
      if (tx != null)
      {
        if (tx.isCompleted())
          throw new IllegalStateException("transaction terminated for response " + response.getRequestLine());
     
        tx.setListener(this);
      }
     
      updateState(response, false);
     
      SipRequest request = (SipRequest) response.getRequest();

      if (request.isInitial() && (response.to().getParameter(SipParams.TAG) == null))
      {
        String tag = _localParty.getParameter(SipParams.TAG);
        if (tag == null)
          tag = ID.newTag();
        response.to().setParameter(SipParams.TAG, tag);
      }
     
      if (request.isInvite() || request.isSubscribe())
        setRemoteTarget(request);
     
      if (request.isInvite())
      {
        int status = response.getStatus();
        long cseq = response.getCSeq().getNumber();
       
        if (200 <= status && (status < 300))
        {
          ServerInvite invite = getServerInvite(cseq, true);
          invite.set2xx(response);
        }
        else if ((100 < status) && (status < 200&& reliable)
        {
          ServerInvite invite = getServerInvite(cseq, true);
         
          long rseq = _localRSeq++;
          response.getFields().addString(SipHeaders.REQUIRE_BUFFER, SipParams.REL_100);
          response.setRSeq(rseq);
         
          invite.addReliable1xx(response);
        }
        else if (status >= 300)
        {
          ServerInvite invite = getServerInvite(cseq, false);
          if (invite != null)
            invite.stop1xxRetrans();
        }
      }
      if (tx != null)
        tx.send(response);
      else
        getServer().getConnectorManager().sendResponse(response);
    }
View Full Code Here

        _appSession.noAck(getResponse().getRequest(), getResponse());
      }

      public long retransmit(long delay)
      {
        ServerTransaction tx = (ServerTransaction) getResponse().getTransaction();
        if (tx != null)
          tx.send(getResponse());
        else
        {
          try
          {
            getServer().getConnectorManager().sendResponse(getResponse());
View Full Code Here

      {
        public Reliable1xx(long rseq) { super(rseq); }
       
        public long retransmit(long delay)
        {
          ServerTransaction tx = (ServerTransaction) getResponse().getTransaction();
          if (tx.getState() == Transaction.STATE_PROCEEDING)
          {
            tx.send(getResponse());
            return delay*2;
          }
          return -1;
        }
View Full Code Here

TOP

Related Classes of org.cipango.server.transaction.ServerTransaction

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.