Вы должны сохранить Session-ID AVP в качестве индекса для пользователей, к которым следует вернуться. Как говорится в RFC 3588, он должен быть уникальным:
Session-Id AVP (код AVP 263) имеет тип UTF8String и используется
определить конкретную сессию (см. раздел 8). Все сообщения
относящиеся к конкретному сеансу, ДОЛЖНЫ включать только один AVP Session-Id
и одно и то же значение ДОЛЖНО использоваться в течение всей жизни сеанса.
Идентификатор сессии должен присутствовать сразу после
Заголовок диаметра (см. Раздел 3).
Session-Id ДОЛЖЕН быть глобально и вечно уникальным, так как подразумевается
уникально идентифицировать сеанс пользователя без ссылки на какой-либо другой
информация, и может потребоваться для корреляции исторической аутентификации
информация с учетом информации. Session-Id включает в себя
обязательная часть и часть, определяемая реализацией;
рекомендуемый формат для определенной части реализации изложен
ниже.
Другие параметры, которые вы должны сохранить:
Hop-by-hop, end-to-end - должен быть возвращен, как они были получены в заголовке
orig-host / orig-realn - вы должны сохранить, потому что иногда вам нужно изменить их на dest-host / dest-realm
важное замечание:
Есть много интерфейсов диаметра, может быть, что конкретный интерфейс должен будет возвращать AVP, что другой интерфейс не будет. Например: AV-CC-Request-Type в случае интерфейса GY, который следует скопировать из запроса на ответ.
Поэтому я предлагаю сохранить весь запрос! если вам нужно восстановить, у вас всегда будут все AVP на случай, если вам нужно будет вернуть ответ, независимо от того, с каким интерфейсом вы работаете.
Другой более простой вариант - ничего не сохранять. После прекращения подключения по диаметру удалите всех подписчиков и дождитесь повторной попытки (: