送给sip学习者(sip实例).doc

上传人:飞****9 文档编号:133790031 上传时间:2020-05-30 格式:DOC 页数:12 大小:118.50KB
返回 下载 相关 举报
送给sip学习者(sip实例).doc_第1页
第1页 / 共12页
送给sip学习者(sip实例).doc_第2页
第2页 / 共12页
送给sip学习者(sip实例).doc_第3页
第3页 / 共12页
送给sip学习者(sip实例).doc_第4页
第4页 / 共12页
送给sip学习者(sip实例).doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《送给sip学习者(sip实例).doc》由会员分享,可在线阅读,更多相关《送给sip学习者(sip实例).doc(12页珍藏版)》请在金锄头文库上搜索。

1、第 12 页 共 12 页 时光可见 总结编写-sip学习网站上关于基于sip的java编程实例实在是太少了,这个严重影响了sip的传播和发展,所以我上传了这个小实验,让大家参考下。在做实验前,我们需要一些东西:我的环境:XPEclipse需要包:这个需要在网上自己找,或者hi我,我也可以给你们哈。-百度账号:时光可见好了,现在看程序了哈,主要是三个文件。MessageProcessor.java :public interface MessageProcessor public void processMessage(String sender, String message); publi

2、c void processError(String errorMessage); public void processInfo(String infoMessage);SipLayer.java :import java.text.ParseException;import java.util.*;import javax.sip.*;import javax.sip.address.*;import javax.sip.header.*;import javax.sip.message.*;public class SipLayer implements SipListener priv

3、ate MessageProcessor messageProcessor;private String username;private SipStack sipStack;private SipFactory sipFactory;private AddressFactory addressFactory;private HeaderFactory headerFactory;private MessageFactory messageFactory;private SipProvider sipProvider;/* Here we initialize the SIP stack. *

4、/public SipLayer(String username, String ip, int port)throws PeerUnavailableException, TransportNotSupportedException,InvalidArgumentException, ObjectInUseException,TooManyListenersException setUsername(username);sipFactory = SipFactory.getInstance();sipFactory.setPathName(gov.nist);Properties prope

5、rties = new Properties();properties.setProperty(javax.sip.STACK_NAME, TextClient);properties.setProperty(javax.sip.IP_ADDRESS, ip);/ DEBUGGING: Information will go to files/ textclient.log and textclientdebug.logproperties.setProperty(gov.nist.javax.sip.TRACE_LEVEL, 32);properties.setProperty(gov.ni

6、st.javax.sip.SERVER_LOG, textclient.txt);properties.setProperty(gov.nist.javax.sip.DEBUG_LOG, textclientdebug.log);sipStack = sipFactory.createSipStack(properties);headerFactory = sipFactory.createHeaderFactory();addressFactory = sipFactory.createAddressFactory();messageFactory = sipFactory.createMe

7、ssageFactory();/ListeningPoint tcp = sipStack.createListeningPoint(port, tcp);ListeningPoint udp = sipStack.createListeningPoint(port, udp);/ sipProvider = sipStack.createSipProvider(tcp);/ sipProvider.addSipListener(this);/ suppose UDP is used as transport, Bob Cheng, 03-11-10sipProvider = sipStack

8、.createSipProvider(udp);sipProvider.addSipListener(this);/* * This method uses the SIP stack to send a message. */public void sendMessage(String to, String message) throws ParseException,InvalidArgumentException, SipException SipURI from = addressFactory.createSipURI(getUsername(), getHost() + : + g

9、etPort();Address fromNameAddress = addressFactory.createAddress(from);fromNameAddress.setDisplayName(getUsername();FromHeader fromHeader = headerFactory.createFromHeader(fromNameAddress, textclientv1.0);String username = to.substring(to.indexOf(:) + 1, to.indexOf();String address = to.substring(to.i

10、ndexOf() + 1);SipURI toAddress = addressFactory.createSipURI(username, address);Address toNameAddress = addressFactory.createAddress(toAddress);toNameAddress.setDisplayName(username);ToHeader toHeader = headerFactory.createToHeader(toNameAddress, null);SipURI requestURI = addressFactory.createSipURI

11、(username, address);requestURI.setTransportParam(udp);ArrayList viaHeaders = new ArrayList();ViaHeader viaHeader = headerFactory.createViaHeader(getHost(), getPort(), udp, branch1);viaHeaders.add(viaHeader);CallIdHeader callIdHeader = sipProvider.getNewCallId();CSeqHeader cSeqHeader = headerFactory.

12、createCSeqHeader(1, Request.MESSAGE);MaxForwardsHeader maxForwards = headerFactory.createMaxForwardsHeader(70);Request request = messageFactory.createRequest(requestURI,Request.MESSAGE, callIdHeader, cSeqHeader, fromHeader,toHeader, viaHeaders, maxForwards);SipURI contactURI = addressFactory.createS

13、ipURI(getUsername(), getHost();contactURI.setPort(getPort();Address contactAddress = addressFactory.createAddress(contactURI);contactAddress.setDisplayName(getUsername();ContactHeader contactHeader = headerFactory.createContactHeader(contactAddress);request.addHeader(contactHeader);ContentTypeHeader

14、 contentTypeHeader = headerFactory.createContentTypeHeader(text, plain);request.setContent(message, contentTypeHeader);sipProvider.sendRequest(request);/* This method is called by the SIP stack when a response arrives. */public void processResponse(ResponseEvent evt) Response response = evt.getResponse();int status = response.getStatusCode();if (status = 200) & (status 300) / Success!messageProcessor.processInfo(-Sent);return;messageProcessor.processError(Previous message not sent: + status);/* * This method is cal

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号