[svn-commits] branch oej/securertp-trunk r33372 - in /team/oej/securertp-trunk: ./ apps/ cd...

svn-commits at lists.digium.com svn-commits at lists.digium.com
Fri Jun 9 14:12:11 MST 2006


Author: oej
Date: Fri Jun  9 16:12:11 2006
New Revision: 33372

URL: http://svn.digium.com/view/asterisk?rev=33372&view=rev
Log:
Reset, resolve, go

Modified:
    team/oej/securertp-trunk/   (props changed)
    team/oej/securertp-trunk/abstract_jb.c
    team/oej/securertp-trunk/apps/app_followme.c
    team/oej/securertp-trunk/apps/app_voicemail.c
    team/oej/securertp-trunk/asterisk.c
    team/oej/securertp-trunk/cdr/cdr_csv.c
    team/oej/securertp-trunk/cdr/cdr_custom.c
    team/oej/securertp-trunk/cdr/cdr_radius.c
    team/oej/securertp-trunk/channels/chan_sip.c
    team/oej/securertp-trunk/codecs/gsm/src/preprocess.c
    team/oej/securertp-trunk/include/asterisk.h
    team/oej/securertp-trunk/include/asterisk/endian.h
    team/oej/securertp-trunk/include/asterisk/rtp.h
    team/oej/securertp-trunk/include/asterisk/stringfields.h
    team/oej/securertp-trunk/logger.c
    team/oej/securertp-trunk/pbx/Makefile
    team/oej/securertp-trunk/pbx/ael/ael.flex
    team/oej/securertp-trunk/pbx/ael/ael_lex.c
    team/oej/securertp-trunk/plc.c
    team/oej/securertp-trunk/res/res_musiconhold.c
    team/oej/securertp-trunk/rtp.c

Propchange: team/oej/securertp-trunk/
------------------------------------------------------------------------------
    automerge = http://edvina.net/training/

Propchange: team/oej/securertp-trunk/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Fri Jun  9 16:12:11 2006
@@ -1,1 +1,1 @@
-/trunk:1-33341
+/trunk:1-33370

Modified: team/oej/securertp-trunk/abstract_jb.c
URL: http://svn.digium.com/view/asterisk/team/oej/securertp-trunk/abstract_jb.c?rev=33372&r1=33371&r2=33372&view=diff
==============================================================================
--- team/oej/securertp-trunk/abstract_jb.c (original)
+++ team/oej/securertp-trunk/abstract_jb.c Fri Jun  9 16:12:11 2006
@@ -32,7 +32,6 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include <limits.h>
 
 #include "asterisk/frame.h"
 #include "asterisk/channel.h"

Modified: team/oej/securertp-trunk/apps/app_followme.c
URL: http://svn.digium.com/view/asterisk/team/oej/securertp-trunk/apps/app_followme.c?rev=33372&r1=33371&r2=33372&view=diff
==============================================================================
--- team/oej/securertp-trunk/apps/app_followme.c (original)
+++ team/oej/securertp-trunk/apps/app_followme.c Fri Jun  9 16:12:11 2006
@@ -92,12 +92,12 @@
 	unsigned int active;		/*!< Profile is active (1), or disabled (0). */
 	char takecall[20];		/*!< Digit mapping to take a call */
 	char nextindp[20];		/*!< Digit mapping to decline a call */
-	char callfromprompt[AST_CONFIG_MAX_PATH];
-	char norecordingprompt[AST_CONFIG_MAX_PATH];
-	char optionsprompt[AST_CONFIG_MAX_PATH];
-	char plsholdprompt[AST_CONFIG_MAX_PATH];
-	char statusprompt[AST_CONFIG_MAX_PATH];
-	char sorryprompt[AST_CONFIG_MAX_PATH];
+	char callfromprompt[PATH_MAX];
+	char norecordingprompt[PATH_MAX];
+	char optionsprompt[PATH_MAX];
+	char plsholdprompt[PATH_MAX];
+	char statusprompt[PATH_MAX];
+	char sorryprompt[PATH_MAX];
 
 	AST_LIST_HEAD_NOLOCK(numbers, number) numbers;	   /*!< Head of the list of follow-me numbers */
 	AST_LIST_HEAD_NOLOCK(blnumbers, number) blnumbers; /*!< Head of the list of black-listed numbers */
@@ -115,12 +115,12 @@
 	struct ast_channel *outbound;
 	char takecall[20];		/*!< Digit mapping to take a call */
 	char nextindp[20];		/*!< Digit mapping to decline a call */
-	char callfromprompt[AST_CONFIG_MAX_PATH];
-	char norecordingprompt[AST_CONFIG_MAX_PATH];
-	char optionsprompt[AST_CONFIG_MAX_PATH];
-	char plsholdprompt[AST_CONFIG_MAX_PATH];
-	char statusprompt[AST_CONFIG_MAX_PATH];
-	char sorryprompt[AST_CONFIG_MAX_PATH];
+	char callfromprompt[PATH_MAX];
+	char norecordingprompt[PATH_MAX];
+	char optionsprompt[PATH_MAX];
+	char plsholdprompt[PATH_MAX];
+	char statusprompt[PATH_MAX];
+	char sorryprompt[PATH_MAX];
 	struct ast_flags followmeflags;
 };
 
@@ -156,12 +156,12 @@
 static const char *defaultmoh = "default";    	/*!< Default Music-On-Hold Class */
 
 static char takecall[20] = "1", nextindp[20] = "2";
-static char callfromprompt[AST_CONFIG_MAX_PATH] = "followme/call-from";
-static char norecordingprompt[AST_CONFIG_MAX_PATH] = "followme/no-recording";
-static char optionsprompt[AST_CONFIG_MAX_PATH] = "followme/followme-options";
-static char plsholdprompt[AST_CONFIG_MAX_PATH] = "followme/pls-hold-while-try";
-static char statusprompt[AST_CONFIG_MAX_PATH] = "followme/followme-status";
-static char sorryprompt[AST_CONFIG_MAX_PATH] = "followme/followme-sorry";
+static char callfromprompt[PATH_MAX] = "followme/call-from";
+static char norecordingprompt[PATH_MAX] = "followme/no-recording";
+static char optionsprompt[PATH_MAX] = "followme/followme-options";
+static char plsholdprompt[PATH_MAX] = "followme/pls-hold-while-try";
+static char statusprompt[PATH_MAX] = "followme/followme-status";
+static char sorryprompt[PATH_MAX] = "followme/followme-sorry";
 
 
 static AST_LIST_HEAD_STATIC(followmes, ast_call_followme);

Modified: team/oej/securertp-trunk/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/team/oej/securertp-trunk/apps/app_voicemail.c?rev=33372&r1=33371&r2=33372&view=diff
==============================================================================
--- team/oej/securertp-trunk/apps/app_voicemail.c (original)
+++ team/oej/securertp-trunk/apps/app_voicemail.c Fri Jun  9 16:12:11 2006
@@ -309,7 +309,7 @@
 #define DELETE(a,b,c) (vm_delete(c))
 #endif
 
-static char VM_SPOOL_DIR[AST_CONFIG_MAX_PATH];
+static char VM_SPOOL_DIR[PATH_MAX];
 
 static char ext_pass_cmd[128];
 
@@ -651,8 +651,8 @@
 	char inbuf[256];
 	char orig[256];
 	char currcontext[256] ="";
-	char tmpin[AST_CONFIG_MAX_PATH];
-	char tmpout[AST_CONFIG_MAX_PATH];
+	char tmpin[PATH_MAX];
+	char tmpout[PATH_MAX];
 	struct stat statbuf;
 
 	if (!change_password_realtime(vmu, newpassword))

Modified: team/oej/securertp-trunk/asterisk.c
URL: http://svn.digium.com/view/asterisk/team/oej/securertp-trunk/asterisk.c?rev=33372&r1=33371&r2=33372&view=diff
==============================================================================
--- team/oej/securertp-trunk/asterisk.c (original)
+++ team/oej/securertp-trunk/asterisk.c Fri Jun  9 16:12:11 2006
@@ -199,26 +199,26 @@
 static int ast_el_read_history(char *);
 static int ast_el_write_history(char *);
 
-char ast_config_AST_CONFIG_DIR[AST_CONFIG_MAX_PATH];
-char ast_config_AST_CONFIG_FILE[AST_CONFIG_MAX_PATH];
-char ast_config_AST_MODULE_DIR[AST_CONFIG_MAX_PATH];
-char ast_config_AST_SPOOL_DIR[AST_CONFIG_MAX_PATH];
-char ast_config_AST_MONITOR_DIR[AST_CONFIG_MAX_PATH];
-char ast_config_AST_VAR_DIR[AST_CONFIG_MAX_PATH];
-char ast_config_AST_DATA_DIR[AST_CONFIG_MAX_PATH];
-char ast_config_AST_LOG_DIR[AST_CONFIG_MAX_PATH];
-char ast_config_AST_AGI_DIR[AST_CONFIG_MAX_PATH];
-char ast_config_AST_DB[AST_CONFIG_MAX_PATH];
-char ast_config_AST_KEY_DIR[AST_CONFIG_MAX_PATH];
-char ast_config_AST_PID[AST_CONFIG_MAX_PATH];
-char ast_config_AST_SOCKET[AST_CONFIG_MAX_PATH];
-char ast_config_AST_RUN_DIR[AST_CONFIG_MAX_PATH];
-char ast_config_AST_RUN_USER[AST_CONFIG_MAX_PATH];
-char ast_config_AST_RUN_GROUP[AST_CONFIG_MAX_PATH];
-char ast_config_AST_CTL_PERMISSIONS[AST_CONFIG_MAX_PATH];
-char ast_config_AST_CTL_OWNER[AST_CONFIG_MAX_PATH] = "\0";
-char ast_config_AST_CTL_GROUP[AST_CONFIG_MAX_PATH] = "\0";
-char ast_config_AST_CTL[AST_CONFIG_MAX_PATH] = "asterisk.ctl";
+char ast_config_AST_CONFIG_DIR[PATH_MAX];
+char ast_config_AST_CONFIG_FILE[PATH_MAX];
+char ast_config_AST_MODULE_DIR[PATH_MAX];
+char ast_config_AST_SPOOL_DIR[PATH_MAX];
+char ast_config_AST_MONITOR_DIR[PATH_MAX];
+char ast_config_AST_VAR_DIR[PATH_MAX];
+char ast_config_AST_DATA_DIR[PATH_MAX];
+char ast_config_AST_LOG_DIR[PATH_MAX];
+char ast_config_AST_AGI_DIR[PATH_MAX];
+char ast_config_AST_DB[PATH_MAX];
+char ast_config_AST_KEY_DIR[PATH_MAX];
+char ast_config_AST_PID[PATH_MAX];
+char ast_config_AST_SOCKET[PATH_MAX];
+char ast_config_AST_RUN_DIR[PATH_MAX];
+char ast_config_AST_RUN_USER[PATH_MAX];
+char ast_config_AST_RUN_GROUP[PATH_MAX];
+char ast_config_AST_CTL_PERMISSIONS[PATH_MAX];
+char ast_config_AST_CTL_OWNER[PATH_MAX] = "\0";
+char ast_config_AST_CTL_GROUP[PATH_MAX] = "\0";
+char ast_config_AST_CTL[PATH_MAX] = "asterisk.ctl";
 char ast_config_AST_SYSTEM_NAME[20] = "";
 
 extern const char *ast_build_hostname;
@@ -657,7 +657,7 @@
 		/* Close file descriptors and launch system command */
 		for (x = STDERR_FILENO + 1; x < 4096; x++)
 			close(x);
-		execl("/bin/sh", "/bin/sh", "-c", s, NULL);
+		execl("/bin/sh", "/bin/sh", "-c", s, (char *) NULL);
 		exit(1);
 	} else if (pid > 0) {
 		for(;;) {

Modified: team/oej/securertp-trunk/cdr/cdr_csv.c
URL: http://svn.digium.com/view/asterisk/team/oej/securertp-trunk/cdr/cdr_csv.c?rev=33372&r1=33371&r2=33372&view=diff
==============================================================================
--- team/oej/securertp-trunk/cdr/cdr_csv.c (original)
+++ team/oej/securertp-trunk/cdr/cdr_csv.c Fri Jun  9 16:12:11 2006
@@ -261,7 +261,7 @@
 
 static int writefile(char *s, char *acc)
 {
-	char tmp[AST_CONFIG_MAX_PATH];
+	char tmp[PATH_MAX];
 	FILE *f;
 	if (strchr(acc, '/') || (acc[0] == '.')) {
 		ast_log(LOG_WARNING, "Account code '%s' insecure for writing file\n", acc);
@@ -282,7 +282,7 @@
 {
 	/* Make sure we have a big enough buf */
 	char buf[1024];
-	char csvmaster[AST_CONFIG_MAX_PATH];
+	char csvmaster[PATH_MAX];
 	snprintf(csvmaster, sizeof(csvmaster),"%s/%s/%s", ast_config_AST_LOG_DIR, CSV_LOG_DIR, CSV_MASTER);
 #if 0
 	printf("[CDR] %s ('%s' -> '%s') Dur: %ds Bill: %ds Disp: %s Flags: %s Account: [%s]\n", cdr->channel, cdr->src, cdr->dst, cdr->duration, cdr->billsec, ast_cdr_disp2str(cdr->disposition), ast_cdr_flags2str(cdr->amaflags), cdr->accountcode);

Modified: team/oej/securertp-trunk/cdr/cdr_custom.c
URL: http://svn.digium.com/view/asterisk/team/oej/securertp-trunk/cdr/cdr_custom.c?rev=33372&r1=33371&r2=33372&view=diff
==============================================================================
--- team/oej/securertp-trunk/cdr/cdr_custom.c (original)
+++ team/oej/securertp-trunk/cdr/cdr_custom.c Fri Jun  9 16:12:11 2006
@@ -63,7 +63,7 @@
 
 static FILE *mf = NULL;
 
-static char master[AST_CONFIG_MAX_PATH];
+static char master[PATH_MAX];
 static char format[1024]="";
 
 static int load_config(int reload) 

Modified: team/oej/securertp-trunk/cdr/cdr_radius.c
URL: http://svn.digium.com/view/asterisk/team/oej/securertp-trunk/cdr/cdr_radius.c?rev=33372&r1=33371&r2=33372&view=diff
==============================================================================
--- team/oej/securertp-trunk/cdr/cdr_radius.c (original)
+++ team/oej/securertp-trunk/cdr/cdr_radius.c Fri Jun  9 16:12:11 2006
@@ -88,7 +88,7 @@
 static char *name = "radius";
 static char *cdr_config = "cdr.conf";
 
-static char radiuscfg[AST_CONFIG_MAX_PATH] = "/etc/radiusclient-ng/radiusclient.conf";
+static char radiuscfg[PATH_MAX] = "/etc/radiusclient-ng/radiusclient.conf";
 
 static struct ast_flags global_flags = { RADIUS_FLAG_USEGMTIME | RADIUS_FLAG_LOGUNIQUEID | RADIUS_FLAG_LOGUSERFIELD };
 

Modified: team/oej/securertp-trunk/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/team/oej/securertp-trunk/channels/chan_sip.c?rev=33372&r1=33371&r2=33372&view=diff
==============================================================================
--- team/oej/securertp-trunk/channels/chan_sip.c (original)
+++ team/oej/securertp-trunk/channels/chan_sip.c Fri Jun  9 16:12:11 2006
@@ -1730,6 +1730,8 @@
 	if (p->owner) {
 		ast_log(LOG_WARNING, "Autodestruct on dialog '%s' with owner in place (Method: %s)\n", p->callid, sip_methods[p->method].text);
 		ast_queue_hangup(p->owner);
+	} else if (p->refer) {
+		transmit_request_with_auth(p, SIP_BYE, 0, XMIT_RELIABLE, 1);
 	} else {
 		sip_destroy(p);
 	}
@@ -2921,12 +2923,13 @@
 
 	if (ast_test_flag(&p->flags[0], SIP_DEFER_BYE_ON_TRANSFER)) {
 		if (option_debug >3)
-			ast_log(LOG_DEBUG, "SIP Transfer: Not hanging up right now... Rescheduling hangup.\n");
+			ast_log(LOG_DEBUG, "SIP Transfer: Not hanging up right now... Rescheduling hangup for %s.\n", p->callid);
 		if (p->autokillid > -1)
 			sip_cancel_destroy(p);
 		sip_scheddestroy(p, 32000);
 		ast_clear_flag(&p->flags[0], SIP_DEFER_BYE_ON_TRANSFER);	/* Really hang up next time */
 		ast_clear_flag(&p->flags[0], SIP_NEEDDESTROY);
+		p->owner->tech_pvt = NULL;
 		p->owner = NULL;  /* Owner will be gone after we return, so take it away */
 		return 0;
 	}
@@ -3144,7 +3147,7 @@
 
 	ast_mutex_lock(&p->lock);
 	append_history(p, "Masq", "Old channel: %s\n", oldchan->name);
-	append_history(p, "Masq (cont)", "...new owner: %s\n", p->owner->name);
+	append_history(p, "Masq (cont)", "...new owner: %s\n", newchan->name);
 	if (p->owner != oldchan)
 		ast_log(LOG_WARNING, "old channel wasn't %p but was %p\n", oldchan, p->owner);
 	else {
@@ -3153,16 +3156,6 @@
 	}
 	if (option_debug > 2)
 		ast_log(LOG_DEBUG, "SIP Fixup: New owner for dialogue %s: %s (Old parent: %s)\n", p->callid, p->owner->name, oldchan->name);
-	if (p->refer) {
-		if (option_debug > 2) {
-			if (oldchan->tech_pvt) {
-				struct sip_pvt *old = oldchan->tech_pvt;
-				ast_log(LOG_DEBUG, "Releasing connection between %s and pvt %s\n", oldchan->name, old->callid);
-			} else
-				ast_log(LOG_DEBUG, "Hmmm. No sip_pvt to release for %s\n", oldchan->name);
-		}
-		oldchan->tech_pvt = NULL;	/* Release connection between old channel and it's pvt so we can hang up in peace */
-	}
 
 	ast_mutex_unlock(&p->lock);
 	return ret;
@@ -10968,15 +10961,17 @@
 				/* They got the notify, this is the end */
 				if (p->owner) {
 					if (!p->refer) {
-						ast_log(LOG_WARNING, "Notify answer on an owned channel?\n");
+						ast_log(LOG_WARNING, "Notify answer on an owned channel? - %s\n", p->owner->name);
 						ast_queue_hangup(p->owner);
 					}
 				} else {
 					if (p->subscribed == NONE) 
 						ast_set_flag(&p->flags[0], SIP_NEEDDESTROY); 
 				}
-			} else if (sipmethod == SIP_REGISTER)
+			} else if (sipmethod == SIP_REGISTER) 
 				res = handle_response_register(p, resp, rest, req, ignore, seqno);
+			else if (sipmethod == SIP_BYE)
+				ast_set_flag(&p->flags[0], SIP_NEEDDESTROY); 
 			break;
 		case 202:   /* Transfer accepted */
 			if (sipmethod == SIP_REFER) 
@@ -11171,7 +11166,7 @@
 		if (ast_test_flag(req, SIP_PKT_DEBUG))
 			ast_verbose("SIP Response message for INCOMING dialog %s arrived\n", msg);
 
-		if (resp == 200) {
+		if (sipmethod == SIP_INVITE && resp == 200) {
 			/* Tags in early session is replaced by the tag in 200 OK, which is 
 		  	the final reply to our INVITE */
 			char tag[128];
@@ -11191,14 +11186,16 @@
 				/* They got the notify, this is the end */
 				if (p->owner) {
 					ast_log(LOG_WARNING, "Notify answer on an owned channel?\n");
-					ast_queue_hangup(p->owner);
+					//ast_queue_hangup(p->owner);
 				} else {
-					if (!p->subscribed)
+					if (!p->subscribed && !p->refer)
 						ast_set_flag(&p->flags[0], SIP_NEEDDESTROY);	
 				}
-				/* Wait for 487, then destroy */
-			} else if (sipmethod == SIP_MESSAGE)
+			} else if (sipmethod == SIP_BYE)
+				ast_set_flag(&p->flags[0], SIP_NEEDDESTROY);	
+			else if (sipmethod == SIP_MESSAGE)
 				/* We successfully transmitted a message */
+				/* XXX Why destroy this pvt after message transfer? Bad */
 				ast_set_flag(&p->flags[0], SIP_NEEDDESTROY);	
 			break;
 		case 202:   /* Transfer accepted */
@@ -11226,6 +11223,8 @@
 			if (sipmethod == SIP_INVITE) {
 				/* Re-invite failed */
 				handle_response_invite(p, resp, rest, req, seqno);
+			} else if (sipmethod == SIP_BYE) {
+				ast_set_flag(&p->flags[0], SIP_NEEDDESTROY);	
 			} else if (sipdebug) {
 				ast_log	(LOG_DEBUG, "Remote host can't match request %s to call '%s'. Giving up\n", sip_methods[sipmethod].text, p->callid);
 			}

Modified: team/oej/securertp-trunk/codecs/gsm/src/preprocess.c
URL: http://svn.digium.com/view/asterisk/team/oej/securertp-trunk/codecs/gsm/src/preprocess.c?rev=33372&r1=33371&r2=33372&view=diff
==============================================================================
--- team/oej/securertp-trunk/codecs/gsm/src/preprocess.c (original)
+++ team/oej/securertp-trunk/codecs/gsm/src/preprocess.c Fri Jun  9 16:12:11 2006
@@ -36,19 +36,13 @@
 	word		 * s,
 	word 		 * so )		/* [0..159] 	IN/OUT	*/
 {
-
-	word       z1 = S->z1;
-	longword L_z2 = S->L_z2;
-	word 	   mp = S->mp;
-
+	word       	z1 = S->z1;
+	longword 	L_z2 = S->L_z2;
+	word 	   	mp = S->mp;
 	word 	   	s1;
-
-
 	word		SO;
-
 	ulongword	utmp;		/* for L_ADD */
-
-	register int		k = 160;
+	register int	k = 160;
 
 	while (k--) {
 

Modified: team/oej/securertp-trunk/include/asterisk.h
URL: http://svn.digium.com/view/asterisk/team/oej/securertp-trunk/include/asterisk.h?rev=33372&r1=33371&r2=33372&view=diff
==============================================================================
--- team/oej/securertp-trunk/include/asterisk.h (original)
+++ team/oej/securertp-trunk/include/asterisk.h Fri Jun  9 16:12:11 2006
@@ -22,32 +22,32 @@
 
 #include "asterisk/compat.h"
 
+#include <limits.h>
+
 #define DEFAULT_LANGUAGE "en"
 
 #define DEFAULT_SAMPLE_RATE 8000
 #define DEFAULT_SAMPLES_PER_MS  ((DEFAULT_SAMPLE_RATE)/1000)
 
-#define AST_CONFIG_MAX_PATH 255
-
 /* provided in asterisk.c */
-extern char ast_config_AST_CONFIG_DIR[AST_CONFIG_MAX_PATH];
-extern char ast_config_AST_CONFIG_FILE[AST_CONFIG_MAX_PATH];
-extern char ast_config_AST_MODULE_DIR[AST_CONFIG_MAX_PATH];
-extern char ast_config_AST_SPOOL_DIR[AST_CONFIG_MAX_PATH];
-extern char ast_config_AST_MONITOR_DIR[AST_CONFIG_MAX_PATH];
-extern char ast_config_AST_VAR_DIR[AST_CONFIG_MAX_PATH];
-extern char ast_config_AST_DATA_DIR[AST_CONFIG_MAX_PATH];
-extern char ast_config_AST_LOG_DIR[AST_CONFIG_MAX_PATH];
-extern char ast_config_AST_AGI_DIR[AST_CONFIG_MAX_PATH];
-extern char ast_config_AST_DB[AST_CONFIG_MAX_PATH];
-extern char ast_config_AST_KEY_DIR[AST_CONFIG_MAX_PATH];
-extern char ast_config_AST_PID[AST_CONFIG_MAX_PATH];
-extern char ast_config_AST_SOCKET[AST_CONFIG_MAX_PATH];
-extern char ast_config_AST_RUN_DIR[AST_CONFIG_MAX_PATH];
-extern char ast_config_AST_CTL_PERMISSIONS[AST_CONFIG_MAX_PATH];
-extern char ast_config_AST_CTL_OWNER[AST_CONFIG_MAX_PATH];
-extern char ast_config_AST_CTL_GROUP[AST_CONFIG_MAX_PATH];
-extern char ast_config_AST_CTL[AST_CONFIG_MAX_PATH];
+extern char ast_config_AST_CONFIG_DIR[PATH_MAX];
+extern char ast_config_AST_CONFIG_FILE[PATH_MAX];
+extern char ast_config_AST_MODULE_DIR[PATH_MAX];
+extern char ast_config_AST_SPOOL_DIR[PATH_MAX];
+extern char ast_config_AST_MONITOR_DIR[PATH_MAX];
+extern char ast_config_AST_VAR_DIR[PATH_MAX];
+extern char ast_config_AST_DATA_DIR[PATH_MAX];
+extern char ast_config_AST_LOG_DIR[PATH_MAX];
+extern char ast_config_AST_AGI_DIR[PATH_MAX];
+extern char ast_config_AST_DB[PATH_MAX];
+extern char ast_config_AST_KEY_DIR[PATH_MAX];
+extern char ast_config_AST_PID[PATH_MAX];
+extern char ast_config_AST_SOCKET[PATH_MAX];
+extern char ast_config_AST_RUN_DIR[PATH_MAX];
+extern char ast_config_AST_CTL_PERMISSIONS[PATH_MAX];
+extern char ast_config_AST_CTL_OWNER[PATH_MAX];
+extern char ast_config_AST_CTL_GROUP[PATH_MAX];
+extern char ast_config_AST_CTL[PATH_MAX];
 extern char ast_config_AST_SYSTEM_NAME[20];
 
 int ast_set_priority(int);			/*!< Provided by asterisk.c */

Modified: team/oej/securertp-trunk/include/asterisk/endian.h
URL: http://svn.digium.com/view/asterisk/team/oej/securertp-trunk/include/asterisk/endian.h?rev=33372&r1=33371&r2=33372&view=diff
==============================================================================
--- team/oej/securertp-trunk/include/asterisk/endian.h (original)
+++ team/oej/securertp-trunk/include/asterisk/endian.h Fri Jun  9 16:12:11 2006
@@ -33,9 +33,6 @@
 #ifdef __linux__
 #include <endian.h>
 #elif defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__APPLE__)
-#if defined(__OpenBSD__)
-#include <machine/types.h>
-#endif /* __OpenBSD__ */
 #include <machine/endian.h>
 #define __BYTE_ORDER BYTE_ORDER
 #define __LITTLE_ENDIAN LITTLE_ENDIAN

Modified: team/oej/securertp-trunk/include/asterisk/rtp.h
URL: http://svn.digium.com/view/asterisk/team/oej/securertp-trunk/include/asterisk/rtp.h?rev=33372&r1=33371&r2=33372&view=diff
==============================================================================
--- team/oej/securertp-trunk/include/asterisk/rtp.h (original)
+++ team/oej/securertp-trunk/include/asterisk/rtp.h Fri Jun  9 16:12:11 2006
@@ -133,13 +133,6 @@
 };
 
 
-/*! \brief The value of each payload format mapping: */
-struct rtpPayloadType {
-	int isAstFormat; 	/*!< whether the following code is an AST_FORMAT */
-	int code;
-};
-
-/*!
  * \brief Get the amount of space required to hold an RTP session
  * \return number of bytes required
  */

Modified: team/oej/securertp-trunk/include/asterisk/stringfields.h
URL: http://svn.digium.com/view/asterisk/team/oej/securertp-trunk/include/asterisk/stringfields.h?rev=33372&r1=33371&r2=33372&view=diff
==============================================================================
--- team/oej/securertp-trunk/include/asterisk/stringfields.h (original)
+++ team/oej/securertp-trunk/include/asterisk/stringfields.h Fri Jun  9 16:12:11 2006
@@ -171,7 +171,7 @@
   \brief Declare a string field
   \param name The field name
 */
-#define AST_STRING_FIELD(name) const ast_string_field name;
+#define AST_STRING_FIELD(name) const ast_string_field name
 
 /*!
   \brief Declare the fields needed in a structure
@@ -181,7 +181,7 @@
 	ast_string_field __begin_field[0]; \
 	field_list \
 	ast_string_field __end_field[0]; \
-	struct ast_string_field_mgr __field_mgr;
+	struct ast_string_field_mgr __field_mgr
 
 /*!
   \brief Get the number of string fields in a structure

Modified: team/oej/securertp-trunk/logger.c
URL: http://svn.digium.com/view/asterisk/team/oej/securertp-trunk/logger.c?rev=33372&r1=33371&r2=33372&view=diff
==============================================================================
--- team/oej/securertp-trunk/logger.c (original)
+++ team/oej/securertp-trunk/logger.c Fri Jun  9 16:12:11 2006
@@ -378,8 +378,8 @@
 
 int reload_logger(int rotate)
 {
-	char old[AST_CONFIG_MAX_PATH] = "";
-	char new[AST_CONFIG_MAX_PATH];
+	char old[PATH_MAX] = "";
+	char new[PATH_MAX];
 	int event_rotate = rotate, queue_rotate = rotate;
 	struct logchannel *f;
 	FILE *myf;

Modified: team/oej/securertp-trunk/pbx/Makefile
URL: http://svn.digium.com/view/asterisk/team/oej/securertp-trunk/pbx/Makefile?rev=33372&r1=33371&r2=33372&view=diff
==============================================================================
--- team/oej/securertp-trunk/pbx/Makefile (original)
+++ team/oej/securertp-trunk/pbx/Makefile Fri Jun  9 16:12:11 2006
@@ -65,7 +65,7 @@
 	$(CC) $(CFLAGS) -I. -c -o ael/aelbison.o ael/ael.tab.c
 
 ael/ael_lex.c:
-	(cd ael; flex ael.flex)
+	(cd ael; flex ael.flex; sed -i -e "/begin standard C headers/i#include \"asterisk.h\"" ael_lex.c)
 
 ael/ael.tab.c ael/ael.tab.h:
 	(cd ael; bison -v -d ael.y)

Modified: team/oej/securertp-trunk/pbx/ael/ael.flex
URL: http://svn.digium.com/view/asterisk/team/oej/securertp-trunk/pbx/ael/ael.flex?rev=33372&r1=33371&r2=33372&view=diff
==============================================================================
--- team/oej/securertp-trunk/pbx/ael/ael.flex (original)
+++ team/oej/securertp-trunk/pbx/ael/ael.flex Fri Jun  9 16:12:11 2006
@@ -56,8 +56,6 @@
 %option bison-locations
 
 %{
-#include "asterisk.h"
-
 ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 
 #include <sys/types.h>
@@ -65,6 +63,7 @@
 #include <unistd.h>
 
 #include "asterisk/logger.h"
+#include "asterisk/utils.h"
 #include "ael/ael.tab.h"
 #include "asterisk/ael_structs.h"
 
@@ -402,13 +401,10 @@
 		if ( !error ) {	/* valid file name */
 			*p2 = 0;
 			/* relative vs. absolute */
-			if ( *(p1+1) != '/' ) {
-				/* XXX must check overflows */
-				strcpy(fnamebuf,ast_config_AST_CONFIG_DIR);
-				strcat(fnamebuf,"/");
-				strcat(fnamebuf,p1+1);
-			} else
-				strcpy(fnamebuf,p1+1);
+			if (*(p1+1) != '/')
+				snprintf(fnamebuf, sizeof(fnamebuf), "%s/%s", ast_config_AST_CONFIG_DIR, p1 + 1);
+			else
+				ast_copy_string(fnamebuf, p1 + 1, sizeof(fnamebuf));
 			in1 = fopen( fnamebuf, "r" );
 			if ( ! in1 ) {
 				ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Couldn't find the include file: %s; ignoring the Include directive!\n", my_file, my_lineno, my_col, fnamebuf);

Modified: team/oej/securertp-trunk/pbx/ael/ael_lex.c
URL: http://svn.digium.com/view/asterisk/team/oej/securertp-trunk/pbx/ael/ael_lex.c?rev=33372&r1=33371&r2=33372&view=diff
==============================================================================
--- team/oej/securertp-trunk/pbx/ael/ael_lex.c (original)
+++ team/oej/securertp-trunk/pbx/ael/ael_lex.c Fri Jun  9 16:12:11 2006
@@ -16,6 +16,7 @@
 
 /* First, we deal with  platform-specific or compiler-specific issues. */
 
+#include "asterisk.h"
 /* begin standard C headers. */
 #include <stdio.h>
 #include <string.h>
@@ -672,8 +673,6 @@
  * bison-locations is probably not needed.
  */
 #line 59 "ael.flex"
-#include "asterisk.h"
-
 ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 
 #include <sys/types.h>
@@ -681,6 +680,7 @@
 #include <unistd.h>
 
 #include "asterisk/logger.h"
+#include "asterisk/utils.h"
 #include "ael/ael.tab.h"
 #include "asterisk/ael_structs.h"
 
@@ -778,7 +778,7 @@
 #define	STORE_POS
 #define	STORE_LOC
 #endif
-#line 779 "ael_lex.c"
+#line 781 "ael_lex.c"
 
 #define INITIAL 0
 #define paren 1
@@ -1018,10 +1018,10 @@
 	register int yy_act;
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 
-#line 171 "ael.flex"
-
-
-#line 1022 "ael_lex.c"
+#line 173 "ael.flex"
+
+
+#line 1024 "ael_lex.c"
 
     yylval = yylval_param;
 
@@ -1112,218 +1112,218 @@
 
 case 1:
 YY_RULE_SETUP
-#line 173 "ael.flex"
+#line 175 "ael.flex"
 { STORE_POS; return LC;}
 	YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 174 "ael.flex"
+#line 176 "ael.flex"
 { STORE_POS; return RC;}
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 175 "ael.flex"
+#line 177 "ael.flex"
 { STORE_POS; return LP;}
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 176 "ael.flex"
+#line 178 "ael.flex"
 { STORE_POS; return RP;}
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 177 "ael.flex"
+#line 179 "ael.flex"
 { STORE_POS; return SEMI;}
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 178 "ael.flex"
+#line 180 "ael.flex"
 { STORE_POS; return EQ;}
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 179 "ael.flex"
+#line 181 "ael.flex"
 { STORE_POS; return COMMA;}
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 180 "ael.flex"
+#line 182 "ael.flex"
 { STORE_POS; return COLON;}
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 181 "ael.flex"
+#line 183 "ael.flex"
 { STORE_POS; return AMPER;}
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 182 "ael.flex"
+#line 184 "ael.flex"
 { STORE_POS; return BAR;}
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 183 "ael.flex"
+#line 185 "ael.flex"
 { STORE_POS; return EXTENMARK;}
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 184 "ael.flex"
+#line 186 "ael.flex"
 { STORE_POS; return AT;}
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 185 "ael.flex"
+#line 187 "ael.flex"
 {/*comment*/}
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 186 "ael.flex"
+#line 188 "ael.flex"
 { STORE_POS; return KW_CONTEXT;}
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 187 "ael.flex"
+#line 189 "ael.flex"
 { STORE_POS; return KW_ABSTRACT;}
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 188 "ael.flex"
+#line 190 "ael.flex"
 { STORE_POS; return KW_MACRO;};
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 189 "ael.flex"
+#line 191 "ael.flex"
 { STORE_POS; return KW_GLOBALS;}
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 190 "ael.flex"
+#line 192 "ael.flex"
 { STORE_POS; return KW_IGNOREPAT;}
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 191 "ael.flex"
+#line 193 "ael.flex"
 { STORE_POS; return KW_SWITCH;}
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 192 "ael.flex"
+#line 194 "ael.flex"
 { STORE_POS; return KW_IF;}
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 193 "ael.flex"
+#line 195 "ael.flex"
 { STORE_POS; return KW_IFTIME;}
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 194 "ael.flex"
+#line 196 "ael.flex"
 { STORE_POS; return KW_RANDOM;}
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 195 "ael.flex"
+#line 197 "ael.flex"
 { STORE_POS; return KW_REGEXTEN;}
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 196 "ael.flex"
+#line 198 "ael.flex"
 { STORE_POS; return KW_HINT;}
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 197 "ael.flex"
+#line 199 "ael.flex"
 { STORE_POS; return KW_ELSE;}
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 198 "ael.flex"
+#line 200 "ael.flex"
 { STORE_POS; return KW_GOTO;}
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 199 "ael.flex"
+#line 201 "ael.flex"
 { STORE_POS; return KW_JUMP;}
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 200 "ael.flex"
+#line 202 "ael.flex"
 { STORE_POS; return KW_RETURN;}
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 201 "ael.flex"
+#line 203 "ael.flex"
 { STORE_POS; return KW_BREAK;}
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 202 "ael.flex"
+#line 204 "ael.flex"
 { STORE_POS; return KW_CONTINUE;}
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 203 "ael.flex"
+#line 205 "ael.flex"
 { STORE_POS; return KW_FOR;}
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 204 "ael.flex"
+#line 206 "ael.flex"
 { STORE_POS; return KW_WHILE;}
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 205 "ael.flex"
+#line 207 "ael.flex"
 { STORE_POS; return KW_CASE;}
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 206 "ael.flex"
+#line 208 "ael.flex"
 { STORE_POS; return KW_DEFAULT;}
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 207 "ael.flex"
+#line 209 "ael.flex"
 { STORE_POS; return KW_PATTERN;}
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 208 "ael.flex"
+#line 210 "ael.flex"
 { STORE_POS; return KW_CATCH;}
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 209 "ael.flex"
+#line 211 "ael.flex"
 { STORE_POS; return KW_SWITCHES;}
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 210 "ael.flex"
+#line 212 "ael.flex"
 { STORE_POS; return KW_ESWITCHES;}
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 211 "ael.flex"
+#line 213 "ael.flex"
 { STORE_POS; return KW_INCLUDES;}
 	YY_BREAK
 case 40:
 /* rule 40 can match eol */
 YY_RULE_SETUP
-#line 213 "ael.flex"
+#line 215 "ael.flex"
 { my_lineno++; my_col = 1; }
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 214 "ael.flex"
+#line 216 "ael.flex"
 { my_col += yyleng; }
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 215 "ael.flex"
+#line 217 "ael.flex"
 { my_col += (yyleng*8)-(my_col%8); }
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 217 "ael.flex"
+#line 219 "ael.flex"
 {
 		STORE_POS;
 		yylval->str = strdup(yytext);
@@ -1341,7 +1341,7 @@
 case 44:
 /* rule 44 can match eol */
 YY_RULE_SETUP
-#line 233 "ael.flex"
+#line 235 "ael.flex"
 {
 		if ( pbcpop(')') ) {	/* error */
 			STORE_LOC;
@@ -1367,7 +1367,7 @@
 case 45:
 /* rule 45 can match eol */
 YY_RULE_SETUP
-#line 255 "ael.flex"
+#line 257 "ael.flex"
 {
 		char c = yytext[yyleng-1];
 		if (c == '(')
@@ -1379,7 +1379,7 @@
 case 46:
 /* rule 46 can match eol */
 YY_RULE_SETUP
-#line 263 "ael.flex"
+#line 265 "ael.flex"
 {
 		char c = yytext[yyleng-1];
 		if ( pbcpop(c))  { /* error */
@@ -1404,7 +1404,7 @@
 case 47:
 /* rule 47 can match eol */
 YY_RULE_SETUP
-#line 285 "ael.flex"
+#line 287 "ael.flex"
 {
 		char c = yytext[yyleng-1];
 		if (c == '(')
@@ -1416,7 +1416,7 @@
 case 48:
 /* rule 48 can match eol */
 YY_RULE_SETUP
-#line 293 "ael.flex"
+#line 295 "ael.flex"
 {
 		if ( pbcpop(')') ) { /* error */
 			STORE_LOC;
@@ -1444,7 +1444,7 @@
 case 49:
 /* rule 49 can match eol */
 YY_RULE_SETUP
-#line 317 "ael.flex"
+#line 319 "ael.flex"
 {
 		if( parencount != 0) { /* printf("Folding in a comma!\n"); */
 			yymore();
@@ -1462,7 +1462,7 @@
 case 50:
 /* rule 50 can match eol */
 YY_RULE_SETUP
-#line 331 "ael.flex"
+#line 333 "ael.flex"
 {
 		char c = yytext[yyleng-1];
 		if ( pbcpop(c) ) { /* error */
@@ -1483,7 +1483,7 @@
 case 51:
 /* rule 51 can match eol */
 YY_RULE_SETUP
-#line 348 "ael.flex"
+#line 350 "ael.flex"
 {
 		char c = yytext[yyleng-1];
 		yymore();
@@ -1493,7 +1493,7 @@
 case 52:
 /* rule 52 can match eol */
 YY_RULE_SETUP
-#line 354 "ael.flex"
+#line 356 "ael.flex"
 {
 		char c = yytext[yyleng-1];
 		if ( pbcpop(c) ) { /* error */
@@ -1509,7 +1509,7 @@
 case 53:
 /* rule 53 can match eol */
 YY_RULE_SETUP
-#line 366 "ael.flex"
+#line 368 "ael.flex"
 {
 		STORE_LOC;
 		yylval->str = strdup(yytext);
@@ -1522,7 +1522,7 @@
 case 54:
 /* rule 54 can match eol */
 YY_RULE_SETUP
-#line 375 "ael.flex"
+#line 377 "ael.flex"
 {
 		FILE *in1;
 		char fnamebuf[1024],*p1,*p2;
@@ -1550,13 +1550,10 @@
 		if ( !error ) {	/* valid file name */
 			*p2 = 0;
 			/* relative vs. absolute */
-			if ( *(p1+1) != '/' ) {
-				/* XXX must check overflows */
-				strcpy(fnamebuf,ast_config_AST_CONFIG_DIR);
-				strcat(fnamebuf,"/");
-				strcat(fnamebuf,p1+1);
-			} else
-				strcpy(fnamebuf,p1+1);
+			if (*(p1+1) != '/')
+				snprintf(fnamebuf, sizeof(fnamebuf), "%s/%s", ast_config_AST_CONFIG_DIR, p1 + 1);
+			else
+				ast_copy_string(fnamebuf, p1 + 1, sizeof(fnamebuf));
 			in1 = fopen( fnamebuf, "r" );
 			if ( ! in1 ) {
 				ast_log(LOG_ERROR,"File=%s, line=%d, column=%d: Couldn't find the include file: %s; ignoring the Include directive!\n", my_file, my_lineno, my_col, fnamebuf);
@@ -1589,7 +1586,7 @@
 case YY_STATE_EOF(paren):
 case YY_STATE_EOF(semic):
 case YY_STATE_EOF(argg):
-#line 437 "ael.flex"
+#line 436 "ael.flex"
 {
 		if ( --include_stack_index < 0 ) {
 			yyterminate();
@@ -1605,10 +1602,10 @@
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 450 "ael.flex"
+#line 449 "ael.flex"
 ECHO;
 	YY_BREAK
-#line 1609 "ael_lex.c"
+#line 1608 "ael_lex.c"
 
 	case YY_END_OF_BUFFER:
 		{
@@ -2738,7 +2735,7 @@
 
 #define YYTABLES_NAME "yytables"
 
-#line 450 "ael.flex"
+#line 449 "ael.flex"
 
 
 

Modified: team/oej/securertp-trunk/plc.c
URL: http://svn.digium.com/view/asterisk/team/oej/securertp-trunk/plc.c?rev=33372&r1=33371&r2=33372&view=diff
==============================================================================
--- team/oej/securertp-trunk/plc.c (original)
+++ team/oej/securertp-trunk/plc.c Fri Jun  9 16:12:11 2006
@@ -37,7 +37,6 @@
 #include <stdlib.h>
 #include <string.h>
 #include <math.h>
-#include <limits.h>
 
 #include "asterisk/plc.h"
 

Modified: team/oej/securertp-trunk/res/res_musiconhold.c
URL: http://svn.digium.com/view/asterisk/team/oej/securertp-trunk/res/res_musiconhold.c?rev=33372&r1=33371&r2=33372&view=diff
==============================================================================
--- team/oej/securertp-trunk/res/res_musiconhold.c (original)
+++ team/oej/securertp-trunk/res/res_musiconhold.c Fri Jun  9 16:12:11 2006
@@ -752,7 +752,7 @@
 
 	DIR *files_DIR;
 	struct dirent *files_dirent;
-	char path[512];
+	char path[PATH_MAX];
 	char filepath[PATH_MAX];
 	char *ext;
 	struct stat statbuf;
@@ -770,7 +770,7 @@
 
 	class->total_files = 0;
 	dirnamelen = strlen(class->dir) + 2;
-	getcwd(path, 512);
+	getcwd(path, sizeof(path));
 	chdir(class->dir);
 	while ((files_dirent = readdir(files_DIR))) {
 		/* The file name must be at least long enough to have the file type extension */

Modified: team/oej/securertp-trunk/rtp.c
URL: http://svn.digium.com/view/asterisk/team/oej/securertp-trunk/rtp.c?rev=33372&r1=33371&r2=33372&view=diff
==============================================================================
--- team/oej/securertp-trunk/rtp.c (original)
+++ team/oej/securertp-trunk/rtp.c Fri Jun  9 16:12:11 2006
@@ -92,6 +92,18 @@
 
 struct ast_srtp_res *g_srtp_res;
 struct ast_srtp_policy_res *g_policy_res;
+
+/*!
+ * \brief Structure representing a RTP session.
+ *
+ * RTP session is defined on page 9 of RFC 3550: "An association among a set of participants communicating with RTP.  A participant may be involved in multiple RTP sessions at the same time [...]"
+ *
+ */
+/*! \brief The value of each payload format mapping: */
+struct rtpPayloadType {
+	int isAstFormat; 	/*!< whether the following code is an AST_FORMAT */
+	int code;
+};
 
 /*! \brief RTP session description */
 struct ast_rtp {



More information about the svn-commits mailing list