77 #include "../smsc_http_p.h"   137     if (sms->sms.coding == 
DC_8BIT)
   148     if (dcs != 0 && dcs != 4)
   161     debug(
"smsc.http.brunet", 0, 
"HTTP[%s]: Sending request <%s>",
   230             error(0, 
"HTTP[%s]: Message was malformed. SMSC response `%s'.",
   238         error(0, 
"HTTP[%s]: Message was rejected. SMSC response `%s'.",
   252     int mclass, mwi, 
coding, validity, deferred;
   256     mclass = mwi = 
coding = validity = deferred = 0;
   264     debug(
"smsc.http.brunet", 0, 
"HTTP[%s]: Received a request",
   268         error(0, 
"HTTP[%s]: Authorization failure. CustomerId was <%s>.",
   270         retmsg = 
octstr_create(
"Authorization failed for MO submission.");
   272     else if (
from == NULL || to == NULL || 
text == NULL) {
   273         error(0, 
"HTTP[%s]: Insufficient args.",
   281         debug(
"smsc.http.brunet", 0, 
"HTTP[%s]: Received new MO SMS.",
   290         msg->sms.time = time(NULL); 
   291         msg->sms.mclass = mclass;
   294         msg->sms.validity = time(NULL) + validity * 60;
   295         msg->sms.deferred = time(NULL) + deferred * 60;
   306     debug(
"smsc.http.brunet", 0, 
"HTTP[%s]: Sending reply `%s'.",
   319         error(0, 
"HTTP[%s]: 'username' (=CustomerId) required for Brunet http smsc",
 Dict * dict_create(long size_hint, void(*destroy_value)(void *))
 
void error(int err, const char *fmt,...)
 
static void brunet_parse_reply(SMSCConn *conn, Msg *msg, int status, List *headers, Octstr *body)
 
void octstr_replace(Octstr *haystack, Octstr *needle, Octstr *repl)
 
void http_header_add(List *headers, char *name, char *contents)
 
void dict_put(Dict *dict, Octstr *key, void *value)
 
long gwlist_len(List *list)
 
static void client(int port)
 
int octstr_url_decode(Octstr *ostr)
 
long octstr_search(const Octstr *haystack, const Octstr *needle, long pos)
 
void uuid_unparse(const uuid_t uu, char *out)
 
static Dict * brunet_parse_body(Octstr *body)
 
#define octstr_get_cstr(ostr)
 
Octstr * http_cgi_variable(List *list, char *name)
 
void http_destroy_headers(List *headers)
 
struct smsc_http_fn_callbacks smsc_http_brunet_callback
 
void http_start_request(HTTPCaller *caller, int method, Octstr *url, List *headers, Octstr *body, int follow, void *id, Octstr *certkeyfile)
 
void http_send_reply(HTTPClient *client, int status, List *headers, Octstr *body)
 
Octstr * octstr_imm(const char *cstr)
 
void * gwlist_extract_first(List *list)
 
void * dict_get(Dict *dict, Octstr *key)
 
long bb_smscconn_receive(SMSCConn *conn, Msg *sms)
 
List * http_create_empty_headers(void)
 
static void brunet_receive_sms(SMSCConn *conn, HTTPClient *client, List *headers, Octstr *body, List *cgivars)
 
#define octstr_duplicate(ostr)
 
int octstr_case_compare(const Octstr *os1, const Octstr *os2)
 
List * octstr_split_words(const Octstr *ostr)
 
Octstr * octstr_format(const char *fmt,...)
 
void octstr_destroy(Octstr *ostr)
 
#define octstr_create(cstr)
 
int fields_to_dcs(Msg *msg, int mode)
 
static int brunet_init(SMSCConn *conn, CfgGroup *cfg)
 
#define SMS_PARAM_UNDEFINED
 
long octstr_len(const Octstr *ostr)
 
void dict_destroy(Dict *dict)
 
int(* init)(SMSCConn *conn, CfgGroup *cfg)
 
void bb_smscconn_sent(SMSCConn *conn, Msg *sms, Octstr *reply)
 
void debug(const char *place, int err, const char *fmt,...)
 
void octstr_format_append(Octstr *os, const char *fmt,...)
 
static int brunet_send_sms(SMSCConn *conn, Msg *sms)
 
void bb_smscconn_send_failed(SMSCConn *conn, Msg *sms, int reason, Octstr *reply)
 
List * octstr_split(const Octstr *os, const Octstr *sep)
 
static XMLRPCDocument * msg
 
int octstr_compare(const Octstr *ostr1, const Octstr *ostr2)
 
void gwlist_destroy(List *list, gwlist_item_destructor_t *destructor)