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

📄 nua_params.h

📁 Sofia SIP is an open-source SIP User-Agent library, compliant with the IETF RFC3261 specification.
💻 H
字号:
/* * This file is part of the Sofia-SIP package * * Copyright (C) 2006 Nokia Corporation. * * Contact: Pekka Pessi <pekka.pessi@nokia.com> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA * */#ifndef NUA_PARAMS_H/** Defined when <nua_params.h> has been included. */#define NUA_PARAMS_H/**@internal @file nua_params.h  * @brief Parameters and their handling * * @author Pekka Pessi <Pekka.Pessi@nokia.com> * @author Kai Vehmanen <Kai.Vehmanen@nokia.com> * * @date Created: Wed Mar  8 11:38:18 EET 2006  ppessi */#include <nua_types.h>/**@internal @brief NUA preferences.  * * This structure contains values for various preferences and a separate * bitmap (nhp_set) for each preference. Preferences are set using * nua_set_params() or nua_set_hparams() or a handle-specific operation * setting the preferences, including nua_invite(), nua_respond(), * nua_ack(), nua_prack(), nua_update(), nua_info(), nua_bye(), * nua_options(), nua_message(), nua_register(), nua_publish(), nua_refer(), * nua_subscribe(), nua_notify(), nua_refer(), and nua_notifier(). * * The stack uses preference value if corresponding bit in bitmap is set, * otherwise it uses preference value from default handle. * * @see NHP_GET(), NH_PGET(), NHP_ISSET(), NH_PISSET() */struct nua_handle_preferences{  unsigned         nhp_retry_count;	/**< times to retry a request */  unsigned         nhp_max_subscriptions;  /* Session-related preferences */  char const      *nhp_soa_name;  unsigned         nhp_media_enable:1;  unsigned     	   nhp_invite_enable:1;  unsigned     	   nhp_auto_alert:1;  unsigned         nhp_early_answer:1; /**< Include answer in 1XX */  unsigned         nhp_early_media:1; /**< Establish early media with 100rel */  unsigned         nhp_only183_100rel:1;/**< Only 100rel 183. */  unsigned         nhp_auto_answer:1;  unsigned         nhp_auto_ack:1; /**< Automatically ACK a final response */  unsigned         :0;  /** INVITE timeout.    *   * If no response is received in nhp_invite_timeout seconds,   * INVITE client transaction times out   */  unsigned         nhp_invite_timeout;  /** Default session timer (in seconds, 0 disables) */  unsigned         nhp_session_timer;  /** Default Min-SE Delta value */  unsigned         nhp_min_se;  /** no (preference), local or remote */  enum nua_session_refresher nhp_refresher;   unsigned         nhp_update_refresh:1; /**< Use UPDATE to refresh */    /* Messaging preferences */  unsigned     	   nhp_message_enable : 1;  /** Be bug-compatible with Windows Messenger */  unsigned     	   nhp_win_messenger_enable : 1;  /** PIM-IW hack */  unsigned         nhp_message_auto_respond : 1;  /* Preferences for registration (and dialog establishment) */  unsigned         nhp_callee_caps:1; /**< Add callee caps to contact */  unsigned         nhp_media_features:1;/**< Add media features to caps*/  /** Enable Service-Route */  unsigned         nhp_service_route_enable:1;  /** Enable Path */  unsigned         nhp_path_enable:1;  /** Authentication cache policy */  unsigned         nhp_auth_cache:1;  /** Always include id with Event: refer */  unsigned         nhp_refer_with_id:1;  unsigned:0;  /* Default lifetime for implicit subscriptions created by REFER */  unsigned         nhp_refer_expires;  /* Subscriber state, i.e. nua_substate_pending */  unsigned         nhp_substate;  unsigned         nhp_sub_expires;  /* REGISTER keepalive intervals */  unsigned         nhp_keepalive, nhp_keepalive_stream;  char const      *nhp_registrar;  sip_allow_t        *nhp_allow;  sip_supported_t    *nhp_supported;  sip_allow_events_t *nhp_allow_events;  char const         *nhp_user_agent;  char const         *nhp_organization;  char const         *nhp_m_display;  char const         *nhp_m_username;  char const         *nhp_m_params;  char const         *nhp_m_features;  char const         *nhp_instance;  /** Outbound OPTIONS */  char const         *nhp_outbound;     sip_allow_t        *nhp_appl_method;  /** Initial route set */  sip_route_t        *nhp_initial_route;  /** Next hop URI (used instead of route). */  url_string_t       *nhp_proxy;  union { struct {    /* A bit for each feature set by application */    /* NOTE:        Some compilers behave weird if there are bitfields       together with width > 32        So there should be a padding field (unsigned:0;)        every 32 bits.     */    unsigned nhb_retry_count:1;    unsigned nhb_max_subscriptions:1;    unsigned nhb_soa_name:1;    unsigned nhb_media_enable:1;    unsigned nhb_invite_enable:1;    unsigned nhb_auto_alert:1;    unsigned nhb_early_answer:1;    unsigned nhb_early_media:1;    unsigned nhb_only183_100rel:1;    unsigned nhb_auto_answer:1;    unsigned nhb_auto_ack:1;    unsigned nhb_invite_timeout:1;    unsigned nhb_session_timer:1;    unsigned nhb_min_se:1;    unsigned nhb_refresher:1;     unsigned nhb_update_refresh:1;    unsigned nhb_message_enable:1;    unsigned nhb_win_messenger_enable:1;    unsigned nhb_message_auto_respond:1;    unsigned nhb_callee_caps:1;    unsigned nhb_media_features:1;    unsigned nhb_service_route_enable:1;    unsigned nhb_path_enable:1;    unsigned nhb_auth_cache:1;    unsigned nhb_refer_with_id:1;    unsigned nhb_refer_expires:1;    unsigned nhb_substate:1;    unsigned nhb_sub_expires:1;    unsigned nhb_keepalive:1;    unsigned nhb_keepalive_stream:1;    unsigned nhb_registrar:1;    unsigned nhb_allow:1;    unsigned :0;		/* at most 32 bits before this point */    unsigned nhb_supported:1;    unsigned nhb_allow_events:1;    unsigned nhb_user_agent:1;    unsigned nhb_organization:1;    unsigned nhb_m_display:1;    unsigned nhb_m_username:1;    unsigned nhb_m_params:1;    unsigned nhb_m_features:1;    unsigned nhb_instance:1;    unsigned nhb_outbound:1;    unsigned nhb_appl_method:1;    unsigned nhb_initial_route:1;    unsigned nhb_proxy:1;    unsigned :0;  } set_bits;     unsigned set_unsigned[2];  } nhp_set_;};#define nhp_set nhp_set_.set_bits/** Global preferences for nua. */struct nua_global_preferences {  /** Network detection: NONE, INFORMAL, TRY_FULL */  signed int ngp_detect_network_updates:3;  /** Pass events during shutdown, too */  int ngp_shutdown_events:1;  unsigned :0;			/* pad */  union { struct {    /* A bit for each feature set by application */    unsigned ngp_detect_network_updates:1;    unsigned ngp_shutdown_events:1;    unsigned :0;  } set_bits;     unsigned set_unsigned[2];  } ngp_set_;};#define ngp_set ngp_set_.set_bits#define DNHP_GET(dnhp, pref) ((dnhp)->nhp_##pref)#define NHP_GET(nhp, dnhp, pref)					\  ((nhp)->nhp_set.nhb_##pref					\   ? (nhp)->nhp_##pref : (dnhp)->nhp_##pref)#define NHP_SET(nhp, pref, value)					\  ((nhp)->nhp_##pref = (value),						\   (nhp)->nhp_set.nhb_##pref = 1)/* Check if preference is set */#define NHP_ISSET(nhp, pref)						\  ((nhp)->nhp_set.nhb_##pref)#define NHP_UNSET_ALL(nhp) (memset(&(nhp)->nhp_set, 0, sizeof (nhp)->nhp_set))#define NHP_SET_ALL(nhp) (memset(&(nhp)->nhp_set, 255, sizeof (nhp)->nhp_set))/* Get preference from handle, if set, otherwise from default handle */#define NH_PGET(nh, pref)						\  NHP_GET((nh)->nh_prefs, (nh)->nh_dprefs, pref)/* Get preference from handle, if exists and set,    otherwise from default handle */#define NUA_PGET(nua, nh, pref)						\  NHP_GET((nh) ? (nh)->nh_prefs : (nua)->nua_dhandle->nh_prefs,		\	  (nua)->nua_dhandle->nh_prefs,					\	  pref)/* Get preference from default handle */#define DNH_PGET(dnh, pref)						\  DNHP_GET((dnh)->nh_prefs, pref)/* Check if preference is set in the handle */#define NH_PISSET(nh, pref)						\  (NHP_ISSET((nh)->nh_prefs, pref) &&					\   (nh)->nh_nua->nua_dhandle->nh_prefs != (nh)->nh_prefs)/* Check if preference has been set by application */#define NUA_PISSET(nua, nh, pref)					\  (NHP_ISSET((nua)->nua_dhandle->nh_prefs, pref) ||			\   ((nh) && NHP_ISSET((nh)->nh_prefs, pref)))#endif /* NUA_PARAMS_H */

⌨️ 快捷键说明

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