#ifndef _CALLROUTE_REQUEST_ #define _CALLROUTE_REQUEST_ #include #include //请求包数据结构 typedef struct proxy_req_hdr { char packgelen[4]; // 整包长,不含此字段(4bit) char version; // 版本号(1bit) char tradefrom[3]; // 渠道代码(3bit) MGA char terminalno[30]; // 终端号(30bit),可不填 char reqtime[14]; // 请求时间(14bit) char requestcode[16]; // 请求码(16bit) char errorcode[7]; // 错误码(7bit)回包填 char errormsg[20]; // 错误信息(20bit)回包填 char reserved[30]; // 保留字段(30bit) }proxy_req_hdr_t; typedef struct proxy_req_body { char bodysnum[4]; // 包体数量(4bit) char bodyname[30]; // 包体名(30bit) char bodylen[4]; // 单个包体长度(4bit) char branchno[10]; // 分行编号(10bit)可不填 char terminalno[20]; // 终端号(20bit)可不填 char accessnum[10]; // 呼入码(10bit)必填 }proxy_req_body_t; typedef struct proxy_req_packet { proxy_req_hdr_t req_hdr; //请求包头 proxy_req_body_t req_body; //请求包体 }proxy_req_packet_t; typedef struct proxy_rsp_body { char unkown_flag_a[4]; //1 char gateway_type_a[30]; //网关类型 char audio_len[4]; //内容长度 char audio_centent[150]; //内容 char unkown_flag_b[4]; //1 char gateway_type_b[30]; //网关类型 char video_len[4]; //内容长度 char video_content_ip[20]; //内容(前20字节为ip,后10字节为端口号 char video_content_port[10]; //内容(前20字节为ip,后10字节为端口号 }proxy_rsp_body_t; //回复包数据结构 typedef struct proxy_rsp_packet{ proxy_req_hdr_t req_hdr; //请求包头 proxy_rsp_body_t rsp_body; }proxy_rsp_packet_t; int fill_packet(proxy_req_packet_t* req_packet, const char* paccessnum, const char* pcalleridnum, const char* branchnum, char*strTime); #endif