2012-01-17 4 views
0

J'ai configuré une passerelle vocale Cisco pour utiliser Cisco ACS sur un serveur Windows 2003. Parallèlement, j'ai configuré une base de données externe via une connexion ODBC avec un serveur MSSQL. Comme mentionné dans le document TCLIVR, je dois utiliser une procédure stockée sur le serveur Mirosoft SQL nommé CSNTAuthUserPap pour répondre à la demande d'autorisation de la passerelle vocale. La procédure stockée a le format suivant:Comment lire le paramètre renvoyé par le serveur RADIUS

CREATE PROCEDURE [dbo] [CSNTAuthUserPap]

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

NOCOUNT ÉTABLI LE

.

SI EXISTE (

nom d'utilisateur SELECT FROM utilisateurs WHERE nom d'utilisateur = @username ET Returnparam = @pass)

SELECT 0, '1', '1', 'Pas d'erreur'

AUTRE

SELECT 3,0, 'odbc', 'Erreur ODBC Authen'

Ma question est à propos de la lecture des paramètres renvoyés au serveur ACS. Th enregistrement retourné a le format suivant:

  1. Résultat obtenu: 0 signifie auth Successfull, 1 à 4 signifie auth unsucessfull
  2. Group Numéro d'autorisation
  3. Informations sur le compte
  4. erreur Chaîne

Comment puis-je lire les informations de compte renvoyées par ACS dans mon code TCL?

Répondre

0

Je l'ai trouvé. La réponse réside dans les AVPairs et la création d'avpairs personnalisés. Je dois spécifier avpair pour chaque groupe retourné du serveur de rayon et les lire dans le code de TCL comme ceci:

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 
          } 
        } 
Questions connexes