📄 registrationmanager.java
字号:
/* * * Created on September 26, 2002, 12:14 AM */package gov.nist.examples.bps.reader;import gov.nist.javax.sip.*;import javax.sip.*;import javax.sip.message.*; import javax.sip.header.*;import javax.sip.address.*;import java.util.*;/** * * @author olivier * @version 1.0 */public class RegistrationManager extends Thread{ private BaseReader baseReader; private int EXPIRES_TIME; public RegistrationManager(BaseReader baseReader) { this.baseReader=baseReader; EXPIRES_TIME=60; } public void register() { try { BaseReaderDebug.println(); BaseReaderDebug.println("RegistrationManager, sending REGISTER in progress"); HeaderFactory headerFactory=baseReader.getHeaderFactory(); AddressFactory addressFactory=baseReader.getAddressFactory(); MessageFactory messageFactory=baseReader.getMessageFactory(); SipProvider sipProvider=baseReader.getSipProvider(); Configuration configuration=baseReader.getConfiguration(); String presenceServerAddress=baseReader.getPresenceServerAddress(); if (presenceServerAddress==null) { BaseReaderDebug.println("RegistrationManager, ERROR unable to register, the"+ " presence server address does not exist"); return; } int presenceServerPort=baseReader.getPresenceServerPort(); if (presenceServerPort==-1) { BaseReaderDebug.println("RegistrationManager, ERROR unable to register, the"+ " presence server port does not exist"); return; } // Request-URI: SipURI requestURI=addressFactory.createSipURI(null,presenceServerAddress); requestURI.setPort(presenceServerPort); // Call-ID: CallIdHeader callIdHeader=headerFactory.createCallIdHeader( "nist-sip-base-reader-register-callId"); // CSeq: CSeqHeader cseqHeader=headerFactory.createCSeqHeader(1,"REGISTER"); //String baseReaderIdentifier=configuration.baseReaderIdentifier; //Address toAddress=addressFactory.createAddress("sip:presence-server"+ //"@"+presenceServerAddress+":"+presenceServerPort); // From Header: FromHeader fromHeader=baseReader.createStackFromHeader(); // To header: Address toAddress=fromHeader.getAddress(); ToHeader toHeader=headerFactory.createToHeader(toAddress,null); // Via header String branchId=Utils.generateBranchId(); ViaHeader viaHeader=baseReader.createStackViaHeader(); Vector viaList=new Vector(); viaList.addElement(viaHeader); // MaxForwards header: MaxForwardsHeader maxForwardsHeader=headerFactory.createMaxForwardsHeader(10); // the BASE tag: String xmlBody="<?xml version='1.0' encoding='us-ascii'?>\n"+ "<base identifier=\""+configuration.baseReaderIdentifier+ "\" location=\""+configuration.baseReaderLocation+"\" />\r\n"; // Content-Type: ContentTypeHeader contentTypeHeader=headerFactory.createContentTypeHeader( "application","nist-sip-xml"); Request request=messageFactory.createRequest(requestURI,"REGISTER", callIdHeader,cseqHeader,fromHeader,toHeader,viaList,maxForwardsHeader, contentTypeHeader,xmlBody); // Contact header: ContactHeader contactHeader=baseReader.createStackContactHeader(); request.setHeader(contactHeader); // Create a BaseReader header to differentiate from the others REGISTER Header baseReaderHeader=headerFactory.createHeader("Base-reader", configuration.baseReaderIdentifier); request.setHeader(baseReaderHeader); ExpiresHeader expiresHeader=headerFactory.createExpiresHeader(EXPIRES_TIME); request.setHeader(expiresHeader); ClientTransaction clientTransaction=sipProvider.getNewClientTransaction(request); clientTransaction.sendRequest(); BaseReaderDebug.println("RegistrationManager, register(), REGISTER sent:\n"+request); BaseReaderDebug.println(); } catch (Exception ex) { BaseReaderDebug.println("RegistrationManager, register(), unable to send the REGISTER"+ ", exception raised:"); ex.printStackTrace(); } } public void run() { while(true) { try{ register(); // we register every (EXPIRES_TIME *1000 -2000) ms. Thread.sleep(EXPIRES_TIME*1000-2000); } catch (Exception ex) { BaseReaderDebug.println("RegistrationManager, run(), unable to RE-REGISTER"+ ", exception raised:"); ex.printStackTrace(); } } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -