短消息网关通信模块的设计与实现 |
|---|
| WAP技术站:www.wapease.com
|
int total_length; //该消息的长度; char mqm_buf[MAX_PACKET_SIZE]; //该消息的内容; char converted_buf[MAX_PACKET_SIZE]; //转换协议后的消息内容; }; 现以MO请求业务为例,描述通信模块的工作流程。 当SMSC以SMPP格式的DELIVER_SM消息发出订阅某个SP的言语传情短消息,经由smpp_server收到,从队列4中转发给package_server。Package_server收到MO请求后回送给SP一个SMPP格式的DELIVER_SM_REP应答消息,并用mqm_connection结构体存储这条MO消息的各个信息。 之后,package_server就把该消息转换成CMPP协议的CMPP_Deliver消息,并通过队列1送到cmpp_server中,转发给目的SP。SP在接收到这个消息后,会产生一个CMPP格式的CMPP_Deliver_Rep的应答消息返回给网关。当package_server收到了应答信号,也需要用mqm_connection结构体存储。这时,一条MO短消息转发成功,package_server记录SMO话单。 下面给出在Linux7.2版本的操作系统下,用C语言实现的package_server的主要代码: main() { mqm_init( ); //初始化队列; …… pipe( ); //建立管道; if (( child_pid = fork( ) ) ==0) { //通过管道通知2队列有数; while(1){ get_result_msg_info(REQUEST_2,pipfd2[1]); } } …… //建立监听描述符集; FD_ZERO ( &monit); FD_SET ( )_; …… //处理队列中来的数据 while(1) { select ( ); //监听2,4,6队列; if ( FD_ISSET(queue2,&read_monit )) //如果2队列有数; { handle_queue2_in( );//处理2队列来的数据; } …… }//end while; } //end main; 4 结束语 短消息网关是无线互联网短消息业务中最为关键的一个设备,它为手机用户和互联网的信息资源架起了一座桥梁。本文中短消息网关的通信模块设计周全,结构合理,为计费、路由、超时重传等模块提供了良好的扩展性。经实验室测试,在奔2处理器,64兆内存的机器上,收发包速率为每秒5000条,不丢包率达到100%,是一个稳定的系统。 参考文献 [1] 短消息网关设备规范(V1.2).中国移动通信集团公司,2001. |
| 上一篇:如何构建固定网(PSTN)短消息系统 下一篇:短信系统的所应有的功能 |
|
