亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? stun_msg.h

?? 一個開源的sip源代碼
?? H
?? 第 1 頁 / 共 4 頁
字號:
 * This structure describes STUN SOURCE-ADDRESS attribute.
 * The SOURCE-ADDRESS attribute is present in Binding Responses.  It
 * indicates the source IP address and port that the server is sending
 * the response from.  Its syntax is identical to that of MAPPED-
 * ADDRESS.
 *
 * Note that the usage of this attribute has been deprecated by the 
 * RFC 3489-bis standard.
 */
typedef struct pj_stun_sockaddr_attr pj_stun_src_addr_attr;


/**
 * This describes the STUN REFLECTED-FROM attribute.
 * The REFLECTED-FROM attribute is present only in Binding Responses,
 * when the Binding Request contained a RESPONSE-ADDRESS attribute.  The
 * attribute contains the identity (in terms of IP address) of the
 * source where the request came from.  Its purpose is to provide
 * traceability, so that a STUN server cannot be used as a reflector for
 * denial-of-service attacks.
 */
typedef struct pj_stun_sockaddr_attr pj_stun_reflected_from_attr;


/**
 * This describes STUN USERNAME attribute.
 * The USERNAME attribute is used for message integrity.  It identifies
 * the shared secret used in the message integrity check.  Consequently,
 * the USERNAME MUST be included in any request that contains the
 * MESSAGE-INTEGRITY attribute.
 */
typedef struct pj_stun_string_attr pj_stun_username_attr;


/**
 * This describes STUN PASSWORD attribute.
 * If the message type is Shared Secret Response it MUST include the
 * PASSWORD attribute.
 */
typedef struct pj_stun_string_attr pj_stun_password_attr;


/**
 * This describes STUN LIFETIME attribute.
 * The lifetime attribute represents the duration for which the server
 * will maintain an allocation in the absence of data traffic either
 * from or to the client.  It is a 32 bit value representing the number
 * of seconds remaining until expiration.
 */
typedef struct pj_stun_uint_attr pj_stun_lifetime_attr;


/**
 * This describes STUN BANDWIDTH attribute.
 * The bandwidth attribute represents the peak bandwidth, measured in
 * kbits per second, that the client expects to use on the binding.  The
 * value represents the sum in the receive and send directions.
 */
typedef struct pj_stun_uint_attr pj_stun_bandwidth_attr;


/**
 * This describes the STUN REMOTE-ADDRESS attribute.
 * The REMOTE-ADDRESS specifies the address and port of the peer as seen
 * from the STUN relay server.
 */
typedef struct pj_stun_sockaddr_attr pj_stun_remote_addr_attr;


/**
 * This describes the STUN DATA attribute.
 * The DATA attribute is present in Send Indications and Data
 * Indications.  It contains raw payload data that is to be sent (in the
 * case of a Send Request) or was received (in the case of a Data
 * Indication)..
 */
typedef struct pj_stun_binary_attr pj_stun_data_attr;


/**
 * This describes the STUN RELAY-ADDRESS attribute.
 * The RELAY-ADDRESS is present in Allocate responses.  It specifies the
 * address and port that the server allocated to the client.
 */
typedef struct pj_stun_sockaddr_attr pj_stun_relay_addr_attr;


/**
 * This describes the REQUESTED-ADDRESS-TYPE attribute.
 * The REQUESTED-ADDRESS-TYPE attribute is used by clients to request
 * the allocation of a specific address type from a server.  The
 * following is the format of the REQUESTED-ADDRESS-TYPE attribute.

 \verbatim

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |        Family                 |           Reserved            |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 \endverbatim
 */
typedef struct pj_stun_uint_attr pj_stun_req_addr_type;

/**
 * This describes the STUN REQUESTED-PORT-PROPS attribute.
 * This attribute allows the client to request certain properties for
 * the port that is allocated by the server.  The attribute can be used
 * with any transport protocol that has the notion of a 16 bit port
 * space (including TCP and UDP).  The attribute is 32 bits long.  Its
 * format is:

 \verbatim

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Reserved = 0                  |B| A |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 \endverbatim  
 */
typedef struct pj_stun_uint_attr pj_stun_req_port_props_attr;


/**
 * This describes the STUN REQUESTED-TRANSPORT attribute.
 * This attribute is used by the client to request a specific transport
 * protocol for the allocated transport address.  It is a 32 bit
 * unsigned integer.  Its values are: 0x0000 for UDP and 0x0000 for TCP.
 */
typedef struct pj_stun_uint_attr pj_stun_req_transport_attr;


/**
 * This describes the STUN REQUESTED-IP attribute.
 * The REQUESTED-IP attribute is used by the client to request that a
 * specific IP address be allocated to it.
 */
typedef struct pj_stun_sockaddr_attr pj_stun_req_ip_attr;

/**
 * This describes the XOR-REFLECTED-FROM attribute, as described by
 * draft-macdonald-behave-nat-behavior-discovery-00.
 * The XOR-REFLECTED-FROM attribute is used in place of the REFLECTED-
 * FROM attribute.  It provides the same information, but because the
 * NAT's public address is obfuscated through the XOR function, It can
 * pass through a NAT that would otherwise attempt to translate it to
 * the private network address.  XOR-REFLECTED-FROM has identical syntax
 * to XOR-MAPPED-ADDRESS.
 */
typedef struct pj_stun_sockaddr_attr pj_stun_xor_reflected_from_attr;

/**
 * This describes the PRIORITY attribute from draft-ietf-mmusic-ice-13.
 * The PRIORITY attribute indicates the priority that is to be
 * associated with a peer reflexive candidate, should one be discovered
 * by this check.  It is a 32 bit unsigned integer, and has an attribute
 * type of 0x0024.
 */
typedef struct pj_stun_uint_attr pj_stun_priority_attr;

/**
 * This describes the USE-CANDIDATE attribute from draft-ietf-mmusic-ice-13.
 * The USE-CANDIDATE attribute indicates that the candidate pair
 * resulting from this check should be used for transmission of media.
 * The attribute has no content (the Length field of the attribute is
 * zero); it serves as a flag.
 */
typedef struct pj_stun_empty_attr pj_stun_use_candidate_attr;

/**
 * This structure describes STUN XOR-INTERNAL-ADDRESS attribute from
 * draft-wing-behave-nat-control-stun-usage-00.
 * This attribute MUST be present in a Binding Response and may be used
 * in other responses as well.  This attribute is necessary to allow a
 * STUN client to 'walk backwards' and communicate directly with all of
 * the STUN-aware NATs along the path.
 */
typedef pj_stun_sockaddr_attr pj_stun_xor_internal_addr_attr;

/**
 * This describes the STUN TIMER-VAL attribute.
 * The TIMER-VAL attribute is used only in conjunction with the Set
 * Active Destination response.  It conveys from the server, to the
 * client, the value of the timer used in the server state machine.
 */
typedef struct pj_stun_uint_attr pj_stun_timer_val_attr;

/**
 * This describes ICE-CONTROLLING attribute.
 */
typedef struct pj_stun_uint64_attr pj_stun_ice_controlling_attr;

/**
 * This describes ICE-CONTROLLED attribute.
 */
typedef struct pj_stun_uint64_attr pj_stun_ice_controlled_attr;

/**
 * This structure describes a parsed STUN message. All integral fields
 * in this structure (including IP addresses) will be in the host
 * byte order.
 */
typedef struct pj_stun_msg
{
    /**
     * STUN message header.
     */
    pj_stun_msg_hdr     hdr;

    /**
     * Number of attributes in the STUN message.
     */
    unsigned		attr_count;

    /**
     * Array of STUN attributes.
     */
    pj_stun_attr_hdr   *attr[PJ_STUN_MAX_ATTR];

} pj_stun_msg;


/** STUN decoding options */
enum pj_stun_decode_options
{
    /** 
     * Tell the decoder that the message was received from datagram
     * oriented transport (such as UDP).
     */
    PJ_STUN_IS_DATAGRAM	    = 1,

    /**
     * Tell pj_stun_msg_decode() to check the validity of the STUN
     * message by calling pj_stun_msg_check() before starting to
     * decode the packet.
     */
    PJ_STUN_CHECK_PACKET    = 2,

    /**
     * This option current is only valid for #pj_stun_session_on_rx_pkt().
     * When specified, it tells the session NOT to authenticate the
     * message.
     */
    PJ_STUN_NO_AUTHENTICATE = 4
};


/**
 * Get STUN message method name.
 *
 * @param msg_type	The STUN message type (in host byte order)
 *
 * @return		The STUN message method name string.
 */
PJ_DECL(const char*) pj_stun_get_method_name(unsigned msg_type);


/**
 * Get STUN message class name.
 *
 * @param msg_type	The STUN message type (in host byte order)
 *
 * @return		The STUN message class name string.
 */
PJ_DECL(const char*) pj_stun_get_class_name(unsigned msg_type);


/**
 * Get STUN attribute name.
 *
 * @return attr_type	The STUN attribute type (in host byte order).
 *
 * @return		The STUN attribute type name string.
 */
PJ_DECL(const char*) pj_stun_get_attr_name(unsigned attr_type);


/**
 * Get STUN standard reason phrase for the specified error code.
 *
 * @param err_code	The STUN error code.
 *
 * @return		The STUN error reason phrase.
 */
PJ_DECL(pj_str_t) pj_stun_get_err_reason(int err_code);


/**
 * Create a generic STUN message.
 *
 * @param pool		Pool to create the STUN message.
 * @param msg_type	The 14bit message type.
 * @param magic		Magic value to be put to the mesage; for requests,
 *			the value should be PJ_STUN_MAGIC.
 * @param tsx_id	Optional transaction ID, or NULL to let the
 *			function generates a random transaction ID.
 * @param p_msg		Pointer to receive the message.
 *
 * @return		PJ_SUCCESS on success.
 */
PJ_DECL(pj_status_t) pj_stun_msg_create(pj_pool_t *pool,
					unsigned msg_type,
					pj_uint32_t magic,
					const pj_uint8_t tsx_id[12],
					pj_stun_msg **p_msg);

/**
 * Create STUN response message. 
 *
 * @param pool		Pool to create the mesage.
 * @param req_msg	The request message.
 * @param err_code	STUN error code. If this value is not zero,
 *			then error response will be created, otherwise
 *			successful response will be created.
 * @param err_msg	Optional error message to explain err_code.
 *			If this value is NULL and err_code is not zero,
 *			the error string will be taken from the default
 *			STUN error message.
 * @param p_response	Pointer to receive the response.
 *
 * @return		PJ_SUCCESS on success, or the appropriate error.
 */
PJ_DECL(pj_status_t) pj_stun_msg_create_response(pj_pool_t *pool,
						 const pj_stun_msg *req_msg,
						 unsigned err_code,
						 const pj_str_t *err_msg,
						 pj_stun_msg **p_response);


/**
 * Add STUN attribute to STUN message.
 *
 * @param msg		The STUN message.
 * @param attr		The STUN attribute to be added to the message.
 *
 * @return		PJ_SUCCESS on success, or PJ_ETOOMANY if there are
 *			already too many attributes in the message.
 */
PJ_DECL(pj_status_t) pj_stun_msg_add_attr(pj_stun_msg *msg,
					  pj_stun_attr_hdr *attr);


/**
 * Print the STUN message structure to a packet buffer, ready to be 
 * sent to remote destination. This function will take care about 
 * calculating the MESSAGE-INTEGRITY digest as well as FINGERPRINT
 * value, if these attributes are present in the message.
 *
 * If application wants to apply credential to the message, it MUST
 * include a blank MESSAGE-INTEGRITY attribute in the message, as the
 * last attribute or the attribute before FINGERPRINT. This function will
 * calculate the HMAC digest from the message using  the supplied key in
 * the parameter. The key should be set to the password if short term 
 * credential is used, or calculated from the MD5 hash of the realm, 
 * username, and password using #pj_stun_create_key() if long term 
 * credential is used.
 *
 * If FINGERPRINT attribute is present, this function will calculate
 * the FINGERPRINT CRC attribute for the message. The FINGERPRINT MUST
 * be added as the last attribute of the message.
 *
 * @param msg		The STUN message to be printed. Upon return,
 *			some fields in the header (such as message
 *			length) will be updated.
 * @param pkt_buf	The buffer to be filled with the packet.
 * @param buf_size	Size of the buffer.
 * @param options	Options, which currently must be zero.
 * @param key		Authentication key to calculate MESSAGE-INTEGRITY
 *			value. Application can create this key by using
 *			#pj_stun_create_key() function.
 * @param p_msg_len	Upon return, it will be filed with the size of 
 *			the packet in bytes, or negative value on error.
 *
 * @return		PJ_SUCCESS on success or the appropriate error code.
 */
PJ_DECL(pj_status_t) pj_stun_msg_encode(pj_stun_msg *msg,
				        pj_uint8_t *pkt_buf,
				        unsigned buf_size,
				        unsigned options,
					const pj_str_t *key,
				        unsigned *p_msg_len);


/**
 * Create authentication key to be used for encoding the message with
 * MESSAGE-INTEGRITY. If short term credential is used (i.e. the realm
 * argument is NULL or empty), the key will be copied from the password.
 * If long term credential is used, the key will be calculated from the
 * MD5 hash of the realm, username, and password.
 *
 * @param pool		Pool to allocate memory for the key.
 * @param key		String to receive the key.
 * @param realm		The realm of the credential, if long term credential
 *			is to be used. If short term credential is wanted,
 *			application can put NULL or empty string here.
 * @param username	The username.
 * @param passwd	The clear text password.
 */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产在线播放网站| 欧美一区二区日韩| 欧美三级中文字幕在线观看| 欧美一区二区三区性视频| 国产亚洲欧美色| 亚洲综合在线观看视频| 狠狠久久亚洲欧美| 欧美日本韩国一区| 亚洲欧美自拍偷拍色图| 久久电影网站中文字幕| 欧美日韩成人在线一区| 中文字幕一区二区三区乱码在线| 久久99久久精品| 色婷婷亚洲婷婷| 久久免费电影网| 五月婷婷欧美视频| 91丨九色丨黑人外教| 日韩精品一区二区三区视频播放| 一区二区三区国产精品| 国产精品中文欧美| 日韩女优视频免费观看| 日韩精品1区2区3区| 欧美调教femdomvk| 亚洲日穴在线视频| av亚洲精华国产精华| 中文字幕免费在线观看视频一区| 久久99久久99精品免视看婷婷 | 亚洲观看高清完整版在线观看| 成人激情视频网站| 国产精品亲子伦对白| 国产在线一区二区| 久久综合色之久久综合| 久久激情五月婷婷| 欧美va在线播放| 国内外成人在线| www国产成人免费观看视频 深夜成人网| 蜜臀国产一区二区三区在线播放| 欧美精品1区2区| 奇米色一区二区三区四区| 日韩一区二区在线看片| 国产做a爰片久久毛片| 久久综合成人精品亚洲另类欧美| 国产一区二区三区在线观看免费| 久久久99久久| 9l国产精品久久久久麻豆| 日韩一区欧美一区| 日本韩国欧美一区二区三区| 亚洲一二三专区| 欧美色区777第一页| 亚洲一区二区免费视频| 欧美综合在线视频| 水蜜桃久久夜色精品一区的特点| 成人av小说网| **网站欧美大片在线观看| 欧洲国内综合视频| 亚洲色图在线看| 911精品产国品一二三产区| 亚洲成av人片一区二区三区| 欧美日韩午夜在线视频| 日韩精品一二三| 日韩一级片网址| 久久99久久久久| 中文字幕亚洲精品在线观看| 99热精品一区二区| 五月激情丁香一区二区三区| 4438成人网| 国产精品99久久久| 久久伊人中文字幕| 91精彩视频在线| 精品一区二区日韩| 中文字幕欧美日韩一区| 欧美日韩午夜在线| 麻豆国产一区二区| 亚洲欧洲国产专区| 欧美在线影院一区二区| 精品一区二区三区香蕉蜜桃| 国产农村妇女毛片精品久久麻豆 | 国产精品久久久久永久免费观看| 欧美在线免费观看亚洲| 日本强好片久久久久久aaa| 日本一区二区三区免费乱视频| 国产成人免费av在线| 日韩中文字幕不卡| 日本一二三不卡| 欧美在线观看视频一区二区三区| 国产精品一二二区| 亚洲自拍欧美精品| 国产精品不卡视频| 欧美日韩一区二区在线观看| 成人免费电影视频| 日欧美一区二区| 亚洲自拍都市欧美小说| 欧美精品一区二区久久久| 欧美日韩在线播放三区四区| 精品盗摄一区二区三区| 欧美日韩国产高清一区| av网站免费线看精品| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲精品成人悠悠色影视| 日韩欧美国产三级电影视频| 欧美日韩精品一区二区天天拍小说 | 国精产品一区一区三区mba桃花| 国产精品视频一二三区| 久久婷婷国产综合国色天香| 色婷婷久久久亚洲一区二区三区 | 欧美性色综合网| 99久久国产免费看| 国产乱子伦一区二区三区国色天香| 五月综合激情网| 亚洲女人****多毛耸耸8| 国产精品国产a| 欧美一区二区久久久| 欧美精品久久久久久久久老牛影院 | 亚洲精品在线观看视频| 欧美一区二区福利视频| 色婷婷av一区二区三区软件| 成人美女视频在线观看| 成人动漫一区二区| 国产福利一区二区三区视频在线| 国产美女久久久久| 蜜臀av性久久久久蜜臀aⅴ| 久久成人精品无人区| 亚洲成人777| 日韩成人av影视| 亚洲午夜精品在线| 首页国产欧美日韩丝袜| 亚洲精品视频免费观看| 亚洲嫩草精品久久| 亚洲大片精品永久免费| 一区二区三区久久久| 日韩电影在线一区二区| 丝袜美腿亚洲一区二区图片| 毛片一区二区三区| 蜜臀a∨国产成人精品| 国产精品自拍在线| 国产精品一区二区x88av| 福利视频网站一区二区三区| aaa国产一区| 在线观看亚洲a| 日韩一区二区在线免费观看| 日韩欧美国产三级电影视频| 欧美国产禁国产网站cc| 欧美激情一区二区| 亚洲国产综合色| 综合久久一区二区三区| 人人精品人人爱| 国产成人av福利| 97se亚洲国产综合自在线不卡| 欧美中文字幕久久| 日韩欧美一区二区不卡| 国产精品网站一区| 国产亚洲一区二区在线观看| 亚洲欧美偷拍三级| 麻豆91精品91久久久的内涵| 久久99久久久久| 色老综合老女人久久久| 色美美综合视频| 精品国产一区久久| 国产精品嫩草99a| 青椒成人免费视频| 精品一区二区成人精品| 在线观看网站黄不卡| 久久蜜桃一区二区| 一区二区不卡在线播放| 国产电影精品久久禁18| 91玉足脚交白嫩脚丫在线播放| 日韩一区二区免费在线观看| 欧美一区二区三区免费大片| 亚洲丝袜精品丝袜在线| 精品无码三级在线观看视频| 成人午夜免费电影| 日韩一级欧美一级| 一区在线观看视频| 美女视频一区二区| 99精品视频一区二区| 欧美mv日韩mv| 一区二区三区在线视频免费观看| 午夜国产不卡在线观看视频| 国产成人精品一区二区三区四区 | 99久久er热在这里只有精品15| 欧洲亚洲国产日韩| 亚洲色图欧洲色图婷婷| 美日韩一级片在线观看| 欧美丰满高潮xxxx喷水动漫| 精品乱人伦一区二区三区| 天天av天天翘天天综合网| 99精品热视频| 久久久久久影视| 国产在线观看免费一区| 欧美四级电影在线观看| 亚洲精品综合在线| 91色综合久久久久婷婷| 日韩欧美自拍偷拍| 六月婷婷色综合| 欧美性xxxxxxxx| 亚洲18色成人| 欧美精品少妇一区二区三区| 国产精品久久久久婷婷| 成人一二三区视频| 精品99一区二区三区|