Quantcast
Channel: NowSMS
Viewing all articles
Browse latest Browse all 92

NowSMS MMSC Diameter MM9 Implementation

$
0
0

This is a preliminary document outlining how MMS charging is to be implemented using Diameter and MM9 in the NowSMS MMSC. It also describes a test program that is used to validate proper Diameter configuration parameters and charging behaviour.

The MMSC implements Diameter Credit Control for charging based upon the following specifications:

[3GPPDIAM] defines a standard format for implementing MMS charging over Diameter, known as MM9 in the MMS protocol specifications. While the MMSC preference is to use MM9, it is also possible to configure the MMSC to use generic charging primitives defined in [DIAMCCA] in order to facilitate interoperability with a wider base of charging systems.

The MMSC will generate two different Diameter requests, which are described in detail in this document.

Capabilities-Exchange-Request is used to initiate the connection and identify that the connection is to be used for Diameter Credit-Control. In response, the MMSC expects to receive a Capabilities-Exchange-Answer that contains a Result-Code of 2001 to indicate success.

Credit-Control-Request is used to provide details for an MMS charging operation. In response, the MMSC expects to receive a Capabilities-Exchange-Answer that contains a Result-Code of 2001 to indicate success. The MMSC will reject the MMS submission if any other Result-Code is received.

 

Capabilities-Exchange-Request AVP Code Protocol Usage Notes
< Diameter Header > DIAMBASE Command-code = 257, REQ
{Origin-Host} 264 DIAMBASE Configurable – Local Origin-Host name associated with MMSC
{Origin-Realm} 296 DIAMBASE Configurable – Local Origin-Realm name associated with MMSC
{Host-IP-Address} 257 DIAMBASE Configurable – Local IP address associated with MMSC
{Vendor-ID} 266 DIAMBASE, 3GPPDIAM Value is 10415, the Vendor-ID value defined for 3GPP extensions in 3GPPDIAM
{Product-Name} 269 DIAMBASE Value is MMSC
{Auth-Application-ID} 258 DIAMBASE, DIAMCCA Value is 4, as specified in DIAMCCA
{Acct-Application-ID} 259 DIAMBASE Value is 0

 

Credit-Control-Request AVP Code Protocol Usage Notes
< Diameter Header > DIAMBASE Command-code = 272, REQ, Application-ID = 4
{Session-Id} 263 DIAMCCA Dynamically generated
{Origin-Host} 264 DIAMBASE Configurable – Local Origin-Host name associated with MMSC
{Origin-Realm} 296 DIAMBASE Configurable – Local Origin-Realm name associated with MMSC
[Destination-Host] 293 DIAMBASE Optional – Destination-Host name associated with charging server
{Destination-Realm} 283 DIAMBASE Configurable – Destination-Realm name associated with charging server
{Auth-Application-Id} 258 DIAMBASE, DIAMCCA Value is 4, as defined in DIAMCCA
{Service-Context-Id} 461 DIAMCCA, 3GPPDIAM Configurable – Default value is 32270@3gpp.org as defined in 3GPPDIAM to indicate MMS charging.

When using generic DIAMCCA, other values may be required, such as SCAP_V.2.0@ericsson.com for Ericsson’s SCAP.

{CC-Request-Type} 416 DIAMCCA Value is EVENT_REQUEST
{CC-Request-Number} 415 DIAMCCA Value is currently 0.Note that other values may be used in the future.
[Event-Timestamp] 55 DIAMBASE Time of Charging Request
{Subscription-Id} 443 DIAMCCA Group AVP contains Subscription-Id-Data and Subscription-Type.

Subscription-Id-Data: MSISDN of the account (including country code).

Subscription-Type: Value is 0 (END_USER_E164)

 

{Requested-Action} 436 DIAMCCA Value is 0 (DIRECT_DEBITING)
[3GPP-MS-TimeZone] 23 3GPPDIAM Value indicates the time-zone of the MMSC. Parameter flag is set as optional, meaning the server can ignore if it does not understand this parameter.

This parameter has been found to be required by some charging servers.

[3GPP-SGSN-MCC-MNC] 18 3GPPDIAM Optionally included only if available to the MMSC, the SGSN MCC-MNC value can be used to detect roaming subscribers. See Operator MMSC Accounting – Detecting Roaming Subscribers
[SGSN-ADDRESS] 1228 3GPPDIAM Optionally included only if available to the MMSC, the IP Address of the SGSN can be used to detect roaming subscribers. See Operator MMSC Accounting – Detecting Roaming Subscribers
[Service-Identifier] 439 DIAMCCA Optional integer value.
[Requested-Service-Unit]

  [CC-Money]

    [Unit-Value]

      [Value-Digits]

      [Exponent]

    [Currency-Code]

  [CC-Service-Specific-Units]

437

413

445

432

429

425

417

DIAMCCA Optional. Used only if generic DIAMCCA charging is being used.

DIAMCCA allows for either a fixed price (with ISO 4217 numeric currency code, e.g., USD=840, EUR=978) or a fixed service specific integer value associated with a Service-Identifier.

MMSC will generate these fields if corresponding Requested-Service values are specified. In the case of CC-Money, MMSC expects a decimal format value and will generate Value-Digits and Exponent as appropriate. (For example, CC-Money = 0.25 generates Value-Digits = 25 and Exponent = -2.)

[Service-Information]

  [MMS-Information]

    [Originator-Address]

      [Address-Type]

      [Address-Data]

    [Recipient-Address]

      [Address-Type]

      [Address-Data]

    [Submission-Time]

    [MM-Content-Type]

      [Type-Number]

      [Content-Size]

    [Message-ID]

    [Message-Type]

    [Message-Size]

    [Message-Class]

      [Class-Identifier]

723

727

886

899

897

1201

899

897

1202

1203

1204

1206

1210

1211

1212

1213

1214

3GPPDIAM Contains grouped AVP values containing information about the MMS message, including originator and recipient.

Parameter flag is set as optional, meaning the server can ignore if it does not understand this parameter. In that case, generic DIAMCCA Requested-Service-Unit parameters of money or units should be used.

 

MM9Test Program

The MM9Test program is used to test and validate proper configuration parameters and charging behaviour by initiating a Diameter connection and sending a charging request for a single MMS message.  The latest version of this program can be downloaded at http://www.nowsms.com/download/mm9test.zip.

The MM9Test program generates the two Diameter requests detailed in this document: Capabilities-Exchange-Request and Credit-Control-Request.

MM9TEST.EXE is a command line program. When run, MM9TEST.EXE will prompt for the following Diameter related configuration parameters:

(Remote) Diameter Server Host Name or IP Address – The DNS host name or IP address of the Diameter Server that will receive the connection.

(Remote) Diameter Server Port Number – The port number for the Diameter server that will receive the connection.

(Remote) Diameter Destination-Host – The Destination-Host parameter to be specified in the Diameter requests.

(Remote) Diameter Destination-Realm – The Destination-Realm parameter to be specified in the Diameter requests.

(Local/Origin) Diameter Host-IP-Address – The IP address of the local host. This is a required property for the Capabilities-Exchange-Requst.

(Local) Diameter Origin-Host – The Origin-Host parameter to be specified in the Diameter requests.

(Local) Diameter Origin-Realm – The Origin-Realm parameter to be specified in the Diameter requests.

Service-Context-Id (optional) – See Credit-Control-Request for parameter definition. Default is 32270@3gpp.org as defined in [3GPPDIAM] to indicate MMS charging.

Service-Identifier (optional, leave black for standard MM9) – See Credit-Control-Request for parameter definition.

Requested-Service-Unit CC-Service-Specific-Units (optional, leave black for standard MM9) – See Credit-Control-Request for parameter definition. If this parameter is used, leave CC-Money and Currency-Code parameters blank.

Requested-Service-Unit CC-Money (optional, use decimal format 1.23) – See Credit-Control-Request for parameter definition. If this parameter is used, leave CC-Service-Specific-Units blank and specify a value for Currency-Code parameter.

Requested-Service-Unit Currency-Code (optional, use ISO 4217 currency code) – See Credit-Control-Request for parameter definition. If this parameter is used, leave CC-Service-Specific-Units blank and specify a value for CC-Money parameter.

MMS Sender Phone Number – MSISDN to be charged for sending MMS message. Used to build Subscription-Id and Originator-Address in Credit-Control-Request.

MMS Recipient Phone Number – MSISDN receiving MMS message. Used to build Recipient-Address in Credit-Control-Request.

3GPP-SGSN-MCC-MNC (optional) – If available to the MMSC, the SGSN MCC-MNC value can be used to detect roaming subscribers. If left blank, or not available, this parameter is not included.

SGSN-ADDRESS (optional) – If available to the MMSC, the SGSN-ADDRESS value can be used to detect roaming subscribers. If left blank, or not available, this parameter is not included.

If successful, the last line of output from the test program will read Diameter Result Code 2001.

Raw Diameter packet information will be logged to MM9TEST.LOG. However, for easier troubleshooting, it is recommended that Wireshark be used to capture and log connection details. Wireshark will decode Diameter protocol information to more clearly report any protocol errors returned, as protocol errors typically relate to not having used the parameter values expected by the Diameter server.


Viewing all articles
Browse latest Browse all 92

Trending Articles