我已将Cisco语音网关配置为在Windows Server 2003上使用Cisco ACS。同时,我通过与MSSQL服务器的ODBC连接配置了外部数据库。如TCLIVR文档中所述,我必须在名为CSNTAuthUserPap的Mirosoft SQL服务器上使用存储过程来响应来自语音网关的授权请求。存储过程具有以下格式:
CREATE PROCEDURE [dbo]。[CSNTAuthUserPap]
@username varchar(64),@ pass varchar(255)
AS SET NOCOUNT ON
如果存在(
SELECT username FROM users WHERE username = @username AND Returnparam = @pass)
SELECT 0,'1','1','No Error'
ELSE
SELECT 3,0,'odbc','ODBC Authen Error'
我的问题是关于读取返回ACS服务器的参数。返回的记录具有以下格式:
如何在我的TCL代码中阅读ACS返回的帐户信息?
答案 0 :(得分:0)
我找到了。 答案在于AVPairs和创建自定义avpairs。我必须为从radius服务器返回的每个组指定avpair,并在TCL代码中读取它们,如下所示:
if { [infotag get aaa_avpair_exists h323-ivr-in] } {
set CustomerStatus [infotag get aaa_avpair h323-ivr-in]
foreach pairs [split $CustomerStatus] {
set value_list [split $pairs :]
set key [lindex $value_list 0]
set value [lindex $value_list 1]
if { $key == "contractType" } {
set contractType $value
}
}