00001 /* ==================================================================== 00002 * The Kannel Software License, Version 1.0 00003 * 00004 * Copyright (c) 2001-2008 Kannel Group 00005 * Copyright (c) 1998-2001 WapIT Ltd. 00006 * All rights reserved. 00007 * 00008 * Redistribution and use in source and binary forms, with or without 00009 * modification, are permitted provided that the following conditions 00010 * are met: 00011 * 00012 * 1. Redistributions of source code must retain the above copyright 00013 * notice, this list of conditions and the following disclaimer. 00014 * 00015 * 2. Redistributions in binary form must reproduce the above copyright 00016 * notice, this list of conditions and the following disclaimer in 00017 * the documentation and/or other materials provided with the 00018 * distribution. 00019 * 00020 * 3. The end-user documentation included with the redistribution, 00021 * if any, must include the following acknowledgment: 00022 * "This product includes software developed by the 00023 * Kannel Group (http://www.kannel.org/)." 00024 * Alternately, this acknowledgment may appear in the software itself, 00025 * if and wherever such third-party acknowledgments normally appear. 00026 * 00027 * 4. The names "Kannel" and "Kannel Group" must not be used to 00028 * endorse or promote products derived from this software without 00029 * prior written permission. For written permission, please 00030 * contact org@kannel.org. 00031 * 00032 * 5. Products derived from this software may not be called "Kannel", 00033 * nor may "Kannel" appear in their name, without prior written 00034 * permission of the Kannel Group. 00035 * 00036 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 00037 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 00038 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00039 * DISCLAIMED. IN NO EVENT SHALL THE KANNEL GROUP OR ITS CONTRIBUTORS 00040 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 00041 * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 00042 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 00043 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 00044 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 00045 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 00046 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00047 * ==================================================================== 00048 * 00049 * This software consists of voluntary contributions made by many 00050 * individuals on behalf of the Kannel Group. For more information on 00051 * the Kannel Group, please see <http://www.kannel.org/>. 00052 * 00053 * Portions of this software are based upon software originally written at 00054 * WapIT Ltd., Helsinki, Finland for the Kannel project. 00055 */ 00056 00057 /* 00058 * smsc.h - interface to SMS center subsystem 00059 * 00060 * Lars Wirzenius for WapIT Ltd. 00061 * 00062 * New API by Kalle Marjola 1999 00063 */ 00064 00065 #ifndef SMSC_H 00066 #define SMSC_H 00067 00068 00069 #include <stddef.h> 00070 #include <stdio.h> 00071 #include <time.h> 00072 00073 #include "gwlib/gwlib.h" 00074 #include "msg.h" 00075 00076 /* 00077 * A data structure representing an SMS center. This data structure 00078 * is opaque: users MUST NOT use the fields directly, only the 00079 * smsc_* functions may do so. 00080 */ 00081 typedef struct SMSCenter SMSCenter; 00082 00083 00084 /* Open the connection to an SMS center. 'grp' is a configgroup which 00085 determines the sms center. See details from sample configuration file 00086 'kannel.conf' 00087 00088 The operation returns NULL for error and the pointer 00089 to the new SMSCenter structure for OK. 00090 */ 00091 SMSCenter *smsc_open(CfgGroup *grp); 00092 00093 /* 00094 * reopen once opened SMS Center connection. Close old connection if 00095 * exists 00096 * 00097 * return 0 on success 00098 * return -1 if failed 00099 * return -2 if failed and no use to repeat the progress (i.e. currently 00100 * reopen not implemented) 00101 */ 00102 int smsc_reopen(SMSCenter *smsc); 00103 00104 00105 /* Return the `name' of an SMC center. Name is defined here as a string that 00106 a human understands that uniquely identifies the SMSC. This operation 00107 cannot fail. */ 00108 char *smsc_name(SMSCenter *smsc); 00109 00110 00111 /* Close the connection to an SMS center. Return -1 for error 00112 (the connection will be closed anyway, but there was some error 00113 while doing so, so it wasn't closed cleanly), or 0 for OK. 00114 Return 0 if the smsc is NULL or smsc is already closed. 00115 */ 00116 int smsc_close(SMSCenter *smsc); 00117 00118 00119 00120 #endif