NowSMS MMSC Diameter MM9 Implementation

Posted by on Apr 2, 2013 in Support Blog

Topic Keywords: , , , , ,

Click here for a PDF version of this document.

This document outlines how MMS charging is 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. MM9 Diameter charging is enabled in NowSMS MMSC versions 2013.04.01 and later.

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.

Optionally, Diameter extensions defined in Ericsson’s [SCAPv2] protocol can be enabled.

The MMSC Diameter MM9 implementation is highly configurable, with configuration settings that allow the Diameter requests to be tuned to meet the requirements of different charging systems. The core Diameter charging requests use Credit-Control-Request as defined in [DIAMCCA]. Several extension sets are defined that provide additional Diameter parameters to be include in the charging request.

For maximum flexibility, XML template files are used to define the underlying Diameter requests, allowing for custom parameters to be added or deleted as required.

As an example of this flexibility, templates have been created to support Ericsson SCAPv1, which uses Diameter Base Accounting instead of Diameter Credit Control.  For additional information, see MMS SCAP v1 Support.

The MMSC generates 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 0, defined in DIAMBASE as indicating that the field should be ignored.
{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
{Supported-Vendor-ID} 265 DIAMBASE Value is 10415, the 3GPP code defined in 3GPPDIAM
(If the request fails, the MMSC will try again without indicating support for this vendor ID.)
{Supported-Vendor-ID} 265 Value is 193, the vendor ID code registered for Ericsson SCAP extensions.
(If the request fails, the MMSC will try again without indicating support for this vendor ID.)

 

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}   {Subscription-Id-Type}   {Subscription-Id-Data} 443450444 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.Required by Ericsson SCAPv2.This setting is included only if either the SCAP or 3GPPTIMEZONE Diameter extension set is enabled.
[3GPP-SGSN-MCC-MNC] 18 3GPPDIAM Optional, 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 Optional, 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]

437413445

447

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.)

When configuring these settings, do not specify both CC-Service-Specific-Units and CC-Money. Specify either CC-Service-Specific-Units or CC-Money+Currency-Code.

 

Credit-Control-Request: 3GPP Extension Set AVP Code Protocol Usage Notes
[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]

873877886

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.

 

Credit-Control-Request: SCAP Extension Set AVP Code Protocol Usage Notes
{Traffic-Case}{Other-Party-Id}  {Other-Party-Nature}

  {Other-Party-Data}

  {Other-Party-Type}

{Service-Provider-Id}

{Subscription-Id-Location}

108210751076

1077

1078

1081

1074

SCAPv2 20 (Originating Service)Recipient address.Nature=1 (International)

 

Type=0 (END_USER_E164)

Optional, configurable.

Optional, configurable.

 

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 charging 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-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-Reqeust.

(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) – A Service-Context-Id may be required by the charging server. The default is 32270@3gpp.org as defined in [3GPPDIAM] to indicate MMS charging. Ericsson’s SCAPv2 requires a value of SCAP_V.2.0@ericsson.com.

Service-Identifier (optional) – Optional integer value to identify the service to the charging server.

Requested-Service-Unit CC-Service-Specific-Units (optional) – [DIAMCCA] allows for charging based upon either a fixed price or a service specific number of units associated with a particular service. In most configurations, a value of 1 will be used for CC-Service-Specific-Units to indicate 1 MMS message being sent. If this parameter is used, leave CC-Money and Currency-Code parameters blank.

Requested-Service-Unit CC-Money (optional, use decimal format 1.23) – If used, this indicates a fixed monetary charge to be applied for sending an MMS message. 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) – When using a fixed monetary charge, this indicates the currency being used (e.g., USD=840, EUR=978 ). 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.

Enable Ericsson SCAP Extension Set? (Y/N) – Answer Y to include the Credit-Control-Request parameters defined for the SCAP extension set. If selected, the program will prompt for additional optional parameters included in the SCAP extension set. SCAP parameter values prompted for include Service-Provider-Id, an integer value used to identify the service to the charging server, and Subscription-Id-Location. It is possible to use the 3GPP-SGSN-MCC-MNC value as the Subscription-Id-Location value by specifying a value of @@SGSNMCCMNC@@.

Enable 3GPPTIMEZONE Extension Set? (Y/N) – This setting will automatically default to Y if the Ericsson SCAP Extension Set is enabled. Answer Y to include the 3GPP-MS-TimeZone parameter in the Credit-Control-Request.

Enable 3GPP Extension Set? (Y/N) – Answer Y to include the Credit-Control-Request parameters defined for the 3GPP extension set (Service-Information/MMS-Information).

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.

Important Usage Note: The MM9 Test Program saves previous responses, so these previous responses will be used as a default setting for the next test. To delete a prior response for an optionally included parameter, press the Space key, then Enter.

For advanced requirements, the XML template files diameter-capabilities-exchange.xml and diameter-credit-control.xml can be edited to modify Diameter parameters included in charging requests.

After completing successful MM9 Diameter charging tests, the configuration settings used by the test program can be easily migrated to production MMSC settings.

MM9 test settings are saved in a file named MM9TEST.INI. Copying the entire [MM9Diameter] section of MM9TEST.INI to MMSC.INI will activate MM9 Diameter charging in NowSMS MMSC versions 2013.04.01 and later.

 

 

MM9 Diameter Charging in the MMSC

MM9 Diameter charging is enabled in NowSMS MMSC versions 2013.04.01 and later by configuring parameters under an [MM9Diameter] section header of MMSC.INI. It is recommended that the MM9TEST.EXE utility be used to initially define these settings. MM9 test settings are saved in a file named MM9TEST.INI. Copying the entire [MM9Diameter] section of MM9TEST.INI to MMSC.INI will activate MM9 Diameter charging.

The following settings are supported in this [MM9Diameter] section:

Destination-Host-Address – The DNS host name or IP address of the Diameter charging server that will receive the connection.

Destination-Host-Port-Number – The port number for the Diameter server that will receive the connection.

Host-IP-Address – The IP address of the local host. This is a required property for the Capabilities-Exchange-Requst.

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

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

Product-Name – The Product-Name parameter to be specified in the Capabilities-Exchange-Requst. The default value is MMSC.

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

Service-Context-Id – A Service-Context-Id may be required by the charging server. The default is 32270@3gpp.org as defined in [3GPPDIAM] to indicate MMS charging. Ericsson’s SCAPv2 requires a value of SCAP_V.2.0@ericsson.com.

Service-Identifier – Optional integer value to identify the service to the charging server.

CC-Service-Specific-Units – [DIAMCCA] allows for charging based upon either a fixed price or a service specific number of units associated with a particular service. In most configurations, a value of 1 will be used for CC-Service-Specific-Units to indicate 1 MMS message being sent. If this parameter is used, leave CC-Money and Currency-Code parameters blank.

CC-Money – If used, this indicates a fixed monetary charge (e.g., 0.05) to be applied for sending an MMS message. If this parameter is used, leave CC-Service-Specific-Units blank and specify a value for Currency-Code parameter.

Currency-Code – When using a fixed monetary charge with CC-Money, this indicates the currency being used (e.g., USD=840, EUR=978). If this parameter is used, leave CC-Service-Specific-Units blank and specify a value for CC-Money parameter.

Service-Provider-Id – An integer value used to identify the service to the charging server when the SCAP extension set is enabled.

Subscription-Id-Location – A string value required by the SCAP extension set. It is possible to use the 3GPP-SGSN-MCC-MNC value as the Subscription-Id-Location value by specifying a value of @@SGSNMCCMNC@@.

EmailAddressNumber – Some charging environments may not be able to accept an e-mail address as a recipient. For those environments, specify a phone number to be substituted in Diameter charging requests for MMS messages to e-mail recipients.

MultipleRecipCharge – By default, the MMSC issues a separate charging request for each recipient when an MMS message is sent to multiple recipients. When this parameter is set to Yes, the MMSC issues a single charging request for multiple recipients, multiplying CC-Service-Specific-Units or CC-Money by the number of recipients automatically.

SupportedExtensionSets – A comma delimited list of extension sets enabled for the Diameter connection. Extension sets are detailed below:

  • SCAP – Enables Diameter parameters defined by [SCAPv2], including Traffic-Case, Other-Party-Id, Service-Provider-Id and Subscription-Id-Location. Also enables 3GPP-MS-TimeZone.
  • 3GPPTIMEZONE – Enables 3GPP-MS-TimeZone.
  • 3GPPSGSN – Enables 3GPP-SGSN-MCC-MNC and SGSN-ADDRESS, if available to the MMSC.
  • 3GPP – Enables Service-Information/MMS-Information grouped parameters providing MMS message detail.

 

Enabling MM9 Diameter for Only Select Subscribers

In some environments, it may be desirable to use MM9 Diameter charging for only some subscribers. For example, MM9 Diameter charging might only be used for prepaid subscribers.

In other environments, it may be desirable to use different Diameter charging servers for different groups of customers (for example, when the MMSC is hosting subscribers from multiple countries, or multiple MVNOs).

Both of these scenarios are facilitated through accounting callbacks, which are documented at http://www.nowsms.com/doc/advanced-configuration-settings/mms-accounting-callbacks.

The MMSSend PreAuth callback can return a response indicating that a Diameter charge should be attempted. In this scenario, CallbackTriggerOnly=Yes should be added to the [MM9Diameter] section of MMSC.INI to indicate that the MMSC should only generate Diameter charges if directed to do so by the response to the MMSSend PreAuth callback. The callback response should include the text MM9Diameter=Yes to indicate that a Diameter charge is required for the transaction.

Multiple Diameter servers can be configured by creating additional sections in MMSC.INI, similar to the [MM9Diameter] section documented here. Use a section name of [MM9Diameter-xxxxxxxx] where xxxxxxxx is a name to be associated with this Diameter server. The MMSSend PreAuth callback response can trigger a Diameter charge to this server by including MM9Diameter=xxxxxxxx in the text of the response. (MM9Diameter=Yes triggers a charge for the server defined in [MM9Diameter]. Values other than Yes trigger a charge for a different Diameter server.)

 

MM9 Diameter XML Templates

 

The XML template files used for Diameter charging in the MMSC are not fully documented at this time. It is recommended that any edits be made to these templates only after consulting with NowSMS MMSC Technical Support.

 

diameter-capabilities-exchange.xml:

 

<diameter>

<avp name="Origin-Host" code="264" mandatory="true" type="UTF8String" value="@@Config-Origin-Host@@" />

<avp name="Origin-Realm" code="296" mandatory="true" type="UTF8String" value="@@Config-Origin-Realm@@" />

<avp name="Host-IP-Address" code="257" mandatory="true" type="IPAddress" value="@@Config-Host-IP-Address@@" />

<avp name="Vendor-Id" code="266" mandatory="true" type="Unsigned32" value="0" />

<avp name="Product-Name" code="269" type="UTF8String" value="@@Config-Product-Name@@" />

<avp name="Supported-Vendor-Id" code="265" mandatory="true" type="Unsigned32" value="10415" />

<avp name="Supported-Vendor-Id" code="265" mandatory="true" type="Unsigned32" value="193" />

<avp name="Auth-Application-Id" code="258" mandatory="true" type="Unsigned32" value="4" />

<avp name="Acct-Application-Id" code="259" mandatory="true" type="Unsigned32" value="0" />

</diameter>



<diameter>

<avp name="Origin-Host" code="264" mandatory="true" type="UTF8String" value="@@Config-Origin-Host@@" />

<avp name="Origin-Realm" code="296" mandatory="true" type="UTF8String" value="@@Config-Origin-Realm@@" />

<avp name="Host-IP-Address" code="257" mandatory="true" type="IPAddress" value="@@Config-Host-IP-Address@@" />

<avp name="Vendor-Id" code="266" mandatory="true" type="Unsigned32" value="0" />

<avp name="Product-Name" code="269" type="UTF8String" value="@@Config-Product-Name@@" />

<avp name="Supported-Vendor-Id" code="265" mandatory="true" type="Unsigned32" value="10415" />

<avp name="Auth-Application-Id" code="258" mandatory="true" type="Unsigned32" value="4" />

<avp name="Acct-Application-Id" code="259" mandatory="true" type="Unsigned32" value="0" />

</diameter>



<diameter>

<avp name="Origin-Host" code="264" mandatory="true" type="UTF8String" value="@@Config-Origin-Host@@" />

<avp name="Origin-Realm" code="296" mandatory="true" type="UTF8String" value="@@Config-Origin-Realm@@" />

<avp name="Host-IP-Address" code="257" mandatory="true" type="IPAddress" value="@@Config-Host-IP-Address@@" />

<avp name="Vendor-Id" code="266" mandatory="true" type="Unsigned32" value="0" />

<avp name="Product-Name" code="269" type="UTF8String" value="@@Config-Product-Name@@" />

<avp name="Auth-Application-Id" code="258" mandatory="true" type="Unsigned32" value="4" />

<avp name="Acct-Application-Id" code="259" mandatory="true" type="Unsigned32" value="0" />

</diameter>



<diameter>

<avp name="Origin-Host" code="264" mandatory="true" type="UTF8String" value="@@Config-Origin-Host@@" />

<avp name="Origin-Realm" code="296" mandatory="true" type="UTF8String" value="@@Config-Origin-Realm@@" />

<avp name="Host-IP-Address" code="257" mandatory="true" type="IPAddress" value="@@Config-Host-IP-Address@@" />

<avp name="Vendor-Id" code="266" mandatory="true" type="Unsigned32" value="0" />

<avp name="Product-Name" code="269" type="UTF8String" value="@@Config-Product-Name@@" />

</diameter>

(Repeated sections show multiple attempts to be made if the previous attempt did not succeed.

 

diameter-credit-control.xml:

<diameter>

<avp name="Session-Id" code="263" mandatory="true" type="UTF8String" value="@@Session-Id@@" />

<avp name="Origin-Host" code="264" mandatory="true" type="UTF8String" value="@@Config-Origin-Host@@" />

<avp name="Origin-Realm" code="296" mandatory="true" type="UTF8String" value="@@Config-Origin-Realm@@" />

<avp name="Destination-Realm" code="283" mandatory="true" type="UTF8String" value="@@Config-Destination-Realm@@" />

<avp name="Auth-Application-Id" code="258" mandatory="true" type="Unsigned32" value="4" />

<avp name="Service-Context-Id" code="461" mandatory="true" type="UTF8String" value="@@Config-Service-Context-Id@@" />

<avp name="CC-Request-Type" code="416" mandatory="true" type="Unsigned32" value="4" />

<avp name="CC-Request-Number" code="415" mandatory="true" type="Unsigned32" value="0" />

<avp name="Event-Timestamp" code="55" mandatory="true" type="Unsigned32" value="@@TimeStamp@@" />

<avp name="Subscription-Id" code="443" mandatory="true" type="Grouped">

  <avp name="Subscription-Id-Type" code="450" mandatory="true" type="Unsigned32" value="0" />

  <avp name="Subscription-Id-Data" code="444" mandatory="true" type="UTF8String" value="@@Sender@@" />

</avp>

<avp name="Requested-Action" code="436" mandatory="true" type="Unsigned32" value="0" />

<avp name="3GPP-MS-TimeZone" code="23" vendor="10415" mandatory="true" type="OctetString" value="@@TimeZone@@" extensionset="3GPPTIMEZONE,SCAP" />

<avp name="3GPP-SGSN-MCC-MNC" code="18" vendor="10415" mandatory="true" type="UTF8String" value="@@SGSNMCCMNC@@" omitifblank="true" extensionset="3GPPSGSN" />

<avp name="SGSN-Address" code="1228" vendor="10415" mandatory="true" type="IPAddress" value="@@SGSNADDRESS@@" omitifblank="true" extensionset="3GPPSGSN" />

<avp name="Service-Identifier" code="439" mandatory="true" type="Unsigned32" value="@@Config-Service-Identifier@@" omitifblank="true" />

<avp name="Requested-Service-Unit" code="437" mandatory="true" type="Grouped" value="@@Config-CC-Service-Specific-Units@@@@Config-CC-Money@@" omitifblank="true" >

  <avp name="CC-Service-Specific-Units" code="417" mandatory="true" type="Unsigned64" value="@@Config-CC-Service-Specific-Units@@" multiplerecipmultiply="true" omitifblank="true" />

  <avp name="CC-Money" code="413" mandatory="true" type="grouped" value="@@Config-CC-Money@@" omitifblank="true" >

    <avp name="Unit-Value" code="445" mandatory="true" type="grouped" value="@@Config-CC-Money@@" omitifblank="true" >

      <avp name="Value-Digits" code="447" mandatory="true" type="Unsigned64" value="@@Config-CC-Money-Value-Digits@@" multiplerecipmultiply="true" />

      <avp name="Exponent" code="429" mandatory="true" type="Integer32" value="@@Config-CC-Money-Exponent@@" />

    </avp>

    <avp name="Currency-Code" code="425" mandatory="true" type="Unsigned32" value="@@Config-Currency-Code@@" omitifblank="true" />

  </avp>

</avp>

<avp name="Traffic-Case" code="1082" vendor="193" mandatory="true" type="Unsigned32" value="20" extensionset="SCAP" />

<avp name="Other-Party-Id" code="1075" vendor="193" mandatory="true" type="Grouped" multiplereciprepeat="true" extensionset="SCAP" >

  <avp name="Other-Party-Id-Nature" code="1076" vendor="193" mandatory="true" type="Unsigned32" value="1" />

  <avp name="Other-Party-Id-Data" code="1077" vendor="193" mandatory="true" type="UTF8String" value="@@Recip@@" />

  <avp name="Other-Party-Id-Type" code="1078" vendor="193" mandatory="true" type="Unsigned32" value="0" />

</avp>

<avp name="Service-Provider-Id" code="1081" vendor="193" mandatory="true" type="UTF8String" value="@@Config-Service-Provider-Id@@" omitifblank="true" extensionset="SCAP" />

<avp name="Subscription-Id-Location" code="1074" vendor="193" mandatory="true" type="UTF8String" value="@@Config-Subscription-Id-Location@@" omitifblank="true" extensionset="SCAP" />

<avp name="Service-Information" code="873" vendor="10415" mandatory="true" type="Grouped" extensionset="3GPP" >

  <avp name="MMS-Information" code="877" vendor="10415" mandatory="true" type="Grouped">

  <avp name="Originator-Address" code="886" vendor="10415" mandatory="true" type="Grouped">

    <avp name="Address-Type" code="899" vendor="10415" mandatory="true" type="Unsigned32" value="@@Sender-Address-Type@@" />

    <avp name="Address-Data" code="897" vendor="10415" mandatory="true" type="UTF8String" value="@@Sender@@" />

  </avp>

  <avp name="Recipient-Address" code="1201" vendor="10415" mandatory="true" type="Grouped" multiplereciprepeat="true">

    <avp name="Address-Type" code="899" vendor="10415" mandatory="true" type="Unsigned32" value="@@Recip-Address-Type@@" />

    <avp name="Address-Data" code="897" vendor="10415" mandatory="true" type="UTF8String" value="@@Recip@@" />

  </avp>

  <avp name="Submission-Time" code="1202" vendor="10415" mandatory="true" type="Unsigned32" value="@@TimeStamp@@" />

    <avp name="MM-Content-Type" code="1203" vendor="10415" mandatory="true" type="Grouped">

      <avp name="Type-Number" code="1204" vendor="10415" mandatory="true" type="Unsigned32" value="51" />

      <avp name="Content-Size" code="1206" vendor="10415" mandatory="true" type="Unsigned32" value="@@MsgSize@@" />

    </avp>

    <avp name="Message-ID" code="1210" vendor="10415" mandatory="true" type="UTF8String" value="@@Session-Id@@" />

    <avp name="Message-Type" code="1211" vendor="10415" mandatory="true" type="Unsigned32" value="1" />

    <avp name="Message-Size" code="1212" vendor="10415" mandatory="true" type="Unsigned32" value="@@MsgSize@@" />

    <avp name="Message-Class" code="1213" vendor="10415" mandatory="true" type="Grouped">

      <avp name="Class-Identifier" code="1214" vendor="10415" mandatory="true" type="Unsigned32" value="0" />

    </avp>

  </avp>

</avp>

</diameter>

 

 

 

For comments and further discussion, please click here to visit the NowSMS Technical Forums (Discussion Board)...