/*	XAP provider interface head file	*/
/*	Written by Liu Zhiguo 2003-03-13	*/
/*	Version 1.0							*/
/*	--------------------------------	*/

#ifndef _XAP_INTERFACE
#define _XAP_INTERFACE

#include "mapp/imap.h"
#include "capp/icap.h"

/*	defined in xap_interface.c	*/
void xap_get_mcc(u8 *mcc);
void xap_get_mnc(u8 *mnc);
void xap_get_cc(u8 *cc);
void xap_get_ndc(u8 *ndc);
void xap_get_interprefix(u8 *inter_prefix);
void xap_get_nationalprefix(u8 *national_prefix);
void xap_get_localprefix(u8 *local_prefix);
int xap_mscid_to_num(u8 *mscid,u8 ssn, u8 *num);

int	 imap_reg_ssn(u8 ssn);
u8	 map_check_sendcom(u32 did);
u8	 map_send_comdata(u8 *data_flow);		// send map common service data
u8	 map_check_sendopr(u32 did);
u8	 map_send_oprdata(u8 *data_flow);		// send map operation service data
u8	 map_get_comdata(u8 *data_flow,u32 did);
u8	 map_get_open(u8 *data_flow,u8 ssn);
u8	 map_get_oprdata(u8 *data_flow,u32 did);
u32	 map_get_dialogueid(u8 ssn);
u8	 map_get_invokeid(u32 did);
u8	map_check_map_flag(u32 did);
u8  map_send_oprsrv( MapOprSrv_struct *srv_ptr, u8 DelimiterFlag , u8 *data_flow);
u8 map_send_comsrv(MapComSrv_struct *com_ptr,u8 uDelimiterFlag,u8 *data_flow);
u8 map_send_open( MapOpenArgParam *pOpenParam  , u8 *uDataFlow );
u8 map_send_close( u32 pid , u32 did , u8 uCloseReasion );
u8	map_extract_param(MapOprSrv_struct *srv_ptr,MapOprData_struct *data_ptr , int ver);
u8 map_get_comdata_struct(MapComSrv_struct *map_com,u32 did);
u8 map_get_oprdata_struct(MapOprData_struct *map_opr,u32 did);

u32 is41_get_dialogueid(u8 ssn);

int	 icap_reg_ssn(u8 ssn);
u8	 cap_check_sendcom(u32 did);
u8	 cap_send_comdata(u8 *data_flow);		// send cap common service data
u8	 cap_check_sendopr(u32 did);
u8	 cap_send_oprdata(u8 *data_flow);		// send cap operation service data
u8	 cap_get_comdata(u8 *data_flow,u32 did);
u8	 cap_get_open(u8 *data_flow,u8 ssn);
u8	 cap_get_oprdata(u8 *data_flow,u32 did);
u32	 cap_get_dialogueid(u8 ssn);
u8	 cap_get_invokeid(u32 did);

/*	defined in xap_provider.c	*/
u8	 map_get_acnver(SCCP_ADDR *sccp_ptr,u8 acn);
u8	 map_set_acnver(SCCP_ADDR *sccp_ptr,u8 acn,u8 acn_ver);
void xap_init( int grantdid );
void xap_fsm();

int snmpGetCliPrefix(u_char oidlen,u32 *oid,u_char *pdata,u_char *vartype);
int snmpSetCliPrefix(u_char oidlen,u32 *oid,u_char *pdata,u_short datalen);
int       saveConvPrefix();
u8 init_mappconst(void);
u8 init_cappconst(void);
void wxc2_trace_xapp(u32 did);
/******AIN*********/
u32 ain_get_dialogueid ( u8 ssn );
int ain_reg_ssn(u8 ssn);
u8 ain_get_invokeid ( u32 did );
int ain_send_oprsrv( MapOprSrv_struct *srv_ptr, u8 DelimiterFlag, u8 *data_flow );
//int ain_send_rsp(MapOprSrv_struct *srv_ptr, u8 DelimiterFlag, u8 * data_flow );
u8 ain_get_oprdata_struct ( MapOprData_struct *map_opr, u32 did);//get query or response data
u8 ain_send_open( MapOpenArgParam *pOpenParam, u8 *uDataFlow);//set sccp address
u8 ain_send_close ( u32 pid, u32 did, u8 uCloseReasion );
u8 ain_get_open(u8 *data_flow, u8 ssn );//get query command
/******AIN*********/
#endif
