This is going to be a long one. Here we go:
To get your SMT-i series phones autoprovisioning to a non-Samsung system, you're going to need:
- An SMT-i series handset (I've been using an SMT-i3105 in my testing), running the SCM firmware
- A DHCP server where you can configure DHCP option 43.
(phones running SCM firmware ignore DHCP option 128, which is used by phones running OS firmware)
- You need a TFTP server, accessible by the phone device
- An HTTP (Web) server, accessible by the phone device
You will see these tags along the way:
<tftp_server>
<http_server>
<sip_server>
Substitute the IP address for these servers as necessary. I haven't tested this process using hostnames instead of IPs. It would probably work - give it a try and report back.
There is no rule that says these can't all be the same server.
Configure your DHCP server to provide option 43 to your phones. The value you need is
sec,tftp://<tftp_server>The first file you want is "sec_boot.xml". It needs to be put in your TFTP server root.
sec_boot.xml<?xml version="1.0"?>
<BootProfile>
<active_active enable="yes" />
<user_profile type="http" body_type="xml" security="none" />
<profile_tftp_server>
<addr ip="<tftp_server>" dir="/" mac_dir="/sec_mac"/>
</profile_tftp_server>
<profile_tftp_server_pub>
<addr ip="<tftp_server>" dir="/" mac_dir="/sec_mac"/>
</profile_tftp_server_pub>
<profile_http_server>
<addr ip="<http_server>" port="80" dir="/scm_profile" mac_dir="/sec_mac"/>
</profile_http_server>
<profile_http_server_pub>
<addr ip="<http_server>" port="80" dir="/scm_profile" mac_dir="/sec_mac"/>
</profile_http_server_pub>
</BootProfile>
This user_profile tag tells your handset that the user profiles can be found via HTTP, and the profile_http_server tag tells your handset which HTTP server the user profiles can be found on and in which directories.
The next thing your phone does is attempt to download the 'mac profile'. If you've left the configuration in sec_boot.xml largely alone, it will attempt to get this from http://<http_server>/sec_mac/sec_MACADDRESS.xml, where MACADDRESS is the MAC address of your handset. This part of the filename MUST BE IN CAPITALS, and no separators. So, if your phone's mac address is f4d9.fb43.2312 then it will go looking for sec_F4D9FB432312.xml.
sec_MACADDRESS.xml<?xml version="1.0"?>
<MacProfile>
<login_info id="6423" password ="398697"></login_info>
</MacProfile>
This tells the handset that it plays host to user 6423, and that the user should use password 398697 to keep configuring itself. It will use this to attempt to download the sec_user_USERID.xml file, in this case sec_user_6432.xml from http://<http_server>/scm_profile/sec_user_USERID.xml
If you wish, you can secure the scm_profile directory on your HTTP server with Basic authentication. The phone will authenticate using the username and password in the sec_MACADDRESS.xml file. I chose not to.
Before the phone downloads the sec_user_USERID.xml file, it downloads the sec_phone.xml file.
sec_phone.xml<?xml version="1.0" encoding="UTF-8"?>
<PhoneProfile>
<tls_cert>
<download_info mode="0" type="https" port="443" ca_dir="/sec_cert/COM" device_ca_dir="/sec_cert" format="PEM"/>
<key_encryption enable="0"/>
</tls_cert>
<tls_cert_node_1>
<download_info mode="0" type="https" port="443" ca_dir="/sec_cert/COM" device_ca_dir="/sec_cert" format="PEM"/>
<key_encryption enable="0"/>
</tls_cert_node_1>
<port_info>
<signal udp="5060" tcp="5060" tls="5061"/>
<audio start="20000" end="24999"/>
<video start="25000" end="29999"/>
</port_info>
<qos>
<tos mode="1" type="dscp" control="26" media="46"/>
<tos_wireless mode="1" type="dscp" control="48" media="48"/>
</qos>
<sip_timer>
<t1 tmv="500"/>
<t2 tmv="4000"/>
<t4 tmv="5000"/>
<gen_req tmv="32000"/>
<reg_exp tmv="3600"/>
<session_exp tmv="1800"/>
<subs_exp tmv="3600"/>
<fail_over tmv="7"/>
</sip_timer>
<premium_cid>
<mode enable="0" type="external"/>
<server addr=""/>
<ext_server addr=""/>
<ext_name display=""/>
<img_server addr="<http_server>" protocol="https" port="443" dir="/sec_photo/down"/>
<label>
<charset>utf-8</charset>
<dataset>
<language>kor</language>
<data name="ì´름" attribute="10"/>
<data department="부서" attribute="13"/>
<data position="ì§Âì±…" attribute="12"/>
<data company="ڌ사" attribute="11"/>
<data type1="Office Phone Number" attribute="2"/>
<data type2="Cellphone Number" attribute="1"/>
<data type3="FAX Number" attribute="4"/>
<data type4="E-mail" attribute="7"/>
<data type5="" attribute="0"/>
<data type6="" attribute="0"/>
<data type7="" attribute="0"/>
<data type8="" attribute="0"/>
<data type9="" attribute="0"/>
<data type10="" attribute="0"/>
<data type11="" attribute="0"/>
<data type12="" attribute="0"/>
<data type13="" attribute="0"/>
<data type14="" attribute="0"/>
<data type15="" attribute="0"/>
<data type16="" attribute="0"/>
<data type17="" attribute="0"/>
<data type18="" attribute="0"/>
<data type19="" attribute="0"/>
<data type20="" attribute="0"/>
</dataset>
<dataset>
<language>eng</language>
<data name="Name" attribute="10"/>
<data department="Department" attribute="13"/>
<data position="Position" attribute="12"/>
<data company="Company" attribute="11"/>
<data type1="Office Phone Number" attribute="2"/>
<data type2="Cellphone Number" attribute="1"/>
<data type3="FAX Number" attribute="4"/>
<data type4="E-mail" attribute="7"/>
<data type5="" attribute="0"/>
<data type6="" attribute="0"/>
<data type7="" attribute="0"/>
<data type8="" attribute="0"/>
<data type9="" attribute="0"/>
<data type10="" attribute="0"/>
<data type11="" attribute="0"/>
<data type12="" attribute="0"/>
<data type13="" attribute="0"/>
<data type14="" attribute="0"/>
<data type15="" attribute="0"/>
<data type16="" attribute="0"/>
<data type17="" attribute="0"/>
<data type18="" attribute="0"/>
<data type19="" attribute="0"/>
<data type20="" attribute="0"/>
</dataset>
</label>
</premium_cid>
<premium_cid_pub>
<mode enable="0" type="external"/>
<server addr=""/>
<ext_server addr=""/>
<ext_name display=""/>
<img_server addr="<http_server>" protocol="https" port="443" dir="/sec_photo/down"/>
<label>
<charset>utf-8</charset>
<dataset>
<language>kor</language>
<data name="ì´름" attribute="10"/>
<data department="부서" attribute="13"/>
<data position="ì§Âì±…" attribute="12"/>
<data company="ڌ사" attribute="11"/>
<data type1="Office Phone Number" attribute="2"/>
<data type2="Cellphone Number" attribute="1"/>
<data type3="FAX Number" attribute="4"/>
<data type4="E-mail" attribute="7"/>
<data type5="" attribute="0"/>
<data type6="" attribute="0"/>
<data type7="" attribute="0"/>
<data type8="" attribute="0"/>
<data type9="" attribute="0"/>
<data type10="" attribute="0"/>
<data type11="" attribute="0"/>
<data type12="" attribute="0"/>
<data type13="" attribute="0"/>
<data type14="" attribute="0"/>
<data type15="" attribute="0"/>
<data type16="" attribute="0"/>
<data type17="" attribute="0"/>
<data type18="" attribute="0"/>
<data type19="" attribute="0"/>
<data type20="" attribute="0"/>
</dataset>
<dataset>
<language>eng</language>
<data name="Name" attribute="10"/>
<data department="Department" attribute="13"/>
<data position="Position" attribute="12"/>
<data company="Company" attribute="11"/>
<data type1="Office Phone Number" attribute="2"/>
<data type2="Cellphone Number" attribute="1"/>
<data type3="FAX Number" attribute="4"/>
<data type4="E-mail" attribute="7"/>
<data type5="" attribute="0"/>
<data type6="" attribute="0"/>
<data type7="" attribute="0"/>
<data type8="" attribute="0"/>
<data type9="" attribute="0"/>
<data type10="" attribute="0"/>
<data type11="" attribute="0"/>
<data type12="" attribute="0"/>
<data type13="" attribute="0"/>
<data type14="" attribute="0"/>
<data type15="" attribute="0"/>
<data type16="" attribute="0"/>
<data type17="" attribute="0"/>
<data type18="" attribute="0"/>
<data type19="" attribute="0"/>
<data type20="" attribute="0"/>
</dataset>
</label>
</premium_cid_pub>
<premium_cid_node_1>
<mode enable="0" type="external"/>
<server addr=""/>
<ext_server addr=""/>
<ext_name display=""/>
<img_server addr="" protocol="https" port="443" dir="/sec_photo/down"/>
<label>
<charset>utf-8</charset>
<dataset>
<language>kor</language>
<data name="ì´름" attribute="10"/>
<data department="부서" attribute="13"/>
<data position="ì§Âì±…" attribute="12"/>
<data company="ڌ사" attribute="11"/>
<data type1="Office Phone Number" attribute="2"/>
<data type2="Cellphone Number" attribute="1"/>
<data type3="FAX Number" attribute="4"/>
<data type4="E-mail" attribute="7"/>
<data type5="" attribute="0"/>
<data type6="" attribute="0"/>
<data type7="" attribute="0"/>
<data type8="" attribute="0"/>
<data type9="" attribute="0"/>
<data type10="" attribute="0"/>
<data type11="" attribute="0"/>
<data type12="" attribute="0"/>
<data type13="" attribute="0"/>
<data type14="" attribute="0"/>
<data type15="" attribute="0"/>
<data type16="" attribute="0"/>
<data type17="" attribute="0"/>
<data type18="" attribute="0"/>
<data type19="" attribute="0"/>
<data type20="" attribute="0"/>
</dataset>
<dataset>
<language>eng</language>
<data name="Name" attribute="10"/>
<data department="Department" attribute="13"/>
<data position="Position" attribute="12"/>
<data company="Company" attribute="11"/>
<data type1="Office Phone Number" attribute="2"/>
<data type2="Cellphone Number" attribute="1"/>
<data type3="FAX Number" attribute="4"/>
<data type4="E-mail" attribute="7"/>
<data type5="" attribute="0"/>
<data type6="" attribute="0"/>
<data type7="" attribute="0"/>
<data type8="" attribute="0"/>
<data type9="" attribute="0"/>
<data type10="" attribute="0"/>
<data type11="" attribute="0"/>
<data type12="" attribute="0"/>
<data type13="" attribute="0"/>
<data type14="" attribute="0"/>
<data type15="" attribute="0"/>
<data type16="" attribute="0"/>
<data type17="" attribute="0"/>
<data type18="" attribute="0"/>
<data type19="" attribute="0"/>
<data type20="" attribute="0"/>
</dataset>
</label>
</premium_cid_node_1>
<premium_cid_node_1_pub>
<mode enable="0" type="external"/>
<server addr=""/>
<ext_server addr=""/>
<ext_name display=""/>
<img_server addr="" protocol="https" port="443" dir="/sec_photo/down"/>
<label>
<charset>utf-8</charset>
<dataset>
<language>kor</language>
<data name="ì´름" attribute="10"/>
<data department="부서" attribute="13"/>
<data position="ì§Âì±…" attribute="12"/>
<data company="ڌ사" attribute="11"/>
<data type1="Office Phone Number" attribute="2"/>
<data type2="Cellphone Number" attribute="1"/>
<data type3="FAX Number" attribute="4"/>
<data type4="E-mail" attribute="7"/>
<data type5="" attribute="0"/>
<data type6="" attribute="0"/>
<data type7="" attribute="0"/>
<data type8="" attribute="0"/>
<data type9="" attribute="0"/>
<data type10="" attribute="0"/>
<data type11="" attribute="0"/>
<data type12="" attribute="0"/>
<data type13="" attribute="0"/>
<data type14="" attribute="0"/>
<data type15="" attribute="0"/>
<data type16="" attribute="0"/>
<data type17="" attribute="0"/>
<data type18="" attribute="0"/>
<data type19="" attribute="0"/>
<data type20="" attribute="0"/>
</dataset>
<dataset>
<language>eng</language>
<data name="Name" attribute="10"/>
<data department="Department" attribute="13"/>
<data position="Position" attribute="12"/>
<data company="Company" attribute="11"/>
<data type1="Office Phone Number" attribute="2"/>
<data type2="Cellphone Number" attribute="1"/>
<data type3="FAX Number" attribute="4"/>
<data type4="E-mail" attribute="7"/>
<data type5="" attribute="0"/>
<data type6="" attribute="0"/>
<data type7="" attribute="0"/>
<data type8="" attribute="0"/>
<data type9="" attribute="0"/>
<data type10="" attribute="0"/>
<data type11="" attribute="0"/>
<data type12="" attribute="0"/>
<data type13="" attribute="0"/>
<data type14="" attribute="0"/>
<data type15="" attribute="0"/>
<data type16="" attribute="0"/>
<data type17="" attribute="0"/>
<data type18="" attribute="0"/>
<data type19="" attribute="0"/>
<data type20="" attribute="0"/>
</dataset>
</label>
</premium_cid_node_1_pub>
<uc_service>
<vcs mode="0" addr="" port="0"/>
<presence mode="0" addr="" port="0"/>
<xml_browser mode="0" url=""/>
<ldap mode="0" url="" domain="" id="" password=""/>
</uc_service>
<uc_service_pub>
<vcs mode="0" addr="" port="0"/>
<presence mode="0" addr="" port="0"/>
<xml_browser mode="0" url=""/>
<ldap mode="0" url="" domain="" id="" password=""/>
</uc_service_pub>
<uc_service_node_1>
<vcs mode="0" addr="" port="0"/>
<presence mode="0" addr="" port="0"/>
<xml_browser mode="0" url=""/>
<ldap mode="0" url="" domain="" id="" password=""/>
</uc_service_node_1>
<uc_service_node_1_pub>
<vcs mode="0" addr="" port="0"/>
<presence mode="0" addr="" port="0"/>
<xml_browser mode="0" url=""/>
<ldap mode="0" url="" domain="" id="" password=""/>
</uc_service_node_1_pub>
<tone_info>
<tone_dial freq1="400" freq2="425" on_time1="10000" off_time1="0" on_time2="10000" off_time2="0" on_time3="0" off_time3="0"/>
<tone_svc_dial freq1="350" freq2="440" on_time1="500" off_time1="100" on_time2="500" off_time2="500" on_time3="0" off_time3="0"/>
<tone_vir_dial freq1="350" freq2="440" on_time1="65530" off_time1="0" on_time2="65530" off_time2="0" on_time3="0" off_time3="0"/>
<tone_ringback freq1="425" freq2="450" on_time1="400" off_time1="200" on_time2="400" off_time2="2000" on_time3="0" off_time3="0"/>
<tone_busy freq1="425" freq2="0" on_time1="375" off_time1="375" on_time2="0" off_time2="0" on_time3="0" off_time3="0"/>
<tone_waiting freq1="440" freq2="0" on_time1="300" off_time1="10000" on_time2="0" off_time2="0" on_time3="0" off_time3="0"/>
<tone_eov freq1="440" freq2="440" on_time1="100" off_time1="100" on_time2="100" off_time2="100" on_time3="0" off_time3="0"/>
<tone_error freq1="400" freq2="400" on_time1="250" off_time1="200" on_time2="0" off_time2="0" on_time3="0" off_time3="0"/>
<tone_bc1_ring freq1="1020" freq2="0" on_time1="2000" off_time1="4000" on_time2="0" off_time2="0" on_time3="0" off_time3="0"/>
<tone_bc2_ring freq1="1020" freq2="0" on_time1="800" off_time1="400" on_time2="800" off_time2="4000" on_time3="0" off_time3="0"/>
<tone_bc3_ring freq1="1020" freq2="0" on_time1="400" off_time1="200" on_time2="400" off_time2="200" on_time3="800" off_time3="4000"/>
<tone_bc4_ring freq1="1020" freq2="0" on_time1="300" off_time1="200" on_time2="1000" off_time2="200" on_time3="300" off_time3="4000"/>
<tone_bc5_ring freq1="1020" freq2="0" on_time1="500" off_time1="0" on_time2="0" off_time2="0" on_time3="0" off_time3="0"/>
<tone_bc1_wait freq1="350" freq2="440" on_time1="300" off_time1="0" on_time2="0" off_time2="3000" on_time3="0" off_time3="0"/>
<tone_bc2_wait freq1="350" freq2="440" on_time1="100" off_time1="100" on_time2="100" off_time2="3000" on_time3="0" off_time3="0"/>
<tone_bc3_wait freq1="350" freq2="440" on_time1="100" off_time1="100" on_time2="100" off_time2="100" on_time3="100" off_time3="3000"/>
<tone_bc4_wait freq1="350" freq2="440" on_time1="100" off_time1="100" on_time2="300" off_time2="100" on_time3="100" off_time3="3000"/>
<tone_scm1_ring freq1="300" freq2="400" on_time1="1000" off_time1="2000" on_time2="0" off_time2="0" on_time3="0" off_time3="0"/>
<tone_scm2_ring freq1="400" freq2="600" on_time1="1000" off_time1="3000" on_time2="0" off_time2="0" on_time3="0" off_time3="0"/>
<tone_scm3_ring freq1="800" freq2="1000" on_time1="200" off_time1="200" on_time2="200" off_time2="200" on_time3="200" off_time3="4000"/>
<tone_scm4_ring freq1="800" freq2="1000" on_time1="400" off_time1="200" on_time2="400" off_time2="4000" on_time3="0" off_time3="0"/>
<tone_scm5_ring freq1="300" freq2="600" on_time1="400" off_time1="200" on_time2="400" off_time2="200" on_time3="400" off_time3="2000"/>
<tone_scm6_ring freq1="600" freq2="1000" on_time1="400" off_time1="200" on_time2="400" off_time2="2000" on_time3="0" off_time3="0"/>
<tone_scm7_ring freq1="300" freq2="800" on_time1="1000" off_time1="1000" on_time2="0" off_time2="0" on_time3="0" off_time3="0"/>
<tone_scm8_ring freq1="400" freq2="1000" on_time1="3000" off_time1="1000" on_time2="0" off_time2="0" on_time3="0" off_time3="0"/>
<tone_scm9_ring freq1="885" freq2="625" on_time1="400" off_time1="200" on_time2="400" off_time2="3000" on_time3="0" off_time3="0"/>
<tone_scm10_ring freq1="800" freq2="600" on_time1="1000" off_time1="2000" on_time2="0" off_time2="0" on_time3="0" off_time3="0"/>
<tone_scm11_ring freq1="400" freq2="0" on_time1="400" off_time1="200" on_time2="400" off_time2="200" on_time3="400" off_time3="1000"/>
<tone_scm12_ring freq1="500" freq2="0" on_time1="1000" off_time1="4000" on_time2="0" off_time2="0" on_time3="0" off_time3="0"/>
<tone_scm13_ring freq1="350" freq2="500" on_time1="600" off_time1="200" on_time2="200" off_time2="4000" on_time3="0" off_time3="0"/>
<tone_scm14_ring freq1="450" freq2="600" on_time1="300" off_time1="400" on_time2="300" off_time2="2000" on_time3="0" off_time3="0"/>
<tone_scm15_ring freq1="350" freq2="550" on_time1="300" off_time1="400" on_time2="300" off_time2="3000" on_time3="0" off_time3="0"/>
<tone_scm16_ring freq1="400" freq2="600" on_time1="300" off_time1="400" on_time2="300" off_time2="4000" on_time3="0" off_time3="0"/>
<tone_hold freq1="440" freq2="480" on_time1="500" off_time1="500" on_time2="500" off_time2="2500" on_time3="0" off_time3="0"/>
<tone_ugent_wait freq1="340" freq2="440" on_time1="125" off_time1="250" on_time2="125" off_time2="1500" on_time3="0" off_time3="0"/>
<tone_disconnect freq1="480" freq2="620" on_time1="500" off_time1="500" on_time2="0" off_time2="0" on_time3="0" off_time3="0"/>
<tone_dnd freq1="480" freq2="620" on_time1="250" off_time1="250" on_time2="0" off_time2="0" on_time3="0" off_time3="0"/>
<tone_mwi freq1="350" freq2="620" on_time1="1000" off_time1="250" on_time2="0" off_time2="0" on_time3="0" off_time3="0"/>
<tone_lcr freq1="350" freq2="440" on_time1="1000" off_time1="250" on_time2="0" off_time2="0" on_time3="0" off_time3="0"/>
<tone_confirm freq1="350" freq2="440" on_time1="50" off_time1="50" on_time2="0" off_time2="0" on_time3="0" off_time3="0"/>
</tone_info>
<directory_service_pub>
<mode enable="1"/>
<server addr="" protocol="http" port="80"/>
</directory_service_pub>
<directory_service_node_1_pub>
<mode enable="1"/>
<server addr="" protocol="http" port="80"/>
</directory_service_node_1_pub>
<directory_service>
<mode enable="1"/>
<server addr="<http_server>" protocol="http" port="80"/>
</directory_service>
<directory_service_node_1>
<mode enable="1"/>
<server addr="" protocol="http" port="80"/>
</directory_service_node_1>
<expanded_sound>
<download_info mode="0" dir=""/>
<dialtone filename="" format=""/>
<dialtone filename="" format=""/>
</expanded_sound>
<ring_priority>scm</ring_priority>
<keep_alive enable="0" interval="180"/>
<keep_alive_node_1 enable="0" interval="180"/>
<snmp>
<server_1 addr="" port="11162"/>
<server_2 addr="" port="11162"/>
<server_3 addr="" port="11162"/>
</snmp>
<options use_speaker_key_for_group_listen="0"/>
<tx_gain>
<device model="SMT-i2205" value="5"/>
<device model="SMT-i2205S" value="5"/>
<device model="SMT-i3100" value="5"/>
<device model="SMT-i5210" value="5"/>
<device model="SMT-i5220" value="5"/>
<device model="SMT-i5220S" value="5"/>
<device model="SMT-i5230" value="5"/>
<device model="SMT-i5243" value="5"/>
<device model="SMT-i5264" value="5"/>
<device model="SMT-i5343" value="5"/>
<device model="SMT-i5210S" value="5"/>
<device model="SMT-i6010" value="5"/>
<device model="SMT-i6020" value="5"/>
<device model="SMT-i6011" value="5"/>
<device model="SMT-i6021" value="5"/>
</tx_gain>
<spot_news>
<mode enable="0"/>
<server url=""/>
<phone listening_port="0" reg_interval="0"/>
</spot_news>
<spot_news_pub>
<mode enable="0"/>
<server url=""/>
<phone listening_port="0" reg_interval="0"/>
</spot_news_pub>
<spot_news_node_1>
<mode enable="0"/>
<server url=""/>
<phone listening_port="0" reg_interval="0"/>
</spot_news_node_1>
<spot_news_node_1_pub>
<mode enable="0"/>
<server url=""/>
<phone listening_port="0" reg_interval="0"/>
</spot_news_node_1_pub>
<line_skipping mode="default"/>
<tls_info version="1.0"/>
<country_code>AU</country_code>
<phone_decorate>
<wallpaper>
<options download="0" dir="" set_forced="0"/>
<image filename="" size=""/>
</wallpaper>
<melody>
<options download="0" dir="" set_forced="0"/>
<melody filename="" size=""/>
</melody>
</phone_decorate>
<line_lock_out enable="0" tone_play="1"/>
<hook_detect_timer hook_on="250" hook_off="0"/>
<hook_flash_detect_timer>400</hook_flash_detect_timer>
</PhoneProfile>
The sec_phone file describes to the handset how to find directory info, where to download user portraits for handsets with high res screens and so on. Most of these features I don't know how to use, nor do I have a capable handset to test, so haven't experimented.
What you will see in this file is the dialtone definitions. I've modified the dialtones to suit australian expectations. You'll need to modify to suit your environment.
The phone then downloads the sec_user xml file:
sec_user_USERID.xml<?xml version="1.0" encoding="UTF-8"?>
<UserProfile>
<server_type>not_a_samsung</server_type>
<division>node_0</division>
<display_charset>utf-8</display_charset>
<profiles>
<service filename="sec_service.xml"/>
<dialplan filename="sec_dialplan.xml"/>
<dialtone filename="sec_dialtone.xml"/>
<line filename="sec_line_6423.xml"/>
<softmenu filename="sec_softmenu_eng.xml"/>
<key_program_menu filename="sec_program_key_eng.xml"/>
<supplement filename="sec_supplement_6423.xml"/>
</profiles>
<profile_id>6423</profile_id>
<profile_type type="private" public_key="public"/>
<language>eng</language>
<display_priority>normal</display_priority>
<offhook_alarm enable="0"/>
<transport_conn_reuse enable="1"/>
<transport_conn_reuse_node_1 enable="1"/>
<data media="rtp" dtmf="rfc2833" dtmf_payload="101"/>
<survivable_proxy>
<server domain="" addr="" protocol="" port=""/>
</survivable_proxy>
<sntp>
<server_1 addr="<sntp_server>"/>
<server_2 addr=""/>
<options zone_offset="600" dst="1" dst_start_time="M10.1.0/01:59:59" dst_bias_time="03:00:00" dst_end_time="M4.1.0/02:59:59" refresh="1440" zone_info="Australia/Melbourne"/>
</sntp>
<registrar>
<server_1 domain="<sip_domain>" addr="<sip_server>" protocol="UDP" port="5060"/>
<server_2 domain="" addr="" protocol="" port=""/>
<server_3 domain="" addr="" protocol="" port=""/>
</registrar>
<registrar_node_1>
<server_1 domain="" addr="" protocol="" port=""/>
<server_2 domain="" addr="" protocol="" port=""/>
<server_3 domain="" addr="" protocol="" port=""/>
</registrar_node_1>
<registrar_pub>
<server_1 domain="" addr="" protocol="" port=""/>
<server_2 domain="" addr="" protocol="" port=""/>
<server_3 domain="" addr="" protocol="" port=""/>
</registrar_pub>
<registrar_node_1_pub>
<server_1 domain="" addr="" protocol="" port=""/>
<server_2 domain="" addr="" protocol="" port=""/>
<server_3 domain="" addr="" protocol="" port=""/>
</registrar_node_1_pub>
<outbound_proxy>
<server_1 domain="" addr="" protocol="" port=""/>
<server_2 domain="" addr="" protocol="" port=""/>
<server_3 domain="" addr="" protocol="" port=""/>
</outbound_proxy>
<outbound_proxy_node_1>
<server_1 domain="" addr="" protocol="" port=""/>
<server_2 domain="" addr="" protocol="" port=""/>
<server_3 domain="" addr="" protocol="" port=""/>
</outbound_proxy_node_1>
<sms>
<mode enable="1" type="internal"/>
<server_1 domain="<sip_domain>" addr="<sip_server>" protocol="UDP" port="5060"/>
<server_2 domain="" addr="" protocol="" port=""/>
<server_3 domain="" addr="" protocol="" port=""/>
</sms>
<survivable_proxy_pub>
<server domain="" addr="" protocol="" port=""/>
</survivable_proxy_pub>
<sntp_pub>
<server_1 addr=""/>
<server_2 addr=""/>
<options zone_offset="600" dst="1" dst_start_time="M10.1.0/01:59:59" dst_bias_time="03:00:00" dst_end_time="M4.1.0/02:59:59" refresh="1440" zone_info="Australia/Melbourne"/>
</sntp_pub>
<outbound_proxy_pub>
<server_1 domain="" addr="" protocol="" port=""/>
<server_2 domain="" addr="" protocol="" port=""/>
<server_3 domain="" addr="" protocol="" port=""/>
</outbound_proxy_pub>
<outbound_proxy_node_1_pub>
<server_1 domain="" addr="" protocol="" port=""/>
<server_2 domain="" addr="" protocol="" port=""/>
<server_3 domain="" addr="" protocol="" port=""/>
</outbound_proxy_node_1_pub>
<sms_pub>
<mode enable="1" type="internal"/>
<server_1 domain="ug1.scm.com" addr="" protocol="UDP" port="5060"/>
<server_2 domain="" addr="" protocol="" port=""/>
<server_3 domain="" addr="" protocol="" port=""/>
</sms_pub>
<tls_key_decryption_info>
<password type="direct" info=""/>
<pdf_info device_id="" salt="" ic="512" dk="20"/>
</tls_key_decryption_info>
<tls_key_decryption_info_node_1>
<password type="direct" info=""/>
<pdf_info device_id="" salt="" ic="512" dk="20"/>
</tls_key_decryption_info_node_1>
</UserProfile>
OK. So the sec_user_USERID.xml file basically says which SIP server we're using. It also defines:
- the time server - swap in your network values for <sntp_server>.
- daylight savings settings. You can see the settings for Australia/Melbourne above. We start on the first (1) sunday (0) of Octobe (10), and finish on the first sunday of April, hence the M10.1.0 and M4.1.0 above.
I'd guess that a lot of the unused settings could be excised here, but I haven't tested that yet.
The important thing in the sec_user_USERID.xml file is the contents of the <profiles> tag. These describe the next lot of files the handset will download. The first of these is the line file, sec_line_LINEID.xml, where LINEID in this case is 6423.
sec_line_LINEID.xml<?xml version="1.0" encoding="UTF-8"?>
<LineProfile>
<display charset="utf-8"/>
<dual_regist>2</dual_regist>
<line_authname>6423</line_authname>
<line_displayname>Simian123</line_displayname>
<line_name>6423</line_name>
<public_num></public_num>
<line_password>398697</line_password>
<station_display_num></station_display_num>
<station_display>0</station_display>
<msg_subscription_uri></msg_subscription_uri>
<call_intrusion>2</call_intrusion>
<intrusion_no_tone>2</intrusion_no_tone>
<cf_all>1</cf_all>
<cf_all_num></cf_all_num>
<cf_noanswer>1</cf_noanswer>
<cf_noanswer_num></cf_noanswer_num>
<cf_busy>1</cf_busy>
<cf_busy_num></cf_busy_num>
<cf_unreg>1</cf_unreg>
<cf_unreg_num></cf_unreg_num>
<gcf_all>1</gcf_all>
<gcf_all_num></gcf_all_num>
<remote_office>1</remote_office>
<remote_office_num></remote_office_num>
<pick_up_group>2</pick_up_group>
<pick_up_direct>2</pick_up_direct>
<dnd>1</dnd>
<dnd_white_lists></dnd_white_lists>
<dnd_override>0</dnd_override>
<hot_line>1</hot_line>
<hot_line_num></hot_line_num>
<hot_line_timer>3</hot_line_timer>
<absentee>1</absentee>
<conference>2</conference>
<mcid>2</mcid>
<wake_up>1</wake_up>
<wake_up_type></wake_up_type>
<wake_up_time></wake_up_time>
<intercom_codes></intercom_codes>
<call_park>2</call_park>
<call_back>2</call_back>
<last_call_redial>2</last_call_redial>
<cru>1</cru>
<auto_answer>1</auto_answer>
<follow_me>1</follow_me>
<follow_me_num></follow_me_num>
<call_appearance></call_appearance>
<no_ring>1</no_ring>
<ame>2</ame>
<auto_redial>1</auto_redial>
<record>2</record>
<paging>2</paging>
<predefined_conf>2</predefined_conf>
<acd></acd>
<hot_desk>1</hot_desk>
<hot_desk_max_time>8</hot_desk_max_time>
<call_waiting>1</call_waiting>
<station_barring>none</station_barring>
<premium_cid>2</premium_cid>
<extension_replaced_num></extension_replaced_num>
<public_replaced_num></public_replaced_num>
<public_replaced_name></public_replaced_name>
<phone_bridge_record></phone_bridge_record>
<phone_bridge_record_access_num>880880</phone_bridge_record_access_num>
<extension_replaced>1</extension_replaced>
</LineProfile>
As you can see, the sec_line_LINEID.xml file contains the line details for the handset, like auth id and password. It also defines the display name that appears on the screen of the handset. You'll see I've got my handle in there.
The next file the handset will go for (defined in the user xml file) is the sec_service.xml file.
sec_service.xml<?xml version="1.0" encoding="UTF-8"?>
<ServiceProfile>
<fc_cfa_act>*611</fc_cfa_act>
<fc_cfa_deact>*610</fc_cfa_deact>
<fc_cfb_act>*621</fc_cfb_act>
<fc_cfb_deact>*620</fc_cfb_deact>
<fc_cfna_act>*631</fc_cfna_act>
<fc_cfna_deact>*630</fc_cfna_deact>
<fc_cfur_act>*661</fc_cfur_act>
<fc_cfur_deact>*660</fc_cfur_deact>
<fc_abs_act>*411</fc_abs_act>
<fc_abs_deact>*410</fc_abs_deact>
<fc_wakeup_call_act>*451</fc_wakeup_call_act>
<fc_wakeup_call_deact>*450</fc_wakeup_call_deact>
<fc_dnd_act>*401</fc_dnd_act>
<fc_dnd_deact>*400</fc_dnd_deact>
<fc_cru_act>*421</fc_cru_act>
<fc_cru_deact>*420</fc_cru_deact>
<fc_auto_redial_act>*171</fc_auto_redial_act>
<fc_auto_redial_deact>*170</fc_auto_redial_deact>
<fc_callback_act>*161</fc_callback_act>
<fc_callback_deact>*160</fc_callback_deact>
<fc_rmo_act></fc_rmo_act>
<fc_rmo_deact></fc_rmo_deact>
<fc_multi_ring_act>*461</fc_multi_ring_act>
<fc_multi_ring_deact>*460</fc_multi_ring_deact>
<fc_multi_ring_set>*471</fc_multi_ring_set>
<fc_multi_ring_del>*470</fc_multi_ring_del>
<fc_no_ring_act>*441</fc_no_ring_act>
<fc_no_ring_deact>*440</fc_no_ring_deact>
<fc_auto_ans_enable>*431</fc_auto_ans_enable>
<fc_auto_ans_disable>*430</fc_auto_ans_disable>
<fc_ame_start>*201</fc_ame_start>
<fc_ame_stop>*200</fc_ame_stop>
<fc_ame_enable>*211</fc_ame_enable>
<fc_ame_disable>*210</fc_ame_disable>
<fc_callwait_enable>*181</fc_callwait_enable>
<fc_callwait_disable>*180</fc_callwait_disable>
<fc_follow_me_act>*671</fc_follow_me_act>
<fc_follow_me_deact>*670</fc_follow_me_deact>
<fc_call_record_start>*22</fc_call_record_start>
<fc_cc_start>*89</fc_cc_start>
<fc_call_park>*11</fc_call_park>
<fc_call_intrusion>*23</fc_call_intrusion>
<fc_call_intrusion_no_tone>*24</fc_call_intrusion_no_tone>
<fc_dnd_override_start>*25</fc_dnd_override_start>
<fc_temporaty_cid_barring_start>*35</fc_temporaty_cid_barring_start>
<fc_mal_call>*26</fc_mal_call>
<fc_call_pickup_group>**</fc_call_pickup_group>
<fc_call_park_retrieve>*12</fc_call_park_retrieve>
<fc_call_pickup_direct>*0</fc_call_pickup_direct>
<fc_last_call_redial>*31</fc_last_call_redial>
<fc_acc_voluntary_start>*36</fc_acc_voluntary_start>
<fc_intercom>*30</fc_intercom>
<fc_ums_start>*88</fc_ums_start>
<fc_shared_call_retrieve_start>*15</fc_shared_call_retrieve_start>
<fc_acd_login>*501</fc_acd_login>
<fc_acd_logout>*500</fc_acd_logout>
<fc_acd_work_set>*521</fc_acd_work_set>
<fc_acd_work_unset>*520</fc_acd_work_unset>
<fc_acd_break_set>*511</fc_acd_break_set>
<fc_acd_break_unset>*510</fc_acd_break_unset>
<fc_me_pick_on_desk_start>*14</fc_me_pick_on_desk_start>
<fc_svc_passwd_set>*33</fc_svc_passwd_set>
<fc_pref_lang_set>*34</fc_pref_lang_set>
<fc_predefined_cc_start></fc_predefined_cc_start>
<fc_progressive_cc_start></fc_progressive_cc_start>
<fc_meetme_cc_join_start>*82</fc_meetme_cc_join_start>
<fc_cc_on_ans_start>*81</fc_cc_on_ans_start>
<fc_ums_memo_start>#</fc_ums_memo_start>
<fc_ums_msgl_start>*85</fc_ums_msgl_start>
<fc_ums_admn_start>*86</fc_ums_admn_start>
<fc_page_start>*55</fc_page_start>
<fc_vm_transfer_start>*87</fc_vm_transfer_start>
<fc_stg_in>*531</fc_stg_in>
<fc_stg_out>*530</fc_stg_out>
<fc_disable_cwt_for_next_call>*79</fc_disable_cwt_for_next_call>
<fc_disable_cwt_for_cur_call>*78</fc_disable_cwt_for_cur_call>
<fc_act_cc>*77</fc_act_cc>
<fc_drop_list_join_party></fc_drop_list_join_party>
<fc_all_cf_clear>*60</fc_all_cf_clear>
<fc_all_feature_clear>*99</fc_all_feature_clear>
<fc_remote_set>*70</fc_remote_set>
<fc_remote_set_barr_set>*71</fc_remote_set_barr_set>
<fc_attcon_continue_call>*73</fc_attcon_continue_call>
<fc_intercept_call>*72</fc_intercept_call>
<fc_call_park_orbit>*10</fc_call_park_orbit>
<fc_group_callforward_reg>*681</fc_group_callforward_reg>
<fc_group_callforward_clear>*680</fc_group_callforward_clear>
<fc_last_receive_call_redial>*32</fc_last_receive_call_redial>
<fc_callforward_busy_and_noanswer_reg>*641</fc_callforward_busy_and_noanswer_reg>
<fc_callforward_busy_and_noanswer_clear>*640</fc_callforward_busy_and_noanswer_clear>
<fc_isc_insert></fc_isc_insert>
<fc_isc_del></fc_isc_del>
<fc_ringplan_override_enable></fc_ringplan_override_enable>
<fc_ringplan_override_disable></fc_ringplan_override_disable>
<fc_predefined_msg></fc_predefined_msg>
<fc_dispatch_conference></fc_dispatch_conference>
<fc_peer_call_intercept>*75</fc_peer_call_intercept>
<fc_pagong_on_answer></fc_pagong_on_answer>
<fc_ht_staff_loc></fc_ht_staff_loc>
<fc_ht_staff_svc></fc_ht_staff_svc>
<fc_ht_cos_chg></fc_ht_cos_chg>
<fc_reminder_r></fc_reminder_r>
<fc_reminder_c></fc_reminder_c>
<fc_conf_join_sca></fc_conf_join_sca>
<fc_conf_intercom></fc_conf_intercom>
<fc_mv_to_mobile>*19</fc_mv_to_mobile>
<fc_make_isc_call></fc_make_isc_call>
<fc_dts_call></fc_dts_call>
<fc_unknown></fc_unknown>
<fc_cancel_mv>*98</fc_cancel_mv>
<fc_nfc_move></fc_nfc_move>
<fc_nfc_intercept></fc_nfc_intercept>
<fc_mv_to_mtd></fc_mv_to_mtd>
<fc_unknown>*131</fc_unknown>
<fc_unknown>*130</fc_unknown>
<fc_divert_to_number></fc_divert_to_number>
<fc_unknown></fc_unknown>
<fc_moved_call_pickup></fc_moved_call_pickup>
<fc_unknown></fc_unknown>
<fc_unknown></fc_unknown>
<fc_unknown></fc_unknown>
<fc_unknown></fc_unknown>
<fc_unknown></fc_unknown>
<mwi_method>1</mwi_method>
<vm_ext_num>880880</vm_ext_num>
<line_seize_report enable="0"/>
<options>
<calllog store_missed_in_busy="1"/>
<calllog update_peerinfo_for_pickup_group="1"/>
<calllog update_peerinfo_for_pickup_direct="1"/>
<calllog update_peerinfo_for_park_retrieve="1"/>
<calllog update_peerinfo_for_shared_call_retrieve="1"/>
<calllog update_peerinfo_for_redial="1"/>
<call hide_dtmf_digit="0"/>
<phone display_profile_update="1"/>
</options>
</ServiceProfile>
As you can see, the service xml file defines the system feature codes the handset dials when you use buttons like DND and what not. I've left this one as defined by SCM, you can modify these codes to suit your system. I haven't tested modifications to this file yet.
The next file the handset downloads is sec_dialplan.xml.
sec_dialplan.xml
<?xml version="1.0" encoding="UTF-8"?>
<DialPlan>
<timer start="30" long="6" short="2"/>
<end_of_digit value="#"/>
<digitmap>2[25678]XX|6[123]XX|0[23456789]XXXXXXX|00[23478]XXXXXXXX|013[12]XXX|01[38]00XXXXXX|000</digitmap>
<dts>
<timer interdigit="3" total="10"/>
<accesscode_map></accesscode_map>
</dts>
<disconnect_timer base="2" handset="5" service_wait="10"/>
</DialPlan>
As you can see, the dialplan xml file contains the dial plan for the handset. numbers that match the dial plan are immediately sent to the SIP server, rather than waiting for keypress timeout or the send (#) key. The dial plan you see above suits my internal PBX and my location - four digit numbers starting with 22, 25, 26, 27, 28, 61, 62, and 63 are dialled immediately, as are numbers that match local, interstate and 13/1300/1800 PSTN numbers, where prefaced by a leading zero. The emergency 000 (our 911) is in there as well. You should modify this to suit your environment. If you just want the normal timeout and # to dial, then delete the contents between <digitmap> and </digitmap>
The next file to be downloaded is sec_softmenu_eng.xml which contains the internationalised names of functions in the handset soft menu.
sec_softmenu_eng.xml<?xml version="1.0" encoding="UTF-8"?>
<SoftMenuProfile>
<soft_menu_display charset="utf-8" />
<soft_menu_idle>
<function svc_tag="redial" display="Last Outgoing Redial" control="1" attribute="" num="" enable="1" />
<function svc_tag="pickup_grp" display="My Group Pickup" control="1" attribute="" num="" enable="1" />
<function svc_tag="park_ret" display="Park Pickup" control="1" attribute="" num="" enable="1" />
<function svc_tag="vms" display="VM" control="1" attribute="" num="" enable="1" />
<function svc_tag="paging" display="Station Paging" control="1" attribute="" num="" enable="1" />
<function svc_tag="predefined_conf" display="Predefined Conf" control="1" attribute="" num="" enable="1" />
<function svc_tag="pickup_dir" display="Direct Pickup" control="1" attribute="" num="" enable="1" />
<function svc_tag="park_ret_id" display="Park Orbit Pickup" control="1" attribute="" num="" enable="1" />
<function svc_tag="callback" display="Callback" control="1" attribute="" num="" enable="0" />
<function svc_tag="callback_cancel" display="Callback Cancel" control="1" attribute="" num="" enable="0" />
<function svc_tag="auto_redial" display="Auto Retry" control="1" attribute="" num="" enable="0" />
<function svc_tag="auto_redial_cancel" display="Auto Retry Cancel" control="1" attribute="" num="" enable="0" />
<function svc_tag="mcid" display="MCID" control="1" attribute="" num="" enable="0" />
<function svc_tag="eov" display="Barge-In" control="1" attribute="" num="" enable="0" />
<function svc_tag="eov_no_tone" display="Barge-In No Tone" control="1" attribute="" num="" enable="0" />
<function svc_tag="intercom" display="Intercom" control="1" attribute="" num="" enable="0" />
<function svc_tag="end_call" display="End Call" control="1" attribute="" num="" enable="0" />
<function svc_tag="moved_call_pickup" display="Cancel Move" control="1" attribute="" num="" enable="1" />
</soft_menu_idle>
<soft_menu_busy>
<function svc_tag="callback" display="Callback" control="1" attribute="" num="" enable="1" />
<function svc_tag="auto_redial" display="Auto Retry" control="1" attribute="" num="" enable="1" />
<function svc_tag="end_call" display="End Call" control="1" attribute="" num="" enable="1" />
<function svc_tag="dnd_override" display="DND Override" control="1" attribute="" num="" enable="1" />
<function svc_tag="eov" display="Barge-In" control="1" attribute="" num="" enable="1" />
<function svc_tag="eov_no_tone" display="Barge-In No Tone" control="1" attribute="" num="" enable="1" />
<function svc_tag="new_call" display="New Call" control="1" attribute="" num="" enable="1" />
</soft_menu_busy>
<soft_menu_conv>
<function svc_tag="hold" display="Hold" control="1" attribute="" num="" enable="1" />
<function svc_tag="attended_xfer" display="Transfer" control="1" attribute="" num="" enable="0" />
<function svc_tag="swap" display="Swap" control="1" attribute="" num="" enable="1" />
<function svc_tag="end_call" display="End Call" control="1" attribute="" num="" enable="1" />
<function svc_tag="conf_adhoc" display="Conference" control="1" attribute="" num="" enable="0" />
<function svc_tag="listen" display="Group Listen" control="1" attribute="" num="" enable="1"/>
<function svc_tag="listen_off" display="Listen off" control="1" attribute="" num="" enable="1"/>
<function svc_tag="park" display="Park" control="1" attribute="" num="" enable="1" />
<function svc_tag="record" display="Record" control="1" attribute="" num="" enable="1" />
<function svc_tag="paging" display="Station Paging" control="1" attribute="" num="" enable="1" />
<function svc_tag="park_orbit" display="Park Orbit" control="1" attribute="" num="" enable="1" />
<function svc_tag="vm_xfer" display="VM Transfer" control="1" attribute="" num="" enable="1" />
<function svc_tag="conf_on_ans" display="Conf On Answer" control="1" attribute="" num="" enable="1" />
<function svc_tag="mcid" display="MCID" control="1" attribute="" num="" enable="1" />
<function svc_tag="mute" display="Mute" control="1" attribute="" num="" enable=&