当前位置: 首页>>代码示例>>Java>>正文


Java ResponseEvent.getSource方法代码示例

本文整理汇总了Java中javax.sip.ResponseEvent.getSource方法的典型用法代码示例。如果您正苦于以下问题:Java ResponseEvent.getSource方法的具体用法?Java ResponseEvent.getSource怎么用?Java ResponseEvent.getSource使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在javax.sip.ResponseEvent的用法示例。


在下文中一共展示了ResponseEvent.getSource方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: processResponse

import javax.sip.ResponseEvent; //导入方法依赖的package包/类
public void processResponse(ResponseEvent responseEvent) {
    try {
        Response response = responseEvent.getResponse();
        Dialog dialog = responseEvent.getDialog();
        this.lastResponseTable.put(dialog, response);
         ServerTransaction serverTransaction = (ServerTransaction)responseEvent.getClientTransaction().getApplicationData();
        Request stRequest = serverTransaction.getRequest();
        Response newResponse = this.messageFactory.createResponse(response.getStatusCode(),stRequest);
        SipProvider provider = (SipProvider)responseEvent.getSource();
        SipProvider peerProvider = this.getPeerProvider(provider);
        ListeningPoint peerListeningPoint = peerProvider.getListeningPoint("udp");
        ContactHeader peerContactHeader = ((ListeningPointExt)peerListeningPoint).createContactHeader();
        newResponse.setHeader(peerContactHeader);
        serverTransaction.sendResponse(newResponse);
    } catch (Exception ex) {
        ex.printStackTrace();
        BackToBackUserAgentTest.fail("Unexpected exception");
    }
}
 
开发者ID:YunlongYang,项目名称:LightSIP,代码行数:20,代码来源:BackToBackUserAgent.java

示例2: processResponse

import javax.sip.ResponseEvent; //导入方法依赖的package包/类
public void processResponse(ResponseEvent responseReceivedEvent) {
         logger.info("Got a response");

         Response response = (Response) responseReceivedEvent.getResponse();
         Transaction tid = responseReceivedEvent.getClientTransaction();

         logger.info("Response received with client transaction id " + tid
                 + ":\n" + response.getStatusCode());
         if (tid != null) {
	logger.info("Dialog = " + responseReceivedEvent.getDialog());
	logger.info("Dialog State is "
			+ responseReceivedEvent.getDialog().getState());
}
         SipProvider provider = (SipProvider) responseReceivedEvent.getSource();

         try {
         	if (response.getStatusCode() == Response.OK) {
         		if(((CSeqHeader) response.getHeader(CSeqHeader.NAME))
         				.getMethod().equals(Request.INVITE)) {
         			okToInviteReceived = true;
         		}
         	}
         } catch (Exception ex) {
             logger.error(ex);
             ex.printStackTrace();
             fail("unexpected exception");
         }

     }
 
开发者ID:YunlongYang,项目名称:LightSIP,代码行数:30,代码来源:SelfroutingTest.java

示例3: processResponse

import javax.sip.ResponseEvent; //导入方法依赖的package包/类
public void processResponse(ResponseEvent responseReceivedEvent) {
     	logger.info("Got a response");

         Response response = (Response) responseReceivedEvent.getResponse();
         Transaction tid = responseReceivedEvent.getClientTransaction();

         logger.info("Response received with client transaction id " + tid
                 + ":\n" + response.getStatusCode());
         if (tid != null) {
	logger.info("Dialog = " + responseReceivedEvent.getDialog());
	logger.info("Dialog State is "
			+ responseReceivedEvent.getDialog().getState());
}
         SipProvider provider = (SipProvider) responseReceivedEvent.getSource();

         try {
             if (response.getStatusCode() == Response.OK
                     && ((CSeqHeader) response.getHeader(CSeqHeader.NAME))
                             .getMethod().equals(Request.INVITE)) {

                 Dialog dialog = responseReceivedEvent.getDialog();
                 CSeqHeader cseq = (CSeqHeader) response.getHeader(CSeqHeader.NAME);
                 Request ackRequest = dialog.createAck(cseq.getSeqNumber());
                 logger.info("Ack request to send = " + ackRequest);
                 logger.info("Sending ACK");
                 dialog.sendAck(ackRequest);
             }
         } catch (Exception ex) {
             logger.error(ex);
             ex.printStackTrace();
             RFC5626KeepAliveTest.fail("unexpected exception");
         }
     	timer.schedule(new MyTimerTask(), 1000, 3000);
     }
 
开发者ID:YunlongYang,项目名称:LightSIP,代码行数:35,代码来源:RFC5626KeepAliveTest.java

示例4: processResponse

import javax.sip.ResponseEvent; //导入方法依赖的package包/类
public void processResponse(ResponseEvent responseReceivedEvent) {
         logger.info("Got a response");

         Response response = (Response) responseReceivedEvent.getResponse();
         Transaction tid = responseReceivedEvent.getClientTransaction();

         logger.info("Response received with client transaction id " + tid
                 + ":\n" + response.getStatusCode());
         if (tid != null) {
	logger.info("Dialog = " + responseReceivedEvent.getDialog());
	logger.info("Dialog State is "
			+ responseReceivedEvent.getDialog().getState());
}
         SipProvider provider = (SipProvider) responseReceivedEvent.getSource();

         try {
             if (response.getStatusCode() == Response.OK
                     && ((CSeqHeader) response.getHeader(CSeqHeader.NAME))
                             .getMethod().equals(Request.INVITE)) {

                 Dialog dialog = responseReceivedEvent.getDialog();
                 CSeqHeader cseq = (CSeqHeader) response.getHeader(CSeqHeader.NAME);
                 Request ackRequest = dialog.createAck(cseq.getSeqNumber());
                 logger.info("Ack request to send = " + ackRequest);
                 logger.info("Sending ACK");
                 dialog.sendAck(ackRequest);
             }
         } catch (Exception ex) {
             logger.error(ex);
             ex.printStackTrace();
             AckReTransmissionTest.fail("unexpected exception");
         }

     }
 
开发者ID:YunlongYang,项目名称:LightSIP,代码行数:35,代码来源:AckReTransmissionTest.java

示例5: processResponse

import javax.sip.ResponseEvent; //导入方法依赖的package包/类
public void processResponse(ResponseEvent responseReceivedEvent) {
         

         Response response = (Response) responseReceivedEvent.getResponse();
         Transaction tid = responseReceivedEvent.getClientTransaction();

         logger.info("Got a response " + response);
         logger.info("Response received with client transaction id " + tid
                 + ":\n" + response.getStatusCode());
         if (tid != null) {
	logger.info("Dialog = " + responseReceivedEvent.getDialog());
	logger.info("Dialog State is "
			+ responseReceivedEvent.getDialog().getState());
}
         SipProvider provider = (SipProvider) responseReceivedEvent.getSource();

         try {
             if (response.getStatusCode() == Response.OK
                     && ((CSeqHeader) response.getHeader(CSeqHeader.NAME))
                             .getMethod().equals(Request.INVITE)) {

                 Dialog dialog = responseReceivedEvent.getDialog();
                 CSeqHeader cseq = (CSeqHeader) response.getHeader(CSeqHeader.NAME);
                 Request ackRequest = dialog.createAck(cseq.getSeqNumber());
                 logger.info("Ack request to send = " + ackRequest);
                 logger.info("Sending ACK");
                 dialog.sendAck(ackRequest);
             }
         } catch (Exception ex) {
             logger.error(ex);
             ex.printStackTrace();
             ReconnectTCPTest.fail("unexpected exception");
         }

     }
 
开发者ID:YunlongYang,项目名称:LightSIP,代码行数:36,代码来源:ReconnectTCPTest.java

示例6: processResponse

import javax.sip.ResponseEvent; //导入方法依赖的package包/类
public void processResponse(ResponseEvent responseReceivedEvent) {
    logger.info("Got a response");
    Response response = (Response) responseReceivedEvent.getResponse();
    ClientTransaction tid = responseReceivedEvent.getClientTransaction();
    CSeqHeader cseq = (CSeqHeader) response.getHeader(CSeqHeader.NAME);

    logger.info("Response received : Status Code = "
            + response.getStatusCode() + " " + cseq);


    if (tid == null) {
        logger.info("Stray response -- dropping ");
        return;
    }
    logger.info("transaction state is " + tid.getState());
    logger.info("Dialog = " + tid.getDialog());
    logger.info("Dialog State is " + tid.getDialog().getState());
    SipProvider provider = (SipProvider) responseReceivedEvent.getSource();
    AbstractRouterTestCase.assertEquals("Provider is not equal to the original proivder",
            provider, sipProvider);

    try {
        if (response.getStatusCode() == Response.OK) {
            if (cseq.getMethod().equals(Request.INVITE)) {
                Request ackRequest = dialog.createAck(cseq.getSeqNumber());
                logger.info("Sending ACK");
                dialog.sendAck(ackRequest);
                this.gotInviteOK = true;
            }
        }
    } catch (Exception ex) {
        AbstractRouterTestCase.fail(ex.getMessage());

    }

}
 
开发者ID:YunlongYang,项目名称:LightSIP,代码行数:37,代码来源:Shootist.java

示例7: processResponse

import javax.sip.ResponseEvent; //导入方法依赖的package包/类
public void processResponse(ResponseEvent responseEvent) {
    try {
        Response response = responseEvent.getResponse();
        Dialog dialog = responseEvent.getDialog();
        this.lastResponseTable.put(dialog, response);
         ServerTransaction serverTransaction = (ServerTransaction)responseEvent.getClientTransaction().getApplicationData();
        if ( serverTransaction != null ) {
            Request stRequest = serverTransaction.getRequest();
            Response newResponse = this.messageFactory.createResponse(response.getStatusCode(),stRequest);
            SipProvider provider = (SipProvider)responseEvent.getSource();
            SipProvider peerProvider = this.getPeerProvider(provider);
            ListeningPoint peerListeningPoint = peerProvider.getListeningPoint("udp");
            ContactHeader peerContactHeader = ((ListeningPointExt)peerListeningPoint).createContactHeader();
            newResponse.setHeader(peerContactHeader);
            serverTransaction.sendResponse(newResponse);
            if ( ((CSeqHeader)response.getHeader(CSeqHeader.NAME)).getMethod().equals(Request.INVITE) &&
                    response.getStatusCode() == 200 ) {
                Request newRequest = dialog.createRequest(Request.INVITE);
                ListeningPointExt listeningPoint = (ListeningPointExt) provider.getListeningPoint("udp");
                ContactHeader contact = listeningPoint.createContactHeader();
                newRequest.setHeader(contact);
                ClientTransaction clientTransaction = provider.getNewClientTransaction(newRequest);
                // Send without waiting for ACK.
                dialog.sendRequest(clientTransaction);
            }
        } else {
            this.inviteOkSeen = true;
            if ( ((CSeqHeader)response.getHeader(CSeqHeader.NAME)).getMethod().equals(Request.INVITE) &&
                    response.getStatusCode() == 200){
                long cseqno = ((CSeqHeader)response.getHeader(CSeqHeader.NAME)).getSeqNumber();
                Request ack = dialog.createAck(cseqno);
                dialog.sendAck(ack);
            } else {
                if ( !((CSeqHeader)response.getHeader(CSeqHeader.NAME)).getMethod().equals(Request.INVITE)) {
                    System.out.println("Unexpected response " + response);
                    BackToBackUserAgentTest.fail("Unexpected response");
                }
            }
        }
    } catch (Exception ex) {
        ex.printStackTrace();
        BackToBackUserAgentTest.fail("Unexpected exception");
    }
}
 
开发者ID:YunlongYang,项目名称:LightSIP,代码行数:45,代码来源:BackToBackUserAgent.java

示例8: processResponse

import javax.sip.ResponseEvent; //导入方法依赖的package包/类
public void processResponse(ResponseEvent responseReceivedEvent) {
            logger.info("Got a response");
            Response response = (Response) responseReceivedEvent.getResponse();
            lastResponse = response;
            ClientTransaction tid = responseReceivedEvent.getClientTransaction();
            CSeqHeader cseq = (CSeqHeader) response.getHeader(CSeqHeader.NAME);

            logger.info("Response received : Status Code = "
                    + response.getStatusCode() + " " + cseq);

            if (cseq.getMethod() == Request.PRACK) {
                prackConfirmed = true;
            }

            if (tid == null) {
                logger.info("Stray response -- dropping ");
                return;
            }
            logger.info("transaction state is " + tid.getState());
            logger.info("Dialog = " + tid.getDialog());
            logger.info("Dialog State is " + tid.getDialog().getState());
            SipProvider provider = (SipProvider) responseReceivedEvent.getSource();
            dialog = tid.getDialog();

            try {
                if (response.getStatusCode() == Response.OK) {
                    if (cseq.getMethod().equals(Request.INVITE)) {
                        Request ackRequest = dialog.createAck(((CSeqHeader) response.getHeader(CSeqHeader.NAME)).getSeqNumber());
                        logger.info("Sending ACK");
                        dialog.sendAck(ackRequest);
                    }

                } else if ( response.getStatusCode() == Shootme.PRACK_CODE) {
//                  prackTriggerReceived = true;
//                  RequireHeader requireHeader = (RequireHeader) response.getHeader(RequireHeader.NAME);
//                  if ( requireHeader.getOptionTag().equalsIgnoreCase("100rel")) {
//                      Dialog dialog = tid.getDialog();
//                      Request prackRequest = dialog.createPrack(response);
//                      // create Request URI
//                      SipURI requestURI = addressFactory.createSipURI(toUser,
//                              "127.0.0.1:" + Shootme.myPort);
//                      prackRequest.setRequestURI(requestURI);
//                      ClientTransaction ct = provider.getNewClientTransaction(prackRequest);
//                      dialog.sendRequest(ct);
//                  }
                }
            } catch (Exception ex) {
                ex.printStackTrace();
                TestHarness.fail("Unexpected exception " + ex.getMessage());

            }

        }
 
开发者ID:YunlongYang,项目名称:LightSIP,代码行数:54,代码来源:UdpPrackTimeoutTest.java

示例9: processResponse

import javax.sip.ResponseEvent; //导入方法依赖的package包/类
public void processResponse(ResponseEvent responseReceivedEvent) {
    logger.info("Got a response");

    Response response = (Response) responseReceivedEvent.getResponse();
    Transaction tid = responseReceivedEvent.getClientTransaction();

    logger.info("Response received with client transaction id " + tid + ":\n"
            + response.getStatusCode());
    if (tid == null) {
        logger.info("Stray response -- dropping ");
        return;
    }
    logger.info("transaction state is " + tid.getState());
    logger.info("Dialog = " + tid.getDialog());
    logger.info("Dialog State is " + tid.getDialog().getState());
    SipProvider provider = (SipProvider) responseReceivedEvent.getSource();

    try {
        if (response.getStatusCode() == Response.OK
                && ((CSeqHeader) response.getHeader(CSeqHeader.NAME)).getMethod().equals(
                        Request.INVITE)) {

            // Request cancel = inviteTid.createCancel();
            // ClientTransaction ct =
            // sipProvider.getNewClientTransaction(cancel);
            Dialog dialog = tid.getDialog();
            CSeqHeader cseq = (CSeqHeader) response.getHeader(CSeqHeader.NAME);
            Request ackRequest = dialog.createAck(cseq.getSeqNumber());
            logger.info("Ack request to send = " + ackRequest);
            logger.info("Sending ACK");
            dialog.sendAck(ackRequest);

            Thread.sleep(100);
          
            Request inviteRequest = dialog.createRequest(Request.INVITE);
            ((SipURI) inviteRequest.getRequestURI()).removeParameter("transport");
            ((ViaHeader) inviteRequest.getHeader(ViaHeader.NAME)).setTransport("udp");
            inviteRequest.addHeader(contactHeader);
            MaxForwardsHeader mf = protocolObjects.headerFactory
                    .createMaxForwardsHeader(10);
            inviteRequest.addHeader(mf);
             ClientTransaction ct = provider.getNewClientTransaction(inviteRequest);
            dialog.sendRequest(ct);
            reInviteCount++;
            logger.info("RE-INVITE sent");

        } else if (response.getStatusCode() == Response.BUSY_HERE) {
            this.busyHereReceived = true;
            TestCase.assertEquals("Dialog State must be CONFIRMED", dialog.getState(), DialogState.CONFIRMED);
        }
    } catch (Exception ex) {
        ex.printStackTrace();

        logger.error(ex);
        ReInviteBusyTest.fail("unexpceted exception");
    }

}
 
开发者ID:YunlongYang,项目名称:LightSIP,代码行数:59,代码来源:ReInviteBusyTest.java

示例10: processResponse

import javax.sip.ResponseEvent; //导入方法依赖的package包/类
public void processResponse(ResponseEvent responseReceivedEvent) {
    logger.info("Got a response");

    Response response = (Response) responseReceivedEvent.getResponse();
    Transaction tid = responseReceivedEvent.getClientTransaction();

    logger.info("Response received with client transaction id " + tid
            + ":\n" + response.getStatusCode());
    if (tid == null) {
        logger.info("Stray response -- dropping ");
        return;
    }
    logger.info("transaction state is " + tid.getState());
    logger.info("Dialog = " + tid.getDialog());
    logger.info("Dialog State is " + tid.getDialog().getState());
    SipProvider provider = (SipProvider) responseReceivedEvent.getSource();

    try {
        CSeqHeader cseq = (CSeqHeader) response.getHeader(CSeqHeader.NAME);
        if (response.getStatusCode() == Response.OK
                && cseq.getMethod().equals(Request.INVITE)) {

            // Request cancel = inviteTid.createCancel();
            // ClientTransaction ct =
            // sipProvider.getNewClientTransaction(cancel);
            Dialog dialog = tid.getDialog();
            Request ackRequest = dialog.createAck(cseq.getSeqNumber());
            TlsTest.assertTrue( "Secure URI",
                    ((SipURI)ackRequest.getRequestURI()).isSecure() );
            logger.info("Ack request to send = " + ackRequest);
            logger.info("Sending ACK");
            dialog.sendAck(ackRequest);

            // Send a Re INVITE but this time force it
            // to use UDP as the transport. Else, it will
            // Use whatever transport was used to create
            // the dialog.
            if (reInviteCount == 0) {
                Request inviteRequest = dialog
                        .createRequest(Request.INVITE);
                Thread.sleep(100);
                ClientTransaction ct = provider
                        .getNewClientTransaction(inviteRequest);
                dialog.sendRequest(ct);
                reInviteCount++;
            } else {
                this.okReceived = true;
            }

        } else if (response.getStatusCode() == Response.OK
                && ((CSeqHeader) response.getHeader(CSeqHeader.NAME))
                        .getMethod().equals(Request.BYE)) {
            this.byeOkRecieved = true;
        }
    } catch (Exception ex) {
        logger.error(ex);
        TlsTest.fail("unexpected exception");
    }

}
 
开发者ID:YunlongYang,项目名称:LightSIP,代码行数:61,代码来源:Shootist.java

示例11: processResponse

import javax.sip.ResponseEvent; //导入方法依赖的package包/类
public void processResponse(ResponseEvent responseReceivedEvent) {
    logger.info("Got a response");

    Response response = (Response) responseReceivedEvent.getResponse();
    Transaction tid = responseReceivedEvent.getClientTransaction();

    logger.info("Response received with client transaction id " + tid
            + ":\n" + response.getStatusCode());
    if (tid == null) {
        logger.info("Stray response -- dropping ");
        return;
    }
    logger.info("transaction state is " + tid.getState());
    logger.info("Dialog = " + tid.getDialog());
    logger.info("Dialog State is " + tid.getDialog().getState());
    SipProvider provider = (SipProvider) responseReceivedEvent.getSource();

    try {
        CSeqHeader cseq = (CSeqHeader) response.getHeader(CSeqHeader.NAME);
        if (response.getStatusCode() == Response.OK
                && cseq.getMethod().equals(Request.INVITE)) {

            // Request cancel = inviteTid.createCancel();
            // ClientTransaction ct =
            // sipProvider.getNewClientTransaction(cancel);
            Dialog dialog = tid.getDialog();
            Request ackRequest = dialog.createAck(cseq.getSeqNumber());
            logger.info("Ack request to send = " + ackRequest);
            logger.info("Sending ACK");
            dialog.sendAck(ackRequest);

            // Send a Re INVITE but this time force it
            // to use UDP as the transport. Else, it will
            // Use whatever transport was used to create
            // the dialog.
            if (reInviteCount == 0) {
                Request inviteRequest = dialog
                        .createRequest(Request.INVITE);
                Thread.sleep(100);
                ClientTransaction ct = provider
                        .getNewClientTransaction(inviteRequest);
                dialog.sendRequest(ct);
                reInviteCount++;
            } else {
                this.okReceived = true;
            }

        } else if (response.getStatusCode() == Response.OK
                && ((CSeqHeader) response.getHeader(CSeqHeader.NAME))
                        .getMethod().equals(Request.BYE)) {
            this.byeOkRecieved = true;
        }
    } catch (Exception ex) {
        logger.error(ex);
        SctpTest.fail("unexpected exception");
    }

}
 
开发者ID:YunlongYang,项目名称:LightSIP,代码行数:59,代码来源:Shootist.java

示例12: processResponse

import javax.sip.ResponseEvent; //导入方法依赖的package包/类
public synchronized void processResponse(ResponseEvent responseReceivedEvent) {
        logger.info("Got a response");
        Response response = (Response) responseReceivedEvent.getResponse();
        ClientTransaction tid = responseReceivedEvent.getClientTransaction();
        CSeqHeader cseq = (CSeqHeader) response.getHeader(CSeqHeader.NAME);

        logger.info("Response received : Status Code = "
                + response.getStatusCode() + " " + cseq);
        logger.info("Response = " + response + " class=" + response.getClass() );

        Dialog dialog = responseReceivedEvent.getDialog();
        TestHarness.assertNotNull( dialog );

        if (tid != null)
            logger.info("transaction state is " + tid.getState());
        else
            logger.info("transaction = " + tid);

        logger.info("Dialog = " + dialog);

        logger.info("SHOOTIST: Dialog state is " + dialog.getState());

        try {
            if (response.getStatusCode() == Response.OK) {
                if (cseq.getMethod().equals(Request.INVITE)) {
                	/*
                	 * Can get a late arriving response.
                	 */
//                    TestHarness.assertEquals( DialogState.CONFIRMED, dialog.getState());


                    Request ackRequest = dialog.createAck(cseq
                            .getSeqNumber());

                    TestHarness.assertNotNull( ackRequest.getHeader( MaxForwardsHeader.NAME ) );

                    // Proxy will fork. I will accept the second dialog
                    // but not the first.
                    this.forkedDialogs.add(dialog);
                    logger.info("Sending ACK");
                    dialog.sendAck(ackRequest);
                    if ( dialog.getState() == DialogState.TERMINATED ) {
                    	return;
                    }
                    if ( forkedDialogs.size() == 2 ) {
                      
                        TestHarness.assertTrue(
                                "Dialog state should be CONFIRMED", dialog
                                        .getState() == DialogState.CONFIRMED);
                        this.ackedDialog = dialog;

                        // TestHarness.assertNotNull( "JvB: Need CT to find original dialog", tid );

                    } else {

                        // Kill the first dialog by sending a bye.
                        SipProvider sipProvider = (SipProvider) responseReceivedEvent
                                .getSource();
                        Request byeRequest = dialog.createRequest(Request.BYE);
                        ClientTransaction ct = sipProvider
                                .getNewClientTransaction(byeRequest);
                        dialog.sendRequest(ct);
                    }


                } else {
                    logger.info("Response method = " + cseq.getMethod());
                }
            } else if ( response.getStatusCode() == Response.RINGING ) {
                //TestHarness.assertEquals( DialogState.EARLY, dialog.getState() );
            }
        } catch (Throwable ex) {
            ex.printStackTrace();
            // System.exit(0);
        }

    }
 
开发者ID:YunlongYang,项目名称:LightSIP,代码行数:78,代码来源:Shootist.java

示例13: processResponse

import javax.sip.ResponseEvent; //导入方法依赖的package包/类
public synchronized void processResponse(ResponseEvent responseReceivedEvent) {
    logger.info("Got a response");
    Response response = (Response) responseReceivedEvent.getResponse();
    ClientTransaction tid = responseReceivedEvent.getClientTransaction();
    CSeqHeader cseq = (CSeqHeader) response.getHeader(CSeqHeader.NAME);

    logger.info("Response received : Status Code = "
            + response.getStatusCode() + " " + cseq);
    logger.info("Response = " + response + " class=" + response.getClass());

    Dialog dialog = responseReceivedEvent.getDialog();
    TestHarness.assertNotNull(dialog);

    if (tid != null)
        logger.info("transaction state is " + tid.getState());
    else
        logger.info("transaction = " + tid);

    logger.info("Dialog = " + dialog);

    logger.info("Dialog state is " + dialog.getState());

    try {
        if (response.getStatusCode() == Response.OK) {
            if (cseq.getMethod().equals(Request.INVITE)) {
                TestHarness.assertEquals(DialogState.CONFIRMED, dialog
                        .getState());
                Request ackRequest = dialog.createAck(cseq.getSeqNumber());

                dialog.sendAck(ackRequest);

                TestHarness.assertNotNull(ackRequest
                        .getHeader(MaxForwardsHeader.NAME));

                // Proxy will fork. I will accept the second dialog
                // but not the first.

                SipProvider sipProvider = (SipProvider) responseReceivedEvent
                        .getSource();

                Request infoRequest = dialog.createRequest(Request.INFO);
                ClientTransaction ct = sipProvider
                        .getNewClientTransaction(infoRequest);
                dialog.sendRequest(ct);

            } else {
                logger.info("Response method = " + cseq.getMethod());
            }
        } else if (response.getStatusCode() == Response.RINGING) {
            // TestHarness.assertEquals( DialogState.EARLY,
            // dialog.getState() );
        }
    } catch (Throwable ex) {
        ex.printStackTrace();
        // System.exit(0);
    }

}
 
开发者ID:YunlongYang,项目名称:LightSIP,代码行数:59,代码来源:Shootist.java


注:本文中的javax.sip.ResponseEvent.getSource方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。