00001 /* 00002 * $Id: send_publish.h 5770 2009-03-27 00:25:05Z ibc_sf $ 00003 * 00004 * pua module - presence user agent module 00005 * 00006 * Copyright (C) 2006 Voice Sistem S.R.L. 00007 * 00008 * This file is part of Kamailio, a free SIP server. 00009 * 00010 * Kamailio is free software; you can redistribute it and/or modify 00011 * it under the terms of the GNU General Public License as published by 00012 * the Free Software Foundation; either version 2 of the License, or 00013 * (at your option) any later version 00014 * 00015 * Kamailio is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 * GNU General Public License for more details. 00019 * 00020 * You should have received a copy of the GNU General Public License 00021 * along with this program; if not, write to the Free Software 00022 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00023 */ 00024 00025 00026 #ifndef _PU_SEND_PUBLISH_ 00027 #define _PU_SEND_PUBLISH_ 00028 #include <time.h> 00029 #include "../tm/tm_load.h" 00030 #include "../../str.h" 00031 #include "hash.h" 00032 #include "event_list.h" 00033 #define ERR_PUBLISH_NO_BODY -10 00034 00035 typedef struct publ_info 00036 { 00037 str id; 00038 str* pres_uri; 00039 str* body; 00040 int expires; 00041 int flag; 00042 int source_flag; 00043 int event; 00044 str content_type; /*! the content_type of the body if present(optional if the 00045 same as the default value for that event) */ 00046 str* etag; 00047 str* extra_headers; 00048 void* cb_param; /*! the parameter for the function to be called on the callback 00049 for the received reply; it must be allocated in share memory; 00050 a reference to it will be found in the cb_param filed of the ua_pres_structure 00051 receied as a parameter for the registered function*/ 00052 }publ_info_t; 00053 00054 typedef int (*send_publish_t)(publ_info_t* publ); 00055 int send_publish( publ_info_t* publ ); 00056 00057 void publ_cback_func(struct cell *t, int type, struct tmcb_params *ps); 00058 str* publ_build_hdr(int expires, pua_event_t* event, str* content_type, str* etag, 00059 str* extra_headers, int is_body); 00060 ua_pres_t* publish_cbparam(publ_info_t* publ, str* body, str* tuple_id, 00061 int ua_flag); 00062 00063 #endif
1.5.6