RCS Auto Configuration is the procedure where the UE retrieves operator-specific RCS parameters from a remote configuration server and applies them to the RCS stack. The downloaded configuration can include IMS identities, service switches, capability discovery timers, messaging limits, file transfer policy, APN behavior, XCAP settings, and transport preferences.
The high-level protocol is simple: the UE first checks the configuration server over HTTP, then performs the real configuration exchange over HTTPS. In practice, the trace looks more complicated because TCP setup, TLS negotiation, certificate handling, and encrypted HTTP payloads surround the actual configuration request and response.
Contents
Overview
The overview sequence separates the availability check from the actual provisioning download. The first HTTP exchange confirms that the configuration service can be reached, while the HTTPS exchange protects the request parameters and the returned RCS provisioning XML.

Even though the negotiation is a simple four-step process, the real log captured for this process looks complicated. Some complexity comes from TCP setup and teardown, but the main reason is the TLS/SSL setup required for steps (3) and (4). When reproducing this procedure in a lab, certificate and security parameters must be configured on both the network or test equipment and the UE.

From the message sequence alone, it is not always clear which packets carry Auto Configuration data and which packets are only transport or security housekeeping. To see the HTTP payload, the TLS/SSL data must be decrypted with the required security material. Refer to Wireshark Protocol - SSL for SSL decoding background.
Once the SSL message is decoded, the Auto Configuration messages can be identified as shown below.

Decoded Auto Configuration Transaction
The decoded transaction contains an initial HTTP availability check, an HTTP response, an HTTPS GET carrying terminal and subscription identifiers, and a final HTTPS response carrying the XML provisioning document.
GET / HTTP/1.1
Cache-Control: max-age=0
Host: config.rcs.mnc001.mcc001.pub.3gppnetwork.org
User-Agent: 3gpp-gba
This HTTP/XML message clip highlights the following parameters: User-Agent. Use these fields to identify the HTTP transaction, server response, security context, and provisioning payload for this part of the procedure.
Connection: Keep-Alive
Accept-Language: en-US
This HTTP GET clip shows the request line plus Cache-Control, Host, User-Agent, Connection, and Accept-Language headers. Host identifies the RCS configuration server, and User-Agent indicates the 3GPP GBA-capable client profile.
HTTP/1.1 200 OK
Cache-Control: private
Transfer-Encoding: chunked
Content-Type: text/html
Expires: Mon, 07 Nov 2016 04:05:20 GMT
This HTTP/XML message clip highlights the following parameters: Expires, Content-Type. Use these fields to identify the HTTP transaction, server response, security context, and provisioning payload for this part of the procedure.
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
Set-Cookie: PHPSESSID=dv+z7IckAiXiBX+aFEJh+g==; path=/
X-Powered-By: ASP.NET
Date: Mon, 07 Nov 2016 05:05:20 GMT
This HTTP/XML message clip highlights the following parameters: Date. Use these fields to identify the HTTP transaction, server response, security context, and provisioning payload for this part of the procedure.
GET /?IMEI=353756074161860
&terminal_vendor=testVendor
&rcs_version=5.1B
&terminal_model=SM-N920T
&client_version=RCSAndr-5.0
&IMSI=001001123456789
&terminal_sw_version=N920TUVS2COKC
&client_vendor=SEC
&vers=20160401
&rcs_profile=joyn_blackbird HTTP/1.1
Cookie: PHPSESSID=dv+z7IckAiXiBX+aFEJh+g==; path=/
Cache-Control: max-age=0
Host: config.rcs.mnc001.mcc001.pub.3gppnetwork.org
User-Agent: IM-client/OMA1.0 testVendor/SM-N920T-OKC testVendor-RCS/5.0 3gpp-gba
This HTTP/XML message clip highlights the following parameters: User-Agent. Use these fields to identify the HTTP transaction, server response, security context, and provisioning payload for this part of the procedure.
Connection: Keep-Alive
Accept-Language: en-US
This HTTPS GET clip carries query parameters including IMEI, terminal_vendor, rcs_version, terminal_model, client_version, IMSI, terminal_sw_version, client_vendor, vers, and rcs_profile. These parameters tell the server which device, subscriber, software version, and RCS profile should be provisioned.
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/xml; charset=utf-8
This HTTP/XML message clip highlights the following parameters: Content-Type. Use these fields to identify the HTTP transaction, server response, security context, and provisioning payload for this part of the procedure.
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 07 Nov 2016 05:05:20 GMT
Content-Length: 8687
This HTTP/XML message clip highlights the following parameters: Content-Length, Date. Use these fields to identify the HTTP transaction, server response, security context, and provisioning payload for this part of the procedure.
<?xml version="1.0" encoding="utf-8"?>
<wap-provisioningdoc version="1.1">
<characteristic type="VERS">
<parm name="version" value="20160401" />
<parm name="validity" value="300" />
</characteristic>
<characteristic type="APPLICATION">
<parm name="AppID" value="ap2001" />
<parm name="Name" value="IMS Settings" />
<parm name="AppRef" value="ims" />
<characteristic type="ConRefs">
<parm name="ConRef" value="0" />
</characteristic>
<parm name="PDP_ContextOperPref" value="0" />
<parm name="Timer_T1" value="500" />
<parm name="Timer_T2" value="4000" />
<parm name="Timer_T4" value="5000" />
<parm name="Private_User_Identity" value="001001123456789@ims.mnc001.mcc001.pub.3gppnetwork.org" />
<characteristic type="Public_User_Identity_List">
<parm name="Public_User_Identity" value="sip:001010123456789@ims.mnc001.mcc001.3gppnetwork.org" />
</characteristic>
<parm name="Home_network_domain_name" value="msg.testnet.com" />
<characteristic type="Ext">
<parm name="NatUrlFmt" value="0" />
<parm name="IntUrlFmt" value="1" />
<parm name="Q-Value" value="0.5" />
<characteristic type="SecondaryDevicePar">
<parm name="VoiceCall" value="0" />
<parm name="Chat" value="0" />
<parm name="SendSms" value="0" />
<parm name="SendMms" value="0" />
<parm name="FileTransfer" value="0" />
<parm name="VideoShare" value="0" />
<parm name="ImageShare" value="0" />
<parm name="VideoCall" value="0" />
<parm name="GeoLocPush" value="0" />
</characteristic>
<parm name="MaxSizeImageShare" value="5242880" />
<parm name="MaxTimeVideoShare" value="300" />
<characteristic type="Ext" />
</characteristic>
<characteristic type="ICSI_List">
<parm name="ICSI" value="" />
<parm name="ICSI_Resource_Allocation_Mode" value="" />
</characteristic><characteristic type="LBO_P-CSCF_Address">
<parm name="Address" value="ss.epdg.epc.mnc001.mcc001.pub.3gppnetwork.org" />
<parm name="AddressType" value="FQDN" />
</characteristic><parm name="Voice_Domain_Preference_E_UTRAN" value="1" />
<parm name="SMS_Over_IP_Networks_Indication" value="1" />
<parm name="Keep_Alive_Enabled" value="0" />
<parm name="Voice_Domain_Preference_UTRAN" value="1" />
<parm name="Mobility_Management_IMS_Voice_Termination" value="1" />
<parm name="RegRetryBaseTime" value="300" />
<parm name="RegRetryMaxTime" value="3600" />
<characteristic type="PhoneContext_List">
<parm name="PhoneContext" value="0" />
<parm name="Public_User_Identity" value="sip:+14448880000@msg.testnet.com" />
</characteristic><characteristic type="APPAUTH"><parm name="AuthType" value="AKA" />
<parm name="Realm" value="msg.testnet.com" />
<parm name="UserName" value="001001123456789@ims.mnc001.mcc001.pub.3gppnetwork.org" />
<parm name="UserPwd" value="ims*1234" />
</characteristic>
</characteristic>
<characteristic type="APPLICATION">
<parm name="AppID" value="ap2002" />
<parm name="Name" value="RCS Settings" />
<parm name="AppRef" value="rcs" />
<characteristic type="IMS">
<parm name="To-AppRef" value="ims" />
<characteristic type="Ext">
<parm name="rcsVolteSingleRegistration" value="1" />
</characteristic>
</characteristic>
<characteristic type="SERVICES">
<parm name="presencePrfl" value="1" />
<parm name="ChatAuth" value="1" />
<parm name="GroupChatAuth" value="1" />
<parm name="ftAuth" value="1" />
<parm name="standaloneMsgAuth" value="1" />
<parm name="geolocPushAuth" value="0" />
<parm name="geolocPullAuth" value="0" />
<parm name="VSAuth" value="0" />
<parm name="ISAuth" value="0" />
<parm name="rcsIPVoiceCallAuth" value="1" />
<parm name="rcsIPVideoCallAuth" value="1" />
<characteristic type="Ext" />
</characteristic>
<characteristic type="PRESENCE">
<parm name="AvailabilityAuth" value="1" />
<characteristic type="FAVLINK">
<parm name="AutMa" value="Auto" />
<characteristic type="LINKS">
<parm name="OpFavUrl1" value="" />
<parm name="OpFavUrl2" value="" />
<parm name="OpFavUrl3" value="" />
</characteristic>
<parm name="LabelMaxLength" value="200" />
</characteristic>
<parm name="IconMaxSize" value="204800" />
<parm name="NoteMaxSize" value="200" />
<characteristic type="VIPCONTACTS">
<parm name="NonVipPollPeriodSetting" value="200" />
<parm name="NonVipMaxPollPerPeriod" value="1" />
</characteristic>
<parm name="PublishTimer" value="3600" />
<parm name="NickNameLength" value="200" />
<characteristic type="Location">
<parm name="TextMaxLength" value="200" />
<parm name="LocInfoMaxValidTime" value="86400" />
</characteristic><characteristic type="Ext" />
<parm name="client-obj-datalimit" value="4096" />
<parm name="content-serveruri" value="" />
<parm name="source-throttlepublish" value="30" />
<parm name="max-number-ofsubscriptions-inpresence-list" value="100" />
<parm name="service-uritemplate" value="rcs" />
<parm name="RLS-URI" value="" />
</characteristic><characteristic type="XDMS">
<parm name="RevokeTimer" value="86400" />
<parm name="enablePNBManagement" value="0" />
<parm name="enableXDMSubscribe" value="0" />
<characteristic type="Ext" />
<parm name="XCAPRootURI" value="xcap.ims.mnc001.mcc001.pub.3gppnetwork.org" />
<parm name="XCAPAuthenticationUserName" value="GBA" />
<parm name="XCAPAuthenticationSecret" value="GBA" />
<parm name="XCAPAuthenticationType" value="GBA" />
</characteristic><characteristic type="SUPL">
<parm name="TextMaxLength" value="200" />
<parm name="LocInfoMaxValidTime" value="43200" />
<parm name="geolocPullOpen" value="0" />
<parm name="geolocPullApiGwAddress" value="" />
<parm name="geolocPullBlockTimer" value="0" />
<characteristic type="Ext" />
<parm name="Addr" value="" />
<parm name="AddrType" value="" />
</characteristic><characteristic type="IM">
<parm name="imMsgTech" value="1" />
<parm name="imCapAlwaysON" value="1" />
<parm name="GroupChatFullStandFwd" value="1" />
<parm name="GroupChatOnlyFStandFwd" value="1" />
<parm name="imWarnSF" value="0" />
<parm name="SmsFallBackAuth" value="1" />
<parm name="imCapNonRCS" value="1" />
<parm name="imWarnIW" value="0" />
<parm name="AutAccept" value="1" />
<parm name="AutAcceptGroupChat" value="1" />
<parm name="imSessionStart" value="0" />
<parm name="firstMessageInvite" value="0" />
<parm name="TimerIdle" value="210" />
<parm name="MaxConcurrentSession" value="10" />
<parm name="multiMediaChat" value="1" />
<parm name="MaxSize1to1" value="1000" />
<parm name="MaxSize1toM" value="1000" />
<parm name="ftWarnSize" value="9999999" />
<parm name="MaxSizeFileTr" value="10240" />
<parm name="ftThumb" value="1" />
<parm name="ftStAndFwEnabled" value="0" />
<parm name="ftCapAlwaysON" value="0" />
<parm name="ftAutAccept" value="1" />
<parm name="ftHTTPCSURI" value="" />
<parm name="ftHTTPCSUser" value="" />
<parm name="ftHTTPCSPwd" value="" />
<parm name="ftDefaultMech" value="MSRP" />
<characteristic type="Ext" />
<parm name="pres-srv-cap" value="1" />
<parm name="deferred-msg-func-uri" value="sip:CPMDeferredMsgMgmt@msg.testnet.com" />
<parm name="max_adhoc_group_size" value="21" />
<parm name="conf-fcty-uri" value="sip:adhoc@msg.testnet.com" />
<parm name="exploder-uri" value="sip:adhoc@msg.testnet.com" />
<parm name="CPMControllingFuncUri" value="sip:adhoc@msg.testnet.com" />
</characteristic>
<characteristic type="CPM">
<characteristic type="StandaloneMsg">
<parm name="MaxSizeStandalone" value="600" />
</characteristic>
<characteristic type="MessageStore">
<parm name="Url" value="" />
<parm name="AuthProt" value="0" />
<parm name="UserName" value="" />
<parm name="UserPwd" value="" />
</characteristic>
<characteristic type="Ext" />
</characteristic>
<characteristic type="CAPDISCOVERY">
<parm name="pollingPeriod" value="300" />
<parm name="pollingRate" value="20" />
<parm name="pollingRatePeriod" value="1" />
<parm name="capInfoExpiry" value="300" />
<parm name="defaultDisc" value="1" />
<parm name="capDiscCommonStack" value="0" />
<characteristic type="Ext" />
</characteristic>
<characteristic type="APN">
<parm name="rcseOnlyAPN" value="ims" />
<parm name="enableRcseSwitch" value="-1" />
<parm name="alwaysUseIMSAPN" value="1" />
<characteristic type="Ext" />
</characteristic>
<characteristic type="OTHER">
<parm name="endUserConfReqId" value="sip:1234567890@msg.testnet.com" />
<parm name="allowVSSave" value="1" />
<characteristic type=" transportProto">
<parm name="psSignalling" value="SIPoUDP" />
<parm name="psMedia" value="MSRP" />
<parm name="psRTMedia" value="RTP" />
<parm name="wifiSignalling" value="SIPoUDP" />
<parm name="wifiMedia" value="MSRP" />
<parm name="wifiRTMedia" value="RTP" />
</characteristic><parm name="uuid_Value" value="0" />
<parm name="IPCallBreakOut" value="0" />
<parm name="IPCallBreakOutCS" value="0" />
<parm name="rcsIPVideoCallUpgradeFromCS" value="0" />
<parm name="rcsIPVideoCallUpgradeOnCapError" value="0" />
<parm name="rcsIPVideoCallUpgradeAttemptEarly" value="0" />
<characteristic type="Ext" />
</characteristic>
<characteristic type="SERVICEPROVIDEREXT" />
</characteristic>
</wap-provisioningdoc>
This XML provisioning clip includes parameters such as AppID, AppRef, Private_User_Identity, Public_User_Identity, Home_network_domain_name, Timer_T1, Timer_T2, Timer_T4, APN, XCAPRootURI, imMsgTech, ftDefaultMech, and capability discovery timers. These values configure IMS identity, RCS service behavior, messaging, file transfer, XCAP, APN, and transport preferences on the UE.