本文整理汇总了Java中javax.sip.SipProvider.getNewClientTransaction方法的典型用法代码示例。如果您正苦于以下问题:Java SipProvider.getNewClientTransaction方法的具体用法?Java SipProvider.getNewClientTransaction怎么用?Java SipProvider.getNewClientTransaction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类javax.sip.SipProvider
的用法示例。
在下文中一共展示了SipProvider.getNewClientTransaction方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: processAck
import javax.sip.SipProvider; //导入方法依赖的package包/类
/**
* Process the ACK request. Send the bye and complete the call flow.
*/
public void processAck(RequestEvent requestEvent,
ServerTransaction serverTransaction) {
try {
System.out.println("shootme: got an ACK! ");
System.out.println("Dialog State = " + dialog.getState());
SipProvider provider = (SipProvider) requestEvent.getSource();
if (!callerSendsBye) {
Request byeRequest = dialog.createRequest(Request.BYE);
ClientTransaction ct = provider
.getNewClientTransaction(byeRequest);
dialog.sendRequest(ct);
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
示例2: processAck
import javax.sip.SipProvider; //导入方法依赖的package包/类
/** Process the ACK request. Send the bye and complete the call flow.
*/
public void processAck(
RequestEvent requestEvent,
ServerTransaction serverTransaction) {
SipProvider sipProvider = (SipProvider) requestEvent.getSource();
try {
// System.out.println("shootme: got an ACK " );
// maybe a late arriving ack.
if (serverTransaction == null) return;
Dialog dialog = serverTransaction.getDialog();
dialog = serverTransaction.getDialog();
Request byeRequest = dialog.createRequest(Request.BYE);
ClientTransaction tr =
sipProvider.getNewClientTransaction(byeRequest);
dialog.sendRequest(tr);
} catch (Exception ex) {
ex.printStackTrace();
fail("unexpected exception");
}
}
示例3: processAck
import javax.sip.SipProvider; //导入方法依赖的package包/类
/** Process the ACK request. Send the bye and complete the call flow.
*/
public void processAck(
RequestEvent requestEvent,
ServerTransaction serverTransaction) {
SipProvider sipProvider = (SipProvider) requestEvent.getSource();
try {
System.out.println("shootme: got an ACK "
+ requestEvent.getRequest());
int ackCount =
((ApplicationData ) dialog.getApplicationData()).ackCount;
if (ackCount == 1) {
dialog = inviteTid.getDialog();
Request byeRequest = dialog.createRequest(Request.BYE);
ClientTransaction tr =
sipProvider.getNewClientTransaction(byeRequest);
System.out.println("shootme: got an ACK -- sending bye! ");
dialog.sendRequest(tr);
System.out.println("Dialog State = " + dialog.getState());
} else ((ApplicationData) dialog.getApplicationData()).ackCount ++;
} catch (Exception ex) {
ex.printStackTrace();
System.exit(0);
}
}
示例4: processAck
import javax.sip.SipProvider; //导入方法依赖的package包/类
/**
* Process the ACK request. Send the bye and complete the call flow.
*/
public void processAck(RequestEvent requestEvent,
ServerTransaction serverTransaction) {
try {
System.out.println("shootme: got an ACK! ");
System.out.println("Shootme : Dialog State = " + dialog.getState());
SipProvider provider = (SipProvider) requestEvent.getSource();
if (!callerSendsBye) {
Request byeRequest = dialog.createRequest(Request.BYE);
ClientTransaction ct = provider
.getNewClientTransaction(byeRequest);
dialog.sendRequest(ct);
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
示例5: processAck
import javax.sip.SipProvider; //导入方法依赖的package包/类
/**
* Process the ACK request. Send the bye and complete the call flow.
*/
public void processAck(RequestEvent requestEvent,
ServerTransaction serverTransaction) {
try {
logger.info("shootme: got an ACK! ");
if(!enableRetransmitAlerts) {
logger.info("Dialog State = " + dialog.getState());
}
SipProvider provider = (SipProvider) requestEvent.getSource();
if (!callerSendsBye) {
Request byeRequest = dialog.createRequest(Request.BYE);
ClientTransaction ct = provider
.getNewClientTransaction(byeRequest);
dialog.sendRequest(ct);
}
} catch (Exception ex) {
logger.error("Unexpected exception", ex);
fail("unexpected exception");
}
}
示例6: processAck
import javax.sip.SipProvider; //导入方法依赖的package包/类
/**
* Process the ACK request. Send the bye and complete the call flow.
*/
public void processAck(RequestEvent requestEvent,
ServerTransaction serverTransaction) {
try {
this.ackReceived = true;
System.out.println("Got an ACK! ");
System.out.println("Dialog State = " + dialog.getState());
SipProvider provider = (SipProvider) requestEvent.getSource();
Request messageRequest = dialog.createRequest(Request.MESSAGE);
CSeqHeader cseq = (CSeqHeader)messageRequest.getHeader(CSeqHeader.NAME);
// We will test if the CSEq validation is off by sending CSeq 1 again
ClientTransaction ct = provider
.getNewClientTransaction(messageRequest);
cseq.setSeqNumber(1);
ct.sendRequest();
} catch (Exception ex) {
ex.printStackTrace();
}
}
示例7: processAck
import javax.sip.SipProvider; //导入方法依赖的package包/类
/**
* Process the ACK request. Send the bye and complete the call flow.
*/
public void processAck(RequestEvent requestEvent,
ServerTransaction serverTransaction) {
try {
logger.info("shootme: got an ACK! ");
logger.info("Dialog State = " + dialog.getState());
SipProvider provider = (SipProvider) requestEvent.getSource();
if (!callerSendsBye) {
Request byeRequest = dialog.createRequest(Request.BYE);
ClientTransaction ct = provider
.getNewClientTransaction(byeRequest);
dialog.sendRequest(ct);
}
} catch (Exception ex) {
logger.error("Unexpected exception", ex);
fail("unexpected exception");
}
}
示例8: sendReInvite
import javax.sip.SipProvider; //导入方法依赖的package包/类
public void sendReInvite(SipProvider sipProvider) throws Exception {
Request inviteRequest = dialog.createRequest(Request.INVITE);
((SipURI) inviteRequest.getRequestURI()).removeParameter("transport");
MaxForwardsHeader mf = protocolObjects.headerFactory.createMaxForwardsHeader(10);
inviteRequest.addHeader(mf);
((ViaHeader) inviteRequest.getHeader(ViaHeader.NAME))
.setTransport(protocolObjects.transport);
Address address = protocolObjects.addressFactory.createAddress("Shootme <sip:"
+ myAddress + ":" + myPort + ">");
ContactHeader contactHeader = protocolObjects.headerFactory
.createContactHeader(address);
inviteRequest.addHeader(contactHeader);
ClientTransaction ct = sipProvider.getNewClientTransaction(inviteRequest);
dialog.sendRequest(ct);
}
示例9: processAck
import javax.sip.SipProvider; //导入方法依赖的package包/类
/**
* Process the ACK request. Send the bye and complete the call flow.
*/
public void processAck(RequestEvent requestEvent,
ServerTransaction serverTransaction) {
acks++;
// We will wait for 5 acks to test if retransmissions are filtered. With loose dialog
// validation the ACK retransmissions are not filtered by the stack.
if(acks == 5)
{
try {
System.out.println("shootme: got an ACK! ");
System.out.println("Dialog State = " + dialog.getState());
SipProvider provider = (SipProvider) requestEvent.getSource();
Request messageRequest = dialog.createRequest(Request.MESSAGE);
CSeqHeader cseq = (CSeqHeader)messageRequest.getHeader(CSeqHeader.NAME);
// We will test if the CSEq validation is off by sending CSeq 1 again
ClientTransaction ct = provider
.getNewClientTransaction(messageRequest);
cseq.setSeqNumber(1);
ct.sendRequest();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
示例10: processResponse
import javax.sip.SipProvider; //导入方法依赖的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");
}
}
示例11: processResponse
import javax.sip.SipProvider; //导入方法依赖的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);
}
}
示例12: processResponse
import javax.sip.SipProvider; //导入方法依赖的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);
}
}
示例13: processResponse
import javax.sip.SipProvider; //导入方法依赖的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");
}
}
示例14: processResponse
import javax.sip.SipProvider; //导入方法依赖的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");
}
}