[asterisk-commits] oej: branch oej/cancel_answer_elsewhere r68447 - in /team/oej/cancel_answer_e...

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Fri Jun 8 00:48:04 MST 2007


Author: oej
Date: Fri Jun  8 02:48:03 2007
New Revision: 68447

URL: http://svn.digium.com/view/asterisk?view=rev&rev=68447
Log:
Reset automerge

Modified:
    team/oej/cancel_answer_elsewhere/   (props changed)
    team/oej/cancel_answer_elsewhere/CREDITS
    team/oej/cancel_answer_elsewhere/apps/app_queue.c
    team/oej/cancel_answer_elsewhere/apps/app_skel.c
    team/oej/cancel_answer_elsewhere/apps/app_voicemail.c
    team/oej/cancel_answer_elsewhere/channels/chan_agent.c
    team/oej/cancel_answer_elsewhere/channels/chan_features.c
    team/oej/cancel_answer_elsewhere/channels/chan_h323.c
    team/oej/cancel_answer_elsewhere/channels/chan_iax2.c
    team/oej/cancel_answer_elsewhere/channels/chan_sip.c
    team/oej/cancel_answer_elsewhere/channels/chan_skinny.c
    team/oej/cancel_answer_elsewhere/channels/chan_zap.c
    team/oej/cancel_answer_elsewhere/contrib/asterisk-ng-doxygen
    team/oej/cancel_answer_elsewhere/funcs/func_shell.c
    team/oej/cancel_answer_elsewhere/include/asterisk/devicestate.h
    team/oej/cancel_answer_elsewhere/include/asterisk/doxyref.h
    team/oej/cancel_answer_elsewhere/include/asterisk/event.h
    team/oej/cancel_answer_elsewhere/include/asterisk/http.h
    team/oej/cancel_answer_elsewhere/include/asterisk/manager.h
    team/oej/cancel_answer_elsewhere/include/asterisk/stringfields.h
    team/oej/cancel_answer_elsewhere/include/asterisk/strings.h
    team/oej/cancel_answer_elsewhere/main/devicestate.c
    team/oej/cancel_answer_elsewhere/main/dnsmgr.c
    team/oej/cancel_answer_elsewhere/main/manager.c
    team/oej/cancel_answer_elsewhere/main/rtp.c
    team/oej/cancel_answer_elsewhere/main/say.c
    team/oej/cancel_answer_elsewhere/main/strcompat.c
    team/oej/cancel_answer_elsewhere/res/res_config_sqlite.c
    team/oej/cancel_answer_elsewhere/res/res_jabber.c

Propchange: team/oej/cancel_answer_elsewhere/
------------------------------------------------------------------------------
    automerge = http://www.codename-pineapple.org/

Propchange: team/oej/cancel_answer_elsewhere/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.

Propchange: team/oej/cancel_answer_elsewhere/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Fri Jun  8 02:48:03 2007
@@ -1,1 +1,1 @@
-/trunk:1-68175
+/trunk:1-68446

Modified: team/oej/cancel_answer_elsewhere/CREDITS
URL: http://svn.digium.com/view/asterisk/team/oej/cancel_answer_elsewhere/CREDITS?view=diff&rev=68447&r1=68446&r2=68447
==============================================================================
--- team/oej/cancel_answer_elsewhere/CREDITS (original)
+++ team/oej/cancel_answer_elsewhere/CREDITS Fri Jun  8 02:48:03 2007
@@ -157,6 +157,8 @@
 
 Voop AS - Financial support for a lot of work with the SIP driver and the IAX trunk MTU patch
 
+Philippe Sultan, INRIA - many fixes to res_jabber and gtalk/jingle channel drivers
+
 === OTHER CONTRIBUTIONS ===
 John Todd - Monkey sounds and associated teletorture prompt
 Michael Jerris - bug marshaling

Modified: team/oej/cancel_answer_elsewhere/apps/app_queue.c
URL: http://svn.digium.com/view/asterisk/team/oej/cancel_answer_elsewhere/apps/app_queue.c?view=diff&rev=68447&r1=68446&r2=68447
==============================================================================
--- team/oej/cancel_answer_elsewhere/apps/app_queue.c (original)
+++ team/oej/cancel_answer_elsewhere/apps/app_queue.c Fri Jun  8 02:48:03 2007
@@ -239,7 +239,7 @@
 "Example: QueueLog(101|${UNIQUEID}|${AGENT}|WENTONBREAK|600)\n";
 
 /*! \brief Persistent Members astdb family */
-static const char *pm_family = "/Queue/PersistentMembers";
+static const char *pm_family = "Queue/PersistentMembers";
 /* The maximum length of each persistent member queue database entry */
 #define PM_MAX_LEN 8192
 
@@ -3111,10 +3111,14 @@
 				break;
 			ast_mutex_unlock(&cur_queue->lock);
 		}
+		
+		if (!cur_queue)
+			cur_queue = load_realtime_queue(queue_name);
 
 		if (!cur_queue) {
 			/* If the queue no longer exists, remove it from the
 			 * database */
+			ast_log(LOG_WARNING, "Error loading persistent queue: '%s': it does not exist\n", queue_name);
 			ast_db_del(pm_family, queue_name);
 			continue;
 		} else

Modified: team/oej/cancel_answer_elsewhere/apps/app_skel.c
URL: http://svn.digium.com/view/asterisk/team/oej/cancel_answer_elsewhere/apps/app_skel.c?view=diff&rev=68447&r1=68446&r2=68447
==============================================================================
--- team/oej/cancel_answer_elsewhere/apps/app_skel.c (original)
+++ team/oej/cancel_answer_elsewhere/apps/app_skel.c Fri Jun  8 02:48:03 2007
@@ -20,7 +20,7 @@
  *
  * \brief Skeleton application
  *
- * \author\verbatim <Your Name Here> <<Your Email Here>> \endvebatim
+ * \author\verbatim <Your Name Here> <<Your Email Here>> \endverbatim
  * 
  * This is a skeleton for development of an Asterisk application 
  * \ingroup applications

Modified: team/oej/cancel_answer_elsewhere/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/team/oej/cancel_answer_elsewhere/apps/app_voicemail.c?view=diff&rev=68447&r1=68446&r2=68447
==============================================================================
--- team/oej/cancel_answer_elsewhere/apps/app_voicemail.c (original)
+++ team/oej/cancel_answer_elsewhere/apps/app_voicemail.c Fri Jun  8 02:48:03 2007
@@ -5096,7 +5096,7 @@
 {
 	int cmd;
 
-	if (!strcasecmp(chan->language, "it") || !strcasecmp(chan->language, "es") || !strcasecmp(chan->language, "fr") || !strcasecmp(chan->language, "pt") || !strcasecmp(chan->language, "pt_BR")) { /* Italian, Spanish, French or Portuguese syntax */
+	if (!strcasecmp(chan->language, "it") || !strcasecmp(chan->language, "es") || !strcasecmp(chan->language, "pt") || !strcasecmp(chan->language, "pt_BR")) { /* Italian, Spanish, French or Portuguese syntax */
 		cmd = ast_play_and_wait(chan, "vm-messages"); /* "messages */
 		return cmd ? cmd : ast_play_and_wait(chan, mbox);
 	} else if (!strcasecmp(chan->language, "gr")){
@@ -5569,14 +5569,14 @@
 		}
 		if (!res && vms->oldmessages) {
 			res = say_and_wait(chan, vms->oldmessages, chan->language);
+			if (!res)
+				res = ast_play_and_wait(chan, "vm-Old");
 			if (!res) {
 				if (vms->oldmessages == 1)
 					res = ast_play_and_wait(chan, "vm-message");
 				else
 					res = ast_play_and_wait(chan, "vm-messages");
 			}
-			if (!res)
-				res = ast_play_and_wait(chan, "vm-Old");
 		}
 		if (!res) {
 			if (!vms->oldmessages && !vms->newmessages) {
@@ -8545,6 +8545,7 @@
 	int recorded = 0;
 	int message_exists = 0;
 	signed char zero_gain = 0;
+	char tempfile[PATH_MAX];
 	char *acceptdtmf = "#";
 	char *canceldtmf = "";
 
@@ -8555,6 +8556,11 @@
 		ast_log(LOG_WARNING, "Error play_record_review called without duration pointer\n");
 		return -1;
 	}
+
+	if (!outsidecaller)
+		snprintf(tempfile, sizeof(tempfile), "%s.tmp", recordfile);
+	else
+		ast_copy_string(tempfile, recordfile, sizeof(tempfile));
 
 	cmd = '3';  /* Want to start by recording */
 
@@ -8569,9 +8575,13 @@
 				/* Otherwise 1 is to save the existing message */
 				if (option_verbose > 2)
 					ast_verbose(VERBOSE_PREFIX_3 "Saving message as is\n");
+				if (!outsidecaller)
+					ast_filerename(tempfile, recordfile, NULL);
 				ast_stream_and_wait(chan, "vm-msgsaved", "");
-				STORE(recordfile, vmu->mailbox, vmu->context, -1, chan, vmu, fmt, *duration, vms);
-				DISPOSE(recordfile, -1);
+				if (!outsidecaller) {
+					STORE(recordfile, vmu->mailbox, vmu->context, -1, chan, vmu, fmt, *duration, vms);
+					DISPOSE(recordfile, -1);
+				}
 				cmd = 't';
 				return res;
 			}
@@ -8579,7 +8589,7 @@
 			/* Review */
 			if (option_verbose > 2)
 				ast_verbose(VERBOSE_PREFIX_3 "Reviewing the message\n");
-			cmd = ast_stream_and_wait(chan, recordfile, AST_DIGIT_ANY);
+			cmd = ast_stream_and_wait(chan, tempfile, AST_DIGIT_ANY);
 			break;
 		case '3':
 			message_exists = 0;
@@ -8601,11 +8611,15 @@
 				ast_channel_setoption(chan, AST_OPTION_RXGAIN, &record_gain, sizeof(record_gain), 0);
 			if (ast_test_flag(vmu, VM_OPERATOR))
 				canceldtmf = "0";
-			cmd = ast_play_and_record_full(chan, playfile, recordfile, maxtime, fmt, duration, silencethreshold, maxsilence, unlockdir, acceptdtmf, canceldtmf);
+			cmd = ast_play_and_record_full(chan, playfile, tempfile, maxtime, fmt, duration, silencethreshold, maxsilence, unlockdir, acceptdtmf, canceldtmf);
 			if (record_gain)
 				ast_channel_setoption(chan, AST_OPTION_RXGAIN, &zero_gain, sizeof(zero_gain), 0);
 			if (cmd == -1) {
-			/* User has hung up, no options to give */
+				/* User has hung up, no options to give */
+				if (!outsidecaller) {
+					/* user was recording a greeting and they hung up, so let's delete the recording. */
+					vm_delete(tempfile);
+				}
 				return cmd;
 			}
 			if (cmd == '0') {
@@ -8619,14 +8633,14 @@
 				if (option_verbose > 2)
 					ast_verbose(VERBOSE_PREFIX_3 "Message too short\n");
 				cmd = ast_play_and_wait(chan, "vm-tooshort");
-				cmd = vm_delete(recordfile);
+				cmd = vm_delete(tempfile);
 				break;
 			}
 			else if (vmu->review && (cmd == 2 && *duration < (maxsilence + 3))) {
 				/* Message is all silence */
 				if (option_verbose > 2)
 					ast_verbose(VERBOSE_PREFIX_3 "Nothing recorded\n");
-				cmd = vm_delete(recordfile);
+				cmd = vm_delete(tempfile);
 				cmd = ast_play_and_wait(chan, "vm-nothingrecorded");
 				if (!cmd)
 					cmd = ast_play_and_wait(chan, "vm-speakup");
@@ -8655,7 +8669,7 @@
 		case '*':
 			/* Cancel recording, delete message, offer to take another message*/
 			cmd = ast_play_and_wait(chan, "vm-deleted");
-			cmd = vm_delete(recordfile);
+			cmd = vm_delete(tempfile);
 			if (outsidecaller) {
 				res = vm_exec(chan, NULL);
 				return res;

Modified: team/oej/cancel_answer_elsewhere/channels/chan_agent.c
URL: http://svn.digium.com/view/asterisk/team/oej/cancel_answer_elsewhere/channels/chan_agent.c?view=diff&rev=68447&r1=68446&r2=68447
==============================================================================
--- team/oej/cancel_answer_elsewhere/channels/chan_agent.c (original)
+++ team/oej/cancel_answer_elsewhere/channels/chan_agent.c Fri Jun  8 02:48:03 2007
@@ -134,7 +134,7 @@
 #define AST_MAX_BUF	256
 #define AST_MAX_FILENAME_LEN	256
 
-static const char pa_family[] = "/Agents";          /*!< Persistent Agents astdb family */
+static const char pa_family[] = "Agents";          /*!< Persistent Agents astdb family */
 #define PA_MAX_LEN 2048                             /*!< The maximum length of each persistent member agent database entry */
 
 static int persistent_agents = 0;                   /*!< queues.conf [general] option */

Modified: team/oej/cancel_answer_elsewhere/channels/chan_features.c
URL: http://svn.digium.com/view/asterisk/team/oej/cancel_answer_elsewhere/channels/chan_features.c?view=diff&rev=68447&r1=68446&r2=68447
==============================================================================
--- team/oej/cancel_answer_elsewhere/channels/chan_features.c (original)
+++ team/oej/cancel_answer_elsewhere/channels/chan_features.c Fri Jun  8 02:48:03 2007
@@ -26,6 +26,9 @@
  * 
  * \ingroup channel_drivers
  */
+/*** MODULEINFO
+        <defaultenabled>no</defaultenabled>
+ ***/
 
 #include "asterisk.h"
 

Modified: team/oej/cancel_answer_elsewhere/channels/chan_h323.c
URL: http://svn.digium.com/view/asterisk/team/oej/cancel_answer_elsewhere/channels/chan_h323.c?view=diff&rev=68447&r1=68446&r2=68447
==============================================================================
--- team/oej/cancel_answer_elsewhere/channels/chan_h323.c (original)
+++ team/oej/cancel_answer_elsewhere/channels/chan_h323.c Fri Jun  8 02:48:03 2007
@@ -1937,9 +1937,10 @@
 	return info;
 }
 
-/*! \brief
+/* 
  * Definition taken from rtp.c for rtpPayloadType because we need it here.
  */
+
 struct rtpPayloadType {
 	int isAstFormat;	/* whether the following code is an AST_FORMAT */
 	int code;

Modified: team/oej/cancel_answer_elsewhere/channels/chan_iax2.c
URL: http://svn.digium.com/view/asterisk/team/oej/cancel_answer_elsewhere/channels/chan_iax2.c?view=diff&rev=68447&r1=68446&r2=68447
==============================================================================
--- team/oej/cancel_answer_elsewhere/channels/chan_iax2.c (original)
+++ team/oej/cancel_answer_elsewhere/channels/chan_iax2.c Fri Jun  8 02:48:03 2007
@@ -726,12 +726,16 @@
 	time_t checktime;
 	ast_mutex_t lock;
 	ast_cond_t cond;
-	/*! If this thread is processing a full frame, the callno for that frame
-	 *  will be here, so we can avoid dispatching any more full frames
-	 *  or that callno to other threads */
-	unsigned short ffcallno;
-	/*! Remember the peer IP/port number for a full frame in process */
-	struct sockaddr_in ffsin;
+	/*! if this thread is processing a full frame,
+	  some information about that frame will be stored
+	  here, so we can avoid dispatching any more full
+	  frames for that callno to other threads */
+	struct {
+		unsigned short callno;
+		struct sockaddr_in sin;
+		unsigned char type;
+		unsigned char csub;
+	} ffinfo;
 };
 
 /* Thread lists */
@@ -974,10 +978,8 @@
 
 	/* this thread is not processing a full frame (since it is idle),
 	   so ensure that the field for the full frame call number is empty */
-	if (thread) {
-		thread->ffcallno = 0;
-		memset(&thread->ffsin, 0, sizeof(thread->ffsin));
-	}
+	if (thread)
+		memset(&thread->ffinfo, 0, sizeof(thread->ffinfo));
 
 	return thread;
 }
@@ -6562,22 +6564,24 @@
 		
 		AST_LIST_LOCK(&active_list);
 		AST_LIST_TRAVERSE(&active_list, cur, list) {
-			if ((cur->ffcallno == ntohs(fh->scallno)) &&
-			    !memcmp(&cur->ffsin, &thread->iosin, sizeof(cur->ffsin)))
+			if ((cur->ffinfo.callno == ntohs(fh->scallno)) &&
+			    !inaddrcmp(&cur->ffinfo.sin, &thread->iosin))
 				break;
 		}
 		AST_LIST_UNLOCK(&active_list);
 		if (cur) {
 			/* we found another thread processing a full frame for this call,
 			   so we can't accept this frame */
-			ast_log(LOG_WARNING, "Dropping full frame from %s (callno %d) received too rapidly\n",
-				ast_inet_ntoa(thread->iosin.sin_addr), cur->ffcallno);
+			ast_log(LOG_WARNING, "Dropping frame from %s (callno %d) of type %d (subclass %d) due to frame of type %d (subclass %d) already in process\n",
+				ast_inet_ntoa(thread->iosin.sin_addr), cur->ffinfo.callno,
+				fh->type, uncompress_subclass(fh->csub),
+				cur->ffinfo.type, uncompress_subclass(cur->ffinfo.csub));
 			insert_idle_thread(thread);
 			return 1;
 		} else {
 			/* this thread is going to process this frame, so mark it */
-			thread->ffcallno = ntohs(fh->scallno);
-			memcpy(&thread->ffsin, &thread->iosin, sizeof(thread->ffsin));
+			thread->ffinfo.callno = ntohs(fh->scallno);
+			memcpy(&thread->ffinfo.sin, &thread->iosin, sizeof(thread->ffinfo.sin));
 		}
 	}
 	

Modified: team/oej/cancel_answer_elsewhere/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/team/oej/cancel_answer_elsewhere/channels/chan_sip.c?view=diff&rev=68447&r1=68446&r2=68447
==============================================================================
--- team/oej/cancel_answer_elsewhere/channels/chan_sip.c (original)
+++ team/oej/cancel_answer_elsewhere/channels/chan_sip.c Fri Jun  8 02:48:03 2007
@@ -731,60 +731,60 @@
 	struct sip_auth *next;          /*!< Next auth structure in list */
 };
 
-/* New set of flags for DIALOG ONLY, not for peers/users etc 
-	\todo - move dialog only flags here to release bits for peer/user to dialog copying 
-	This goes into flags[2] in the dialog - page 3
+/*--- Various flags for the flags field in the pvt structure 
+	Trying to sort these up:
+	D: Dialog only
+	DP: Dialog and peer/user
+	P: Peer/user only, not dialog
+	G: Global flag only
 */
-
-#define SIP_DIALOG_ANSWEREDELSEWHERE (1 << 0)
-
-/*--- Various flags for the flags field in the pvt structure */
-#define SIP_ALREADYGONE		(1 << 0)	/*!< Whether or not we've already been destroyed by our peer */
-#define SIP_NEEDDESTROY		(1 << 1)	/*!< if we need to be destroyed by the monitor thread */
-#define SIP_NOVIDEO		(1 << 2)	/*!< Didn't get video in invite, don't offer */
-#define SIP_RINGING		(1 << 3)	/*!< Have sent 180 ringing */
-#define SIP_PROGRESS_SENT	(1 << 4)	/*!< Have sent 183 message progress */
-#define SIP_NEEDREINVITE	(1 << 5)	/*!< Do we need to send another reinvite? */
-#define SIP_PENDINGBYE		(1 << 6)	/*!< Need to send bye after we ack? */
-#define SIP_GOTREFER		(1 << 7)	/*!< Got a refer? */
-#define SIP_PROMISCREDIR	(1 << 8)	/*!< Promiscuous redirection */
-#define SIP_TRUSTRPID		(1 << 9)	/*!< Trust RPID headers? */
-#define SIP_USEREQPHONE		(1 << 10)	/*!< Add user=phone to numeric URI. Default off */
-#define SIP_REALTIME		(1 << 11)	/*!< Flag for realtime users */
-#define SIP_USECLIENTCODE	(1 << 12)	/*!< Trust X-ClientCode info message */
-#define SIP_OUTGOING		(1 << 13)	/*!< Direction of the last transaction in this dialog */
-#define SIP_FREE_BIT		(1 << 14)	/*!< ---- */
-#define SIP_DEFER_BYE_ON_TRANSFER	(1 << 15)	/*!< Do not hangup at first ast_hangup */
-#define SIP_DTMF		(3 << 16)	/*!< DTMF Support: four settings, uses two bits */
-#define SIP_DTMF_RFC2833	(0 << 16)	/*!< DTMF Support: RTP DTMF - "rfc2833" */
-#define SIP_DTMF_INBAND		(1 << 16)	/*!< DTMF Support: Inband audio, only for ULAW/ALAW - "inband" */
-#define SIP_DTMF_INFO		(2 << 16)	/*!< DTMF Support: SIP Info messages - "info" */
-#define SIP_DTMF_AUTO		(3 << 16)	/*!< DTMF Support: AUTO switch between rfc2833 and in-band DTMF */
+#define SIP_ALREADYGONE		(1 << 0)	/*!< D: Whether or not we've already been destroyed by our peer */
+#define SIP_NEEDDESTROY		(1 << 1)	/*!< D: if we need to be destroyed by the monitor thread */
+#define SIP_NOVIDEO		(1 << 2)	/*!< D: Didn't get video in invite, don't offer */
+#define SIP_RINGING		(1 << 3)	/*!< D: Have sent 180 ringing */
+#define SIP_PROGRESS_SENT	(1 << 4)	/*!< D: Have sent 183 message progress */
+#define SIP_NEEDREINVITE	(1 << 5)	/*!< D: Do we need to send another reinvite? */
+#define SIP_PENDINGBYE		(1 << 6)	/*!< D: Need to send bye after we ack? */
+#define SIP_GOTREFER		(1 << 7)	/*!< D: Got a refer? */
+#define SIP_PROMISCREDIR	(1 << 8)	/*!< DP: Promiscuous redirection */
+#define SIP_TRUSTRPID		(1 << 9)	/*!< DP: Trust RPID headers? */
+#define SIP_USEREQPHONE		(1 << 10)	/*!< DP: Add user=phone to numeric URI. Default off */
+#define SIP_REALTIME		(1 << 11)	/*!< P: Flag for realtime users */
+#define SIP_USECLIENTCODE	(1 << 12)	/*!< DP: Trust X-ClientCode info message */
+#define SIP_OUTGOING		(1 << 13)	/*!< D: Direction of the last transaction in this dialog */
+#define SIP_DIALOG_ANSWEREDELSEWHERE	(1 << 14)	/*!< D: This call is cancelled due to answer on another channel */
+#define SIP_DEFER_BYE_ON_TRANSFER	(1 << 15)	/*!< D: Do not hangup at first ast_hangup */
+#define SIP_DTMF		(3 << 16)	/*!< DP: DTMF Support: four settings, uses two bits */
+#define SIP_DTMF_RFC2833	(0 << 16)	/*!< DP: DTMF Support: RTP DTMF - "rfc2833" */
+#define SIP_DTMF_INBAND		(1 << 16)	/*!< DP: DTMF Support: Inband audio, only for ULAW/ALAW - "inband" */
+#define SIP_DTMF_INFO		(2 << 16)	/*!< DP: DTMF Support: SIP Info messages - "info" */
+#define SIP_DTMF_AUTO		(3 << 16)	/*!< DP: DTMF Support: AUTO switch between rfc2833 and in-band DTMF */
 /* NAT settings */
-#define SIP_NAT			(3 << 18)	/*!< four settings, uses two bits */
-#define SIP_NAT_NEVER		(0 << 18)	/*!< No nat support */
-#define SIP_NAT_RFC3581		(1 << 18)	/*!< NAT RFC3581 */
-#define SIP_NAT_ROUTE		(2 << 18)	/*!< NAT Only ROUTE */
-#define SIP_NAT_ALWAYS		(3 << 18)	/*!< NAT Both ROUTE and RFC3581 */
+#define SIP_NAT			(3 << 18)	/*!< DP: four settings, uses two bits */
+#define SIP_NAT_NEVER		(0 << 18)	/*!< DP: No nat support */
+#define SIP_NAT_RFC3581		(1 << 18)	/*!< DP: NAT RFC3581 */
+#define SIP_NAT_ROUTE		(2 << 18)	/*!< DP: NAT Only ROUTE */
+#define SIP_NAT_ALWAYS		(3 << 18)	/*!< DP: NAT Both ROUTE and RFC3581 */
 /* re-INVITE related settings */
-#define SIP_REINVITE		(7 << 20)	/*!< three bits used */
-#define SIP_CAN_REINVITE	(1 << 20)	/*!< allow peers to be reinvited to send media directly p2p */
-#define SIP_CAN_REINVITE_NAT	(2 << 20)	/*!< allow media reinvite when new peer is behind NAT */
-#define SIP_REINVITE_UPDATE	(4 << 20)	/*!< use UPDATE (RFC3311) when reinviting this peer */
+#define SIP_REINVITE		(7 << 20)	/*!< DP: three bits used */
+#define SIP_CAN_REINVITE	(1 << 20)	/*!< DP: allow peers to be reinvited to send media directly p2p */
+#define SIP_CAN_REINVITE_NAT	(2 << 20)	/*!< DP: allow media reinvite when new peer is behind NAT */
+#define SIP_REINVITE_UPDATE	(4 << 20)	/*!< DP: use UPDATE (RFC3311) when reinviting this peer */
 /* "insecure" settings */
-#define SIP_INSECURE_PORT	(1 << 23)	/*!< don't require matching port for incoming requests */
-#define SIP_INSECURE_INVITE	(1 << 24)	/*!< don't require authentication for incoming INVITEs */
+#define SIP_INSECURE_PORT	(1 << 23)	/*!< DP: don't require matching port for incoming requests */
+#define SIP_INSECURE_INVITE	(1 << 24)	/*!< DP: don't require authentication for incoming INVITEs */
 /* Sending PROGRESS in-band settings */
-#define SIP_PROG_INBAND		(3 << 25)	/*!< three settings, uses two bits */
+#define SIP_PROG_INBAND		(3 << 25)	/*!< DP: three settings, uses two bits */
 #define SIP_PROG_INBAND_NEVER	(0 << 25)
 #define SIP_PROG_INBAND_NO	(1 << 25)
 #define SIP_PROG_INBAND_YES	(2 << 25)
-#define SIP_NO_HISTORY		(1 << 27)	/*!< Suppress recording request/response history */
-#define SIP_CALL_LIMIT		(1 << 28)	/*!< Call limit enforced for this call */
-#define SIP_SENDRPID		(1 << 29)	/*!< Remote Party-ID Support */
-#define SIP_INC_COUNT		(1 << 30)	/*!< Did this connection increment the counter of in-use calls? */
-#define SIP_G726_NONSTANDARD	(1 << 31)	/*!< Use non-standard packing for G726-32 data */
-
+#define SIP_NO_HISTORY		(1 << 27)	/*!< D: Suppress recording request/response history */
+#define SIP_CALL_LIMIT		(1 << 28)	/*!< D: Call limit enforced for this call */
+#define SIP_SENDRPID		(1 << 29)	/*!< DP: Remote Party-ID Support */
+#define SIP_INC_COUNT		(1 << 30)	/*!< D: Did this dialog increment the counter of in-use calls? */
+#define SIP_G726_NONSTANDARD	(1 << 31)	/*!< DP: Use non-standard packing for G726-32 data */
+
+/*! \brief Flags to copy from peer/user to dialog */
 #define SIP_FLAGS_TO_COPY \
 	(SIP_PROMISCREDIR | SIP_TRUSTRPID | SIP_SENDRPID | SIP_DTMF | SIP_REINVITE | \
 	 SIP_PROG_INBAND | SIP_USECLIENTCODE | SIP_NAT | SIP_G726_NONSTANDARD | \
@@ -792,37 +792,37 @@
 
 /*--- a new page of flags (for flags[1] */
 /* realtime flags */
-#define SIP_PAGE2_RTCACHEFRIENDS	(1 << 0)
-#define SIP_PAGE2_RTUPDATE		(1 << 1)
-#define SIP_PAGE2_RTAUTOCLEAR		(1 << 2)
-#define SIP_PAGE2_RT_FROMCONTACT 	(1 << 4)
-#define SIP_PAGE2_RTSAVE_SYSNAME 	(1 << 5)
+#define SIP_PAGE2_RTCACHEFRIENDS	(1 << 0)	/*!< G: Should we keep RT objects in memory for extended time? */
+#define SIP_PAGE2_RTUPDATE		(1 << 1)	/*!< G: Update database with registration data for peer? */
+#define SIP_PAGE2_RTAUTOCLEAR		(1 << 2)	/*!< G: Should we clean memory from peers after expiry? */
+#define SIP_PAGE2_RT_FROMCONTACT 	(1 << 4)	
+#define SIP_PAGE2_RTSAVE_SYSNAME 	(1 << 5)	/*!< G: Save system name at registration? */
 /* Space for addition of other realtime flags in the future */
-#define SIP_PAGE2_IGNOREREGEXPIRE	(1 << 10)
-#define SIP_PAGE2_DEBUG			(3 << 11)
-#define SIP_PAGE2_DEBUG_CONFIG 		(1 << 11)
-#define SIP_PAGE2_DEBUG_CONSOLE 	(1 << 12)
-#define SIP_PAGE2_DYNAMIC		(1 << 13)	/*!< Dynamic Peers register with Asterisk */
-#define SIP_PAGE2_SELFDESTRUCT		(1 << 14)	/*!< Automatic peers need to destruct themselves */
-#define SIP_PAGE2_VIDEOSUPPORT		(1 << 15)
-#define SIP_PAGE2_ALLOWSUBSCRIBE	(1 << 16)	/*!< Allow subscriptions from this peer? */
-#define SIP_PAGE2_ALLOWOVERLAP		(1 << 17)	/*!< Allow overlap dialing ? */
-#define SIP_PAGE2_SUBSCRIBEMWIONLY	(1 << 18)	/*!< Only issue MWI notification if subscribed to */
-#define SIP_PAGE2_INC_RINGING		(1 << 19)	/*!< Did this connection increment the counter of in-use calls? */
-#define SIP_PAGE2_T38SUPPORT		(7 << 20)	/*!< T38 Fax Passthrough Support */
-#define SIP_PAGE2_T38SUPPORT_UDPTL	(1 << 20)	/*!< 20: T38 Fax Passthrough Support */
-#define SIP_PAGE2_T38SUPPORT_RTP	(2 << 20)	/*!< 21: T38 Fax Passthrough Support (not implemented) */
-#define SIP_PAGE2_T38SUPPORT_TCP	(4 << 20)	/*!< 22: T38 Fax Passthrough Support (not implemented) */
-#define SIP_PAGE2_CALL_ONHOLD		(3 << 23)	/*!< Call states */
-#define SIP_PAGE2_CALL_ONHOLD_ACTIVE    (1 << 23)       /*!< 23: Active hold */
-#define SIP_PAGE2_CALL_ONHOLD_ONEDIR	(2 << 23)	/*!< 23: One directional hold */
-#define SIP_PAGE2_CALL_ONHOLD_INACTIVE	(3 << 23)	/*!< 23: Inactive hold */
-#define SIP_PAGE2_RFC2833_COMPENSATE    (1 << 25)	/*!< 25: Compensate for buggy RFC2833 implementations */
-#define SIP_PAGE2_BUGGY_MWI		(1 << 26)	/*!< 26: Buggy CISCO MWI fix */
-#define SIP_PAGE2_NOTEXT		(1 << 27)	/*!< 27: Text not supported  */
-#define SIP_PAGE2_TEXTSUPPORT		(1 << 28)	/*!< 28: Global text enable */
-#define SIP_PAGE2_DEBUG_TEXT		(1 << 29)	/*!< 29: Global text debug */
-#define SIP_PAGE2_OUTGOING_CALL         (1 << 30)       /*!< 30: Is this an outgoing call? */
+#define SIP_PAGE2_IGNOREREGEXPIRE	(1 << 10)	/*!< G: Ignore expiration of peer  */
+#define SIP_PAGE2_DEBUG			(3 << 11)	/*!< G: Debug flags */
+#define SIP_PAGE2_DEBUG_CONFIG 		(1 << 11)	/*!< G: Debug flags */
+#define SIP_PAGE2_DEBUG_CONSOLE 	(1 << 12)	/*!< G: Debug flags */
+#define SIP_PAGE2_DYNAMIC		(1 << 13)	/*!< P: Dynamic Peers register with Asterisk */
+#define SIP_PAGE2_SELFDESTRUCT		(1 << 14)	/*!< P: Automatic peers need to destruct themselves */
+#define SIP_PAGE2_VIDEOSUPPORT		(1 << 15)	/*!< DP: Video supported if offered? */
+#define SIP_PAGE2_ALLOWSUBSCRIBE	(1 << 16)	/*!< GP: Allow subscriptions from this peer? */
+#define SIP_PAGE2_ALLOWOVERLAP		(1 << 17)	/*!< DP: Allow overlap dialing ? */
+#define SIP_PAGE2_SUBSCRIBEMWIONLY	(1 << 18)	/*!< GP: Only issue MWI notification if subscribed to */
+#define SIP_PAGE2_INC_RINGING		(1 << 19)	/*!< D: Did this connection increment the counter of in-use calls? */
+#define SIP_PAGE2_T38SUPPORT		(7 << 20)	/*!< GDP: T38 Fax Passthrough Support */
+#define SIP_PAGE2_T38SUPPORT_UDPTL	(1 << 20)	/*!< GDP: 20: T38 Fax Passthrough Support */
+#define SIP_PAGE2_T38SUPPORT_RTP	(2 << 20)	/*!< GDP: 21: T38 Fax Passthrough Support (not implemented) */
+#define SIP_PAGE2_T38SUPPORT_TCP	(4 << 20)	/*!< GDP: 22: T38 Fax Passthrough Support (not implemented) */
+#define SIP_PAGE2_CALL_ONHOLD		(3 << 23)	/*!< D: Call hold states */
+#define SIP_PAGE2_CALL_ONHOLD_ACTIVE    (1 << 23)       /*!< D: 23: Active hold */
+#define SIP_PAGE2_CALL_ONHOLD_ONEDIR	(2 << 23)	/*!< D: 23: One directional hold */
+#define SIP_PAGE2_CALL_ONHOLD_INACTIVE	(3 << 23)	/*!< D: 23: Inactive hold */
+#define SIP_PAGE2_RFC2833_COMPENSATE    (1 << 25)	/*!< DP: 25: Compensate for buggy RFC2833 implementations */
+#define SIP_PAGE2_BUGGY_MWI		(1 << 26)	/*!< DP: 26: Buggy CISCO MWI fix */
+#define SIP_PAGE2_NOTEXT		(1 << 27)	/*!< GPD: 27: Text not supported  */
+#define SIP_PAGE2_TEXTSUPPORT		(1 << 28)	/*!< GPD: 28: Global text enable */
+#define SIP_PAGE2_DEBUG_TEXT		(1 << 29)	/*!< GPD: 29: Global text debug */
+#define SIP_PAGE2_OUTGOING_CALL         (1 << 30)       /*!< D: 30: Is this an outgoing call? */
 
 #define SIP_PAGE2_FLAGS_TO_COPY \
 	(SIP_PAGE2_ALLOWSUBSCRIBE | SIP_PAGE2_ALLOWOVERLAP | SIP_PAGE2_VIDEOSUPPORT | \
@@ -863,7 +863,7 @@
 #define sipdebug		ast_test_flag(&global_flags[1], SIP_PAGE2_DEBUG)
 #define sipdebug_config		ast_test_flag(&global_flags[1], SIP_PAGE2_DEBUG_CONFIG)
 #define sipdebug_console	ast_test_flag(&global_flags[1], SIP_PAGE2_DEBUG_CONSOLE)
-#define sipdebug_text			ast_test_flag(&global_flags[1], SIP_PAGE2_DEBUG_TEXT)
+#define sipdebug_text		ast_test_flag(&global_flags[1], SIP_PAGE2_DEBUG_TEXT)
 
 /*! \brief T38 States for a call */
 enum t38state {
@@ -911,8 +911,8 @@
 	{ REFER_NOAUTH,		"Failed - auth failure" }
 } ;
 
-/*! \brief Structure to handle SIP transfers. Dynamically allocated when needed  */
-/* OEJ: Should be moved to string fields */
+/*! \brief Structure to handle SIP transfers. Dynamically allocated when needed
+	\note OEJ: Should be moved to string fields */
 struct sip_refer {
 	char refer_to[AST_MAX_EXTENSION];		/*!< Place to store REFER-TO extension */
 	char refer_to_domain[AST_MAX_EXTENSION];	/*!< Place to store REFER-TO domain */
@@ -982,7 +982,7 @@
 	ast_group_t callgroup;			/*!< Call group */
 	ast_group_t pickupgroup;		/*!< Pickup group */
 	int lastinvite;				/*!< Last Cseq of invite */
-	struct ast_flags flags[3];		/*!< SIP_ flags */
+	struct ast_flags flags[2];		/*!< SIP_ flags */
 	int timer_t1;				/*!< SIP timer T1, ms rtt */
 	unsigned int sipoptions;		/*!< Supported SIP options on the other end */
 	struct ast_codec_pref prefs;		/*!< codec prefs */
@@ -1244,8 +1244,9 @@
 /*! \brief A per-thread temporary pvt structure */
 AST_THREADSTORAGE_CUSTOM(ts_temp_pvt, temp_pvt_init, temp_pvt_cleanup);
 
-/*! \todo Move the sip_auth list to AST_LIST */
-static struct sip_auth *authl = NULL;		/*!< Authentication list for realm authentication */
+/*! \breif Authentication list for realm authentication 
+ * \todo Move the sip_auth list to AST_LIST */
+static struct sip_auth *authl = NULL;
 
 
 /* --- Sockets and networking --------------*/
@@ -2442,12 +2443,13 @@
 	\return pointer to terminated stripped string
 	\param tmp input string that will be modified
 	Examples:
-
+\verbatim
 	"foo" <bar>	valid input, returns bar
 	foo		returns the whole string
 	< "foo ... >	returns the string between brackets
 	< "foo...	bogus (missing closing bracket), returns the whole string
 			XXX maybe should still skip the opening bracket
+\endverbatim
  */
 static char *get_in_brackets(char *tmp)
 {
@@ -2496,7 +2498,9 @@
  * Init pointers to empty string so we never get NULL dereferencing.
  * Overwrites the string.
  * return 0 on success, other values on error.
+ * \verbatim 
  * general form we are expecting is sip[s]:username[:password][;parameter]@host[:port][;...] 
+ * \endverbatim
  */
 static int parse_uri(char *uri, char *scheme,
 	char **ret_name, char **pass, char **domain, char **port, char **options)
@@ -3701,7 +3705,7 @@
 		if (option_debug)
 			ast_log(LOG_DEBUG, "This call was answered elsewhere");
 		append_history(p, "Cancel", "Call answered elsewhere");
-		ast_set_flag(&p->flags[2], SIP_DIALOG_ANSWEREDELSEWHERE);
+		ast_set_flag(&p->flags[0], SIP_DIALOG_ANSWEREDELSEWHERE);
 	}
 
 	if (ast_test_flag(&p->flags[0], SIP_DEFER_BYE_ON_TRANSFER)) {
@@ -5939,7 +5943,9 @@
 \note	If the client indicates that it wishes to know the port we received from,
 	it adds ;rport without an argument to the topmost via header. We need to
 	add the port number (from our point of view) to that parameter.
+\verbatim
 	We always add ;received=<ip address> to the topmost via header.
+\endverbatim
 	Received: RFC 3261, rport RFC 3581 */
 static int copy_via_headers(struct sip_pvt *p, struct sip_request *req, const struct sip_request *orig, const char *field)
 {
@@ -7459,7 +7465,11 @@
 
 /*! \brief Build REFER/INVITE/OPTIONS message and transmit it 
 	\param init 0 = Prepare request within dialog, 1= prepare request, new branch, 2= prepare new request and new dialog. do_proxy_auth calls this with init!=2
-	*/
+ \param p sip_pvt structure
+ \param sdp unknown 
+ \param sipmethod unknown 
+ 
+*/
 static int transmit_invite(struct sip_pvt *p, int sipmethod, int sdp, int init)
 {
 	struct sip_request req;
@@ -8218,7 +8228,7 @@
 		p->invitestate = INV_CONFIRMED;
 
 	reqprep(&resp, p, sipmethod, seqno, newbranch);
-	if (sipmethod == SIP_CANCEL && p->owner && ast_test_flag(&p->flags[2], SIP_DIALOG_ANSWEREDELSEWHERE)) 
+	if (sipmethod == SIP_CANCEL && p->owner && ast_test_flag(&p->flags[0], SIP_DIALOG_ANSWEREDELSEWHERE)) 
 		add_header(&resp, "Reason:", "SIP;cause=200;text=\"Call completed elsewhere\"");
 
 	add_header_contentLength(&resp, 0);
@@ -8956,10 +8966,12 @@
  * Terminate the uri at the first ';' or space.
  * Technically we should ignore escaped space per RFC3261 (19.1.1 etc)
  * but don't do it for the time being. Remember the uri format is:
+ *\verbatim
  *
  *	sip:user:password at host:port;uri-parameters?headers
  *	sips:user:password at host:port;uri-parameters?headers
  *
+ *\endverbatim
  */
 static char *terminate_uri(char *uri)
 {

Modified: team/oej/cancel_answer_elsewhere/channels/chan_skinny.c
URL: http://svn.digium.com/view/asterisk/team/oej/cancel_answer_elsewhere/channels/chan_skinny.c?view=diff&rev=68447&r1=68446&r2=68447
==============================================================================
--- team/oej/cancel_answer_elsewhere/channels/chan_skinny.c (original)
+++ team/oej/cancel_answer_elsewhere/channels/chan_skinny.c Fri Jun  8 02:48:03 2007
@@ -260,15 +260,20 @@
 #define START_TONE_MESSAGE 0x0082
 struct start_tone_message {
 	uint32_t tone;
+	uint32_t space[3];
 };
 
 #define STOP_TONE_MESSAGE 0x0083
+struct stop_tone_message {
+	uint32_t space[2];
+};
 
 #define SET_RINGER_MESSAGE 0x0085
 struct set_ringer_message {
 	uint32_t ringerMode;
 	uint32_t unknown1; /* See notes in transmit_ringer_mode */
 	uint32_t unknown2;
+	uint32_t space[2];
 };
 
 #define SET_LAMP_MESSAGE 0x0086
@@ -293,7 +298,7 @@
 struct media_qualifier {
 	uint32_t precedence;
 	uint32_t vad;
-	uint32_t packets;
+	uint16_t packets;
 	uint32_t bitRate;
 };
 
@@ -305,12 +310,14 @@
 	uint32_t packetSize;
 	uint32_t payloadType;
 	struct media_qualifier qualifier;
+	uint32_t space[16];
 };
 
 #define STOP_MEDIA_TRANSMISSION_MESSAGE 0x008B
 struct stop_media_transmission_message {
 	uint32_t conferenceId;
 	uint32_t passThruPartyId;
+	uint32_t space[3];
 };
 
 #define CALL_INFO_MESSAGE 0x008F
@@ -332,6 +339,7 @@
 	char calledPartyVoiceMailbox[24];
 	char originalCalledPartyVoiceMailbox[24];
 	char lastRedirectingVoiceMailbox[24];
+	uint32_t space[3];
 };
 
 #define SPEED_DIAL_STAT_RES_MESSAGE 0x0091
@@ -345,8 +353,8 @@
 struct line_stat_res_message {
 	uint32_t lineNumber;
 	char lineDirNumber[24];
-	char lineDisplayName[42];
-	uint32_t space;
+	char lineDisplayName[24];
+	uint32_t space[15];
 };
 
 #define DEFINETIMEDATE_MESSAGE 0x0094
@@ -431,7 +439,6 @@
 };
 
 #define CLEAR_NOTIFY_MESSAGE  0x0115
-#define CLEAR_PROMPT_MESSAGE  0x0113
 #define CLEAR_DISPLAY_MESSAGE 0x009A
 
 #define CAPABILITIES_REQ_MESSAGE 0x009B
@@ -467,12 +474,14 @@
 	uint32_t capability;
 	uint32_t echo;
 	uint32_t bitrate;
+	uint32_t space[16];
 };
 
 #define CLOSE_RECEIVE_CHANNEL_MESSAGE 0x0106
 struct close_receive_channel_message {
 	uint32_t conferenceId;
 	uint32_t partyId;
+	uint32_t space[2];
 };
 
 #define SOFT_KEY_TEMPLATE_RES_MESSAGE 0x0108
@@ -662,6 +671,7 @@
 	uint32_t callState;
 	uint32_t lineInstance;
 	uint32_t callReference;
+	uint32_t space[3];
 };
 
 #define DISPLAY_PROMPT_STATUS_MESSAGE 0x0112
@@ -670,6 +680,12 @@
 	char promptMessage[32];
 	uint32_t lineInstance;
 	uint32_t callReference;
+};
+
+#define CLEAR_PROMPT_MESSAGE  0x0113
+struct clear_prompt_message {
+       uint32_t lineInstance;
+       uint32_t callReference;
 };
 
 #define DISPLAY_NOTIFY_MESSAGE 0x0114
@@ -701,6 +717,7 @@
 	struct button_template_res_message buttontemplate;
 	struct displaytext_message displaytext;
 	struct display_prompt_status_message displaypromptstatus;
+	struct clear_prompt_message clearpromptstatus;
 	struct definetimedate_message definetimedate;
 	struct start_tone_message starttone;
 	struct speed_dial_stat_res_message speeddial;
@@ -929,7 +946,7 @@
 struct skinny_line {
 	ast_mutex_t lock;
 	char name[80];
-	char label[42];					/* Label that shows next to the line buttons */
+	char label[24];					/* Label that shows next to the line buttons */
 	char accountcode[AST_MAX_ACCOUNT_CODE];
 	char exten[AST_MAX_EXTENSION];			/* Extension where to start */
 	char context[AST_MAX_CONTEXT];
@@ -1598,7 +1615,7 @@
 		if (!(req = req_alloc(sizeof(struct start_tone_message), START_TONE_MESSAGE)))
 			return;
 	} else {
-		if (!(req = req_alloc(0, STOP_TONE_MESSAGE)))
+		if (!(req = req_alloc(sizeof(struct stop_tone_message), STOP_TONE_MESSAGE)))
 			return;
 	}
 
@@ -4330,6 +4347,8 @@
 		res = handle_speed_dial_stat_req_message(req, s);
 		break;
 	case LINE_STATE_REQ_MESSAGE:
+		if (skinnydebug)
+			ast_verbose("Received LineStatRequest\n");
 		res = handle_line_state_req_message(req, s);
 		break;
 	case TIME_DATE_REQ_MESSAGE:

Modified: team/oej/cancel_answer_elsewhere/channels/chan_zap.c
URL: http://svn.digium.com/view/asterisk/team/oej/cancel_answer_elsewhere/channels/chan_zap.c?view=diff&rev=68447&r1=68446&r2=68447
==============================================================================
--- team/oej/cancel_answer_elsewhere/channels/chan_zap.c (original)
+++ team/oej/cancel_answer_elsewhere/channels/chan_zap.c Fri Jun  8 02:48:03 2007
@@ -6938,7 +6938,6 @@
 {
 	int res;
 	pthread_t threadid;
-	pthread_attr_t attr;
 	struct ast_channel *chan;
 
 	/* Handle an event on a given channel for the monitor thread. */
@@ -7017,7 +7016,7 @@
 		case SIG_SF:
 				/* Check for callerid, digits, etc */
 				chan = zt_new(i, AST_STATE_RING, 0, SUB_REAL, 0, 0);
-				if (chan && ast_pthread_create(&threadid, &attr, ss_thread, chan)) {
+				if (chan && ast_pthread_create_detached(&threadid, NULL, ss_thread, chan)) {
 					ast_log(LOG_WARNING, "Unable to start simple switch thread on channel %d\n", i->channel);
 					res = tone_zone_play_tone(i->subs[SUB_REAL].zfd, ZT_TONE_CONGESTION);
 					if (res < 0)
@@ -7113,7 +7112,7 @@
 					    "CID detection on channel %d\n",
 					    i->channel);
 				chan = zt_new(i, AST_STATE_PRERING, 0, SUB_REAL, 0, 0);
-				if (chan && ast_pthread_create(&threadid, &attr, ss_thread, chan)) {
+				if (chan && ast_pthread_create_detached(&threadid, NULL, ss_thread, chan)) {
 					ast_log(LOG_WARNING, "Unable to start simple switch thread on channel %d\n", i->channel);
 				}
 			}

Modified: team/oej/cancel_answer_elsewhere/contrib/asterisk-ng-doxygen
URL: http://svn.digium.com/view/asterisk/team/oej/cancel_answer_elsewhere/contrib/asterisk-ng-doxygen?view=diff&rev=68447&r1=68446&r2=68447
==============================================================================
--- team/oej/cancel_answer_elsewhere/contrib/asterisk-ng-doxygen (original)
+++ team/oej/cancel_answer_elsewhere/contrib/asterisk-ng-doxygen Fri Jun  8 02:48:03 2007
@@ -1,4 +1,4 @@
-# Doxyfile 1.4.2
+# Doxyfile 1.5.2
 
 # This file describes the settings to be used by the documentation system
 # doxygen (www.doxygen.org) for a project
@@ -14,11 +14,24 @@
 # Project related configuration options
 #---------------------------------------------------------------------------
 
+# This tag specifies the encoding used for all characters in the config file that 
+# follow. The default is UTF-8 which is also the encoding used for all text before 
+# the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into 
+# libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of 
+# possible encodings.
+
+DOXYFILE_ENCODING      = UTF-8
+
 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
 # by quotes) that should identify the project.
 
 PROJECT_NAME           = "Asterisk - the Open Source PBX"
 
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
+# This could be handy for archiving the generated documentation or 
+# if some version control system is used.
+
+PROJECT_NUMBER         = 
 
 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
 # base path where the generated documentation will be put. 
@@ -40,23 +53,13 @@
 # documentation generated by doxygen is written. Doxygen will use this 
 # information to generate all constant output in the proper language. 
 # The default language is English, other supported languages are: 

[... 1224 lines stripped ...]


More information about the asterisk-commits mailing list