/*
 * This file is part of Kamailio, a free SIP server.
 *
 * SPDX-License-Identifier: GPL-2.0-or-later
 *
 * Kamailio is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version
 *
 * Kamailio is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 *
 */

/*!
 * \file
 * \brief Registrar :: Configuration
 * \ingroup Registrar
 */


#include "../../core/cfg/cfg.h"
#include "../../core/parser/msg_parser.h" /* method types */

#include "config.h"

struct cfg_group_registrar default_registrar_cfg = {
		STR_NULL,	   /* realm_pref */
		3600,		   /* default_expires */
		0,			   /* default_expires_range */
		0,			   /* expires_range */
		60,			   /* min_expires */
		0,			   /* max_expires */
		0,			   /* max_contacts */
		0,			   /* retry_after */
		0,			   /* case_sensitive */
		Q_UNSPECIFIED, /* default_q */
		1,			   /* append_branches */
		0			   /* use_expired_contacts */
};

void *registrar_cfg = &default_registrar_cfg;

cfg_def_t registrar_cfg_def[] =
		{{"realm_pref", CFG_VAR_STR, 0, 0, 0, 0,
				 "Realm prefix to be removed. Default is \"\""},
				{"default_expires", CFG_VAR_INT | CFG_CB_ONLY_ONCE, 0, 0, 0,
						default_expires_stats_update,
						"Contains number of second to expire if no expire hf "
						"or contact expire present"},
				{"default_expires_range", CFG_VAR_INT | CFG_CB_ONLY_ONCE, 0,
						100, 0, default_expires_range_update,
						"Percent from default_expires that will be used in "
						"generating the range for the expire interval"},
				{"expires_range", CFG_VAR_INT | CFG_CB_ONLY_ONCE, 0, 100, 0,
						expires_range_update,
						"Percent from incoming expires that will be used in "
						"generating the range for the expire interval"},
				{"min_expires", CFG_VAR_INT | CFG_CB_ONLY_ONCE, 0, 0, 0, 0,
						"The minimum expires value of a Contact. Value 0 "
						"disables the checking. "},
				{"max_expires", CFG_VAR_INT | CFG_CB_ONLY_ONCE, 0, 0, 0,
						max_expires_stats_update,
						"The maximum expires value of a Contact. Value 0 "
						"disables the checking. "},
				{"max_contacts", CFG_VAR_INT | CFG_ATOMIC, 0, 0, 0, 0,
						"The maximum number of Contacts for an AOR. Value 0 "
						"disables the checking. "},
				{"retry_after", CFG_VAR_INT | CFG_ATOMIC, 0, 0, 0, 0,
						"If you want to add the Retry-After header field in "
						"5xx replies, set this parameter to a value grater "
						"than zero"},
				{"case_sensitive", CFG_VAR_INT | CFG_ATOMIC, 0, 0, 0, 0,
						"If set to 1 then AOR comparison will be case "
						"sensitive. Recommended and default is 0, case "
						"insensitive"},
				{"default_q", CFG_VAR_INT | CFG_ATOMIC, -1, 1000, 0, 0,
						"The parameter represents default q value for new "
						"contacts."}, /* Q_UNSPECIFIED is -1 */
				{"append_branches", CFG_VAR_INT, 0, 0, 0, 0,
						"If set to 1(default), lookup will put all contacts "
						"found in msg structure"},
				{"use_expired_contacts", CFG_VAR_INT, 0, 0, 0, 0,
						"Toggles using expired contacts as if they were "
						"active."},
				{0, 0, 0, 0, 0, 0}};
