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)
PortaBilling_AuthMethod
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
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
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).
- Exact match – any ASCII characters string without ‘|’ and ‘.’ equal to the PortaBilling access code to be matched (case-sensitively).
- 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’.
- 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
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
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
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
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
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
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
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
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)
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
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:
|
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
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:
|
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
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:
|
commit |
The request flag which defines the condition on which the sharges are to be committed to the database. Possible values:
|
report |
The request flag to return charge results in the response |
type |
The type of charging. Possible values:
|
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
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
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
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-Capabilities (formerly PortaOne-Service-Features)
This attribute is used by NAS to request the service capabilities which are supported for the scenario from PortaBilling.
Format:
PortaOne-Service-Capabilites:<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 |
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-Capabilities = 'routing=1;'
PortaOne-Service-Action
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
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
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
This shows the leg origin.
Format: PortaOne-Leg-Origin:<type>
Example: h323-ivr-out = PortaOne-Leg-Origin = ‘0”
PortaOne-Used-Resource
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)
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
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
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
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
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
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
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
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).
- Exact match – any ASCII characters string without ‘|’ and ‘.’ equal to the PortaBilling access code to be matched (case-sensitively).
- 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’.
- 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
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
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
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
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>
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
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
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
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
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
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
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.