使用 odbc_func 写入多个字段的正确语法?
Proper Syntax for Writing Multiple Fields with odbc_func?
这是我之前 post 的后续。尝试在挂断时写入 CDR table。 Asterisk 13 似乎阻止在 h 扩展中使用 CDR()(尽管我可以在 *11 中使用)。
所以,我将创建一个很好的 ODBC_FUNC 函数并使用它来写入我的数据。
除了我不能让它工作。
我要写多个字段:
exten => h,n,Set(ODBC_WRITE_TEST(${E})=First\,Second,Third,Fourth)
或
exten => h,n,Set(ODBC_WRITE_TEST(${E})=${cause_name},${cause_name}, ${TrNumber},${uID})
这些都不起作用。他们都向 table 写入一条空白记录,因此我们知道 ODBC 正在工作。但是字段内容没有通过。
func_odbc.conf:
[WRITE_TEST]
dsn=asterisk
; writesql=INSERT INTO LogAndDebug (debugMessage, debugData, logMessage) VALUES ('test','123','done')
writesql=INSERT INTO LogAndDebug (debugMessage, debugData, logMessage) VALUES ('${SQL_ESC(${ARG1})}','${SQL_ESC(${VAR2})}','${SQL_ESC(${VAR1})}')
上面的注释行确实按预期写入了数据。 uncommend 行写入一条空记录。
我试过没有 SQL_ESC。这些字段是 varchars...所以引用的文本似乎是正确的。看起来好像 ARGx 和 VARx 没有被传递。
我在 Asterisk 文档中查找了这方面的文档,结果令我惊讶 -- NADA
从 asterisk 1.8 开始 func_odbc 是这样的:
在func_odbc.conf中:
[WRITE_TEST]
dsn=asterisk
writesql=INSERT INTO LogAndDebug (debugMessage, debugData, logMessage) VALUES ('${ARG1}','${VAR2}','${VAR3}')
在拨号方案中:
exten => s,n,NoOp(WRITE_TEST.${ODBC_WRITE_TEST('this','is','test')})
这是我之前 post 的后续。尝试在挂断时写入 CDR table。 Asterisk 13 似乎阻止在 h 扩展中使用 CDR()(尽管我可以在 *11 中使用)。 所以,我将创建一个很好的 ODBC_FUNC 函数并使用它来写入我的数据。 除了我不能让它工作。 我要写多个字段:
exten => h,n,Set(ODBC_WRITE_TEST(${E})=First\,Second,Third,Fourth)
或
exten => h,n,Set(ODBC_WRITE_TEST(${E})=${cause_name},${cause_name}, ${TrNumber},${uID})
这些都不起作用。他们都向 table 写入一条空白记录,因此我们知道 ODBC 正在工作。但是字段内容没有通过。 func_odbc.conf:
[WRITE_TEST]
dsn=asterisk
; writesql=INSERT INTO LogAndDebug (debugMessage, debugData, logMessage) VALUES ('test','123','done')
writesql=INSERT INTO LogAndDebug (debugMessage, debugData, logMessage) VALUES ('${SQL_ESC(${ARG1})}','${SQL_ESC(${VAR2})}','${SQL_ESC(${VAR1})}')
上面的注释行确实按预期写入了数据。 uncommend 行写入一条空记录。
我试过没有 SQL_ESC。这些字段是 varchars...所以引用的文本似乎是正确的。看起来好像 ARGx 和 VARx 没有被传递。
我在 Asterisk 文档中查找了这方面的文档,结果令我惊讶 -- NADA
从 asterisk 1.8 开始 func_odbc 是这样的:
在func_odbc.conf中:
[WRITE_TEST]
dsn=asterisk
writesql=INSERT INTO LogAndDebug (debugMessage, debugData, logMessage) VALUES ('${ARG1}','${VAR2}','${VAR3}')
在拨号方案中:
exten => s,n,NoOp(WRITE_TEST.${ODBC_WRITE_TEST('this','is','test')})