cx_avp.h

Go to the documentation of this file.
00001 /*
00002  * $Id: cx_avp.h 496 2007-11-21 19:08:22Z vingarzan $
00003  *  
00004  * Copyright (C) 2004-2006 FhG Fokus
00005  *
00006  * This file is part of Open IMS Core - an open source IMS CSCFs & HSS
00007  * implementation
00008  *
00009  * Open IMS Core is free software; you can redistribute it and/or modify
00010  * it under the terms of the GNU General Public License as published by
00011  * the Free Software Foundation; either version 2 of the License, or
00012  * (at your option) any later version.
00013  *
00014  * For a license to use the Open IMS Core software under conditions
00015  * other than those described here, or to purchase support for this
00016  * software, please contact Fraunhofer FOKUS by e-mail at the following
00017  * addresses:
00018  *     info@open-ims.org
00019  *
00020  * Open IMS Core is distributed in the hope that it will be useful,
00021  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00022  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00023  * GNU General Public License for more details.
00024  * 
00025  * It has to be noted that this Open Source IMS Core System is not 
00026  * intended to become or act as a product in a commercial context! Its 
00027  * sole purpose is to provide an IMS core reference implementation for 
00028  * IMS technology testing and IMS application prototyping for research 
00029  * purposes, typically performed in IMS test-beds.
00030  * 
00031  * Users of the Open Source IMS Core System have to be aware that IMS
00032  * technology may be subject of patents and licence terms, as being 
00033  * specified within the various IMS-related IETF, ITU-T, ETSI, and 3GPP
00034  * standards. Thus all Open IMS Core users have to take notice of this 
00035  * fact and have to agree to check out carefully before installing, 
00036  * using and extending the Open Source IMS Core System, if related 
00037  * patents and licences may become applicable to the intended usage 
00038  * context.  
00039  *
00040  * You should have received a copy of the GNU General Public License
00041  * along with this program; if not, write to the Free Software
00042  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00043  * 
00044  */
00045 
00057 #ifndef IS_CSCF_CX_AVP_H
00058 #define IS_CSCF_CX_AVP_H
00059 
00060 #include "../../sr_module.h"
00061 #include "mod.h"
00062 #include "../cdp/cdp_load.h"
00063 
00064 
00067 int Cx_add_user_name(AAAMessage *uar,str private_identity);
00068 int Cx_add_public_identity(AAAMessage *msg,str data);
00069 int Cx_add_visited_network_id(AAAMessage *msg,str data);
00070 int Cx_add_authorization_type(AAAMessage *msg,unsigned int data);
00071 
00072 int Cx_add_server_name(AAAMessage *msg,str data);
00073 int Cx_add_sip_number_auth_items(AAAMessage *msg,unsigned int data);
00074 inline int Cx_add_sip_auth_data_item_request(AAAMessage *msg,str auth_scheme, str auth, str username, str realm, str method,str server_name);
00075 
00076 str Cx_ETSI_sip_authorization(str username, str realm, str nonce, str URI, str response, str algorithm, str method, str hash);
00077 
00078 int Cx_add_server_assignment_type(AAAMessage *msg,unsigned int data);
00079 int Cx_add_userdata_available(AAAMessage *msg,unsigned int data);
00080 int Cx_add_result_code(AAAMessage *msg,unsigned int data);
00081 int Cx_add_experimental_result_code(AAAMessage *msg,unsigned int data);
00082 int Cx_add_vendor_specific_appid(AAAMessage *msg,unsigned int vendor_id,
00083     unsigned int auth_id,unsigned int acct_id);
00084 int Cx_add_auth_session_state(AAAMessage *msg,unsigned int data);   
00085 int Cx_add_destination_realm(AAAMessage *msg,str data);
00086 
00087 /* GET AVPS */
00088 
00089 str Cx_get_session_id(AAAMessage *msg);
00090 str Cx_get_user_name(AAAMessage *msg);
00091 str Cx_get_public_identity(AAAMessage *msg);
00092 AAA_AVP* Cx_get_next_public_identity(AAAMessage *msg,AAA_AVP* pos,int avp_code,int vendor_id,const char *func);     
00093 str Cx_get_visited_network_id(AAAMessage *msg);
00094 int Cx_get_authorization_type(AAAMessage *msg, int *data);
00095 int Cx_get_server_assignment_type(AAAMessage *msg, int *data);
00096 int Cx_get_userdata_available(AAAMessage *msg, int *data);
00097 int Cx_get_result_code(AAAMessage *msg,int *data);
00098 int Cx_get_experimental_result_code(AAAMessage *msg, int *data);
00099 str Cx_get_server_name(AAAMessage *msg);
00100 int Cx_get_capabilities(AAAMessage *msg,int **m,int *m_cnt,int **o,int *o_cnt,
00101     str **p,int *p_cnt);
00102 int Cx_get_sip_number_auth_items(AAAMessage *msg,int *data);
00103 int Cx_get_auth_data_item_request(AAAMessage *msg,
00104          str *auth_scheme, str *authorization);
00105 int Cx_get_auth_data_item_answer(AAAMessage *msg, AAA_AVP **auth_data,
00106     int *item_number,str *auth_scheme,str *authenticate,str *authorization,
00107     str *ck,str *ik,
00108     str *ip,
00109     str *ha1, str *response_auth, str *digest_realm,
00110     str *line_identifier);
00111     
00112 str Cx_get_destination_host(AAAMessage *msg);   
00113 str Cx_get_user_data(AAAMessage *msg);  
00114 int Cx_get_charging_info(AAAMessage *msg,str *ccf1,str *ccf2,str *ecf1,str *ecf2);
00115 
00116 #endif /* IS_CSCF_CX_AVP_H */

Generated on Thu Oct 23 04:14:38 2008 for Open IMS Core CSCFs by  doxygen 1.5.2