release_call.h

Go to the documentation of this file.
00001 /*
00002  *  
00003  * Copyright (C) 2004-2006 FhG Fokus
00004  *
00005  * This file is part of Open IMS Core - an open source IMS CSCFs & HSS
00006  * implementation
00007  *
00008  * Open IMS Core is free software; you can redistribute it and/or modify
00009  * it under the terms of the GNU General Public License as published by
00010  * the Free Software Foundation; either version 2 of the License, or
00011  * (at your option) any later version.
00012  *
00013  * For a license to use the Open IMS Core software under conditions
00014  * other than those described here, or to purchase support for this
00015  * software, please contact Fraunhofer FOKUS by e-mail at the following
00016  * addresses:
00017  *     info@open-ims.org
00018  *
00019  * Open IMS Core is distributed in the hope that it will be useful,
00020  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00021  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00022  * GNU General Public License for more details.
00023  * 
00024  * It has to be noted that this Open Source IMS Core System is not 
00025  * intended to become or act as a product in a commercial context! Its 
00026  * sole purpose is to provide an IMS core reference implementation for 
00027  * IMS technology testing and IMS application prototyping for research 
00028  * purposes, typically performed in IMS test-beds.
00029  * 
00030  * Users of the Open Source IMS Core System have to be aware that IMS
00031  * technology may be subject of patents and licence terms, as being 
00032  * specified within the various IMS-related IETF, ITU-T, ETSI, and 3GPP
00033  * standards. Thus all Open IMS Core users have to take notice of this 
00034  * fact and have to agree to check out carefully before installing, 
00035  * using and extending the Open Source IMS Core System, if related 
00036  * patents and licences may become applicable to the intended usage 
00037  * context.  
00038  *
00039  * You should have received a copy of the GNU General Public License
00040  * along with this program; if not, write to the Free Software
00041  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00042  * 
00043  */
00044  
00045 
00056 #ifndef RELEASE_CALL_H_
00057 #define RELEASE_CALL_H_
00058 #include "../tm/tm_load.h"
00059 #include "dlg_state.h"
00060 #include "../dialog/dlg_mod.h"
00061 #include "sip.h"
00062 
00063 
00064 enum release_call_situation{
00065     RELEASE_CALL_EARLY=0,
00066     RELEASE_CALL_WEIRD=1
00067      /*Weird state is the technical name of the state in which a
00068       * sip session is when the callee has already sent a 200 OK for INVITE
00069       * and the caller hasn't yet recieved this response
00070       * In Weird state the session can only be released by sending an ACK followed
00071       * by a  BYE to the callee and a reply >400 to the caller
00072       * a CANCEL wouldn't be understood by the callee!*/
00073 };
00074 #define MAX_TIMES_TO_TRY_TO_RELEASE 5
00075 
00076 
00077 int P_release_call_onreply(struct sip_msg *msg,char *str1,char *str2);
00078 
00079 int release_call(str callid,int reason_code,str reason_text);
00080 
00081 int release_call_p(p_dialog *d,int reason_code,str reason_text);
00082 
00083 
00084 #endif /*RELEASE_CALL_H_*/

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