对 SMPPPacket的业务处理代码:
1.处理 BIND_RECEIVER消息
- package com.lizongbo.smpp.server.handlers;
- import org.apache.mina.common.*;
- import com.lizongbo.smpp.server.*;
- import ie.omk.smpp.*;
- import ie.omk.smpp.message.*;
- import ie.omk.smpp.message.tlv.*;
- import ie.omk.smpp.util.*;
- import ie.omk.smpp.version.*;
- /**
- *
- * <p>Title: BindReceiver Handler</p>
- *
- * <p>Description: smpp BIND_RECEIVER</p>
- *
- * <p>Copyright: Copyright (c) 2007</p>
- *
- * <p>Company: http://618119.com </p>
- *
- * @author lizongbo
- * @version 1.0
- */
- public class BindReceiverHandler
- implements SMPPPacketHandler {
- public void process(IoSession session, SMPPPacket packet) throws
- BadCommandIDException {
- BindReceiver msg = (BindReceiver) packet;
- System.out.println(”sysId=” + msg.getSystemId());
- System.out.println(”password=” + msg.getPassword());
- //在这里判断账号和密码是否正确
- System.out.println(”sysType=” + msg.getSystemType());
- System.out.println(”interfaceVer=” + msg.getInterfaceVersion());
- System.out.println(”addrTon=” + msg.getAddressTon());
- System.out.println(”addrNpi=” + msg.getAddressNpi());
- System.out.println(”addressRange=” + msg.getAddressRange());
- BindReceiverResp res = (BindReceiverResp) PacketFactory.
- newInstance(SMPPPacket.BIND_RECEIVER_RESP);
- res.setCommandStatus(0);
- res.setSequenceNum(packet.getSequenceNum());
- res.setSystemId(”smsc.618119.com”);
- res.setOptionalParameter(Tag.SC_INTERFACE_VERSION,
- SMPPVersion.getDefaultVersion().getVersionID());
- session.write(res);
- }
- }
package com.lizongbo.smpp.server.handlers;
import org.apache.mina.common.*;
import com.lizongbo.smpp.server.*;
import ie.omk.smpp.*;
import ie.omk.smpp.message.*;
import ie.omk.smpp.message.tlv.*;
import ie.omk.smpp.util.*;
import ie.omk.smpp.version.*;
/**
*
* <p>Title: BindReceiver Handler</p>
*
* <p>Description: smpp BIND_RECEIVER</p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: http://618119.com </p>
*
* @author lizongbo
* @version 1.0
*/
public class BindReceiverHandler
implements SMPPPacketHandler {
public void process(IoSession session, SMPPPacket packet) throws
BadCommandIDException {
BindReceiver msg = (BindReceiver) packet;
System.out.println(”sysId=” + msg.getSystemId());
System.out.println(”password=” + msg.getPassword());
//在这里判断账号和密码是否正确
System.out.println(”sysType=” + msg.getSystemType());
System.out.println(”interfaceVer=” + msg.getInterfaceVersion());
System.out.println(”addrTon=” + msg.getAddressTon());
System.out.println(”addrNpi=” + msg.getAddressNpi());
System.out.println(”addressRange=” + msg.getAddressRange());
BindReceiverResp res = (BindReceiverResp) PacketFactory.
newInstance(SMPPPacket.BIND_RECEIVER_RESP);
res.setCommandStatus(0);
res.setSequenceNum(packet.getSequenceNum());
res.setSystemId(”smsc.618119.com”);
res.setOptionalParameter(Tag.SC_INTERFACE_VERSION,
SMPPVersion.getDefaultVersion().getVersionID());
session.write(res);
}
}
2.处理BIND_TRANSMITTER消息
- package com.lizongbo.smpp.server.handlers;
- import org.apache.mina.common.*;
- import com.lizongbo.smpp.server.*;
- import ie.omk.smpp.*;
- import ie.omk.smpp.message.*;
- import ie.omk.smpp.message.tlv.*;
- import ie.omk.smpp.util.*;
- import ie.omk.smpp.version.*;
- /**
- *
- * <p>Title: BindTransmitter Handler</p>
- *
- * <p>Description: smpp BIND_TRANSMITTER</p>
- *
- * <p>Copyright: Copyright (c) 2007</p>
- *
- * <p>Company: http://618119.com </p>
- *
- * @author lizongbo
- * @version 1.0
- */
- public class BindTransmitterHandler
- implements SMPPPacketHandler {
- public void process(IoSession session, SMPPPacket packet) throws
- BadCommandIDException {
- BindTransmitter msg = (BindTransmitter) packet;
- System.out.println(”sysId=” + msg.getSystemId());
- System.out.println(”password=” + msg.getPassword());
- System.out.println(”sysType=” + msg.getSystemType());
- System.out.println(”interfaceVer=” + msg.getInterfaceVersion());
- System.out.println(”addrTon=” + msg.getAddressTon());
- System.out.println(”addrNpi=” + msg.getAddressNpi());
- System.out.println(”addressRange=” + msg.getAddressRange());
- BindTransmitterResp res = (BindTransmitterResp) PacketFactory.
- newInstance(SMPPPacket.BIND_TRANSMITTER_RESP);
- res.setCommandStatus(msg.getCommandStatus());
- res.setSequenceNum(packet.getSequenceNum());
- res.setSystemId(”smsc.618119.com”);
- res.setOptionalParameter(Tag.SC_INTERFACE_VERSION,
- SMPPVersion.getDefaultVersion().getVersionID());
- session.write(res);
- }
- }
package com.lizongbo.smpp.server.handlers;
import org.apache.mina.common.*;
import com.lizongbo.smpp.server.*;
import ie.omk.smpp.*;
import ie.omk.smpp.message.*;
import ie.omk.smpp.message.tlv.*;
import ie.omk.smpp.util.*;
import ie.omk.smpp.version.*;
/**
*
* <p>Title: BindTransmitter Handler</p>
*
* <p>Description: smpp BIND_TRANSMITTER</p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: http://618119.com </p>
*
* @author lizongbo
* @version 1.0
*/
public class BindTransmitterHandler
implements SMPPPacketHandler {
public void process(IoSession session, SMPPPacket packet) throws
BadCommandIDException {
BindTransmitter msg = (BindTransmitter) packet;
System.out.println(”sysId=” + msg.getSystemId());
System.out.println(”password=” + msg.getPassword());
System.out.println(”sysType=” + msg.getSystemType());
System.out.println(”interfaceVer=” + msg.getInterfaceVersion());
System.out.println(”addrTon=” + msg.getAddressTon());
System.out.println(”addrNpi=” + msg.getAddressNpi());
System.out.println(”addressRange=” + msg.getAddressRange());
BindTransmitterResp res = (BindTransmitterResp) PacketFactory.
newInstance(SMPPPacket.BIND_TRANSMITTER_RESP);
res.setCommandStatus(msg.getCommandStatus());
res.setSequenceNum(packet.getSequenceNum());
res.setSystemId(”smsc.618119.com”);
res.setOptionalParameter(Tag.SC_INTERFACE_VERSION,
SMPPVersion.getDefaultVersion().getVersionID());
session.write(res);
}
}
3.处理DELIVER_SM_RESP,SUBMIT_SM,UNBIND消息的代码片断.
- public void process(IoSession session, SMPPPacket packet) throws
- BadCommandIDException {
- DeliverSMResp msg = (DeliverSMResp) packet;
- System.out.println(”收到确认的消息编号:” + msg.getMessageId());
- }
- public void process(IoSession session, SMPPPacket packet) throws
- BadCommandIDException {
- SubmitSM msg = (SubmitSM) packet;
- System.out.println(”serviceType=” + msg.getServiceType());
- System.out.println(”source=” + msg.getSource());
- System.out.println(”destination=” + msg.getDestination());
- System.out.println(”esmClass=” + msg.getEsmClass());
- System.out.println(”protocolID=” + msg.getProtocolID());
- System.out.println(”priority=” + msg.getPriority());
- System.out.println(”delivery=” + msg.getDeliveryTime());
- System.out.println(”expiryTime=” + msg.getExpiryTime());
- System.out.println(”registered=” + msg.getRegistered());
- System.out.println(”replaceIfPresent=” + msg.getReplaceIfPresent());
- System.out.println(”dataCoding=” + msg.getDataCoding());
- System.out.println(”defaultMsg=” + msg.getDefaultMsg());
- System.out.println(”message=” + new String(msg.getMessage()));
- SubmitSMResp res = (SubmitSMResp) PacketFactory.
- newInstance(SMPPPacket.SUBMIT_SM_RESP);
- res.setCommandStatus(0);
- res.setSequenceNum(packet.getSequenceNum());
- res.setMessageId(”11233″);
- session.write(res);
- }
- public void process(IoSession session, SMPPPacket packet) throws
- BadCommandIDException {
- Unbind msg = (Unbind) packet;
- UnbindResp res = (UnbindResp) PacketFactory.
- newInstance(SMPPPacket.UNBIND_RESP);
- res.setCommandStatus(0);
- res.setSequenceNum(packet.getSequenceNum());
- session.write(res);
- }