#ifndef	_ROAMING_RULES_H
#define	_ROAMING_RULES_H

#include <sys/types.h>

#define	MAX_RULES	2048
#define	MAX_PREFIX_LEN	16

#define PLMN_NOT_ALLOWED 8
#define UNEXPECTED_DATA_VALUE 36

typedef enum RR_NVCS
{
	NO_NVCS_DISABLE,
	NO_NVCS_LU_ONLY, /* Only LU is allowed, no MO service */
	NO_NVCS_BOTH,    /* Both LU and MO service */
}_RR_NVCS;

typedef	struct	roaming_rule
{
	u_char	used_flag;
	u_short	id;
	char		prefix[MAX_PREFIX_LEN];
	u_char	lu_action;
	u_char	reject_cause;
	int		vlr_counter;
	char		no_voice_camel;
	char		no_sms_camel;
	char		smsc_camel_if; 
	char		routing_home;	
}_roaming_rule;

typedef	struct	roaming_rule_table
{
	_roaming_rule  roaming_rule[MAX_RULES];	
}_roaming_rule_table;

int snmpSetRoamingRule(u_char oidlen,u_long *oid,u_char *pdata,u_short datalen);
int snmpGetRoamingRule(u_char oidlen,u_long *oid,u_char *pdata,u_char *vartype);
int xapGetRoamingRule(_roaming_rule *rr_ptr);
int xapGetSMSCamelFlag(char *vlr_number);
int saveRoamingRule();

#endif
