callroute_request.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #ifndef _CALLROUTE_REQUEST_
  2. #define _CALLROUTE_REQUEST_
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. //请求包数据结构
  6. typedef struct proxy_req_hdr
  7. {
  8. char packgelen[4]; // 整包长,不含此字段(4bit)
  9. char version; // 版本号(1bit)
  10. char tradefrom[3]; // 渠道代码(3bit) MGA
  11. char terminalno[30]; // 终端号(30bit),可不填
  12. char reqtime[14]; // 请求时间(14bit)
  13. char requestcode[16]; // 请求码(16bit)
  14. char errorcode[7]; // 错误码(7bit)回包填
  15. char errormsg[20]; // 错误信息(20bit)回包填
  16. char reserved[30]; // 保留字段(30bit)
  17. }proxy_req_hdr_t;
  18. typedef struct proxy_req_body
  19. {
  20. char bodysnum[4]; // 包体数量(4bit)
  21. char bodyname[30]; // 包体名(30bit)
  22. char bodylen[4]; // 单个包体长度(4bit)
  23. char branchno[10]; // 分行编号(10bit)可不填
  24. char terminalno[20]; // 终端号(20bit)可不填
  25. char accessnum[10]; // 呼入码(10bit)必填
  26. }proxy_req_body_t;
  27. typedef struct proxy_req_packet
  28. {
  29. proxy_req_hdr_t req_hdr; //请求包头
  30. proxy_req_body_t req_body; //请求包体
  31. }proxy_req_packet_t;
  32. typedef struct proxy_rsp_body
  33. {
  34. char unkown_flag_a[4]; //1
  35. char gateway_type_a[30]; //网关类型
  36. char audio_len[4]; //内容长度
  37. char audio_centent[150]; //内容
  38. char unkown_flag_b[4]; //1
  39. char gateway_type_b[30]; //网关类型
  40. char video_len[4]; //内容长度
  41. char video_content_ip[20]; //内容(前20字节为ip,后10字节为端口号
  42. char video_content_port[10]; //内容(前20字节为ip,后10字节为端口号
  43. }proxy_rsp_body_t;
  44. //回复包数据结构
  45. typedef struct proxy_rsp_packet{
  46. proxy_req_hdr_t req_hdr; //请求包头
  47. proxy_rsp_body_t rsp_body;
  48. }proxy_rsp_packet_t;
  49. int fill_packet(proxy_req_packet_t* req_packet, const char* paccessnum, const char* pcalleridnum, const char* branchnum, char*strTime);
  50. #endif