smparser

package
v4.0.24 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 2, 2024 License: BSD-3-Clause Imports: 7 Imported by: 0

Documentation

Overview

Package smparser provides message parsers for the state machine.

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrMissingSessionID is returned by Parse when
	// the message does not contain a Session-Id AVP.
	ErrMissingSessionID = errors.New("missing Session-Id")

	// ErrMissingResultCode is returned by Parse when
	// the message does nt contain a Result-Code AVP.
	ErrMissingResultCode = errors.New("missing Result-Code")

	// ErrMissingOriginHost is returned by Parse when
	// the message does not contain an Origin-Host AVP.
	ErrMissingOriginHost = errors.New("missing Origin-Host")

	// ErrMissingOriginRealm is returned by Parse when
	// the message does not contain an Origin-Realm AVP.
	ErrMissingOriginRealm = errors.New("missing Origin-Realm")

	// ErrMissingVendorSpecificAppId is returned by Parse when
	// the message does not contain an Vendor-Specific-Application-Id AVP.
	ErrMissingVendorSpecificAppId = errors.New("missing Vendor-Specific-Application-Id")

	// ErrMissingDestHost is returned by Parse when
	// the message does not contain an Destination-Host AVP.
	ErrMissingDestHost = errors.New("missing Destination-Host")

	// ErrMissingDestRealm is returned by Parse when
	// the message does not contain an Destination-Realm AVP.
	ErrMissingDestRealm = errors.New("missing Destination-Realm")

	// ErrMissingUserName is returned by Parse when
	// the message does not contain an User-Name AVP.
	ErrMissingUserName = errors.New("missing User-Name")

	// ErrMissingUserName is returned by Parse when
	// the message does not contain an User-Identity AVP.
	ErrMissingUserIdentity = errors.New("missing User-Identity")

	// ErrMissingUserName is returned by Parse when
	// the message does not contain an Server-Name AVP.
	ErrMissingServerName = errors.New("missing Server-Name")

	// ErrMissingUserName is returned by Parse when
	// the message does not contain an Data-Reference AVP.
	ErrMissingDataReference = errors.New("missing Data-Reference")

	// ErrMissingUserData is returned by Parse when
	// the message does not contain an User-Data AVP.
	ErrMissingUserData = errors.New("missing User-Data")

	// ErrMissingScAddress is returned by Parse when
	// the message does not contain an SC-Address AVP.
	ErrMissingScAddress = errors.New("missing SC-Address")

	// ErrMissingSmDeliveryOutcome is returned by Parse when
	// the message does not contain an SM-Delivery-Outcome AVP.
	ErrMissingSmDeliveryOutcome = errors.New("missing SM-Delivery-Outcome")

	// ErrMissingSmRpUi is returned by Parse when
	// the message does not contain an SM-RP-UI AVP.
	ErrMissingSmRpUi = errors.New("missing SM-RP-UI")

	// ErrMissingUserIdentifier is returned by Parse when
	// the message does not contain an User-Identifier AVP.
	ErrMissingUserIdentifier = errors.New("missing User-Identifier")

	// ErrMissingApplication is returned by Parse when
	// the CER does not contain any Acct-Application-Id or
	// Auth-Application-Id, or their embedded versions in
	// the Vendor-Specific-Application-Id AVP.
	ErrMissingApplication = errors.New("missing application")

	// ErrNoCommonSecurity is returned by Parse when
	// the CER contains the Inband-Security-Id.
	// We currently don't support that.
	ErrNoCommonSecurity = errors.New("no common security")

	// ErrNoCommonApplication is returned by Parse when the
	// application IDs in the CER don't match the applications
	// defined in our dictionary.
	ErrNoCommonApplication = errors.New("no common application")
)

Functions

This section is empty.

Types

type ALA added in v4.0.15

type ALA struct {
	SessionId                   datatype.UTF8String                   `avp:"Session-Id"`
	Drmp                        *datatype.Enumerated                  `avp:"DRMP,omitempty"`
	VendorSpecificApplicationId *basetype.VendorSpecificApplicationId `avp:"Vendor-Specific-Application-Id,omitempty"`
	ResultCode                  *datatype.Unsigned32                  `avp:"Result-Code,omitempty"`
	ExperimentalResult          *basetype.ExperimentalResult          `avp:"Experimental-Result,omitempty"`
	AuthSessionState            datatype.Enumerated                   `avp:"Auth-Session-State"`
	OriginHost                  datatype.DiameterIdentity             `avp:"Origin-Host"`
	OriginRealm                 datatype.DiameterIdentity             `avp:"Origin-Realm"`
	SupportedFeatures           []basetype.SupportedFeatures          `avp:"Supported-Features,omitempty"`
	FailedAvp                   basetype.FailedAVP                    `avp:"Failed-AVP,omitempty"`
	ProxyInfo                   []basetype.ProxyInfo                  `avp:"Proxy-Info,omitempty"`
	RouteRecord                 []datatype.DiameterIdentity           `avp:"Route-Record,omitempty"`
}

ALA is a Alert-Service-Centre-Answer message. See 3GPP TS 29.338 section 5.3.2.6 for details.

func (*ALA) Parse added in v4.0.15

func (ala *ALA) Parse(m *diam.Message) error

Parse parses the given message.

func (*ALA) String added in v4.0.19

func (a *ALA) String() string

type ALR added in v4.0.15

type ALR struct {
	SessionId                   datatype.UTF8String                   `avp:"Session-Id"`
	Drmp                        *datatype.Enumerated                  `avp:"DRMP,omitempty"`
	VendorSpecificApplicationId *basetype.VendorSpecificApplicationId `avp:"Vendor-Specific-Application-Id,omitempty"`
	AuthSessionState            datatype.Enumerated                   `avp:"Auth-Session-State"`
	OriginHost                  datatype.DiameterIdentity             `avp:"Origin-Host"`
	OriginRealm                 datatype.DiameterIdentity             `avp:"Origin-Realm"`
	DestinationHost             *datatype.DiameterIdentity            `avp:"Destination-Host,omitempty"`
	DestinationRealm            datatype.DiameterIdentity             `avp:"Destination-Realm"`
	ScAddress                   datatype.OctetString                  `avp:"SC-Address"`
	UserIdentifier              basetype.UserIdentifier               `avp:"User-Identifier"`
	SmsmiCorrelationId          *basetype.SMSMICorrelationID          `avp:"SMSMI-Correlation-ID,omitempty"`
	MaximumUeAvailabilityTime   *datatype.Time                        `avp:"Maximum-UE-Availability-Time,omitempty"`
	SmsGmscAlertEvent           *datatype.Unsigned32                  `avp:"SMS-GMSC-Alert-Event,omitempty"`
	ServingNode                 *basetype.ServingNode                 `avp:"Serving-Node,omitempty"`
	SupportedFeatures           []basetype.SupportedFeatures          `avp:"Supported-Features,omitempty"`
	ProxyInfo                   []basetype.ProxyInfo                  `avp:"Proxy-Info,omitempty"`
	RouteRecord                 []datatype.DiameterIdentity           `avp:"Route-Record,omitempty"`
}

ALR is a Alert-Service-Centre-Request message. See 3GPP TS 29.338 section 5.3.2.5 for details.

func (*ALR) Parse added in v4.0.15

func (alr *ALR) Parse(m *diam.Message) error

Parse parses the given message.

func (*ALR) String added in v4.0.19

func (r *ALR) String() string

type Application

type Application struct {
	AcctApplicationID           []*diam.AVP
	AuthApplicationID           []*diam.AVP
	VendorSpecificApplicationID []*diam.AVP
	// contains filtered or unexported fields
}

Application validates accounting, auth, and vendor specific application IDs.

func (*Application) ID

func (app *Application) ID() []uint32

ID returns a list of supported application IDs. Must be called after Parse, otherwise it returns an empty array.

func (*Application) Parse

func (app *Application) Parse(d *dict.Parser, localRole Role) (failedAVP *diam.AVP, err error)

Parse ensures at least one common acct or auth applications in the CE exist in this server's dictionary.

type CEA

type CEA struct {
	ResultCode                  uint32                    `avp:"Result-Code"`
	OriginHost                  datatype.DiameterIdentity `avp:"Origin-Host"`
	OriginRealm                 datatype.DiameterIdentity `avp:"Origin-Realm"`
	OriginStateID               uint32                    `avp:"Origin-State-Id"`
	AcctApplicationID           []*diam.AVP               `avp:"Acct-Application-Id"`
	AuthApplicationID           []*diam.AVP               `avp:"Auth-Application-Id"`
	VendorSpecificApplicationID []*diam.AVP               `avp:"Vendor-Specific-Application-Id"`
	FailedAVP                   []*diam.AVP               `avp:"Failed-AVP"`
	ErrorMessage                string                    `avp:"Error-Message"`
	// contains filtered or unexported fields
}

CEA is a Capabilities-Exchange-Answer message. See RFC 6733 section 5.3.2 for details.

func (*CEA) Applications

func (cea *CEA) Applications() []uint32

Applications return a list of supported Application IDs.

func (*CEA) Parse

func (cea *CEA) Parse(m *diam.Message, localRole Role) (err error)

Parse parses and validates the given message.

func (*CEA) String added in v4.0.19

func (r *CEA) String() string

type CER

type CER struct {
	OriginHost                  datatype.DiameterIdentity `avp:"Origin-Host"`
	OriginRealm                 datatype.DiameterIdentity `avp:"Origin-Realm"`
	OriginStateID               *diam.AVP                 `avp:"Origin-State-Id"`
	InbandSecurityID            *diam.AVP                 `avp:"Inband-Security-Id"`
	AcctApplicationID           []*diam.AVP               `avp:"Acct-Application-Id"`
	AuthApplicationID           []*diam.AVP               `avp:"Auth-Application-Id"`
	VendorSpecificApplicationID []*diam.AVP               `avp:"Vendor-Specific-Application-Id"`
	// contains filtered or unexported fields
}

CER is a Capabilities-Exchange-Request message. See RFC 6733 section 5.3.1 for details.

func (*CER) Applications

func (cer *CER) Applications() []uint32

Applications return a list of supported Application IDs.

func (*CER) Parse

func (cer *CER) Parse(m *diam.Message, localRole Role) (failedAVP *diam.AVP, err error)

Parse parses and validates the given message, and returns nil when all AVPs are ok, and all accounting or authentication applications in the CER match the applications in our dictionary. If one or more mandatory AVPs are missing, it returns a nil failedAVP and a proper error. If all mandatory AVPs are present but no common application is found, then it returns the failedAVP (with the application that we don't support in our dictionary) and an error. Another cause for error is the presence of Inband Security, we don't support that.

func (*CER) String added in v4.0.19

func (r *CER) String() string

type DWA

type DWA struct {
	ResultCode    uint32 `avp:"Result-Code"`
	OriginStateID uint32 `avp:"Origin-State-Id"`
}

DWA is a Device-Watchdog-Answer message. See RFC 6733 section 5.5.2 for details.

func (*DWA) Parse

func (dwa *DWA) Parse(m *diam.Message) error

Parse parses the given message.

func (*DWA) String added in v4.0.19

func (r *DWA) String() string

type DWR

type DWR struct {
	OriginHost    datatype.DiameterIdentity `avp:"Origin-Host"`
	OriginRealm   datatype.DiameterIdentity `avp:"Origin-Realm"`
	OriginStateID *diam.AVP                 `avp:"Origin-State-Id"`
}

DWR is a Device-Watchdog-Request message. See RFC 6733 section 5.5.1 for details.

func (*DWR) Parse

func (dwr *DWR) Parse(m *diam.Message) error

Parse parses and validates the given message, and returns nil when all AVPs are ok.

func (*DWR) String added in v4.0.19

func (r *DWR) String() string

type ErrFailedResultCode

type ErrFailedResultCode struct {
	*CEA
}

ErrFailedResultCode is returned by Dial or DialTLS when the handshake answer (CEA) contains a Result-Code AVP that is not success (2001).

func (ErrFailedResultCode) Error

func (e ErrFailedResultCode) Error() string

Error implements the error interface.

type ErrUnexpectedAVP

type ErrUnexpectedAVP struct {
	AVP *diam.AVP
}

ErrUnexpectedAVP is returned by Parse when the code of the AVP passed as AcctApplicationID, AuthApplicationID or VendorSpecificApplicationID and its embedded AVPs do not match their names.

func (*ErrUnexpectedAVP) Error

func (e *ErrUnexpectedAVP) Error() string

Error implements the error interface.

type OFA added in v4.0.15

type OFA struct {
	SessionId                   datatype.UTF8String                   `avp:"Session-Id"`
	Drmp                        *datatype.Enumerated                  `avp:"DRMP,omitempty"`
	VendorSpecificApplicationId *basetype.VendorSpecificApplicationId `avp:"Vendor-Specific-Application-Id,omitempty"`
	ResultCode                  *datatype.Unsigned32                  `avp:"Result-Code,omitempty"`
	ExperimentalResult          *basetype.ExperimentalResult          `avp:"Experimental-Result,omitempty"`
	AuthSessionState            datatype.Enumerated                   `avp:"Auth-Session-State"`
	OriginHost                  datatype.DiameterIdentity             `avp:"Origin-Host"`
	OriginRealm                 datatype.DiameterIdentity             `avp:"Origin-Realm"`
	SupportedFeatures           []basetype.SupportedFeatures          `avp:"Supported-Features,omitempty"`
	SmDeliveryFailureCause      *basetype.SMDeliveryFailureCause      `avp:"SM-Delivery-Failure-Cause,omitempty"`
	SmRpUi                      *datatype.OctetString                 `avp:"SM-RP-UI,omitempty"`
	ExternalIdentifier          *datatype.UTF8String                  `avp:"External-Identifier,omitempty"`
	FailedAvp                   basetype.FailedAVP                    `avp:"Failed-AVP,omitempty"`
	ProxyInfo                   []basetype.ProxyInfo                  `avp:"Proxy-Info,omitempty"`
	RouteRecord                 []datatype.DiameterIdentity           `avp:"Route-Record,omitempty"`
}

OFA refers to Mo-Forward-Short-Message-Answer. See 3GPP TS 29.338 Clause 6.3.2.4 for details

func (*OFA) Parse added in v4.0.15

func (ofa *OFA) Parse(m *diam.Message) error

Parse parses the given message.

func (*OFA) String added in v4.0.19

func (r *OFA) String() string

type OFR added in v4.0.15

type OFR struct {
	SessionId                   datatype.UTF8String                   `avp:"Session-Id"`
	Drmp                        *datatype.Enumerated                  `avp:"DRMP,omitempty"`
	VendorSpecificApplicationId *basetype.VendorSpecificApplicationId `avp:"Vendor-Specific-Application-Id,omitempty"`
	AuthSessionState            datatype.Enumerated                   `avp:"Auth-Session-State"`
	OriginHost                  datatype.DiameterIdentity             `avp:"Origin-Host"`
	OriginRealm                 datatype.DiameterIdentity             `avp:"Origin-Realm"`
	DestinationHost             *datatype.DiameterIdentity            `avp:"Destination-Host,omitempty"`
	DestinationRealm            datatype.DiameterIdentity             `avp:"Destination-Realm"`
	ScAddress                   datatype.OctetString                  `avp:"SC-Address"`
	OfrFlags                    *datatype.Unsigned32                  `avp:"OFR-Flags,omitempty"`
	SupportedFeatures           []basetype.SupportedFeatures          `avp:"Supported-Features,omitempty"`
	UserIdentifier              basetype.UserIdentifier               `avp:"User-Identifier"`
	SmRpUi                      datatype.OctetString                  `avp:"SM-RP-UI"`
	SmsmiCorrelationId          *basetype.SMSMICorrelationID          `avp:"SMSMI-Correlation-ID,omitempty"`
	SmDeliveryOutcome           *basetype.SMDeliveryOutcome           `avp:"SM-Delivery-Outcome,omitempty"`
	ProxyInfo                   []basetype.ProxyInfo                  `avp:"Proxy-Info,omitempty"`
	RouteRecord                 []datatype.DiameterIdentity           `avp:"Route-Record,omitempty"`
}

OFR refers to Mo-Forward-Short-Message-Request. See 3GPP TS 29.338 Clause 6.3.2.3 for details

func (*OFR) Parse added in v4.0.15

func (ofr *OFR) Parse(m *diam.Message) error

Parse parses the given message.

func (*OFR) String added in v4.0.19

func (r *OFR) String() string

type PNA added in v4.0.6

type PNA struct {
	SessionID                   datatype.UTF8String                  `avp:"Session-Id"`
	DRMP                        *datatype.Enumerated                 `avp:"DRMP,omitempty"`
	VendorSpecificApplicationId basetype.VendorSpecificApplicationId `avp:"Vendor-Specific-Application-Id"`
	ResultCode                  *datatype.Unsigned32                 `avp:"Result-Code,omitempty"`
	ExperimentalResult          *basetype.ExperimentalResult         `avp:"Experimental-Result,omitempty"`
	AuthSessionState            datatype.Enumerated                  `avp:"Auth-Session-State"`
	OriginHost                  datatype.DiameterIdentity            `avp:"Origin-Host"`
	OriginRealm                 datatype.DiameterIdentity            `avp:"Origin-Realm"`
	SupportedFeatures           []basetype.SupportedFeatures         `avp:"Supported-Features,omitempty"`
	FailedAVP                   basetype.FailedAVP                   `avp:"Failed-AVP,omitempty"`
	ProxyInfo                   []basetype.ProxyInfo                 `avp:"Proxy-Info,omitempty"`
	RouteRecord                 []datatype.DiameterIdentity          `avp:"Route-Record,omitempty"`
}

refer to 3GPP TS 29.329 6.1.8 Push-Notification-Answer

func (*PNA) Parse added in v4.0.6

func (pna *PNA) Parse(m *diam.Message) error

Parse parses the given message.

type PNR added in v4.0.6

type PNR struct {
	SessionID                   datatype.UTF8String                  `avp:"Session-Id"`
	DRMP                        *datatype.Enumerated                 `avp:"DRMP,omitempty"`
	VendorSpecificApplicationId basetype.VendorSpecificApplicationId `avp:"Vendor-Specific-Application-Id"`
	AuthSessionState            datatype.Enumerated                  `avp:"Auth-Session-State"`
	OriginHost                  datatype.DiameterIdentity            `avp:"Origin-Host"`
	OriginRealm                 datatype.DiameterIdentity            `avp:"Origin-Realm"`
	DestinationHost             datatype.DiameterIdentity            `avp:"Destination-Host"`
	DestinationRealm            datatype.DiameterIdentity            `avp:"Destination-Realm"`
	SupportedFeatures           []basetype.SupportedFeatures         `avp:"Supported-Features,omitempty"`
	UserIdentity                basetype.UserIdentity                `avp:"User-Identity"`
	WildcardedPublicIdentity    *datatype.UTF8String                 `avp:"Wildcarded-Public-Identity,omitempty"`
	WildcardedIMPU              *datatype.UTF8String                 `avp:"Wildcarded-IMPU,omitempty"`
	UserName                    *datatype.UTF8String                 `avp:"User-Name,omitempty"`
	UserData                    datatype.OctetString                 `avp:"User-Data"`
	ProxyInfo                   []basetype.ProxyInfo                 `avp:"Proxy-Info,omitempty"`
	RouteRecord                 []datatype.DiameterIdentity          `avp:"Route-Record,omitempty"`
}

refer to 3GPP TS 29.329 6.1.7 Push-Notification-Request

func (*PNR) Parse added in v4.0.6

func (pnr *PNR) Parse(m *diam.Message) error

Parse parses and validates the given message, and returns nil when all AVPs are ok.

type PUA added in v4.0.7

type PUA struct {
	SessionID                   datatype.UTF8String                  `avp:"Session-Id"`
	DRMP                        *datatype.Enumerated                 `avp:"DRMP,omitempty"`
	VendorSpecificApplicationId basetype.VendorSpecificApplicationId `avp:"Vendor-Specific-Application-Id"`
	ResultCode                  *datatype.Unsigned32                 `avp:"Result-Code,omitempty"`
	ExperimentalResult          *basetype.ExperimentalResult         `avp:"Experimental-Result,omitempty"`
	AuthSessionState            datatype.Enumerated                  `avp:"Auth-Session-State"`
	OriginHost                  datatype.DiameterIdentity            `avp:"Origin-Host"`
	OriginRealm                 datatype.DiameterIdentity            `avp:"Origin-Realm"`
	WildcardedPublicIdentity    *datatype.UTF8String                 `avp:"Wildcarded-Public-Identity,omitempty"`
	WildcardedIMPU              *datatype.UTF8String                 `avp:"Wildcarded-IMPU,omitempty"`
	RepositoryDataID            *basetype.RepositoryDataID           `avp:"Repository-Data-ID,omitempty"`
	DataReference               datatype.Enumerated                  `avp:"Data-Reference,omitempty"`
	SupportedFeatures           []basetype.SupportedFeatures         `avp:"Supported-Features,omitempty"`
	OCSupportedFeatures         *basetype.OCSupportedFeatures        `avp:"OC-Supported-Features,omitempty"`
	OCOLR                       *basetype.OCOLR                      `avp:"OC-OLR,omitempty"`
	Load                        *basetype.Load                       `avp:"Load,omitempty"`
	FailedAVP                   basetype.FailedAVP                   `avp:"Failed-AVP,omitempty"`
	ProxyInfo                   []basetype.ProxyInfo                 `avp:"Proxy-Info,omitempty"`
	RouteRecord                 []datatype.DiameterIdentity          `avp:"Route-Record,omitempty"`
}

refer to 3GPP TS 29.329 6.1.4 Profile-Update-Answer

func (*PUA) Parse added in v4.0.7

func (pua *PUA) Parse(m *diam.Message) error

Parse parses the given message.

type PUR added in v4.0.7

type PUR struct {
	SessionID                   datatype.UTF8String                  `avp:"Session-Id"`
	DRMP                        *datatype.Enumerated                 `avp:"DRMP,omitempty"`
	VendorSpecificApplicationId basetype.VendorSpecificApplicationId `avp:"Vendor-Specific-Application-Id"`
	AuthSessionState            datatype.Enumerated                  `avp:"Auth-Session-State"`
	OriginHost                  datatype.DiameterIdentity            `avp:"Origin-Host"`
	OriginRealm                 datatype.DiameterIdentity            `avp:"Origin-Realm"`
	DestinationHost             *datatype.DiameterIdentity           `avp:"Destination-Host,omitempty"`
	DestinationRealm            datatype.DiameterIdentity            `avp:"Destination-Realm"`
	SupportedFeatures           []basetype.SupportedFeatures         `avp:"Supported-Features,omitempty"`
	UserIdentity                basetype.UserIdentity                `avp:"User-Identity"`
	WildcardedPublicIdentity    *datatype.UTF8String                 `avp:"Wildcarded-Public-Identity,omitempty"`
	WildcardedIMPU              *datatype.UTF8String                 `avp:"Wildcarded-IMPU,omitempty"`
	UserName                    *datatype.UTF8String                 `avp:"User-Name,omitempty"`
	DataReference               []datatype.Enumerated                `avp:"Data-Reference"`
	UserData                    datatype.OctetString                 `avp:"User-Data"`
	OCSupportedFeatures         *basetype.OCSupportedFeatures        `avp:"OC-Supported-Features,omitempty"`
	ProxyInfo                   []basetype.ProxyInfo                 `avp:"Proxy-Info,omitempty"`
	RouteRecord                 []datatype.DiameterIdentity          `avp:"Route-Record,omitempty"`
}

refer to 3GPP TS 29.329 6.1.3 Profile-Update-Request

func (*PUR) Parse added in v4.0.7

func (pur *PUR) Parse(m *diam.Message) error

Parse parses and validates the given message, and returns nil when all AVPs are ok.

type RDA added in v4.0.16

type RDA struct {
	SessionId                   datatype.UTF8String                   `avp:"Session-Id"`
	Drmp                        *datatype.Enumerated                  `avp:"DRMP,omitempty"`
	VendorSpecificApplicationId *basetype.VendorSpecificApplicationId `avp:"Vendor-Specific-Application-Id,omitempty"`
	ResultCode                  *datatype.Unsigned32                  `avp:"Result-Code,omitempty"`
	ExperimentalResult          *basetype.ExperimentalResult          `avp:"Experimental-Result,omitempty"`
	AuthSessionState            datatype.Enumerated                   `avp:"Auth-Session-State"`
	OriginHost                  datatype.DiameterIdentity             `avp:"Origin-Host"`
	OriginRealm                 datatype.DiameterIdentity             `avp:"Origin-Realm"`
	SupportedFeatures           []basetype.SupportedFeatures          `avp:"Supported-Features,omitempty"`
	UserIdentifier              *basetype.UserIdentifier              `avp:"User-Identifier,omitempty"`
	FailedAvp                   basetype.FailedAVP                    `avp:"Failed-AVP,omitempty"`
	ProxyInfo                   []basetype.ProxyInfo                  `avp:"Proxy-Info,omitempty"`
	RouteRecord                 []datatype.DiameterIdentity           `avp:"Route-Record,omitempty"`
}

RDA refers to Report-SM-Delivery-Status-Answer. See 3GPP TS 29.338 Clause 5.3.2.8 for details

func (*RDA) Parse added in v4.0.16

func (rda *RDA) Parse(m *diam.Message) error

Parse parses the given message.

func (*RDA) String added in v4.0.19

func (r *RDA) String() string

type RDR added in v4.0.15

type RDR struct {
	SessionId                   datatype.UTF8String                   `avp:"Session-Id"`
	Drmp                        *datatype.Enumerated                  `avp:"DRMP,omitempty"`
	VendorSpecificApplicationId *basetype.VendorSpecificApplicationId `avp:"Vendor-Specific-Application-Id,omitempty"`
	AuthSessionState            datatype.Enumerated                   `avp:"Auth-Session-State"`
	OriginHost                  datatype.DiameterIdentity             `avp:"Origin-Host"`
	OriginRealm                 datatype.DiameterIdentity             `avp:"Origin-Realm"`
	DestinationHost             *datatype.DiameterIdentity            `avp:"Destination-Host,omitempty"`
	DestinationRealm            datatype.DiameterIdentity             `avp:"Destination-Realm"`
	SupportedFeatures           []basetype.SupportedFeatures          `avp:"Supported-Features,omitempty"`
	UserIdentifier              basetype.UserIdentifier               `avp:"User-Identifier"`
	SmsmiCorrelationId          *basetype.SMSMICorrelationID          `avp:"SMSMI-Correlation-ID,omitempty"`
	ScAddress                   datatype.OctetString                  `avp:"SC-Address"`
	SmDeliveryOutcome           basetype.SMDeliveryOutcome            `avp:"SM-Delivery-Outcome"`
	RdrFlags                    *datatype.Unsigned32                  `avp:"RDR-Flags,omitempty"`
	ProxyInfo                   []basetype.ProxyInfo                  `avp:"Proxy-Info,omitempty"`
	RouteRecord                 []datatype.DiameterIdentity           `avp:"Route-Record,omitempty"`
}

RDR refers to Report-SM-Delivery-Status-Request. See 3GPP TS 29.338 Clause 5.3.2.7 for details

func (*RDR) Parse added in v4.0.15

func (rdr *RDR) Parse(m *diam.Message) error

Parse parses the given message.

func (*RDR) String added in v4.0.19

func (r *RDR) String() string

type Role

type Role uint8

Role stores information whether SM is initialized as a Client or a Server

const (
	Server Role = iota + 1
	Client
)

ServerRole and ClientRole enums are passed to smparser for proper CER/CEA verification

type SNA added in v4.0.6

type SNA struct {
	SessionID                   datatype.UTF8String                  `avp:"Session-Id"`
	DRMP                        *datatype.Enumerated                 `avp:"DRMP,omitempty"`
	VendorSpecificApplicationId basetype.VendorSpecificApplicationId `avp:"Vendor-Specific-Application-Id"`
	AuthSessionState            datatype.Enumerated                  `avp:"Auth-Session-State"`
	ResultCode                  *datatype.Unsigned32                 `avp:"Result-Code,omitempty"`
	ExperimentalResult          *basetype.ExperimentalResult         `avp:"Experimental-Result,omitempty"`
	OriginHost                  datatype.DiameterIdentity            `avp:"Origin-Host"`
	OriginRealm                 datatype.DiameterIdentity            `avp:"Origin-Realm"`
	WildcardedPublicIdentity    *datatype.UTF8String                 `avp:"Wildcarded-Public-Identity,omitempty"`
	WildcardedIMPU              *datatype.UTF8String                 `avp:"Wildcarded-IMPU,omitempty"`
	SupportedFeatures           []basetype.SupportedFeatures         `avp:"Supported-Features,omitempty"`
	UserData                    *datatype.OctetString                `avp:"User-Data,omitempty"`
	ExpiryTime                  *datatype.Time                       `avp:"Expiry-Time,omitempty"`
	OCSupportedFeatures         *basetype.OCSupportedFeatures        `avp:"OC-Supported-Features,omitempty"`
	OCOLR                       *basetype.OCOLR                      `avp:"OC-OLR,omitempty"`
	Load                        []basetype.Load                      `avp:"Load,omitempty"`
	FailedAVP                   basetype.FailedAVP                   `avp:"Failed-AVP,omitempty"`
	ProxyInfo                   []basetype.ProxyInfo                 `avp:"Proxy-Info,omitempty"`
	RouteRecord                 []datatype.DiameterIdentity          `avp:"Route-Record,omitempty"`
}

refer to 3GPP TS 29.329 6.1.6 Subscribe-Notifications-Answer

func (*SNA) Parse added in v4.0.6

func (sna *SNA) Parse(m *diam.Message) error

Parse parses the given message.

type SNR added in v4.0.6

type SNR struct {
	SessionID                   datatype.UTF8String                  `avp:"Session-Id"`
	DRMP                        *datatype.Enumerated                 `avp:"DRMP,omitempty"`
	VendorSpecificApplicationId basetype.VendorSpecificApplicationId `avp:"Vendor-Specific-Application-Id"`
	AuthSessionState            datatype.Enumerated                  `avp:"Auth-Session-State"`
	OriginHost                  datatype.DiameterIdentity            `avp:"Origin-Host"`
	OriginRealm                 datatype.DiameterIdentity            `avp:"Origin-Realm"`
	DestinationHost             *datatype.DiameterIdentity           `avp:"Destination-Host,omitempty"`
	DestinationRealm            datatype.DiameterIdentity            `avp:"Destination-Realm"`
	SupportedFeatures           []basetype.SupportedFeatures         `avp:"Supported-Features,omitempty"`
	UserIdentity                basetype.UserIdentity                `avp:"User-Identity"`
	WildcardedPublicIdentity    *datatype.UTF8String                 `avp:"Wildcarded-Public-Identity,omitempty"`
	WildcardedIMPU              *datatype.UTF8String                 `avp:"Wildcarded-IMPU,omitempty"`
	ServiceIndication           []datatype.OctetString               `avp:"Service-Indication,omitempty"`
	SendDataIndication          *datatype.Enumerated                 `avp:"Send-Data-Indication,omitempty"`
	ServerName                  *datatype.UTF8String                 `avp:"Server-Name,omitempty"`
	SubsReqType                 datatype.Enumerated                  `avp:"Subs-Req-Type"`
	DataReference               []datatype.Enumerated                `avp:"Data-Reference"`
	IdentitySet                 []datatype.Enumerated                `avp:"Identity-Set,omitempty"`
	ExpiryTime                  *datatype.Time                       `avp:"Expiry-Time,omitempty"`
	DSAITag                     []datatype.OctetString               `avp:"DSAI-Tag,omitempty"`
	OneTimeNotification         *datatype.Enumerated                 `avp:"One-Time-Notification,omitempty"`
	UserName                    *datatype.UTF8String                 `avp:"User-Name,omitempty"`
	OCSupportedFeatures         *basetype.OCSupportedFeatures        `avp:"OC-Supported-Features,omitempty"`
	ProxyInfo                   []basetype.ProxyInfo                 `avp:"Proxy-Info,omitempty"`
	RouteRecord                 []datatype.DiameterIdentity          `avp:"Route-Record,omitempty"`
}

refer to 3GPP TS 29.329 6.1.5 Subscribe-Notifications-Request

func (*SNR) Parse added in v4.0.6

func (snr *SNR) Parse(m *diam.Message) error

Parse parses and validates the given message, and returns nil when all AVPs are ok.

type SRA added in v4.0.16

type SRA struct {
	SessionId                         datatype.UTF8String                   `avp:"Session-Id"`
	Drmp                              *datatype.Enumerated                  `avp:"DRMP,omitempty"`
	VendorSpecificApplicationId       *basetype.VendorSpecificApplicationId `avp:"Vendor-Specific-Application-Id,omitempty"`
	ResultCode                        *datatype.Unsigned32                  `avp:"Result-Code,omitempty"`
	ExperimentalResult                *basetype.ExperimentalResult          `avp:"Experimental-Result,omitempty"`
	AuthSessionState                  datatype.Enumerated                   `avp:"Auth-Session-State"`
	OriginHost                        datatype.DiameterIdentity             `avp:"Origin-Host"`
	OriginRealm                       datatype.DiameterIdentity             `avp:"Origin-Realm"`
	UserName                          *datatype.UTF8String                  `avp:"User-Name,omitempty"`
	SupportedFeatures                 []basetype.SupportedFeatures          `avp:"Supported-Features,omitempty"`
	ServingNode                       *basetype.ServingNode                 `avp:"Serving-Node,omitempty"`
	AdditionalServingNode             *basetype.AdditionalServingNode       `avp:"Additional-Serving-Node,omitempty"`
	Smsf3gppAddress                   *basetype.SMSF3GPPAddress             `avp:"SMSF-3GPP-Address,omitempty"`
	SmsfNon3gppAddress                *basetype.SMSFNon3GPPAddress          `avp:"SMSF-Non-3GPP-Address,omitempty"`
	Lmsi                              *datatype.OctetString                 `avp:"LMSI,omitempty"`
	UserIdentifier                    *basetype.UserIdentifier              `avp:"User-Identifier,omitempty"`
	MwdStatus                         *datatype.Unsigned32                  `avp:"MWD-Status,omitempty"`
	MmeAbsentUserDiagnosticSm         *datatype.Unsigned32                  `avp:"MME-Absent-User-Diagnostic-SM,omitempty"`
	MscAbsentUserDiagnosticSm         *datatype.Unsigned32                  `avp:"MSC-Absent-User-Diagnostic-SM,omitempty"`
	SgsnAbsentUserDiagnosticSm        *datatype.Unsigned32                  `avp:"SGSN-Absent-User-Diagnostic-SM,omitempty"`
	Smsf3gppAbsentUserDiagnosticSm    *datatype.Unsigned32                  `avp:"SMSF-3GPP-Absent-User-Diagnostic-SM,omitempty"`
	SmsfNon3gppAbsentUserDiagnosticSm *datatype.Unsigned32                  `avp:"SMSF-Non-3GPP-Absent-User-Diagnostic-SM,omitempty"`
	FailedAvp                         basetype.FailedAVP                    `avp:"Failed-AVP,omitempty"`
	ProxyInfo                         []basetype.ProxyInfo                  `avp:"Proxy-Info,omitempty"`
	RouteRecord                       []datatype.DiameterIdentity           `avp:"Route-Record,omitempty"`
}

SRA refers to Send-Routing-info-for-SM-Answer See 3GPP TS 29.338 Clause 5.3.2.4 for details

func (*SRA) Parse added in v4.0.16

func (sra *SRA) Parse(m *diam.Message) error

Parse parses the given message.

func (*SRA) String added in v4.0.19

func (s *SRA) String() string

type SRR added in v4.0.16

type SRR struct {
	SessionId                   datatype.UTF8String                   `avp:"Session-Id"`
	Drmp                        *datatype.Enumerated                  `avp:"DRMP,omitempty"`
	VendorSpecificApplicationId *basetype.VendorSpecificApplicationId `avp:"Vendor-Specific-Application-Id,omitempty"`
	AuthSessionState            datatype.Enumerated                   `avp:"Auth-Session-State"`
	OriginHost                  datatype.DiameterIdentity             `avp:"Origin-Host"`
	OriginRealm                 datatype.DiameterIdentity             `avp:"Origin-Realm"`
	DestinationHost             *datatype.DiameterIdentity            `avp:"Destination-Host,omitempty"`
	DestinationRealm            datatype.DiameterIdentity             `avp:"Destination-Realm"`
	Msisdn                      *datatype.OctetString                 `avp:"MSISDN,omitempty"`
	UserName                    *datatype.UTF8String                  `avp:"User-Name,omitempty"`
	SmsmiCorrelationId          *basetype.SMSMICorrelationID          `avp:"SMSMI-Correlation-ID,omitempty"`
	SupportedFeatures           []basetype.SupportedFeatures          `avp:"Supported-Features,omitempty"`
	ScAddress                   *datatype.OctetString                 `avp:"SC-Address,omitempty"`
	SmRpMti                     *datatype.Enumerated                  `avp:"SM-RP-MTI,omitempty"`
	SmRpSmea                    *datatype.OctetString                 `avp:"SM-RP-SMEA,omitempty"`
	SrrFlags                    *datatype.Unsigned32                  `avp:"SRR-Flags,omitempty"`
	SmDeliveryNotIntended       *datatype.Enumerated                  `avp:"SM-Delivery-Not-Intended,omitempty"`
	ProxyInfo                   []basetype.ProxyInfo                  `avp:"Proxy-Info,omitempty"`
	RouteRecord                 []datatype.DiameterIdentity           `avp:"Route-Record,omitempty"`
}

SRR refers to Send-Routing-info-for-SM-Request See 3GPP TS 29.338 Clause 5.3.2.3 for details

func (*SRR) Parse added in v4.0.16

func (srr *SRR) Parse(m *diam.Message) error

Parse parses the given message.

func (*SRR) String added in v4.0.19

func (s *SRR) String() string

type TFA added in v4.0.15

type TFA struct {
	SessionId                   datatype.UTF8String                   `avp:"Session-Id"`
	Drmp                        *datatype.Enumerated                  `avp:"DRMP,omitempty"`
	VendorSpecificApplicationId *basetype.VendorSpecificApplicationId `avp:"Vendor-Specific-Application-Id,omitempty"`
	ResultCode                  *datatype.Unsigned32                  `avp:"Result-Code,omitempty"`
	ExperimentalResult          *basetype.ExperimentalResult          `avp:"Experimental-Result,omitempty"`
	AuthSessionState            datatype.Enumerated                   `avp:"Auth-Session-State"`
	OriginHost                  datatype.DiameterIdentity             `avp:"Origin-Host"`
	OriginRealm                 datatype.DiameterIdentity             `avp:"Origin-Realm"`
	SupportedFeatures           []basetype.SupportedFeatures          `avp:"Supported-Features,omitempty"`
	AbsentUserDiagnosticSm      *datatype.Unsigned32                  `avp:"Absent-User-Diagnostic-SM,omitempty"`
	SmDeliveryFailureCause      *basetype.SMDeliveryFailureCause      `avp:"SM-Delivery-Failure-Cause,omitempty"`
	SmRpUi                      *datatype.OctetString                 `avp:"SM-RP-UI,omitempty"`
	RequestedRetransmissionTime *datatype.Time                        `avp:"Requested-Retransmission-Time,omitempty"`
	UserIdentifier              *basetype.UserIdentifier              `avp:"User-Identifier,omitempty"`
	FailedAvp                   basetype.FailedAVP                    `avp:"Failed-AVP,omitempty"`
	ProxyInfo                   []basetype.ProxyInfo                  `avp:"Proxy-Info,omitempty"`
	RouteRecord                 []datatype.DiameterIdentity           `avp:"Route-Record,omitempty"`
}

TFA refers to Mt-Forward-Short-Message-Answer. See 3GPP TS 29.338 Clause 6.3.2.6 for details

func (*TFA) Parse added in v4.0.15

func (tfa *TFA) Parse(m *diam.Message) error

Parse parses the given message.

func (*TFA) String added in v4.0.19

func (t *TFA) String() string

type TFR added in v4.0.15

type TFR struct {
	SessionId                   datatype.UTF8String                   `avp:"Session-Id"`
	Drmp                        *datatype.Enumerated                  `avp:"DRMP,omitempty"`
	VendorSpecificApplicationId *basetype.VendorSpecificApplicationId `avp:"Vendor-Specific-Application-Id,omitempty"`
	AuthSessionState            datatype.Enumerated                   `avp:"Auth-Session-State"`
	OriginHost                  datatype.DiameterIdentity             `avp:"Origin-Host"`
	OriginRealm                 datatype.DiameterIdentity             `avp:"Origin-Realm"`
	DestinationHost             datatype.DiameterIdentity             `avp:"Destination-Host"`
	DestinationRealm            datatype.DiameterIdentity             `avp:"Destination-Realm"`
	UserName                    datatype.UTF8String                   `avp:"User-Name"`
	SupportedFeatures           []basetype.SupportedFeatures          `avp:"Supported-Features,omitempty"`
	SmsmiCorrelationId          *basetype.SMSMICorrelationID          `avp:"SMSMI-Correlation-ID,omitempty"`
	ScAddress                   datatype.OctetString                  `avp:"SC-Address"`
	SmRpUi                      datatype.OctetString                  `avp:"SM-RP-UI"`
	MmeNumberForMtSms           *datatype.OctetString                 `avp:"MME-Number-for-MT-SMS,omitempty"`
	SgsnNumber                  *datatype.OctetString                 `avp:"SGSN-Number,omitempty"`
	TfrFlags                    *datatype.Unsigned32                  `avp:"TFR-Flags,omitempty"`
	SmDeliveryTimer             *datatype.Unsigned32                  `avp:"SM-Delivery-Timer,omitempty"`
	SmDeliveryStartTime         *datatype.Time                        `avp:"SM-Delivery-Start-Time,omitempty"`
	MaximumRetransmissionTime   *datatype.Time                        `avp:"Maximum-Retransmission-Time,omitempty"`
	SmsGmscAddress              *datatype.OctetString                 `avp:"SMS-GMSC-Address,omitempty"`
	ProxyInfo                   []basetype.ProxyInfo                  `avp:"Proxy-Info,omitempty"`
	RouteRecord                 []datatype.DiameterIdentity           `avp:"Route-Record,omitempty"`
}

TFR refers to Mt-Forward-Short-Message-Request. See 3GPP TS 29.338 Clause 6.3.2.5 for details

func (*TFR) Parse added in v4.0.15

func (tfr *TFR) Parse(m *diam.Message) error

Parse parses the given message.

func (*TFR) Serialize added in v4.0.23

func (tfr *TFR) Serialize() *diam.Message

func (*TFR) String added in v4.0.19

func (t *TFR) String() string

type UDA added in v4.0.23

type UDA struct {
	SessionID                   datatype.UTF8String                  `avp:"Session-Id"`
	DRMP                        *datatype.Enumerated                 `avp:"DRMP,omitempty"`
	VendorSpecificApplicationId basetype.VendorSpecificApplicationId `avp:"Vendor-Specific-Application-Id"`
	ResultCode                  *datatype.Unsigned32                 `avp:"Result-Code,omitempty"`
	ExperimentalResult          *basetype.ExperimentalResult         `avp:"Experimental-Result,omitempty"`
	AuthSessionState            datatype.Enumerated                  `avp:"Auth-Session-State"`
	OriginHost                  datatype.DiameterIdentity            `avp:"Origin-Host"`
	OriginRealm                 datatype.DiameterIdentity            `avp:"Origin-Realm"`
	SupportedFeatures           []basetype.SupportedFeatures         `avp:"Supported-Features,omitempty"`
	WildcardedPublicIdentity    *datatype.UTF8String                 `avp:"Wildcarded-Public-Identity,omitempty"`
	WildcardedIMPU              *datatype.UTF8String                 `avp:"Wildcarded-IMPU,omitempty"`
	UserData                    *datatype.OctetString                `avp:"User-Data,omitempty"`
	OCSupportedFeatures         *basetype.OCSupportedFeatures        `avp:"OC-Supported-Features,omitempty"`
	OCOLR                       *basetype.OCOLR                      `avp:"OC-OLR,omitempty"`
	Load                        *basetype.Load                       `avp:"Load,omitempty"`
	FailedAVP                   basetype.FailedAVP                   `avp:"Failed-AVP,omitempty"`
	ProxyInfo                   []basetype.ProxyInfo                 `avp:"Proxy-Info,omitempty"`
	RouteRecord                 []datatype.DiameterIdentity          `avp:"Route-Record,omitempty"`
}

refer to 3GPP TS 29.329 6.1.2 User-Data-Answer

func (*UDA) Parse added in v4.0.23

func (uda *UDA) Parse(m *diam.Message) error

Parse parses and validates the given message, and returns nil when all AVPs are ok.

type UDR added in v4.0.6

type UDR struct {
	SessionID                   datatype.UTF8String                  `avp:"Session-Id"`
	DRMP                        *datatype.Enumerated                 `avp:"DRMP,omitempty"`
	VendorSpecificApplicationId basetype.VendorSpecificApplicationId `avp:"Vendor-Specific-Application-Id"`
	AuthSessionState            datatype.Enumerated                  `avp:"Auth-Session-State"`
	OriginHost                  datatype.DiameterIdentity            `avp:"Origin-Host"`
	OriginRealm                 datatype.DiameterIdentity            `avp:"Origin-Realm"`
	DestinationHost             *datatype.DiameterIdentity           `avp:"Destination-Host,omitempty"`
	DestinationRealm            datatype.DiameterIdentity            `avp:"Destination-Realm"`
	SupportedFeatures           []basetype.SupportedFeatures         `avp:"Supported-Features,omitempty"`
	UserIdentity                basetype.UserIdentity                `avp:"User-Identity"`
	WildcardedPublicIdentity    *datatype.UTF8String                 `avp:"Wildcarded-Public-Identity,omitempty"`
	WildcardedIMPU              *datatype.UTF8String                 `avp:"Wildcarded-IMPU,omitempty"`
	ServerName                  *datatype.UTF8String                 `avp:"Server-Name,omitempty"`
	ServiceIndication           []datatype.OctetString               `avp:"Service-Indication,omitempty"`
	DataReference               []datatype.Enumerated                `avp:"Data-Reference"`
	IdentitySet                 []datatype.Enumerated                `avp:"Identity-Set,omitempty"`
	RequestedDomain             *datatype.Enumerated                 `avp:"Requested-Domain,omitempty"`
	CurrentLocation             *datatype.Enumerated                 `avp:"Current-Location,omitempty"`
	DsaiTag                     []datatype.OctetString               `avp:"DSAI-Tag,omitempty"`
	SessionPriority             *datatype.Enumerated                 `avp:"Session-Priority,omitempty"`
	UserName                    *datatype.UTF8String                 `avp:"User-Name,omitempty"`
	RequestedNodes              *datatype.Unsigned32                 `avp:"Requested-Nodes,omitempty"`
	ServingNodeIndication       *datatype.Enumerated                 `avp:"Serving-Node-Indication,omitempty"`
	PrePagingSupported          *datatype.Enumerated                 `avp:"Pre-paging-Supported,omitempty"`
	LocalTimeZoneIndication     *datatype.Enumerated                 `avp:"Local-Time-Zone-Indication,omitempty"`
	UDRFlags                    *datatype.Unsigned32                 `avp:"UDR-Flags,omitempty"`
	CallReferenceInfo           *basetype.CallReferenceInfo          `avp:"Call-Reference-Info,omitempty"`
	OCSupportedFeatures         *basetype.OCSupportedFeatures        `avp:"OC-Supported-Features,omitempty"`
	ProxyInfo                   []basetype.ProxyInfo                 `avp:"Proxy-Info,omitempty"`
	RouteRecord                 []datatype.DiameterIdentity          `avp:"Route-Record,omitempty"`
}

refer to 3GPP TS 29.329 6.1.1 User-Data-Request

func (*UDR) Parse added in v4.0.6

func (udr *UDR) Parse(m *diam.Message) error

Parse parses and validates the given message, and returns nil when all AVPs are ok.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL