Kannel: Open Source WAP and SMS gateway  svn-r5335
smsc_http_p.h
Go to the documentation of this file.
1 /* ====================================================================
2  * The Kannel Software License, Version 1.0
3  *
4  * Copyright (c) 2001-2018 Kannel Group
5  * Copyright (c) 1998-2001 WapIT Ltd.
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  *
12  * 1. Redistributions of source code must retain the above copyright
13  * notice, this list of conditions and the following disclaimer.
14  *
15  * 2. Redistributions in binary form must reproduce the above copyright
16  * notice, this list of conditions and the following disclaimer in
17  * the documentation and/or other materials provided with the
18  * distribution.
19  *
20  * 3. The end-user documentation included with the redistribution,
21  * if any, must include the following acknowledgment:
22  * "This product includes software developed by the
23  * Kannel Group (http://www.kannel.org/)."
24  * Alternately, this acknowledgment may appear in the software itself,
25  * if and wherever such third-party acknowledgments normally appear.
26  *
27  * 4. The names "Kannel" and "Kannel Group" must not be used to
28  * endorse or promote products derived from this software without
29  * prior written permission. For written permission, please
30  * contact org@kannel.org.
31  *
32  * 5. Products derived from this software may not be called "Kannel",
33  * nor may "Kannel" appear in their name, without prior written
34  * permission of the Kannel Group.
35  *
36  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39  * DISCLAIMED. IN NO EVENT SHALL THE KANNEL GROUP OR ITS CONTRIBUTORS
40  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
41  * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
42  * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
43  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
44  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
45  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
46  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
47  * ====================================================================
48  *
49  * This software consists of voluntary contributions made by many
50  * individuals on behalf of the Kannel Group. For more information on
51  * the Kannel Group, please see <http://www.kannel.org/>.
52  *
53  * Portions of this software are based upon software originally written at
54  * WapIT Ltd., Helsinki, Finland for the Kannel project.
55  */
56 
57 /*----------------------------------------------------------------
58  * SMSC-type specific functions
59  *
60  * 3 functions are needed for each:
61  *
62  * 1) send SMS
63  * 2) parse send SMS result
64  * 3) receive SMS (and send reply)
65  *
66  * These functions do not return anything and do not destroy
67  * arguments. They must handle everything that happens therein
68  * and must call appropriate bb_smscconn functions
69  */
70 
71 
72 /* callback functions set by HTTP-SMSC type */
74  int (*init) (SMSCConn *conn, CfgGroup *cfg);
75  void (*destroy) (SMSCConn *conn);
76  int (*send_sms) (SMSCConn *conn, Msg *msg);
77  void (*parse_reply) (SMSCConn *conn, Msg *msg, int status, List *headers, Octstr *body);
78  void (*receive_sms) (SMSCConn *conn, HTTPClient *client, List *headers, Octstr *body, List *cgivars);
79 };
80 
81 /*
82  * internal smsc_http data
83  * Please Note: you can use values from this struct BUT never change/delete values.
84  */
85 typedef struct conndata {
90  volatile int shutdown;
91  long port; /* port for receiving SMS'es */
97  Octstr *username; /* if needed */
98  Octstr *password; /* as said */
99  int no_sender; /* ditto */
100  int no_coding; /* this, too */
101  int no_sep; /* not to mention this */
102  int use_post; /* indicate we will use HTTP POST instead of GET */
103  Octstr *alt_charset;/* alternative charset use */
104  List *msg_to_send; /* our send queue */
105 
106  /* Clickatell specific options */
107  Octstr *system_id; /* API id */
108  int mobile_originated; /* 'mo' parameter for a two-way service (0 or 1) */
109 
110  /* callback functions set by HTTP-SMSC type */
112 
113  /* submodule specific data */
114  void *data;
115 } ConnData;
Octstr * dlr_url
Definition: smsc_http_p.h:94
void * data
Definition: smsc_http_p.h:114
Octstr * alt_charset
Definition: smsc_http_p.h:103
long receive_thread
Definition: smsc_http_p.h:87
int(* send_sms)(SMSCConn *conn, Msg *msg)
Definition: smsc_http_p.h:76
int no_sep
Definition: smsc_http_p.h:101
static void client(int port)
Definition: test_udp.c:77
HTTPCaller * http_ref
Definition: smsc_http_p.h:86
Octstr * allow_ip
Definition: smsc_http_p.h:92
void(* parse_reply)(SMSCConn *conn, Msg *msg, int status, List *headers, Octstr *body)
Definition: smsc_http_p.h:77
Octstr * system_id
Definition: smsc_http_p.h:107
static Cfg * cfg
Definition: opensmppbox.c:95
void(* destroy)(SMSCConn *conn)
Definition: smsc_http_p.h:75
volatile int shutdown
Definition: smsc_http_p.h:90
long port
Definition: smsc_http_p.h:91
Counter * open_sends
Definition: smsc_http_p.h:95
Definition: msg.h:79
int no_coding
Definition: smsc_http_p.h:100
List * msg_to_send
Definition: smsc_http_p.h:104
struct conndata ConnData
long sender_thread
Definition: smsc_http_p.h:89
int no_sender
Definition: smsc_http_p.h:99
Semaphore * max_pending_sends
Definition: smsc_http_p.h:96
int(* init)(SMSCConn *conn, CfgGroup *cfg)
Definition: smsc_http_p.h:74
Definition: octstr.c:118
Octstr * password
Definition: smsc_http_p.h:98
Definition: cfg.c:73
Octstr * username
Definition: smsc_http_p.h:97
Octstr * send_url
Definition: smsc_http_p.h:93
void(* receive_sms)(SMSCConn *conn, HTTPClient *client, List *headers, Octstr *body, List *cgivars)
Definition: smsc_http_p.h:78
struct smsc_http_fn_callbacks * callbacks
Definition: smsc_http_p.h:111
Definition: list.c:102
static XMLRPCDocument * msg
Definition: test_xmlrpc.c:86
long send_cb_thread
Definition: smsc_http_p.h:88
int use_post
Definition: smsc_http_p.h:102
int mobile_originated
Definition: smsc_http_p.h:108
See file LICENSE for details about the license agreement for using, modifying, copying or deriving work from this software.