Package javax.sip

Examples of javax.sip.ServerTransaction


                return;
            }

            // Always create a ServerTransaction, best as early as possible in the code
            Response response = null;
            ServerTransaction st = requestEvent.getServerTransaction();
            if (st == null) {
                st = sipProvider.getNewServerTransaction(refer);
            }

            // Check if it is an initial SUBSCRIBE or a refresh / unsubscribe
            String toTag = Integer.toHexString( (int) (Math.random() * Integer.MAX_VALUE) );
            response = messageFactory.createResponse(202, refer);
            ToHeader toHeader = (ToHeader) response.getHeader(ToHeader.NAME);

            // Sanity check: to header should not have a tag. Else the dialog
            // should have matched
            TestHarness.assertNull("To-tag!=null but no dialog match! My dialog=" + dialog, toHeader.getTag());
            toHeader.setTag(toTag); // Application is supposed to set.

            this.dialog = st.getDialog();
            // REFER dialogs do not terminate on bye.
            this.dialog.terminateOnBye(false);
            if (dialog != null) {
                logger.info("Dialog " + dialog);
                logger.info("Dialog state " + dialog.getState());
                logger.info( "local tag=" + dialog.getLocalTag() );
                logger.info( "remote tag=" + dialog.getRemoteTag() );
            }

            // Both 2xx response to SUBSCRIBE and NOTIFY need a Contact
            Address address = addressFactory.createAddress("Referee <sip:127.0.0.1>");
            ((SipURI)address.getURI()).setPort( mySipProvider.getListeningPoint(transport).getPort() );
            ContactHeader contactHeader = headerFactory.createContactHeader(address);
            response.addHeader(contactHeader);

            // Expires header is mandatory in 2xx responses to REFER
            ExpiresHeader expires = (ExpiresHeader) refer.getHeader( ExpiresHeader.NAME );
            if (expires==null) {
                expires = headerFactory.createExpiresHeader(30);// rather short
            }
            response.addHeader( expires );

            /*
             * The REFER MUST be answered first.
             */
            TestHarness.assertNull( dialog.getState() );
            st.sendResponse(response);
            TestHarness.assertEquals( DialogState.CONFIRMED, dialog.getState() );

            // NOTIFY MUST have "refer" event, possibly with id
            referEvent = headerFactory.createEventHeader("refer");

View Full Code Here


      } catch(SipException e){ 
        e.printStackTrace();
        System.err.println(e.getMessage());
      }
           
        ServerTransaction serverTransaction = requestEvent.getServerTransaction();
        if(serverTransaction==null){
          try {
            serverTransaction = sipProvider.getNewServerTransaction(requestEvent.getRequest());
          } catch (TransactionAlreadyExistsException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
          } catch (TransactionUnavailableException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
          }
        }
        serverTransactions.add(callIDheaders.size()-1,serverTransaction);
       
    }
    if(requestEvent.getRequest().getMethod().equals(Request.ACK))
    {
      //System.out.println("ACK bekommen");
      //System.out.println(requestEvent.getDialog());
      //DialogsOfA for BYE User B
      //DialogsOfA.add(requestEvent.getDialog());
    }
    if(requestEvent.getRequest().getMethod().equals(Request.BYE))
    {
      //System.out.println("Bye bekommen");
      //System.out.println(requestEvent.getDialog());
      Response responseOk;
      try {
        responseOk = messageFactory.createResponse(Response.OK, requestEvent.getRequest());
        ServerTransaction serverTransaction = requestEvent.getServerTransaction();
        serverTransaction.sendResponse(responseOk);
      } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      } catch (SipException e) {
        // TODO Auto-generated catch block
View Full Code Here

 
  public void processResponse(ResponseEvent responseEvent) {
    if(responseEvent.getResponse().getStatusCode() == 180){
      //System.out.println("Ringing bekommen");
      RequestEvent requestEventz = null;
      ServerTransaction serverTransactiond = null;
      try{
        //For Loop again
        for (int i = 0; i < callIDheaders.size(); i++) {
          if(callIDheaders.get(i).equals(responseEvent.getResponse().getHeader(CallIdHeader.NAME))){
            requestEventz = (RequestEvent) requestEvents.get(i);
            serverTransactiond = (ServerTransaction) serverTransactions.get(callIDheaders.indexOf(callIDheaders.get(i)));
            break;
          }
        }
      }catch(Exception e){
        System.out.println("For-loop Exception:" + e);
      }

      try {
          sendResponse(serverTransactiond,messageFactory.createResponse(Response.RINGING, requestEventz.getRequest()));
      } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
    CSeqHeader cseq2 = (CSeqHeader) responseEvent.getResponse().getHeader(CSeqHeader.NAME);
    //OK BEKOMMEN
    if(responseEvent.getResponse().getStatusCode() == 200 && cseq2.getMethod().equals("INVITE")){
      //System.out.println("confirmed OK bekommen");
      DialogsOfB.add(responseEvent.getDialog());
      callIDheadersDia.add((CallIdHeader) responseEvent.getResponse().getHeader(CallIdHeader.NAME));
     
      CSeqHeader cseq = (CSeqHeader) responseEvent.getResponse().getHeader(CSeqHeader.NAME);
      try{
        Dialog dialog = responseEvent.getClientTransaction().getDialog();
        Request ack = dialog.createAck(cseq.getSeqNumber());
        //System.out.println("Ack sent");
        dialog.sendAck(ack);
      }catch (SipException e) {
        e.printStackTrace();
        System.err.println(e.getMessage());
      }catch (InvalidArgumentException e) {
        e.printStackTrace();
        System.err.println(e.getMessage());
      }
     
      RequestEvent requestEventz = null;
      ServerTransaction serverTransactiond = null;
      try{
        //For Loop again
        for (int i = 0; i < callIDheaders.size(); i++) { 
          if(callIDheaders.get(i).equals(responseEvent.getResponse().getHeader(CallIdHeader.NAME))){
            requestEventz = (RequestEvent) requestEvents.get(i);
View Full Code Here

  public void processRequest(RequestEvent requestEvent) {
    //Invite received
    if(requestEvent.getRequest().getMethod().equals(Request.INVITE)){
      //System.out.println("INVITE bekommen");
      try
        ServerTransaction serverTransaction = requestEvent.getServerTransaction();
        if(serverTransaction==null){
          serverTransaction = sipProvider.getNewServerTransaction(requestEvent.getRequest());
        }
        Response responseRing = messageFactory.createResponse(Response.RINGING, requestEvent.getRequest());
        responseRing.addHeader(contactHeader);
        serverTransaction.sendResponse(responseRing);
        //System.out.println("Ringing sent");
        //System.out.println("Ringing sent");
        Response responseOk = messageFactory.createResponse(Response.OK, requestEvent.getRequest());
        responseOk.addHeader(contactHeader);
        serverTransaction.sendResponse(responseOk);
        //System.out.println("OK sent");
        //System.out.println("Ok sent");
      } catch (SipException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      } catch (InvalidArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
    if(requestEvent.getRequest().getMethod().equals(Request.ACK))
    {
      //System.out.println("ACK bekommen");
      //System.out.println("ACK bekommen");
      //System.out.println(requestEvent.getDialog());
    }
    if(requestEvent.getRequest().getMethod().equals(Request.BYE))
    {
      //System.out.println("BYE bekommen");
      //System.out.println("Bye bekommen");
      //System.out.println(requestEvent.getDialog());
     
      Response responseOk;
      try {
        responseOk = messageFactory.createResponse(Response.OK, requestEvent.getRequest());
        ServerTransaction serverTransaction = requestEvent.getServerTransaction();
        serverTransaction.sendResponse(responseOk);
       
      } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      } catch (SipException e) {
View Full Code Here

        protocolObjects.logLevel = 32; // JvB
    }

    public void processRequest(RequestEvent requestReceivedEvent) {
        Request request = requestReceivedEvent.getRequest();
        ServerTransaction serverTransactionId = requestReceivedEvent.getServerTransaction();

        logger.info("\n\nRequest " + request.getMethod() + " received at "
                + protocolObjects.sipStack.getStackName() + " with server transaction id "
                + serverTransactionId);
View Full Code Here

                ListeningPoint lp = sipProvider.getListeningPoint(protocolObjects.transport);
                String host = lp.getIPAddress();
                int port = lp.getPort();

                ServerTransaction st = null;
                if (requestEvent.getServerTransaction() == null) {
                    st = sipProvider.getNewServerTransaction(request);

                    Request newRequest = (Request) request.clone();
                    SipURI sipUri = protocolObjects.addressFactory.createSipURI("UA1",
View Full Code Here

                this.loopDetectedSeen = true;
            }
            if (cseq.getMethod().equals(Request.INVITE)) {
                ClientTransaction ct = responseEvent.getClientTransaction();
                if (ct != null) {
                    ServerTransaction st = (ServerTransaction) ct.getApplicationData();

                    // Strip the topmost via header
                    Response newResponse = (Response) response.clone();
                    newResponse.removeFirst(ViaHeader.NAME);
                    // The server tx goes to the terminated state.

                    st.sendResponse(newResponse);

                } else {
                    logger.debug("Discarding response - no transaction found!");
                }
            } else {
View Full Code Here

    this.protocolObjects = protocolObjects;
  }

  public void processRequest(RequestEvent requestEvent) {
    Request request = requestEvent.getRequest();
    ServerTransaction serverTransactionId = requestEvent
        .getServerTransaction();

    logger.info("\n\nRequest " + request.getMethod() + " received at "
        + protocolObjects.sipStack.getStackName()
        + " with server transaction id " + serverTransactionId);
View Full Code Here

          .createAddress("Shootme <sip:" + myAddress + ":" + myPort
              + ">");
      ContactHeader contactHeader = protocolObjects.headerFactory
          .createContactHeader(address);
      response.addHeader(contactHeader);
      ServerTransaction st = requestEvent.getServerTransaction();

      if (st == null) {
        st = sipProvider.getNewServerTransaction(request);
        logger.info("Server transaction created!" + request);

        logger.info("Dialog = " + st.getDialog());
        if (st.getDialog().getApplicationData() == null) {
          st.getDialog().setApplicationData(new ApplicationData());
        }
      } else {
        // If Server transaction is not null, then
        // this is a re-invite.
        logger.info("This is a RE INVITE ");
        ChallengeTest.assertSame("Dialog mismatch ", st.getDialog(),
            this.dialog);
      }

      // Thread.sleep(5000);
      logger.info("got a server tranasaction " + st);
      byte[] content = request.getRawContent();
      if (content != null) {
        logger.info(" content = " + new String(content));
        ContentTypeHeader contentTypeHeader = protocolObjects.headerFactory
            .createContentTypeHeader("application", "sdp");
        logger.info("response = " + response);
        response.setContent(content, contentTypeHeader);
      }
      dialog = st.getDialog();
      if (dialog != null) {
        logger.info("Dialog " + dialog);
        logger.info("Dialog state " + dialog.getState());
      }
      st.sendResponse(response);
      response = protocolObjects.messageFactory.createResponse(200,
          request);
      toHeader = (ToHeader) response.getHeader(ToHeader.NAME);
      toHeader.setTag("4321");
      // Application is supposed to set.
      response.addHeader(contactHeader);
      st.sendResponse(response);
      logger.info("TxState after sendResponse = " + st.getState());
    } catch (Exception ex) {
      String s = "unexpected exception";

      logger.error(s, ex);
      ChallengeTest.fail(s);
View Full Code Here

    protocolObjects.logLevel = 32// JvB
  }

  public void processRequest(RequestEvent requestReceivedEvent) {
    Request request = requestReceivedEvent.getRequest();
    ServerTransaction serverTransactionId = requestReceivedEvent
        .getServerTransaction();

    logger.info("\n\nRequest " + request.getMethod() + " received at "
        + protocolObjects.sipStack.getStackName()
        + " with server transaction id " + serverTransactionId);
View Full Code Here

TOP

Related Classes of javax.sip.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.