⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mms_msg.h

📁 手机端彩信的编解码、以及接收和发送。非常有用。
💻 H
字号:
/*
 * Mbuni - Open  Source MMS Gateway 
 * 
 * MMS message encoder/decoder and helper functions
 * 
 * Copyright (C) 2003 - 2005, Digital Solutions Ltd. - http://www.dsmagic.com
 *
 * Paul Bagyenda <bagyenda@dsmagic.com>
 * 
 * This program is free software, distributed under the terms of
 * the GNU General Public License, with a few exceptions granted (see LICENSE)
 */

#ifndef __MMS_MSG_INCLUDED__
#define __MMS_MSG_INCLUDED__
#include "gwlib/gwlib.h"
#include "wap/wsp_headers.h"
#include "gwlib/mime.h"


#include "mms_strings.h"

typedef struct MmsMsg MmsMsg; /* Opaque type. */

typedef MmsMsg *MmsMsgGetFunc_t(void *p1, void *p2, Octstr *msgref, unsigned long *msize);

extern int mms_validate_address(Octstr *s);

/* 
 * mms_frombinary: Parse MMS binary representation, return a Message or NULL.
 * errors are reported in errors string.
 * Takes from param which is put in if insert-address is requested.
 * NOTE: function may modify 'msg' argument as it parses. 
 */
extern MmsMsg *mms_frombinary(Octstr *msg, Octstr *from);

/*
 * mms_tobinary: Return binary encoded Mms message
 */
extern Octstr *mms_tobinary(MmsMsg *msg);

extern mms_encoding mms_message_enc(MmsMsg *msg);

extern int mms_messagetype(MmsMsg *msg);

/* 
 * Convert Mms Message to standard Mime entity. 
 * Does base64 encoding of binary parts if base64 is true
 */
extern MIMEEntity *mms_tomime(MmsMsg *msg, int base64);
/*
 * De-convert from mime.
 */
extern  MmsMsg *mms_frommime(MIMEEntity *mime);

extern void mms_msgdump(MmsMsg *m, int headers_only);
extern void mms_destroy(MmsMsg *msg);

/* Make a delivery report message. */
extern MmsMsg *mms_deliveryreport(Octstr *msgid, Octstr *to, time_t date, Octstr *status);

MmsMsg *mms_readreport(Octstr *msgid, Octstr *from, Octstr *to, time_t date, Octstr *status);

/* Return message headers. */
extern List *mms_message_headers(MmsMsg *msg);

/* Make a notification message out of this one and the url given. */
extern MmsMsg *mms_notification(MmsMsg *msg, unsigned int msize, 
				Octstr *url,
				Octstr *transactionid, time_t expiryt, int optimizesize);

MmsMsg *mms_retrieveconf(MmsMsg *msg, Octstr *transactionid, char *err, char *errtxt, Octstr *opt_from, int menc);
int mms_remove_headers(MmsMsg *m, char *name);
MmsMsg *mms_sendconf(char *errstr, char *msgid, char *transid, int isforward, int menc);

Octstr *mms_get_header_value(MmsMsg *msg, Octstr  *header);

/* Returns a list of values for the header given. */
List *mms_get_header_values(MmsMsg *msg, Octstr  *header);

int mms_replace_header_value(MmsMsg *msg, char *hname, char *value);
int mms_replace_header_values(MmsMsg *msg, char *hname, List *values);

/* Get headers from 'headers' that are not already in message headers and add them. */
int mms_add_missing_headers(MmsMsg *msg, List *headers);

int mms_convert_readrec2readorig(MmsMsg *msg);


MmsMsg *mms_storeconf(char *errstr, char *transid, Octstr *msgloc, int isupload, int menc);
MmsMsg *mms_deleteconf(int menc, char *transid);

/* Makes a view-conf message. Insane number of arguments I know, 
 * but it seems a fair price to keep the interfaces clean
 *
 */
MmsMsg *mms_viewconf(char *transid, 
		     List *msgrefs, 
		     List *msglocs,
		     char *err,
		     List *required_headers,
		     MmsMsgGetFunc_t *getmsg, 
		     void *p1, void *p2,		     
		     int maxsize, int menc,
		     List *otherhdrs);

/* Returns a copy of the message body. Either as list of  MIME Entities or as string -- 
 * caller must consult content_type to determine which is returned. 
 */
void *mms_msgbody(MmsMsg *msg);

/* Remove message body. */
int mms_clearbody(MmsMsg *msg);

/* Put a new message body. Old one removed if it is there. 
 * second param is a list of MIME entities or a string  depending on content type
 * ismultipart tells us which. No copy is made of body. 
 * Use function with extreme caution! It should be for testing only really!!!!
 */
int mms_putbody(MmsMsg *msg, void *body, int ismultipart);

/* Convert a retrieve_conf message to a send_req messagre 
 * checked runtime error to pass anything but a send_req/retrieve_conf.
 * returns 0 on success.
 */
int mms_make_sendreq(MmsMsg *retrieveconf);
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -