⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 registrationmanager.java

📁 First of all, the Applet-phone is a SIP User-Agent with audio and text messaging capabilities. But
💻 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 + -