> *Refer to* [*README*](../README.md) *for main instruction file*
# Profiles
The profiles *XML* file contains a list of *NgnSipPreferences* elements under main root *<Profiles>* tag. It can be found in **android-ngn-stak/res/raw/profiles/** folder on the **MCOP SDK** project. Each *NgnSipPreferences* element contains the configuration of a MCPTT user.
The configuration properties and their tags are described in the **Elements** section below. If a value isn't set, the application uses the default value stored in the code for that field.
After defining a new NgnSipPreferences, it needs to be referenced in the application, adding its name to the **clients HasMap**.
*e.g. for profile name:*
<NgnSipPrefrences name="MyProfile_UserA">
*add the following line to clients HasMap:*
clients.put("MyProfile_UserA", new String[]{"MyProfile_UserA","MyProfile_UserA","MyProfile_UserA"});
The client HashMap is defined in the **MainActivity.java** file for both **MCOP SDK** and **MCOP MCPTT Client**. To quickly find it in Android Studio, go to *Edit --> Find --> Find in path* and search for **clients = new HashMap<>()**, and add the *clients.put* line after it.
## demo.mcopenplatform.org
The [**demo.mcopenplatform.org**](https://demo.mcopenplatform.org/) platform can be used for testing purposes.
Click on [**Request Access**](https://demo.mcopenplatform.org/reserve) and check the calendar there for an empty slot, and you'll receive credentials for five test users (with suffixes A to E).
The **Name** field (max. 10 characters) in the form will determine the name of the client ID. Check the **Example** section below for a specific example.
## Example
Example **profiles** file with just one user configuration.
**For configuration from the [MCOP demo platform](https://demo.mcopenplatform.org/), replace "test" with the "Name" field submitted in the form.** The specific information is also provided by email after requesting a slot.
<Profiles>
<NgnSipPrefrences name="TEST_A">
<DisplayName>TEST A</DisplayName>
<IMPI>mcptt-test-A@organization.org</IMPI>
<IMPU>sip:mcptt-test-A@organization.org</IMPU>
<Password></Password>
<IPVersion>ipv4</IPVersion>
<Transport>UDP</Transport>
<IPsecSecAgree>false</IPsecSecAgree>
<McpttAnswerMode>true</McpttAnswerMode>
<McpttGranted>true</McpttGranted>
<McpttId>sip:mcptt_id_test_A@organization.org</McpttId>
<McpttClientId>sip:mcptt_id_test_A@organization.org</McpttClientId>
<McpttImplicit>true</McpttImplicit>
<McpttIsEnableAffiliation>true</McpttIsEnableAffiliation>
<McpttNameSpace>true</McpttNameSpace>
<McpttPriority>7</McpttPriority>
<McpttPrivAnswerMode>false</McpttPrivAnswerMode>
<McpttPsiAffiliation>sip:mcptt-server-orig-part.organization.org</McpttPsiAffiliation>
<McpttPsiCallGroup>sip:mcptt-server-orig-part.organization.org</McpttPsiCallGroup>
<McpttPsiCallPreestablished>sip:mcptt-server-orig-part.organization.org</McpttPsiCallPreestablished>
<McpttPsiCallPrivate>sip:mcptt-server-orig-part.organization.org</McpttPsiCallPrivate>
<McpttPsiAuthentication>sip:mcptt-server-orig-part.organization.org</McpttPsiAuthentication>
<Realm>organization.org</Realm>
<PcscfPort>5070</PcscfPort>
<PcscfHost>demo.mcopenplatform.org</PcscfHost>
</NgnSipPrefrences>
</Profiles>
**Note: In case of any typo or error in the profile resulting in not being able to parse it, the SDK will use its default values instead**.
## Elements
Brief description and example of the configuration elements:
* **DisplayName**: Display name.
e.g. Test A
* **IMPI**: IP Multimedia Private Identity.
e.g. mcptt-test-A@organization.org
* **IMPU**: IP Multimedia Public Identity.
e.g. sip:mcptt-test-A@organization.org
* **Password**: Password.
e.g. password
* **IPVersion**: IPV version.
e.g. ipv4
* **Transport**: Transport protocol.
e.g. UDP
* **McpttAnswerMode**: "true" for auto answer mode, and "false" for manual answer mode.
e.g. true
* **McpttGranted**: To insert GRANTED in the Invite message.
e.g. true
* **McpttId**: MCPTT identifier.
e.g. sip:mcptt_id_test_A@organization.org
* **McpttClientId**: MCPTT Client identifier.
e.g. sip:mcptt_id_test_A@organization.org
* **McpttImplicit**: To insert IMPLICIT in the Invite message.
e.g. true
* **McpttIsEnableAffiliation**: To enable MCPTT affiliation features.
e.g. true
* **McpttPriority**: Priority level for Private or Group MCPTT calls. From 1 (lowest), to 15 (highest).
e.g. 7
* **McpttPrivAnswerMode**: "true" for automatic answer mode, and "false" for manual answer mode.
e.g. false
* **McpttPsiAffiliation**: Public Service Identity for Affiliations.
e.g. sip:mcptt-server-orig-part.organization.org
* **McpttPsiCallGroup**: Public Service Identity for Group Calls.
e.g. sip:mcptt-server-orig-part.organization.org
* **McpttPsiCallPreestablished**: Public Service Identity for Preestablished Calls.
e.g. sip:mcptt-server-orig-part.organization.org
* **McpttPsiCallPrivate**: Public Service Identity for Private calls.
e.g. sip:mcptt-server-orig-part.organization.org
* **McpttPsiAuthentication**: Public Service Identity for Authentication.
e.g. sip:mcptt-server-orig-part.organization.org
* **Realm**: domain.
e.g. organization.org
* **McpttEnableMbms**: To enable MBMS (Multimedia Broadcast Multicast Services).
e.g. true
* **PcscfHost**: Host name or ip address of the P-CSCF (Proxy-Call Session Control Function).
e.g. 192.168.16.193
* **PcscfPort**: Port number of the P-CSCF.
e.g. 5060