SIp学习实例

[size=large]网站上关于基于sip的java编程实例实在是太少了,这个严重影响了sip的传播和发展,所以我上传了这个小实验,让大家参考下。

在做实验前,我们需要一些东西:
我的环境:
XP
Eclipse

需要包:

这个需要在网上自己找,或者hi我,我也可以给你们哈。----百度账号:时光可见

好了,现在看程序了哈,主要是三个文件。

MessageProcessor.java :
public interface MessageProcessor
{
public void processMessage(String sender, String message);
public 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 {

private 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. */
public SipLayer(String username, String ip, int port)
throws PeerUnavailableException, TransportNotSupportedException,
InvalidArgumentException, ObjectInUseException,
TooManyListenersException {

setUsername(username);
sipFactory = SipFactory.getInstance();
sipFactory.setPathName("gov.nist");
Properties properties = 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.log
properties.setProperty("gov.nist.javax.sip.TRACE_LEVEL", "32");
properties.setProperty("gov.nist.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.createMessageFactory();

// 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-10
sipProvider = sipStack.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() + ":" + getPort());
Address fromNameAddress = addressFactory.createAddress(from);
fromNameAddress.setD
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值