2012-01-17 24 views
0

我已配置Cisco語音網關以在Windows Server 2003上使用Cisco ACS。同時,我通過ODBC連接與MSSQL服務器配置了外部數據庫。正如TCLIVR文檔中提到的,我必須在名爲CSNTAuthUserPap的Mirosoft SQL服務器上使用存儲過程來響應來自語音網關的授權請求。存儲過程具有以下格式:如何從RADIUS服務器讀取返回的參數

CREATE PROCEDURE [DBO] [CSNTAuthUserPap]

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

AS SET NOCOUNT ON

IF EXISTS(

SELECT用戶名來自用戶的其中username = @username AND Returnparam = @pass)

選擇0, '1', '1', '無故障'

ELSE

SELECT 3,0, 'ODBC', 'ODBC認證介紹錯誤'

我的問題是關於讀取返回給ACS服務器的參數。次返回的記錄格式如下:

  1. 返回的結果:0表示AUTH全成,1〜4指AUTH unsucessfull
  2. 組號進行授權
  3. 帳戶信息
  4. 錯誤字符串

如何閱讀ACS在我的TCL代碼中返回的帳戶信息?

回答

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 
          } 
        } 
相關問題