Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

smsc.h

Go to the documentation of this file.
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
See file LICENSE for details about the license agreement for using, modifying, copying or deriving work from this software.