Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Обработчик протокола позволяет делать некоторую дополнительную логику при обработке Radius-запросов -  например, изменить RADIUS-запрос перед его обработкой системой или установить дополнительные опции, которые поменяют логику обработки запроса/.

Обработчик создается в динамическом коде( ссылка) и имеет имеет следующий интерфейс:

Блок кода
languageruby
/**
 * Обработчик процессора протокола.
 * @see RadiusProtocolHandler
 *
 */
public interface ProtocolHandler
	extends RadiusProtocolHandler
{
	public void init( Setup setup, int moduleId, VoiceDevice voiceDevice, VoiceDeviceType voiceDeviceType, ParameterMap config )
		throws Exception;
}

...

Так же обработчик расширяет следующий интерфейс:

Блок кода
languageruby

/**
 * Обработчик RADIUS-запросов
 */
public interface RadiusProtocolHandler
{
	/**
	 * Предобработка RADIUS-запроса Access-Request
	 * @param request
	 * @param response
	 * @param connectionSet
	 * @throws Exception
	 */
	public void preprocessAccessRequest( RadiusPacket request, RadiusPacket response, ConnectionSet connectionSet )
	    throws Exception;
	/**
	 * Постобработка RADIUS-запроса Access-Request
	 * @param request
	 * @param response
	 * @param connectionSet
	 * @throws Exception
	 */
	public void postprocessAccessRequest( RadiusPacket request, RadiusPacket response, ConnectionSet connectionSet )
	    throws Exception;
	/**
	 * Предобработка RADIUS-запроса Accounting-Request
	 * @param request
	 * @param response
	 * @param connectionSet
	 * @throws Exception
	 */
	public void preprocessAccountingRequest( RadiusPacket request, RadiusPacket response, ConnectionSet connectionSet )
	    throws Exception;
	/**
	 * Постобработка RADIUS-запроса Accounting-Request
	 * @param request
	 * @param response
	 * @param connectionSet
	 * @throws Exception
	 */
	public void postprocessAccountingRequest( RadiusPacket request, RadiusPacket response, ConnectionSet connectionSet )
	    throws Exception;
}

 Параметры, заданные скриптом, более приоритетные, чем взятые из конфигурации. Тут можно выставить такие параметры:

  • Тип звонка - request.setOption( VoiceNas.CALL_TYPE, VoiceSession.CALL_TYPE_OUTGOING );

  • Аккаунт оператора  - request.setOption( VoiceNas.OPERATOR_ACCOUNT, accountId);