0

我已经在 windows server 2003 上配置了 Cisco 语音网关以使用 Cisco ACS。同时,我通过与 MSSQL 服务器的 ODBC 连接配置了外部数据库。如 TCLIVR 文档中所述,我必须在 Mirosoft SQL 服务器上使用名为 CSNTAuthUserPap 的存储过程来响应来自语音网关的授权请求。存储过程具有以下格式:

创建过程 [dbo].[CSNTAuthUserPap]

@username varchar(64),@pass varchar(255)

AS SET NOCOUNT ON

如果存在(

SELECT username FROM users WHERE username = @username AND Returnparam = @pass )

选择 0,'1','1','无错误'

别的

SELECT 3,0,'odbc','ODBC 验证错误'

我的问题是关于读取返回到 ACS 服务器的参数。返回的记录具有以下格式:

  1. 返回结果:0 表示认证成功,1 到 4 表示认证不成功
  2. 授权组号
  3. 帐户信息
  4. 错误字符串

如何在我的 TCL 代码中读取 ACS 返回的账户信息?

4

1 回答 1

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
                           } 
                   }
于 2012-04-14T08:40:07.730 回答