[asterisk-commits] rizzo: branch rizzo/astobj2 r47302 - /team/rizzo/astobj2/channels/chan_sip.c

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Tue Nov 7 16:41:18 MST 2006


Author: rizzo
Date: Tue Nov  7 17:41:18 2006
New Revision: 47302

URL: http://svn.digium.com/view/asterisk?rev=47302&view=rev
Log:
reorder sip_peer fields so the first part is the same as a sip_user.
Eases merging code.


Modified:
    team/rizzo/astobj2/channels/chan_sip.c

Modified: team/rizzo/astobj2/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/channels/chan_sip.c?rev=47302&r1=47301&r2=47302&view=diff
==============================================================================
--- team/rizzo/astobj2/channels/chan_sip.c (original)
+++ team/rizzo/astobj2/channels/chan_sip.c Tue Nov  7 17:41:18 2006
@@ -1069,44 +1069,49 @@
 	struct sip_auth *auth;		/*!< Realm authentication list */
 	char context[AST_MAX_CONTEXT];	/*!< Default context for incoming calls */
 	char subscribecontext[AST_MAX_CONTEXT];	/*!< Default context for subscriptions */
+	char cid_num[80];		/*!< Caller ID num */
+	char cid_name[80];		/*!< Caller ID name */
+	char accountcode[AST_MAX_ACCOUNT_CODE];	/*!< Account code */
+	char language[MAX_LANGUAGE];	/*!<  Default language for prompts */
+	char mohinterpret[MAX_MUSICCLASS];/*!<  Music on Hold class */
+	char mohsuggest[MAX_MUSICCLASS];/*!<  Music on Hold class */
+	char useragent[256];		/*!<  User agent in SIP request (saved from registration) */
+	struct ast_codec_pref prefs;	/*!<  codec prefs */
+	ast_group_t callgroup;		/*!<  Call group */
+	ast_group_t pickupgroup;	/*!<  Pickup group */
+	unsigned int sipoptions;	/*!<  Supported SIP options */
+	struct ast_flags flags[2];	/*!<  SIP_ flags */
+	int amaflags;			/*!< AMA Flags (for billing) */
+	int callingpres;		/*!< Calling id presentation */
+	int capability;			/*!<  Codec capability */
+	int inUse;			/*!< Number of calls in use */
+	int call_limit;			/*!< Limit of concurrent calls */
+	enum transfermodes allowtransfer;	/*! SIP Refer restriction scheme */
+	struct ast_ha *ha;		/*!<  Access control list */
+	struct ast_variable *chanvars;	/*!<  Variables to set for channel created by user */
+	int maxcallbitrate;		/*!< Maximum Bitrate for a video call */
+	int autoframing;
+
+	/* these fields are only used in a peer */
 	char username[80];		/*!< Temporary username until registration */ 
-	char accountcode[AST_MAX_ACCOUNT_CODE];	/*!< Account code */
-	int amaflags;			/*!< AMA Flags (for billing) */
 	char tohost[MAXHOSTNAMELEN];	/*!< If not dynamic, IP address */
 	char regexten[AST_MAX_EXTENSION]; /*!< Extension to register (if regcontext is used) */
 	char fromuser[80];		/*!< From: user when calling this peer */
 	char fromdomain[MAXHOSTNAMELEN];	/*!< From: domain when calling this peer */
 	char fullcontact[256];		/*!< Contact registered with us (not in sip.conf) */
-	char cid_num[80];		/*!< Caller ID num */
-	char cid_name[80];		/*!< Caller ID name */
-	int callingpres;		/*!< Calling id presentation */
-	int inUse;			/*!< Number of calls in use */
 	int inRinging;			/*!< Number of calls ringing */
 	int onHold;                     /*!< Peer has someone on hold */
-	int call_limit;			/*!< Limit of concurrent calls */
-	enum transfermodes allowtransfer;	/*! SIP Refer restriction scheme */
 	char vmexten[AST_MAX_EXTENSION]; /*!< Dialplan extension for MWI notify message*/
 	char mailbox[AST_MAX_EXTENSION]; /*!< Mailbox setting for MWI checks */
-	char language[MAX_LANGUAGE];	/*!<  Default language for prompts */
-	char mohinterpret[MAX_MUSICCLASS];/*!<  Music on Hold class */
-	char mohsuggest[MAX_MUSICCLASS];/*!<  Music on Hold class */
-	char useragent[256];		/*!<  User agent in SIP request (saved from registration) */
 	char register_from_hdr[256];	/*!<  'From' header received in REGISTER */
-	struct ast_codec_pref prefs;	/*!<  codec prefs */
 	int lastmsgssent;
 	time_t	lastmsgcheck;		/*!<  Last time we checked for MWI */
-	unsigned int sipoptions;	/*!<  Supported SIP options */
-	struct ast_flags flags[2];	/*!<  SIP_ flags */
 	int expire;			/*!<  When to expire this peer registration */
-	int capability;			/*!<  Codec capability */
 	int rtptimeout;			/*!<  RTP timeout */
 	int rtpholdtimeout;		/*!<  RTP Hold Timeout */
 	int rtpkeepalive;		/*!<  Send RTP packets for keepalive */
-	ast_group_t callgroup;		/*!<  Call group */
-	ast_group_t pickupgroup;	/*!<  Pickup group */
 	struct ast_dnsmgr_entry *dnsmgr;/*!<  DNS refresh manager for peer */
 	struct sockaddr_in addr;	/*!<  IP address of peer */
-	int maxcallbitrate;		/*!< Maximum Bitrate for a video call */
 	
 	/* Qualification */
 	struct sip_pvt *call;		/*!<  Call pointer */
@@ -1116,11 +1121,8 @@
 	struct timeval ps;		/*!<  Ping send time */
 	
 	struct sockaddr_in defaddr;	/*!<  Default IP address, used until registration */
-	struct ast_ha *ha;		/*!<  Access control list */
-	struct ast_variable *chanvars;	/*!<  Variables to set for channel created by user */
 	struct sip_pvt *mwipvt;		/*!<  Subscription for MWI */
 	int lastmsg;
-	int autoframing;
 };
 
 
@@ -4428,6 +4430,7 @@
 	Called by handle_request, sipsock_read */
 static struct sip_pvt *find_call(struct sip_request *req, struct sockaddr_in *sin, const int intended_method)
 {
+	static int profile_id = -1;
 	struct sip_pvt *p = NULL;
 	char totag[128];	/* not initialized, but not used if !pedantic */
 	char fromtag[128];	/* not initialized, but not used if !pedantic */
@@ -4467,13 +4470,19 @@
 	}
 
 	dialoglist_lock();
+	if (profile_id == -1)
+		profile_id = ast_add_profile("find_call", 0);
+	ast_mark(profile_id, 1 /* start */);
 	for (p = dialoglist; p; p = p->next) {
 		if (find_call_cb(p, &arg)) {
 			/* Found the call, lock p before unlocking the container */
+			ast_mark(profile_id, 0 /* stop */);
 			sip_pvt_lock(p);
 			break;
 		}
 	}
+	if (!p)
+		ast_mark(profile_id, 0 /* stop */);
 	dialoglist_unlock();
 	if (p)
 		return p;



More information about the asterisk-commits mailing list