⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iax2-parser.h

📁 来自网络的iaxclient的协议栈源码
💻 H
字号:
/* * Asterisk -- A telephony toolkit for Linux. * * Implementation of Inter-Asterisk eXchange *  * Copyright (C) 2003, Digium * * Mark Spencer <markster@digium.com> * * This program is free software, distributed under the terms of * the GNU Lesser (Library) General Public License */ #ifndef _IAX2_PARSER_H#define _IAX2_PARSER_Hstruct iax_ies {	char *called_number;	char *calling_number;	char *calling_ani;	char *calling_name;	int calling_ton;	int calling_tns;	int calling_pres;	char *called_context;	char *username;	char *password;	unsigned int capability;	unsigned int format;	char *codec_prefs;	char *language;	int version;	unsigned short adsicpe;	char *dnid;	char *rdnis;	unsigned int authmethods;	char *challenge;	char *md5_result;	char *rsa_result;	struct sockaddr_in *apparent_addr;	unsigned short refresh;	unsigned short dpstatus;	unsigned short callno;	char *cause;	unsigned char causecode;	unsigned char iax_unknown;	int msgcount;	int autoanswer;	int musiconhold;	unsigned int transferid;	unsigned int datetime;	char *devicetype;	char *serviceident;	int firmwarever;	unsigned int fwdesc;	unsigned char *fwdata;	unsigned char fwdatalen;	unsigned int provver;	unsigned short samprate;	unsigned int provverpres;	unsigned int rr_jitter;	unsigned int rr_loss;	unsigned int rr_pkts;	unsigned short rr_delay;	unsigned int rr_dropped;	unsigned int rr_ooo;};#define DIRECTION_INGRESS 1#define DIRECTION_OUTGRESS 2struct iax_frame {#ifdef LIBIAX	struct iax_session *session;	struct iax_event *event;#endif	/* /Our/ call number */	unsigned short callno;	/* /Their/ call number */	unsigned short dcallno;	/* Start of raw frame (outgoing only) */	void *data;	/* Length of frame (outgoing only) */	int datalen;	/* How many retries so far? */	int retries;	/* Outgoing relative timestamp (ms) */	unsigned int ts;	/* How long to wait before retrying */	int retrytime;	/* Are we received out of order?  */	int outoforder;	/* Have we been sent at all yet? */	int sentyet;	/* Outgoing Packet sequence number */	int oseqno;	/* Next expected incoming packet sequence number */	int iseqno;	/* Non-zero if should be sent to transfer peer */	int transfer;	/* Non-zero if this is the final message */	int final;	/* Ingress or outgres */	int direction;	/* Retransmission ID */	int retrans;	/* Easy linking */	struct iax_frame *next;	struct iax_frame *prev;	/* Actual, isolated frame header */	struct ast_frame af;	unsigned char unused[AST_FRIENDLY_OFFSET];	unsigned char afdata[0];	/* Data for frame */};struct iax_ie_data {	unsigned char buf[1024];	int pos;};/* Choose a different function for output */extern void iax_set_output(void (*output)(const char *data));/* Choose a different function for errors */extern void iax_set_error(void (*output)(const char *data));extern void iax_showframe(struct iax_frame *f, struct ast_iax2_full_hdr *fhi, int rx, struct sockaddr_in *sin, int datalen);extern const char *iax_ie2str(int ie);extern int iax_ie_append_raw(struct iax_ie_data *ied, unsigned char ie, const void *data, int datalen);extern int iax_ie_append_addr(struct iax_ie_data *ied, unsigned char ie, struct sockaddr_in *sin);extern int iax_ie_append_int(struct iax_ie_data *ied, unsigned char ie, unsigned int value);extern int iax_ie_append_short(struct iax_ie_data *ied, unsigned char ie, unsigned short value);extern int iax_ie_append_str(struct iax_ie_data *ied, unsigned char ie, const char *str);extern int iax_ie_append_byte(struct iax_ie_data *ied, unsigned char ie, unsigned char dat);extern int iax_ie_append(struct iax_ie_data *ied, unsigned char ie);extern int iax_parse_ies(struct iax_ies *ies, unsigned char *data, int datalen);extern int iax_get_frames(void);extern int iax_get_iframes(void);extern int iax_get_oframes(void);extern void iax_frame_wrap(struct iax_frame *fr, struct ast_frame *f);extern struct iax_frame *iax_frame_new(int direction, int datalen);extern void iax_frame_free(struct iax_frame *fr);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -