Cause code friendly names (CCFN) are a way to substitute user-friendly aliases for technical cause codes in Open Mobile.. This document discusses the XML specification for using cause code friendly names in Open Mobile.
Cause Code Friendly Name definitions must be stored in a file named CauseCodeMapping3GPP.xml, located in the active profile directory. An XML file with this name may be uploaded to the profile using the Open Mobile Portal.
The basic format of CauseCodeMapping3GPP.xml
is the same as the sample file with the same name located in the directory [Program Files]/[iPass]/[Open Mobile]/bin.
The minimal format is:
<?xml version = '1.0' encoding = 'UTF-8'?> <CauseCodeMapping> <OEMList/> <GPPCauseCodes/> </CauseCode Mapping>
===== XML Tags
<OEMList/>
is not used for Friendly Name and may be omitted if desired. This section is used by TWWA to translate cause codes for certain manufacturers into a standard set (for example, MFG code 123 is translated into TWWA code 456)
<GPPCauseCodes/>
maps the TWWA cause codes (category/code combinations) to the friendly names in a default or language-neutral way. An example of the <GPPCauseCodes>
section is shown here:
<GPPCauseCodes >\\ <!--ANNEX G(INFORMATIVE): 3GPP SPECIFIC CAUSE VALUES FOR MOBILITY MANAGEMENT-->\\ <!-- Cause related to MS identification -->\\ <Cause ref = "101"> <CauseCode cause="2">IMSI unknown in HLR </CauseCode>\\ <CauseCode cause="3">Illegal MS</CauseCode>\\ <CauseCode cause="4">IMSI unknown in VLR</CauseCode>\\ <CauseCode cause="5">IMEI not accepted</CauseCode>\\ <CauseCode cause="6">Illegal ME</CauseCode>\\ </Cause>\\ <!-- Cause related to subscription options -->\\ <Cause ref = "102">\\ <CauseCode cause="11">PLMN not allowed</CauseCode>\\ <CauseCode cause="12">Location Area not allowed</CauseCode>\\ <CauseCode cause="13">Roaming not allowed in this location area</CauseCode>\\ <CauseCode cause="15">No Suitable Cells In Location Area</CauseCode>\\ <CauseCode cause="25">Not authorized for this CSG</CauseCode>\\ </Cause>\\ </ GPPCauseCodes>
There is also an extended format, which includes a new optional tag :<LocalizedGPPCauseCodes>.
The extended format looks like this:
</font>
<?xml version = '1.0' encoding = 'UTF-8'?> <CauseCodeMapping > <OEMList/> <GPPCauseCodes/> <LocalizedGPPCauseCodes> <Locale Name="en-US"> </Locale> </LocalizedGPPCauseCodes> </CauseCodeMapping>
<LocalizedGPPCauseCodes>
contains a list of sections for individual locales in translated form. The section that matches the language selected in the options panel will be used. This section is optional.
If the localized section does not contain a match for the category/code combination, then the <GPPCauseCodes>
section will be searched for a default value. If the <GPPCauseCodes> section does not contain a match, then the client will fall back to the default localized resources included into the client.
Here is an example <LocalizedGPPCauseCodes>
section:
<LocalizedGPPCauseCodes>\\ <Locale Name="en-US" >\\ <!--ANNEX G(INFORMATIVE): 3GPP SPECIFIC CAUSE VALUES FOR MOBILITY MANAGEMENT-->\\ <!-- Cause related to MS identification -->\\ <Cause ref = "101">\\ <CauseCode cause="2">Like IMSI unknown in HLR </CauseCode>\\ <CauseCode cause="3">Like Illegal MS</CauseCode>\\ <CauseCode cause="4">Like IMSI unknown in VLR</CauseCode>\\ <CauseCode cause="5">Like IMEI not accepted</CauseCode>\\ <CauseCode cause="6">Like Illegal ME</CauseCode>\\ </Cause>\\ <!-- Cause related to subscription options -->\\ <Cause ref = "102">\\ <CauseCode cause="11">Like PLMN not allowed</CauseCode>\\ <CauseCode cause="12">Like Location Area not allowed</CauseCode>\\ <CauseCode cause="13">Like Roaming not allowed in this location area</CauseCode>\\ <CauseCode cause="15">Like No Suitable Cells In Location Area</CauseCode>\\ <CauseCode cause="25">Like Not authorized for this CSG</CauseCode>\\ </Cause>\\ </Locale>\\ <Locale Name="fr-FR" >\\ <!--ANNEX G(INFORMATIVE): 3GPP SPECIFIC CAUSE VALUES FOR MOBILITY MANAGEMENT-->\\ <!-- Cause related to MS identification -->\\ <Cause ref = "101">\\ <CauseCode cause="2">Le IMSI unknown in HLR </CauseCode>\\ <CauseCode cause="3">Le Illegal MS</CauseCode>\\ <CauseCode cause="4">Le IMSI unknown in VLR</CauseCode>\\ <CauseCode cause="5">Le IMEI not accepted</CauseCode>\\ <CauseCode cause="6">Le Illegal ME</CauseCode>\\ </Cause>\\ <!-- Cause related to subscription options -->\\ <Cause ref = "102">\\ <CauseCode cause="11">Le PLMN not allowed</CauseCode>\\ <CauseCode cause="12">Le Location Area not allowed</CauseCode>\\ <CauseCode cause="13">Le Roaming not allowed in this location area</CauseCode>\\ <CauseCode cause="15">Le No Suitable Cells In Location Area</CauseCode>\\ <CauseCode cause="25">Le Not authorized for this CSG</CauseCode>\\ </Cause>\\ </Locale>\\ <LocaLe Name="de-DE" >\\ <!--ANNEX G(INFORMATIVE): 3GPP SPECIFIC CAUSE VALUES FOR MOBILITY MANAGEMENT-->\\ <!-- Cause related to MS identification -->\\ <Cause ref = "101">\\ <CauseCode cause="2">Der IMSI unknown in HLR </CauseCode>\\ <CauseCode cause="3">Der Illegal MS</CauseCode>\\ <CauseCode cause="4">Der IMSI unknown in VLR</CauseCode>\\ <CauseCode cause="5">Der IMEI not accepted</CauseCode>\\ <CauseCode cause="6">Der Illegal ME</CauseCode>\\ </Cause>\\ <!-- Cause related to subscription options -->\\ <Cause ref = "102">\\ <CauseCode cause="11">Der PLMN not allowed</CauseCode>\\ <CauseCode cause="12">Der Location Area not allowed</CauseCode>\\ <CauseCode cause="13">Der Roaming not allowed in this location area</CauseCode>\\ <CauseCode cause="15">Der No SuitabLe Cells In Location Area</CauseCode>\\ <CauseCode cause="25">Der Not authorized for this CSG</CauseCode>\\ </Cause>\\ </Locale>\\ </LocalizedGPPCauseCodes>
Here are some scenarios that make use of the CCFN XML specification:
<GPPCauseCodes>
section. In this case the match from this section will be used instead of the default match, unless a match is not found. You can only populate the<GPPCauseCodes>
section with the strings you want to change.<LocalizedGPPCauseCodes>
section and not the <GPPCauseCodes> section. In this case, the localized strings will be used, and as a fallback, the default resource strings will be used if a match is not found. This section can also contain only the strings that need to be changed, leaving the default version for all other matches.<GPPCauseCode>
section contains all possible codes.Go to: Other Product Documents > Tech Notes