[Asterisk-cvs] asterisk/cdr cdr_odbc.c,1.19,1.20

markster at lists.digium.com markster at lists.digium.com
Tue Jan 11 12:53:03 CST 2005


Update of /usr/cvsroot/asterisk/cdr
In directory mongoose.digium.com:/tmp/cvs-serv7493/cdr

Modified Files:
	cdr_odbc.c 
Log Message:
Make ODBC storage as int configurable to be string or int (bug #3255)


Index: cdr_odbc.c
===================================================================
RCS file: /usr/cvsroot/asterisk/cdr/cdr_odbc.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- cdr_odbc.c	5 Jan 2005 23:25:34 -0000	1.19
+++ cdr_odbc.c	11 Jan 2005 18:56:57 -0000	1.20
@@ -40,6 +40,7 @@
 static char *dsn = NULL, *username = NULL, *password = NULL, *loguniqueid = NULL, *table = NULL;
 static int dsn_alloc = 0, username_alloc = 0, password_alloc = 0, loguniqueid_alloc = 0, table_alloc = 0;
 static int connected = 0;
+static int dispositionstring = 0;
 
 AST_MUTEX_DEFINE_STATIC(odbc_lock);
 
@@ -126,7 +127,10 @@
 	SQLBindParameter(ODBC_stmt, 9, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, sizeof(cdr->lastdata), 0, cdr->lastdata, 0, NULL);
 	SQLBindParameter(ODBC_stmt, 10, SQL_PARAM_INPUT, SQL_C_SLONG, SQL_INTEGER, 0, 0, &cdr->duration, 0, NULL);
 	SQLBindParameter(ODBC_stmt, 11, SQL_PARAM_INPUT, SQL_C_SLONG, SQL_INTEGER, 0, 0, &cdr->billsec, 0, NULL);
-	SQLBindParameter(ODBC_stmt, 12, SQL_PARAM_INPUT, SQL_C_SLONG, SQL_CHAR, strlen(ast_cdr_disp2str(cdr->disposition)) + 1, 0, ast_cdr_disp2str(cdr->disposition), 0, NULL);
+	if (dispositionstring)
+		SQLBindParameter(ODBC_stmt, 12, SQL_PARAM_INPUT, SQL_C_SLONG, SQL_CHAR, strlen(ast_cdr_disp2str(cdr->disposition)) + 1, 0, ast_cdr_disp2str(cdr->disposition), 0, NULL);
+	else
+		SQLBindParameter(ODBC_stmt, 12, SQL_PARAM_INPUT, SQL_C_SLONG, SQL_INTEGER, 0, 0, &cdr->disposition, 0, NULL);
 	SQLBindParameter(ODBC_stmt, 13, SQL_PARAM_INPUT, SQL_C_SLONG, SQL_INTEGER, 0, 0, &cdr->amaflags, 0, NULL);
 	SQLBindParameter(ODBC_stmt, 14, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, sizeof(cdr->accountcode), 0, cdr->accountcode, 0, NULL);
 
@@ -260,6 +264,10 @@
 		dsn = "asteriskdb";
 	}
 
+	tmp = ast_variable_retrieve(cfg,"global","dispositionstring");
+	if (tmp) 
+		dispositionstring = ast_true(tmp);
+		
 	tmp = ast_variable_retrieve(cfg,"global","username");
 	if (tmp) {
 		username = malloc(strlen(tmp) + 1);




More information about the svn-commits mailing list