Как прочитать возвращенный параметр с сервера RADIUS - PullRequest
0 голосов
/ 17 января 2012

Я настроил голосовой шлюз Cisco для использования Cisco ACS на Windows Server 2003. Тем временем я настроил внешнюю базу данных через соединение ODBC с сервером MSSQL. Как упомянуто в документе TCLIVR, я должен использовать хранимую процедуру на SQL-сервере Mirosoft с именем CSNTAuthUserPap для ответа на запрос авторизации от голосового шлюза. Хранимая процедура имеет следующий формат:

ПРОЦЕДУРА СОЗДАНИЯ [dbo]. [CSNTAuthUserPap]

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

КАК УСТАНАВЛИВАЕТСЯ

ЕСЛИ СУЩЕСТВУЕТ (

ВЫБЕРИТЕ имя пользователя от пользователей, ГДЕ имя пользователя = @ имя пользователя И Returnparam = @pass)

ВЫБОР 0, «1», «1», «Нет ошибок»

ELSE

SELECT 3,0, 'odbc', 'Ошибка проверки подлинности ODBC'

Мой вопрос касается чтения параметров, возвращаемых на сервер ACS. Возвращаемая запись имеет следующий формат:

  1. Возвращенный результат: 0 означает, что авторизация прошла успешно, от 1 до 4 означает, что авторизация не прошла успешно
  2. Номер группы для авторизации
  3. Информация об учетной записи
  4. Строка ошибки

Как я могу прочитать информацию об учетной записи, возвращенную ACS, в моем коде TCL?

1 Ответ

0 голосов
/ 14 апреля 2012

Я нашел это. Ответ лежит в AVPairs и создании пользовательских avpairs. Я должен указать 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
                           } 
                   }
...