我有一个为用户提供交互式会话的USSD应用程序,例如:
User> Dial USSD Shortcode
Serv> Return Main Menu
User> Select Option 1, e.g. "View Movie Times"
Serv> Return List of Cities
User> Select Option 3, e.g. Mumbai
Serv> Return List of Cinemas
User> etc ...我想通过使用SMSLib来模拟用户来测试USSD服务器。
是否有任何示例SMSLib代码片段显示如何执行与USSD服务器的交互式USSD会话?
发布于 2012-11-10 04:33:05
此link中的代码给出了使用smslib发送和接收USSD数据的示例:
// SendUSSD.java -示例应用程序。/此应用程序向您展示发送消息的基本步骤。//您将了解如何发送同步和异步消息。/对于异步分派,示例应用程序设置一个回调//通知,以查看消息发生了什么。package examples.modem;import org.smslib.AGateway;import org.smslib.AGateway.Protocols;import org.smslib.IUSSDNotification;import org.smslib.Library;import org.smslib.Service;import org.smslib.USSDResponse;import org.smslib.modem.SerialModemGateway;public类SendUSSD { public void ()抛出异常{ Service srv;ussdNotification USSDNotification = new USSDNotification();System.out.println(“示例:从串行gsm调制解调器发送USSD命令。”);System.out.println(Library.getLibraryDescription());System.out.println("Version:“+ Library.getLibraryVersion());srv =新服务();SerialModemGateway网关=新SerialModemGateway("modem.com1","COM4",19200,”华为“,"E220");gateway.setProtocol(Protocols.PDU);gateway.setInbound(true);Gateway.setOutbound(真);gateway.setSimPin("0000");srv.setUSSDNotification(ussdNotification);srv.addGateway(网关);srv.startService();System.out.println();System.out.println(“调制解调器信息:”);System.out.println(“制造商:”+ gateway.getManufacturer());System.out.println(“型号:”+ gateway.getModel());System.out.println(“序列号:”+ gateway.getSerialNo());System.out.println(“SIM:”+ gateway.getImsi());System.out.println(“信号级别:”+ gateway.getSignalLevel() + "%");System.out.println(“电池级别:”+ gateway.getBatteryLevel() + "%");System.out.println();String resp = gateway.sendUSSDCommand("*888#");//不工作// String resp = gateway.sendCustomATCommand("AT+CUSD=1,\"*888#\",15\r");//工作中的System.out.println(resp);System.out.println(“现在按睡眠-点击终止。”);System.in.read();srv.stopService();}公共类USSDNotification实现了IUSSDNotification {公共空进程(AGateway网关,USSDResponse响应){System.out.println(“从网关调用的USSD处理程序:”+ gateway.getGatewayId());System.out.println(响应);}}公共静态空main(String args[]) { SendUSSD app =新的SendUSSD();尝试{ app.doIt();} catch (Exception e) { e.printStackTrace();}
https://stackoverflow.com/questions/13268389
复制相似问题