PortaBilling custom attributes

Link copied to clipboard

All custom attributes conform to the VSA syntax. Attributes received by PortaBilling from the NAS are entered into the h323-ivr-out attribute (VSA No. 1), encoded as name:value pairs. Attributes sent by PortaBilling to the NAS are entered into the h323-ivr-in attribute (VSA No. 1), encoded as name:value pairs. The second form e.g., h323-ivr-out = PortaBilling_Session:value is used to simplify integration with historical third party equipment already supporting Cisco VSA dictionaries.

Unless otherwise specified, any custom attribute may only be included once for each request.

Attributes sent by a RADIUS client to the PortaBilling server (h323-ivr-out)

Link copied to clipboard

PortaBilling_AuthMethod

Link copied to clipboard

This is the internal attribute used to describe the method of authentication or authorization requested by NAS application from the billing server. Normally the method is determined from service type and context automatically, but advanced applications (e.g., IVR) may override it. The value is used in billing logs to differentiate among request types.

Format:

PortaBilling_AuthMethod:<string>

Possible values:

INVITE, REFER, REGISTER for various SIP voice call authorizations

Example:

h323-ivr-out = 'PortaBilling_AuthMethod:INVITE'

PortaBilling_Authorize

Link copied to clipboard

This attribute is used by NAS to request a quota during authorization or reauthorization from the billing server. It is then returned to the NAS in the authorization response from the billing server with provided properties of a granted quota.

Format:

PortaBilling_AuthMethod:base=<rating_base>;<option1>=<value1>;<option2>=<value2>;...

Possible values for the authorization request:

Option

Description

base

The rating base which the application can support for maintaining usage counters, for example, session-time. In general, the application can support multiple base counters, so that the attribute can be presented multiple times

min

The minimum amount of units (>0) for this rating base till the next authorization. This value also informs the billing engine that the NAS is capable of sending re-authorization requests

max

The maximum amount of units (>0) for this rating base which the application is requesting. This represents the resource limit for authorizing this session

max_funds

The maximum amount of funds to be allocated for the session. This is optional, as fund limits are usually either set on the PortaBilling side or computed dynamically based on the price and value provided in max option

expires

UNIX timestamp which defines the moment when the transaction is expected to start (for example, covering the delay before a call is established). Optional; defaults to authorization request time

max_expires

An estimate of when the maximum amount of units could be spent, in order to properly estimate the time for fund lock expiry. This helps to compute the speed (in seconds) at which the units are spent. It is only needed if the base units are not in seconds.

For session-time, the billing engine can compute this as expires + max, with the spending speed as 1 unit per second. In general, the spending speed can be computed as max/(max_expires – expires)

Example:

h323-ivr-out = 'PortaBilling_Authorize:base=session-time;max=10;min=5'

Possible values for the authorization response:

Option

Description

base

The rating base which the NAS should use to limit the resources

avail

The maximum amount of resource units available for the session. This can be omitted if there is another standard attribute for maximum session units provided (like h323-ivr-out=DURATION:); otherwise the default for this value is -1. If the value is negative, it means “infinite”, and the session resources are not limited

expires

UNIX timestamp informing NAS of the moment when the relevant deposit lock will expire

retained

When the resource limit has been used, this number shows how many units were retained (not provided for this session) due to the limit

Example:

h323-ivr-in = 'PortaBilling_Authorize:base=session-time;avail=10;retained=490;expires=1515660408'

PortaBilling_AccessCode

Link copied to clipboard

An access code for selecting a specific rate plan within a product. Although originally used to pass the “IVR access number” to billing, it may contain any string (e.g., “FIRSTCALL”). For Quintum compatibility, this attribute also has the synonym ACCESSCODE.

Format:

PortaBilling_AccessCode:<string>

Possible values:

Any string. The value passed will be compared to the values entered in the product’s accessibility (case-sensitively).

  1. Exact match – any ASCII characters string without ‘|’ and ‘.’  equal to the PortaBilling access code to be matched (case-sensitively).
  2. Dot separated match pattern – the string which consists of the “domain” like string separated by dots (e.g., ‘ivr.branding.4565’). It is split on dots and matched by the longest split, e.g., to match ‘ivr.branding.4565’ pattern against ‘ivr.branding.4565’,  ‘ivr.branding’ and ‘ivr’.
  3. The ‘|’ separated list of patterns – the dot separated patterns are tried from the left and the first matching one will win. E.g.,  ‘top.321|ivr.branding’ matches in the order: ‘top.321’, ‘top’, ‘ivr.branding’, ‘ivr’.

Example:

h323-ivr-out = 'PortaBilling_AccessCode:18001234567'

PortaBilling_CallbackHistory

Link copied to clipboard

This provides information about the other (second) call leg of a call in the callback scenario so that the first call leg can be billed properly (e.g., “do not bill the first leg if the second leg was not connected”). This attribute may be present multiple times in a request. Only the last occurrence is actually used, while the others are ignored.

Format:

PortaBilling_CallbackHistory:<string>

Possible values:

Value

Description

START

The first call leg was started

ATTEMPT

The callback engine attempted to establish an outgoing call for the second leg

OK

The second call leg was successfully connected

If there is no OK entry, the call leg will be billed using a special rate plan associated in the product configuration with the “CALLBACK_FAIL” access code.

Example:

h323-ivr-out      = 'PortaBilling_CallbackHistory:START'
h323-ivr-out      = 'PortaBilling_CallbackHistory:ATTEMPT'
h323-ivr-out      = 'PortaBilling_CallbackHistory:OK'

PortaBilling_Ignore_Password

Link copied to clipboard

This allows to bypass the password check during authentication or authorization.

Format:

PortaBilling_Ignore_Password:<YES|NO>

Possible values: YES or NO.

Example:

h323-ivr-out      = PortaBilling_Ignore_Password:YES'

PortaBilling_Original_DNIS

Link copied to clipboard

This replaces the value of the Called-Station-Id attribute (i.e. the destination phone number used for call rating) to workaround specific call scenario when it cannot be set directly (e.g., when Cisco TCL scripts are used).

Format:

PortaBilling_Original_DNIS:<value>

where the value is a semicolon-separated list of name:value pairs.

Possible values:

E.164 phone number (a sequence of digits, * and/or # signs).

Example:

h323-ivr-out      = 'PortaBilling_Original_DNIS:19001234567'

PortaBilling_RestoreCacheLevel

Link copied to clipboard

This controls how the billing engine uses the account information retrieved during the authorization process for a request, in order to facilitate the processing of other requests. Its most common application is to disable this information for re-use, if for some reason information from the current request should not be applied to other call legs (e.g., in callback scripts).

Format:

PortaBilling_RestoreCacheLevel:<integer>

Possible values:

Value

Description

-1

Disable caching and reuse of account information.

0

Trust the account identified on the request, but not the billing access context

1

Trust both – the account and the billing access context associated with the request

Example:

h323-ivr-out      = ' PortaBilling_RestoreCacheLevel:-1'

PortaBilling_SelectCode

Link copied to clipboard

This contains a selection code dialed by a user to route a call via a particular routing plan. PortaBilling matches the tariff within the product based on the routing plan selection.

Format:

PortaBilling_SelectCode:<value>

Possible values:

An integer identifying a routing plan select code (prefix).

Example:

h323-ivr-out = 'PortaBilling_SelectCode:11564'

PortaBilling_Session

Link copied to clipboard

This allows you to control an account’s login session (sessions are used to prevent simultaneous logins by debit accounts). This attribute may be used in the accounting record for a specific call leg in order to force the session to be unlocked. (For instance, to force a session unlock on the answer/VoIP call leg, instead of the customary answer/Telephony call leg). An optional expires and max-expires parameters may control how long the session lock state is supposed to be held on the billing engine (for example, to preserve the funds deposited for the session until the next radius message.)

Format:

PortaBilling_Session:<string>
PortaBilling_Session:<lockaction>[;open=stageid][;expires=<seconds>][;max_expires=<seconds>]

Possible lock values:

Value

Description

lock

Lock the account for the current session and unlock any other existing session for this account

nolock

Do not lock the account after the current request

unlock

Do not lock the account for the current session and unlock any other existing session for this account

ignore

Do not set or remove any locks, and skip any lock checks

Example:

h323-ivr-out      = 'PortaBilling_Session:nolock'

PortaBilling_SessionEnv

Link copied to clipboard

This allows specifying the value of i_env for request from internal NAS node. For normal nodes with already defined i_env value, this attribute will be ignored.

Format:

PortaBilling_SessionEnv:<int>

Example:

h323-ivr-out = 'PortaBilling_SessionEnv:3'

PortaOne-Access-Info

Link copied to clipboard

Provides the information about the access points in the authorization request from NAS. An access point identifies the way in which a user accesses services and how are they going to be charged. Multiple services can be allowed for a user in a product (e.g., ANI authentication, wholesale, or callback); however, they must be clearly separated from each other to ensure correct billing. This is done by defining a rating entry for every service allowed in a product. PortaBilling uses this attribute to match the rating entry in the product configuration when authorizing a session.

Format:

PortaOne-Access-Info:<propertyname1=value1>;…

Example:

PortaOne-Access-Info = 'delegate=1;nas-ip-address=10.10.10.10;user-name=14567238;access-code=OUTGOING'

PortaOne-Service-Type (formerly Service-Identifier)

Link copied to clipboard

This contains the identifier for a service in PortaBilling.

Format: PortaOne-Service-Type=<value>

Possible values: A non-empty string identifying a service in PortaBilling:

  • Session – generic time-based service type; it can be used to apply charges for any service use based on the length of time the service was accessed.

  • Voice – rating telephony calls (incoming or outgoing) made via PortaSIP, VoIP gateways or other equipment.

  • Data – data transfers rated using the amount transferred as the billing parameter.

  • Netaccess – Internet access sessions (DSL, PPPoE, etc.), rated based on session duration or the amount of transferred data.

  • Quantity – generic quantity-based service type; can be used to apply charges for any service use expressible in numerical form (e.g., the number of pizzas ordered).

  • Wifi – wireless Internet access sessions, rated based on session duration.

  • Dialup – dialup Internet access sessions, rated based on session duration.

  • Msg – rating messages (text, SMS, MMS, other) based on the number of messages sent.

  • Conference – rating conference calls via PortaSIP Media Server (or some conferencing server).

  • Did – can be used to apply charges to customers for usage of DID numbers.

Example: PortaOne-Service-Type=Conference

PortaOne-Called-Party

Link copied to clipboard

This provides information about the called party.

Format:

PortaOne-called-Party:<propertyname1=value1>;…

Properties:

Property

Description

id

This contains the caller ID information for the call. It is taken from the P-Asserted-Identity and RPID headers

display-id

This indicates the “Caller number” value that is taken from the From: header and typically displayed on the called party’s phone display

privacy

This indicates that the calling party requests its identification to be kept private (hidden from the final call recipient.) Possible values: 1/0, default 0

name

This is a caller name. It is taken from the CLN field

site

The unique ID of the local cloud PBX site which the party belongs to

x-id

The caller’s extension number configured on the PBX of a calling party / within the cloud PBX

x

The unique ID of the local cloud PBX (customer/head office) which the party belongs to

ctx-id

The unique identifier for the calling party’s PBX

x-grp

Optional. The group setting for the call group pickup. The huntgroup extension, on behalf of which the call happened

media-time

The time the respective party spent connected to media on the call

bill-to

The account ID representing the entity in system. If not present, it means the party is from the outside network. The value can be used in User-Name if the respective party performs some action (e.g., becomes transferor).

net

The identifier of the network:

  • 0 for directly owned accounts.

  • >0 is an id of reseller.

e212

Code in MCC-MNC format (E.212) – mobile operator + network codes

roam-e212

The roaming identification of a caller in the MCC-MNC format (E.212)

Example:

h323-ivr-out     = 'PortaOne-Called-Party = 'ctx-id=52333;name=EASYCALL;id=17289277770;display-id=17289277770;net=0'

PortaOne-Calling-Party

Link copied to clipboard

This provides information about the calling party.

Format:

PortaOne-Calling-Party = <propertyname1=value1>;…

Properties:

Property

Description

id

This contains the caller ID information for the call. It is taken from the P-Asserted-Identity and RPID headers

display-id

This indicates the “Caller number” value that is taken from the From: header and typically displayed on the called party’s phone display

privacy

This is a privacy flag which indicates that the calling party requests its identification to be kept private (hidden from the final call recipient.) Possible values: 1/0, default 0

name

This is a caller name. It is taken from the CLN field

site

The unique ID of the local cloud PBX site which the party belongs to

x-id

The caller’s extension number configured on the PBX of a calling party

x-grp

The huntgroup extension, on behalf of which the call has happened

x

The unique identifier for the calling party PBX

media-time

The time the respective party spent connected to media on the call

bill-to

The account ID representing the entity in system. If not present, it means the party is from the outside network. The value can be used in User-Name if the respective party performs some action (e.g., becomes transferor).

net

The identifier of the network:

  • 0 for directly owned accounts.

  • >0 is an id of reseller.

ctx-id

The unique identifier for the calling party’s PBX

e212

Code in MCC-MNC format (E.212) – mobile operator + network codes

roam-e212

The roaming identification of a caller in the MCC-MNC format (E.212)

Example:

h323-ivr-out     = 'PortaOne-Calling-Party = 'x=52333;name=EASYCALL;id=17289277770;display-id=17289277770''

PortaOne-Charge

Link copied to clipboard

This informs that the imported xDR must be charged.

Format:

PortaOne-Charge:<propertyname1=value1>;…

Properties:

Property

Description

apply

The request flag which defines when the charge is applicable for a certain entity-type. Possible values:

  • always – apply the charge regardless of context;

  • connection – the charge is applicable when a connection is matched;

  • never – the charge is not applied

commit

The request flag which defines the condition on which the sharges are to be committed to the database. Possible values:

  • always (default) – commit all created charges;

  • complete – the charges are only stored/committed if all charges relevant for the event are applied;

  • never – the charges are not stored at all. We recommend using it only for testing the “dry run” charging

report

The request flag to return charge results in the response

type

The type of charging. Possible values:

  • charge – to add additional charge amount

  • prerated – to additionally store it into Aux record (used only for requests)

entity-type

The type of the charged entity. Possible values: account/reseller/reseller[level]/vendor

storage-type

The type of the backend storage where this xDR record is added:

Account/AccountFail, Customer/CustomerFail, Vendor/VendorFail, OnNet

charged-amount

The value of xdr.charged_amount

charged-quantity

The value of xdr.charged_quantity (in units/rating base according to the service)

i_account/i_customer/i_vendor

Identifier of the entity being charged

flag.*

The indicators associated with the charge. For example, flag.block=<threshold> informs that usage already passed into the discount stage, where the service is blocked and that it happened on a threshold with the given value

Example:

PortaOne-Charge = 'entity-type=account;apply=always'
PortaOne-Charge = 'type=charge;entity-type=account;charged-amount=3.2;currency=USD;history=prerated'

PortaOne-Redirecting-Party

Link copied to clipboard

This provides information about the redirecting party in case the call is forwarded or transferred.

Format:

PortaOne-Redirecting-Party:<propertyname1=value1>;…

The properties and values are the same as for the PortaOne-Calling-Party attribute described above.

PortaOne-Media-Info

Link copied to clipboard

This provides information about the consumed bandwidth according to the formula reflecting the connectivity and media.

Format:

PortaOne-Media-Info:<propertyname1=value1>;…

Properties:

Property

Description

direction

Direction of the RTP stream on the leg relative to proxy

type

The mime type style description of the codec

ptime

The packetization time in milliseconds, which determines the amount of audio data included in a single packet

bitrate

The selected bitrate in bits per second

proxy

Indication of whether the RTP proxy was used. 0 – default

Example:

PortaOne-Media-Info = 'bitrate=64000;direction=in;type=audio/PCMU;proxy=1;ptime=20

PortaOne-Geo-Location

Link copied to clipboard

This provides information about a user’s geographical location when they use a service. The type of identification or it’s precision may vary based on the service scenario.

Format: PortaOne-Geo-Location:<the geo location specifier in dot notation starting with iso country code>

Example: PortaOne-Geo-Location:fr.Paris

PortaOne-Service-Features

Link copied to clipboard

This attribute is used by NAS to request the service features (capabilities) which are supported for the service from the billing engine. The billing engine returns the indications of service features to be provided in the response.

Format:

PortaOne-Service-Feature:<propertyname1=value1>;…

The list of service features that can be requested/declared:

Name

Description

incoming-charge

The option to authorize incoming call to destination party as a separate event (this is the default capability of PortaSIP)

x-nas-ip-address

Reference to the cloud PBX (on-net managing) node to determine the context for cloud PBX features in case another node is requesting the features

x-nas-identifier

Reference to the cloud PBX (on-net managing) node to determine the context for cloud PBX features in case another node is requesting the features

aaa

The currently applied authentication, authorization and accounting mode, which defining what requests/events are sent to the billing engine

app-type

The type of the application (IVR) which requests the service features

routing

The indication to request routing and provide the routing results

sip

The indication to provide routes via the SIP transport protocol (NAS is capable of SIP routing)

h323

The indication to provide routes via the H323 transport protocol (NAS is capable of H323 routing)

direct-only

Indicates to bypass any routes which require a protocol conversion to be performed via converting node

proclaim-duration

NAS is capable of informing about available call duration separately from actual call duration limit (so tricky rating may be used)

bill-to

NAS is capable of replacing User-Name/billed entity on further authorization

translate-cld

NAS is capable of replacing CLD during authorization

pattern

NAS is capable of obtaining and delivering the rate pattern

max-depth

Defines the maximum number of hops allowed for the call to be redirected before reaching the destination

force-cleanup

Forces to immediately cleanup/charge on accounting request receipt. This is the indication that there is no point to cache and wait for other call info

local-lookup

Instructs the billing engine to search for the destination among local accounts

e212

Indicates that the destination is in the e212 format and that NAS is capable of/to process e212 destination in rating/routing

e164

Indicates that the destination is in the e164 format and that NAS is capable of/to process e164 destination in rating/routing

negotiable-mask

The mask of media and other supported features available for connecting

criteria

Indicates the capability of the NAS to process routing with the consideration of adaptive routing criteria

utilization

Indicates the capability of the NAS to rearrange routes in a list to according to the connection utilization parameter

points-required

Requires a routing response to include valid routes, otherwise the call should be rejected

charge-report

Requests accounting response with charge report filled in

commit-charge

Commit the charge to the database (default). It can be set to 0 to bypass commit to perform charging in a test mode

Example:

PortaOne-Service-Features = 'routing=1;'

PortaOne-Service-Action

Link copied to clipboard

This allows NAS to perform special actions when BE responds with the authorization.

Format:

PortaOne-Service-Action:action=<action type>;param1=<param1 value>;…

Example:

PortaOne-Service-Action = 'action=call-pickup;id=call-pickup;’

PortaOne-Transport-Protocol

Link copied to clipboard

This shows the transport protocol. Type can be one of the following:

  • SIP

  • H323

  • SMS

  • SMPP

Format: PortaOne-Transport-Protocol = <type>

Example: h323-ivr-out     =’PortaOne-Transport-Protocol = ‘SIP”

PortaOne-Leg-Type

Link copied to clipboard

This shows whether the request is originate or answer. Type can be one of the following:

  • 1 – Answer request

  • 2 – Originate request

Format: PortaOne-Leg-Type:<type>

Example: h323-ivr-out     = PortaOne-Leg-Type = ‘1”

PortaOne-Leg-Origin

Link copied to clipboard

This shows the leg origin.

Format: PortaOne-Leg-Origin:<type>

Example: h323-ivr-out     = PortaOne-Leg-Origin = ‘0”

PortaOne-Used-Resource

Link copied to clipboard

This specifies the amount of used service units measured from the point when the service session identified in the h323_conf_id attribute becomes active.

Format: PortaOne-Used-Resource:base=<base>;amount=<value>

Possible values: <base> – one of: quantity, session-time <value> – integer number specifying amount of measurement units.

Example: PortaOne-Used-Resource = base=quantity;value=2 PortaOne-Used-Resource = base=session-time;value=70

Attributes sent by the PortaBilling server to a RADIUS client (h323-ivr-in)

Link copied to clipboard

Attribute

A1

A2

Description

DURATION

Y

The maximum allowed call duration (in seconds)

Tariff

Y

Y

The name of the rate plan applied to the account within this session

available-funds

Y

For debit accounts, this is equal to the h323-credit-amount. For credit accounts, this returns the actual amount of available funds (the difference between the credit limit and the current balance with respect to the credit limits for the individual account and customer)

ErrorExplanation

Y

A rejection explanation string code, which can be used to identify a corresponding prompt or a message to play to an end user

h323-preferred-lang

Y

Y

Language preference for the audio prompt

h323-credit-amount

Y

Amount of credit (in currency) in the account

h323-credit-time

Y

Amount of seconds for which the call is authorized

PortaBilling_UserName

Y

Y

The account ID to be used for billing this call

PortaBilling_RatePattern

Y

The rate pattern is a string used by PortaBilling to match the corresponding rate code/destination during authorization of an account, instead of the Called-Station-Id

PortaBilling_AccessCode

Y

Y

Access code to be used for matching rating entry and tariff

PortaBilling_AccountBalance

Y

The current amount of the account’s balance in PortaBilling

PortaBilling_CustomerBalance

Y

The current amount of the customer’s balance in PortaBilling

PortaBilling_CustomerCreditLimit

Y

The customer’s current credit limit in PortaBilling

PortaBilling_CustomerCreditLimitThreshold

Y

The customer’s current balance warning in PortaBilling

PortaBilling_NodeId

Y

Provides the node identifier to the NAS

BalanceThreshold

Y

Indicates that a customer’s balance warning threshold has been reached

PortaBilling_ProductBreakage

Y

The breakage amount of the account’s product in PortaBilling

PortaBilling_No_Disconnect_Warning

Y

Indicates that NAS won’t play a “time left” warning (the remaining time announcement in seconds or a “beeping” sound) when a specified number of seconds is left before the call is disconnected (calls will be terminated silently)

Product

Y

Returns the name of the product associated with the user account

DURATION

Link copied to clipboard

This specifies the real allowed maximum call duration (in seconds), which may differ from the announced credit time if billing tricks are applied.

Format: DURATION:<integer>

Possible values: An unsigned integer (number of seconds).

Example:

h323-ivr-in      = 'DURATION:320'

Tariff

Link copied to clipboard

The name of the rate plan applied to the account within this session.

Format: Tariff:<string>

Possible values: Positive integer (number of seconds).

Example:

h323-ivr-in      = 'Tariff:ABC prepaid'

available-funds

Link copied to clipboard

This attribute returns the amount of account’s available funds without considering any locked funds. For debit accounts, this is equal to the h323-credit-amount. For credit accounts, this returns the actual amount of available funds (the difference between the credit limit and the current balance with respect to the credit limits for the individual account and customer).

Format: available-funds:<decimal>

Possible values: Any positive number formatted with five decimal places; a dot (.) is used as the decimal separator.

Example:

h323-ivr-in      = ' available-funds:124.78000'

ErrorExplanation

Link copied to clipboard

This attribute returns a rejection explanation string code, which can be used to identify a corresponding prompt or a message to play to an end user. It is sent in the authentication response within the h323-ivr-in attribute.

Format: ErrorExplanation:<string>

Possible values: An explanation code string according to RADIUS return codes.

Example:

h323-ivr-in = "ErrorExplanation:invalid_account"

PortaBilling_UserName

Link copied to clipboard

The account ID to be used for billing this call. The RADIUS client must supply this value as the User-Name (or, alternatively, in h323-ivr-out=PortaBilling_UserName) attribute value in the accounting records for all call legs (incoming and outgoing).

Format: PortaBilling_UserName:<value>

Possible values: A non-empty string identifying an account in PortaBilling.

Example:

h323-ivr-in      = 'PortaBilling_UserName:16051233355'

PortaBilling_RatePattern

Link copied to clipboard

The rate pattern is a string used by PortaBilling to match the corresponding rate code/destination during authorization of an account, instead of the Called-Station-Id (e.g., when a customer is to be billed according to a special rate such as VOICEONNET, rather than according to the actual number dialed). The RADIUS client must supply this value as the h323-ivr-out=PortaBilling_RatePattern attribute value in the accounting records for all outgoing legs of this call.

Format: PortaBilling_RatePattern :<value>

Possible values: A non-empty string, usually a destination number in e.164 format.

Example:

h323-ivr-in      = 'PortaBilling_RatePattern: 18001234567|VOICE\ONNET\RX

PortaBilling_AccessCode

Link copied to clipboard

The string actually used by PortaBilling to select a specific rate plan within a product. Although originally used to pass the “IVR access number” to billing, it may contain any string (e.g., “FIRSTCALL”) or it can compose an advanced pattern to best match against the access code configured in the product. NAS should copy this value into all future call accounting requests as h323-ivr-out=PortaBilling_AccessCode, in order to apply the same properties during billing.

Format: PortaBilling_AccessCode:<value>

Possible values: Any string. The value passed will be compared to the values entered in the product’s accessibility (case-sensitively).

  1. Exact match – any ASCII characters string without ‘|’ and ‘.’  equal to the PortaBilling access code to be matched (case-sensitively).
  2. Dot separated match pattern – the string which consists of the “domain” like string separated by dots (e.g., ‘ivr.branding.4565’). It is split on dots and matched by the longest split, e.g., to match ‘ivr.branding.4565’ pattern against ‘ivr.branding.4565’,  ‘ivr.branding’ and ‘ivr’.
  3. The ‘|’ separated list of patterns – the dot separated patterns are tried from the left and the first matching one will win. E.g.,  ‘top.321|ivr.branding’ matches in the order: ‘top.321’, ‘top’, ‘ivr.branding’, ‘ivr’.

Example:

h323-ivr-in      = 'PortaBilling_AccessCode:18001234567|prepaid.tollfree'

PortaBilling_AccountBalance

Link copied to clipboard

The current amount of the account’s balance in PortaBilling.

Format: PortaBilling_AccountBalance:<value>

Possible values: A number with a precision of five decimal places.

Example:

h323-ivr-in      = 'PortaBilling_AccountBalance:13.20000'

PortaBilling_CustomerBalance

Link copied to clipboard

The current amount of the customer’s balance in PortaBilling.

Format: PortaBilling_CustomerBalance:<value>

Possible values: A number with a precision of five decimal places.

Example:

h323-ivr-in      = 'PortaBilling_CurstomerBalance:13.20000'

PortaBilling_CustomerCreditLimit

Link copied to clipboard

The current amount of the customer’s credit limit in PortaBilling.

Format: PortaBilling_CustomerCreditLimit:<value>

Possible values: A number with a precision of five decimal places.

Example:

h323-ivr-in      = 'PortaBilling_CustomerCreditLimit:13.00000'

PortaBilling_CustomerCreditLimitThreshold

Link copied to clipboard

The current amount of the customer’s credit limit threshold in PortaBilling. Note that the relative threshold limit is converted into an actual currency amount.

Format: PortaBilling_CustomerCreditLimitThreshold:<value>

Possible values: A number with a precision of five decimal places.

Example:

h323-ivr-in      = 'PortaBilling_CustomerCreditLimitThreshold:12.00000'

PortaBilling_Mod_<modulename>

Link copied to clipboard

This is a special form to exchange paramters of a specific module with PortaBilling. The exact set of parameters depends on the module.

Format: PortaBilling_Mod_<modulename>:[param1=value1;]…

Possible values: Module specific

Example:

h323-ivr-out = "PortaBilling_Mod_callback:username=cb44012235210;access-code=1200123;cld=+44012235210;in-progress=45;pattern= 44012235210"

PortaBilling_NodeId

Link copied to clipboard

Provides the name of the NAS node (e.g., the hostname) used to identify it back to NAS. If no name is defined for NAS, it identifies itself with IP address.

Format: PortaBilling_NodeId:<nodeid>

Possible values: Any valid string

Example:

h323-ivr-out = 'PortaBilling_NodeId:nashost.domain.foo'

BalanceThreshold

Link copied to clipboard

Indicates that the customer’s balance warning threshold has been reached.

Format: BalanceThreshold:<value>

Possible values: YES

Example:

h323-ivr-in      = ‘BalanceThreshold:YES'

PortaBilling_ProductBreakage

Link copied to clipboard

The breakage amount of the account’s product in PortaBilling.

Format: PortaBilling_ProductBreakage:<value>

Possible values: A number with a precision of five decimal places.

Example:

h323-ivr-in      = 'PortaBilling_ProductBreakage:0.02000'

PortaBilling_No_Disconnect_Warning

Link copied to clipboard

Indicates that NAS should cancel IVR/beep warnings before call session timeouts (calls will be terminated silently).

Format: PortaBilling_No_Disconnect_Warning:<value>

Possible values: YES

Example:

h323-ivr-in      = ‘PortaBilling_No_Disconnect_Warning:YES'

Product

Link copied to clipboard

This returns the name of the main product associated with the user’s account in PortaBilling.

Format: Product:<value>

Example:

h323-ivr-in = 'Product:Smartcard'

Customize RADIUS response attributes using templates

Link copied to clipboard

If you need to customize the default RADIUS response (e.g., because your NAS requires it or because the vendor anticipates additional attributes on their side), use templates. A template is a list of attribute-value definition strings in the form of

<attribute name> <operation> <value template> 

These attribute operations are supported:

  • = – this adds the attribute value, unless it is already present in the default response.

  • := – this overrides the attribute value in the default response.

  • += – this permits the addition of more than one attribute value to the default response.

The value template can be enclosed in single quote marks to permit whitespaces and may contain placeholders in the form of

${<name>[:[<modifier>]<default>]}

where:

  • name is a variable available in the context of expanding the template. The default context contains the so-called “control” properties available during processing. For example:

    • netaccess.speed_limit.name – is the property speed_limit.name assigned in the context of a “netaccess” service type module and contains the name of the access policy applicable for the session

    • netaccess.speed_limit.type – is the access policy phase type

  • modifier is one of the following:

    • – A default one. It permits the substitution of the actual value if defined, otherwise, the substitution of a default value.

    • = – this permits the substitution of an empty string, but the assignment of the default value goes back to the variable in the previously specified context to be used later on.

    • + – this permits the substitution of a default value when the variable value IS defined. Otherwise, an empty string is substituted.

    • ? – this permits the substitution of a default value when the variable value IS NOT defined. Otherwise, an empty string is substituted.

  • default – The actual default value to be used can be expressed as $variable_name,  in which case it expands to the value of the named variable.

On this page