3 * Copyright (c) 2000-2012 Samsung Electronics Co., Ltd. All Rights Reserved.
5 * This file is part of msg-service.
7 * Contact: Jaeyun Jeong <jyjeong@samsung.com>
8 * Sangkoo Kim <sangkoo.kim@samsung.com>
9 * Seunghwan Lee <sh.cat.lee@samsung.com>
10 * SoonMin Jung <sm0415.jung@samsung.com>
11 * Jae-Young Lee <jy4710.lee@samsung.com>
12 * KeeBum Kim <keebum.kim@samsung.com>
14 * PROPRIETARY/CONFIDENTIAL
16 * This software is the confidential and proprietary information of
17 * SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
18 * disclose such Confidential Information and shall use it only in
19 * accordance with the terms of the license agreement you entered
20 * into with SAMSUNG ELECTRONICS.
22 * SAMSUNG make no representations or warranties about the suitability
23 * of the software, either express or implied, including but not limited
24 * to the implied warranties of merchantability, fitness for a particular
25 * purpose, or non-infringement. SAMSUNG shall not be liable for any
26 * damages suffered by licensee as a result of using, modifying or
27 * distributing this software or its derivatives.
31 #ifndef MMSTPDUTYPES_H
32 #define MMSTPDUTYPES_H
34 #define __SUPPORT_LIBCURL__
36 #include "MmsPluginMessage.h"
37 #include "MsgStorageTypes.h"
40 typedef enum _E_UA_STATE {
47 typedef unsigned int MMS_NET_ERROR_T;
49 typedef unsigned int MMS_PDU_TYPE_T;
51 typedef unsigned char MMS_HTTP_CMD_TYPE_T;
54 enum _MMS_NET_ERROR_E {
60 eMMS_CM_CLOSE_FAILED, //5
64 eMMS_HTTP_SESSION_INIT,
65 eMMS_HTTP_SESSION_CLOSED,
66 eMMS_HTTP_SESSION_OPEN_FAILED, //10
67 eMMS_HTTP_SENT_SUCCESS,
68 eMMS_HTTP_CONF_SUCCESS,
69 eMMS_HTTP_ERROR_NETWORK,
70 eMMS_HTTP_CONF_RECEIVED_TIMEOUT,
71 eMMS_HTTP_RECV_DATA, //15
72 eMMS_HTTP_EVENT_RECV_DATA_PROGRESS,
73 eMMS_HTTP_EVENT_RECV_DATA_ERROR,
74 eMMS_HTTP_EVENT_SENT_ACK_COMPLETED,
75 eMMS_HTTP_ERROR_UNKNOWN,
76 eMMS_EXCEPTIONAL_ERROR, //20
81 typedef struct _MMS_COND_S {
83 MMS_NET_ERROR_T reason;
87 enum _MMS_PDU_TYPE_E {
90 eMMS_NOTIFICATION_IND,
92 eMMS_RETRIEVE_AUTO_CONF,
98 eMMS_READREPORT_CONF, //10
102 eMMS_RETRIEVE_MANUAL,
103 eMMS_RETRIEVE_MANUAL_CONF,
108 eMMS_MBOX_STORE_REQ, // 20
109 eMMS_MBOX_STORE_CONF,
112 eMMS_MBOX_UPLOAD_REQ,
113 eMMS_MBOX_UPLOAD_CONF,
114 eMMS_MBOX_DELETE_REQ,
115 eMMS_MBOX_DELETE_CONF,
118 enum _MMS_HTTP_CMD_TYPE_E {
119 eHTTP_CMD_REGISTER = 0,
120 eHTTP_CMD_DEREGISTER,
121 eHTTP_CMD_INIT_SESSION,
122 eHTTP_CMD_CANCEL_SESSION,
123 eHTTP_CMD_CLOSE_SESSION,
124 eHTTP_CMD_DELETE_SESSION,
125 eHTTP_CMD_POST_TRANSACTION,
126 eHTTP_CMD_GET_TRANSACTION,
127 eHTTP_CMD_DELETE_TRANSACTION
131 MSG_CHECK_ADDR_TYPE_PHONE = 0x01,
132 MSG_CHECK_ADDR_TYPE_EMAIL = 0x02,
133 MSG_CHECK_ADDR_TYPE_IPV4 = 0x04,
134 MSG_CHECK_ADDR_TYPE_IPV6 = 0x08,
135 MSG_CHECK_ADDR_TYPE_NUM = 0x10,
136 MSG_CHECK_ADDR_TYPE_ALIAS = 0x20
139 typedef struct _mmsTranQEntity {
141 MSG_REQUEST_ID_T reqID;
143 unsigned int sessionId;
144 char transactionId[MMS_TR_ID_LEN + 1];
146 MMS_PDU_TYPE_T eMmsPduType;
147 MMS_HTTP_CMD_TYPE_T eHttpCmdType;
149 MMS_PDU_TYPE_T eMmsTransactionStatus;
163 MMS_RM_GET_REQ_MANUAL,
164 MMS_RM_NOTIFY_RESP_IND,
168 MMS_RM_RETRIEVE_CONF,
170 MMS_RM_READ_REPORT_V10,
171 MMS_RM_READ_REPORT_V11
174 /// CM //////////////////////////////////////////////////////
176 #define MAX_PROFILE_ID 1
178 #define MAX_URL_LENGTH 1024
179 #define MAX_IPV4_LENGTH 30
181 typedef struct _MMS_NETWORK_PROFILE_S {
182 int profileId[MAX_PROFILE_ID];
184 } MMS_NETWORK_PROFILE_S;
188 /// HTTP ////////////////////////////////////////////////////
190 enum _E_MMS_CONNECTION_MODE {
191 eTCP_WITH_PROXY = 0, /** Means HTTP Proxy/Gateway are available */
192 eTCP_WITHOUT_PROXY = 1 /** Means HTTP Proxy/Gateway is not available */
195 typedef unsigned int E_MMS_CONNECTION_MODE; /**< Values from \ref _E_MMS_CONNECTION_MODE */
197 enum _E_MMS_NETWORK_ACCESS_POINT {
198 eNETWORK_ACCESS_POINT_ACKTIVE = 1
201 typedef unsigned int E_MMS_NETWORK_ACCESS_POINT;
203 typedef struct _MMSC_CONFIG_DATA_S {
204 char mmscUrl[MAX_URL_LENGTH + 1]; /** if break, change it to NETPM_HOME_URL_LEN_MAX */
205 char httpProxyIpAddr[MAX_IPV4_LENGTH + 1]; /** HTTP Proxy's URL or IP address */
207 unsigned int proxyPortNo; /** MMS HTTP proxy Port number */
208 E_MMS_CONNECTION_MODE connectionMode; /** Values must be from ENUM list -\ref E_MMS_CONNECTION_MODE */
209 E_MMS_NETWORK_ACCESS_POINT networkAccessPoint; /** Values must be from \ref E_MMS_NETWORK_ACCESS_POINT */
210 unsigned int bAutoRetrieveFlag; /** Value's shall be true or false */
211 unsigned int profileId; /** Profile is for CM Conn open*/
212 } MMSC_CONFIG_DATA_S;
214 typedef struct _MMS_PLUGIN_HTTP_DATA_S {
217 int currentProfileId;
222 MMSC_CONFIG_DATA_S mmscConfig;
223 } MMS_PLUGIN_HTTP_DATA_S;
225 typedef struct _MMS_PLUGIN_HTTP_CONTEXT_S {
226 char *recv_header_buf ;
228 unsigned char *final_content_buf; // Final Concatenated Buffer
229 unsigned long ulContentLength; // Content Leght Value received in HTTP OK Header
230 unsigned long bufOffset; /** < Incremented once received Content_receiving or Content_received Event */
231 } MMS_PLUGIN_HTTP_CONTEXT_S;
233 typedef struct _MMS_PLUGIN_PROCESS_DATA_S {
234 unsigned char *pData;
235 unsigned long dataLen;
236 } MMS_PLUGIN_PROCESS_DATA_S;
239 ///////////////////////////////////////////////////////////////
244 MMS_HTTP_GET = 1, /* GET */
245 MMS_HTTP_POST = 2 /* POST */
248 #define MAX_MMSC_URL_LEN 100 /** MAX URL Length includes NULL char */
249 #define MAX_HTTP_PROXY_IPADDR_LEN 100 /** MAX HTTP Proxy IP addres length includes NULL char */
251 #define HTTP_REQUEST_LEN 1024
252 #define HTTP_VER "HTTP/1.1"
254 #define CRLFCRLF "\r\n\r\n"
256 /* URL of IIS Server - Where CGI script located */
257 #define IIS_PostURI "/mms/post.exe"
258 #define OperatorPostUrl "/mms/"
259 #define MAX_MMSC_IPADDR_LEN 512
260 #define POST_URI OperatorPostUrl
264 //////////////////////////////////////////////////////////
265 #define HTTP_RESP_SUCCESS 200
266 #define HTTP_PROB_RESP_SUCCESS 100
269 #define MMS_HTTP_HDR_CONNECTION "Keep-Alive"
271 /********* HTTP HEADER MACROS *********/
272 #define MMS_HTTP_HDR_CONTENT_TYPE "application/vnd.wap.mms-message"
274 #define MMS_HTTP_HDR_USER_AGENT "AX355"
276 #define MMS_HTTP_HDR_ACCEPT "application/vnd.wap.mms-message"
278 #define MMS_HTTP_HDR_ACCEPT_LANGUAGE "en"
280 #define MMS_HTTP_HDR_ACCEPT_CHARSET "US-ASCII, ISO-8859-1, UTF-8"
283 #define NOW_MMSC_URL "http://165.213.73.234:7082/01030016028=01030016028"
284 #define NOW_MMSC_IP "165.213.73.234"
285 #define NOW_MMSC_PROXY "165.213.73.234"
286 #define NOW_MMSC_PROXY_PORT 7082
288 #define DEFAULT_MMSC_URL NOW_MMSC_URL
289 #define DEFAULT_MMSC_IP NOW_MMSC_IP
290 #define DEFAULT_MMSC_PORT 7082
291 #define DEFAULT_HTTP_PROXY NOW_MMSC_PROXY
292 #define DEFAULT_HTTP_PROXY_PORT NOW_MMSC_PROXY_PORT
294 typedef struct _S_HTTP_UA_RECVING_DATA {
297 } S_HTTP_UA_RECVING_DATA;
299 /////////////////////////////////////////////////////
301 #define IN /*! Pfrefix*/
302 #define OUT /*! Pfrefix*/
303 #define INOUT /*! Pfrefix*/