Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

XML Configuration 3.7.1+

XML Configuration

This section describes the formatting and options available when creating XML-based configuration files for provisioning Sangoma phones. Users choosing this method of configuration forgo use of the DPMA, and instead are provisioning phones for use with Asterisk versions that do not support the DPMA.

The configuration elements provided in this section are subject to change between Sangoma Phone firmware releases.

  A Complete XML Configuration Example

A Complete XML Configuration Example

<?xml version="1.0" ?>
<config>
    <setting id="config_server_url" value="sip:proxy@server.example.com:5060;transport=udp" />
    <setting id="pbx_credentials" value="1" account_id="1234" host="server.example.com" user="1234" pass="my password" />
    <setting id="login_password" value="789" />
    <setting id="use_secure_labels" value="0" />
    <setting id="send_mac_with_useragent" value="0" />
    <setting id="time_zone" value="America/Los_Angeles" />
    <setting id="time_source" value="ntp" />
    <setting id="ntp_server" value="0.digium.pool.ntp.org" />
    <setting id="ntp_resync" value="86400" />
    <setting id="ntp_prefer_option42" value="1" />
    <setting id="accept_local_calls" value="any" />
    <setting id="compact_sip_headers" value="0" />
    <setting id="transport_udp_enabled" value="1" />
    <setting id="transport_udp_port" value="5060" />
    <setting id="transport_tcp_enabled" value="1" />
    <setting id="transport_tcp_port" value="5060" />
    <setting id="transport_tls_allowed" value="1" />
    <setting id="transport_tls_port" value="5061" />
    <setting id="enable_ice" value="0" />
    <setting id="stunaddr" value="" />
    <setting id="tls_allow_wildcard_certs" value="0" />
    <setting id="udp_ka_interval" value="60"/>
    <setting id="logo_file" value="user" path="/user_image.png" url="https://server.example.com/mylogo.png" md5="126cd744583eeea1ab7e44ed8af3d39c" />
    <setting id="wallpaper_file" value="user" path="/user_wallpaper.png" url="https://server.example.com/wallpaper.png" md5="126cd744583eeea1ab7e44ed8af3d39d" />
    <setting id="display_mc_notification" value="1" />
    <setting id="display_pickup_notification" value="1" />
    <setting id="prefer_dialpad_over_incoming" value="0" />
    <setting id="hide_completed_elsewhere" value="0" />
    <setting id="small_clock" value="0" />
    <setting id="idle_company_text" value="" />
    <setting id="brightness" value="10" />
    <setting id="contrast" value="10" />
    <setting id="enable_check_sync" value="1"/>
    <setting id="dim_backlight" value="1" />
    <setting id="backlight_timeout" value="30" />
    <setting id="backlight_dim_level" value="2" />
    <setting id="blf_page_return_timeout" value="0" />
    <setting id="default_fontsize" value="10" />
    <setting id="locale" value="en_US" />
    <setting id="time_short_format" value="h:mm a" />
    <setting id="date_short_format" value="M/d/yy" />
    <setting id="date_time_format" value="{1}, {0}" />
    <setting id="idle_screen_clock_format" value="{0} EEE, MMM d" />
    <setting id="ringer_volume" value="5" />
    <setting id="lock_ringing_volume" value="0" />
    <setting id="speaker_volume" value="5" />
    <setting id="handset_volume" value="5" />
    <setting id="headset_volume" value="5" />
    <setting id="reset_call_volume" value="0" />
    <setting id="active_ringtone" value="Sangoma" />
    <setting id="headset_answer" value="0" />
    <setting id="ring_headset_only" value="0" />
    <setting id="call_waiting_tone" value="1" />
    <setting id="ehs" value="auto" />
    <setting id="call_control_checkx" value="0" />
    <setting id="parking_lot_extension" value="700" />
    <setting id="parking_lot_enable_blind_transfer" value="0" />
    <setting id="enable_blf_on_unused_line_keys" value="0" />
    <setting id="contacts_max_subscriptions" value="40" />
    <setting id="name_format" value="first_last" />
    <setting id="blf_contact_group" value="Default" />
    <setting id="use_call_photos" value="0" url="https://user:password@server.example.com/photos?did=" />
    <setting id="expansion_enable" value="0" type="EXP100" page_indicators="0" />
    <setting id="network_enable_dhcp" value="1" />
    <setting id="network_static_ip_address" value="" />
    <setting id="network_subnet_mask" value="" />
    <setting id="network_default_gateway" value="" />
    <setting id="network_domain_name" value="" />
    <setting id="network_primary_dns_server" value="" />
    <setting id="network_secondary_dns_server" value="" />
    <setting id="network_disable_arping" value="0" />
    <setting id="allow_insecure_ssl" value="0" />
    <setting id="network_ipv6_enabled" value="0"/>
    <setting id="network_ipv6_preferred" value="0"/>
    <setting id="network6_static_ip_address" value=""/>
    <setting id="network6_mask" value=""/>
    <setting id="network6_default_gateway" value=""/>
    <setting id="enable_tcp_sack" value="0" />
    <setting id="network_vlan_discovery_mode" value="NONE" />
    <setting id="network_vlan_id" value="44" />
    <setting id="pc_vlan_id" value="10" />
    <setting id="lan_port_mode" value="auto" />
    <setting id="pc_port_mode" value="auto" />
    <setting id="log_level" value="debug" />
    <setting id="enable_logging" value="0" />
    <setting id="log_server" value="10.1.2.3" />
    <setting id="log_port" value="514" />
    <setting id="web_ui_enabled" value="1" />
    <setting id="sip_qos" value="3" />
    <setting id="rtp_qos" value="6" />
    <setting id="pc_qos" value="1" />
    <setting id="sip_dscp" value="24" />
    <setting id="rtp_dscp" value="46" />
    <setting id="in_switchvox_environment" value="0" />
    <setting id="server_environment" value="" />
    <setting id="allow_app_dev" value="0" />
    <setting id="handshake_timeout" value="86400" />
    <setting id="retransmit_until_response" value="0" />
    <setting id="8021x_passthrough" value="0"/>
    <setting id="8021x_eapol_on_disconnect" value="0"/>
    <setting id="8021x_method" value=""/>
    <setting id="8021x_identity" value=""/>
    <setting id="8021x_anonymous_identity" value=""/>
    <setting id="8021x_password" value=""/>
    <setting id="8021x_client_key" value="my-client-key"/>
    <setting id="8021x_client_cert" value="my-client-cert"/>
    <setting id="8021x_debug" value="" />
    <setting id="network_default_enable_openvpn" value="0" />
    <setting id="openvpn_root_cert" url="https://user:password@server.example.com/vpn/ca.crt" value="ca.crt" />
    <setting id="openvpn_inline_config" url="https://user:password@server.example.com/vpn/client.ovpn" value="1" md5="abc123" />
    <setting id="config_recheck" value="0" idle_time="1800" days="0123456" start_time="2200" hours="4" />
    <events>
        <event id="digium.incomingCall.voicemail" action="app" />
        <event id="digium.parkingLot.parked" action="app" />
    </events>
    <keymap>
        <state id="idle">
            <softkeys>
                <key id="0" action="missed_or_call_log"/>
                <key id="1" action="show_application" label1="_CONTACTS">
                    <arg>contacts</arg>
                </key>
                <key id="2" action="status"/>
                <key id="3" action="info"/>
                <key id="4" action="forward_calls" label1="_FORWARD"/>
                <key id="5" action="menu"/>
            </softkeys>
        </state>
        <state id="hold">
            <softkeys>
                <key id="0" action="resume"/>
                <key id="1" action="none"/>
                <key id="2" action="none"/>
                <key id="3" action="end_call"/>
            </softkeys>
        </state>
        <state id="hold/transfer">
            <softkeys>
                <key id="0" action="resume"/>
                <key id="1" action="show_application" label1="_CONTACTS">
                    <arg>contacts</arg>
                </key>
                <key id="2" action="none"/>
                <key id="3" action="cancel_call"/>
            </softkeys>
        </state>
        <state id="hold/conference">
            <softkeys>
                <key id="0" action="resume"/>
                <key id="1" action="split_conference"/>
                <key id="2" action="none"/>
                <key id="3" action="end_call"/>
            </softkeys>
        </state>
        <state id="hold/preconference">
            <softkeys>
                <key id="0" action="resume"/>
                <key id="1" action="show_application" label1="_CONTACTS">
                    <arg>contacts</arg>
                </key>
                <key id="2" action="none"/>
                <key id="3" action="end_call"/>
            </softkeys>
        </state>
        <state id="incoming">
            <softkeys>
                <key id="0" action="accept_call"/>
                <key id="1" action="reject_call"/>
                <key id="2" action="transfer_call"/>
            </softkeys>
        </state>
        <state id="incoming/transfer">
            <softkeys>
                <key id="0" action="show_application" label1="_CONTACTS">
                    <arg>contacts</arg>
                </key>
                <key id="1" action="none"/>
                <key id="2" action="none"/>
                <key id="3" action="cancel_call"/>
            </softkeys>
        </state>
        <state id="connected">
            <softkeys>
                <key id="0" action="conference"/>
                <key id="1" action="none"/>
                <key id="2" action="none"/>
                <key id="3" action="end_call"/>
            </softkeys>
        </state>
        <state id="connected/conference">
            <softkeys>
                <key id="0" action="none"/>
                <key id="1" action="split_conference"/>
                <key id="2" action="none"/>
                <key id="3" action="end_call"/>
            </softkeys>
        </state>
        <state id="connected/transfer">
            <softkeys>
                <key id="0" action="transfer_call"/>
                <key id="1" action="none"/>
                <key id="2" action="none"/>
                <key id="3" action="end_call"/>
            </softkeys>
        </state>
        <state id="dial">
            <softkeys>
                <key id="0" action="toggle_url_number"/>
                <key id="1" action="show_application" label1="_CONTACTS">
                    <arg>contacts</arg>
                </key>
                <key id="2" action="none"/>
                <key id="3" action="cancel_call"/>
            </softkeys>
        </state>
        <state id="dial/conference">
            <softkeys>
                <key id="0" action="none"/>
                <key id="1" action="show_application" label1="_CONTACTS">
                    <arg>contacts</arg>
                </key>
                <key id="2" action="none"/>
                <key id="3" action="cancel_call"/>
            </softkeys>
        </state>
        <state id="dial/transfer">
            <softkeys>
                <key id="0" action="none"/>
                <key id="1" action="show_application" label1="_CONTACTS">
                    <arg>contacts</arg>
                </key>
                <key id="2" action="none"/>
                <key id="3" action="cancel_call"/>
            </softkeys>
        </state>
        <state id="dialing">
            <softkeys>
                <key id="0" action="make_call"/>
                <key id="1" action="backspace"/>
                <key id="2" action="none"/>
                <key id="3" action="cancel_call"/>
            </softkeys>
        </state>
        <state id="dialing/conference">
            <softkeys>
                <key id="0" action="make_call"/>
                <key id="1" action="show_application" label1="_CONTACTS">
                    <arg>contacts</arg>
                </key>
                <key id="2" action="backspace"/>
                <key id="3" action="cancel_call"/>
            </softkeys>
        </state>
        <state id="dialing/transfer">
            <softkeys>
                <key id="0" action="transfer_call"/>
                <key id="1" action="make_call"/>
                <key id="2" action="backspace"/>
                <key id="3" action="cancel_call"/>
            </softkeys>
        </state>
        <state id="failed">
            <softkeys>
                <key id="0" action="none"/>
                <key id="1" action="none"/>
                <key id="2" action="none"/>
                <key id="3" action="clear_call"/>
            </softkeys>
        </state>
        <state id="calling">
            <softkeys>
                <key id="0" action="none"/>
                <key id="1" action="none"/>
                <key id="2" action="none"/>
                <key id="3" action="end_call"/>
            </softkeys>
        </state>
    </keymap>
    <contacts url="https://server.example.com/myfile.xml" id="internal" md5="abcd123" />
    <smart_blf>
        <blf_items url="http://server.example.com/myblfitems.xml" />
    </smart_blf>
    <accounts>
        <account server_uuid="0" index="0" status="1" register="1" account_id="100" username="100" authname="100" password="100" passcode="100" line_label="100 Alligator" caller_id="100 Alligator" dial_plan="[0-8]xxxxx|911|9411|9611|9011xxx.T3|91xxxxxxxxxx|9[2-9]xxxxxx|*xx.T3|[0-8]xx.T3" visual_voicemail="0" voicemail="sip:800@10.1.2.3" needMwiSubscription="1" plar_number="" ring_type="normal" subscription_extension="auto_hint_100" mwi_subscription_uri="" conflict="replace">
            <host_primary server="10.10.2.108" port="" transport="udp" media_encryption="" reregister="300" retry="25">
                <outbound_proxy server="" port="" transport="" />
            </host_primary>
            <host_alternate server="10.1.2.3" port="" transport="udp" media_encryption="" reregister="300" retry="25" authname="" password="">
                <outbound_proxy server="" port="" transport="" />
            </host_alternate>
            <permission id="record_own_calls" value="0" />
            <setting id="use_call_log_api" value="0" />
            <setting id="call_log_fetch_entries" value="50" />
            <setting id="parking_lot_extension" value="700" />
            <setting id="parking_lot_enable_blind_transfer" value="0" />
            <permission id="use_voicemail" value="1" />
            <permission id="send_to_voicemail" value="1" />
            <permission id="ignore_calls" value="1" />
        </account>
    </accounts>
    <networks>
        <network id="network1" display_name="Internal" cidr="192.168.8.0/24" />
        <network id="network2" display_name="External" cidr="10.0.0.0/8" />
        <network id="network3" display_name="All Networks" cidr="0.0.0.0/0" />
    </networks>
    <codecs>
        <codec id="PCMU" priority="255" packetization="20" enabled="1" />
        <codec id="PCMA" priority="13" packetization="20" enabled="1" />
        <codec id="G722" priority="11" packetization="20" enabled="1" />
        <codec id="G726-32" priority="7" packetization="20" enabled="1" />
        <codec id="opus" priority="6" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="1" complexity="10" samplerate="wb" use_vbr="0" />
        <codec id="G729" priority="5" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="1" />
    </codecs>
    <ringtones>
        <tones>
            <tone id="Alarm" display="Alarm" type="phone"/>
            <tone id="Chimes" display="Chimes" type="phone"/>
            <tone id="Sangoma" display="Sangoma" type="phone"/>
            <tone id="GuitarStrum" display="Guitar Strum" type="phone"/>
            <tone id="Jingle" display="Jingle" type="phone"/>
            <tone id="Office" display="Office" type="phone"/>
            <tone id="Office2" display="Office 2" type="phone"/>
            <tone id="RotaryPhone" display="Rotary Phone" type="phone"/>
            <tone id="SteelDrum" display="Steel Drum" type="phone"/>
            <tone id="Techno" display="Techno" type="phone"/>
            <tone id="Theme" display="Theme" type="phone"/>
            <tone id="Tweedle" display="Tweedle" type="phone"/>
            <tone id="Twinkle" display="Twinkle" type="phone"/>
            <tone id="Vibe" display="Vibe" type="phone"/>
        </tones>
        <alerts>
            <alert alert_info="normal" ringtone_id="Sangoma" ring_type="normal" />
            <alert alert_info="ring-answer" ringtone_id="Sangoma" ring_type="ring-answer" />
            <alert alert_info="intercom" ringtone_id="" ring_type="answer" />
            <alert alert_info="visual" ringtone_id="" ring_type="visual" />
        </alerts>
    </ringtones>
    <appconfig id="appscreen">
        <application id="parking" />
        <application id="status" />
        <application id="contacts" />
        <application id="call_log" />
        <application id="forward_calls" />
        <application id="hotdesking" />
        <auto_start />
    </appconfig>
    <appconfig id="phonemenu">
      <auto_start />
    </appconfig>
    <appconfig id="contacts">
        <account account_id="101" username="101" password="1234" appserver="dasp://server.example.com/json" apiformat="json"/>
        <display_rules>
            <display_rule id="1" action_id="dial_vm" phone_state="idle" show="0"/>
            <display_rule id="2" action_id="transfer_vm" show="0"/>
            <display_rule id="3" action_id="transfer_vm" phone_state="transfer" show="1"/>
        </display_rules>
        <settings can_transfer_vm="1" name_format="last_first" use_local_storage="0" preferred_contact_group="" />
        <settings in_switchvox_environment="0" />
        <auto_start />
    </appconfig>
    <appconfig id="status">
        <account account_id="101" username="101" password="1234" appserver="dasp://server.example.com/json" apiformat="json"/>
        <send_dnd status="" />
        <auto_start />
        <full_application />
    </appconfig>
    <appconfig id="parking">
        <account account_id="101" username="101" password="1234" appserver="dasp://server.example.com/json" apiformat="json"/>
        <auto_start />
    </appconfig>
    <appconfig id="hotdesking">
        <account account_id="000000000000" username="000000000000" appserver="https://server.example.com/json" apiformat="json"/>
    </appconfig>
    <appconfig id="call_log">
        <account account_id="101" username="101" password="1234" appserver="dash://server.example.com/json" apiformat="json"/>
        <enabled />
    </appconfig>
    <firmwares>
        <firmware model="P310" version="3_0_7" url="http://10.10.4.11/firmware/3_0_7_P310_firmware.eff" />
        <firmware model="P315" version="2_8_0" url="http://10.10.4.11/firmware/3_0_7_P315_firmware.eff" />
    </firmwares>
    <public_firmwares>
        <public_firmware model="P310" version="3_0_7" url="http://firmware.example.com/firmware/3_0_7_P310_firmware.eff" />
        <public_firmware model="P315" version="3_0_7" url="http://firmware.example.com/firmware/3_0_7_P315_firmware.eff" />
    </public_firmwares>
    <multicastpage>
        <listener id="1" extension="" name="SomePage" addr="239.0.0.1" port="32000" priority="1" interrupt_calls="0"/>
        <listener id="2" extension="" name="All Page" addr="239.0.0.2" port="32000" priority="2" interrupt_calls="1"/>
    </multicastpage>
    <certs>
        <cert id="1" label="my-ca" md5="abc123">MIICXQIBAAKB...XYZ</cert>
        <clientcert id="1" label="my-client-cert" md5="abc123">MIICXQIBAAKB...XYZ</clientcert>
        <clientkey id="1" label="my-client-key" type="RSA" md5="abc123">MIICXQIBAAKB...XYZ</clientkey>
    </certs>
    <activity_indicator>
        <setting id="idle" color="amber" state="off" />
        <setting id="default" color="amber" state="off" />
        <setting id="hold" color="red" state="slow" />
        <setting id="ringing" color="green" state="fast" /> 
        <setting id="active" color="green" state="on" />
        <setting id="new_vm" color="red" state="slow" />
        <setting id="listen_vm" color="red" state="on" />
        <setting id="leaving_vm" color="amber" state="slow" />
        <setting id="screen_vm" color="amber" state="on" />
        <setting id="announcement" color="amber" state="fast" />
    </activity_indicator>
    <use_proxy_for network="10.10.0.0/20" network_id="network1" host="10.1.2.3" use="0" />
</config>

Setting Elements

 XML Setting Elements

XML Setting Elements

<?xml version="1.0" ?>
<config>
    <setting id="config_server_url" value="sip:proxy@server.example.com:5060;transport=udp" />
    <setting id="pbx_credentials" value="1" account_id="1234" host="server.example.com" user="1234" pass="my password" />
    <setting id="login_password" value="789" />
    <setting id="send_mac_with_useragent" value="0" />
    <setting id="use_secure_labels" value="0" />
    <setting id="time_zone" value="America/Los_Angeles" />
    <setting id="time_source" value="ntp" />
    <setting id="ntp_server" value="pool.ntp.org" />
    <setting id="ntp_resync" value="86400" />
    <setting id="ntp_prefer_option42" value="1" />
    <setting id="accept_local_calls" value="any" />
    <setting id="compact_sip_headers" value="0" />
    <setting id="transport_udp_enabled" value="1" />
    <setting id="transport_udp_port" value="5060" />
    <setting id="transport_tcp_enabled" value="1" />
    <setting id="transport_tcp_port" value="5060" />
    <setting id="transport_tls_allowed" value="1" />
    <setting id="transport_tls_port" value="5061" />
    <setting id="enable_ice" value="0" />
    <setting id="stunaddr" value="" />
    <setting id="tls_allow_wildcard_certs" value="0" />
    <setting id="udp_ka_interval" value="x"/>
    <setting id="logo_file" value="user" path="/user_image.png" url="https://server.example.com/mylogo.png" md5="126cd744583eeea1ab7e44ed8af3d39c" />
    <setting id="wallpaper_file" value="user" path="/user_wallpaper.png" url="https://server.example.com/wallpaper.png" md5="126cd744583eeea1ab7e44ed8af3d39d" />
    <setting id="display_mc_notification" value="1" />
    <setting id="display_pickup_notification" value="1" />
    <setting id="prefer_dialpad_over_incoming" value="0" />
    <setting id="hide_completed_elsewhere" value="0" />
    <setting id="small_clock" value="0" />
    <setting id="idle_company_text" value="" />
    <setting id="brightness" value="10" />
    <setting id="contrast" value="10" />
    <setting id="enable_check_sync" value="1"/>
    <setting id="dim_backlight" value="1" />
    <setting id="backlight_timeout" value="30" />
    <setting id="backlight_dim_level" value="2" />
    <setting id="blf_page_return_timeout" value="0" />
    <setting id="default_fontsize" value="10" />
    <setting id="locale" value="en_US"/>
    <setting id="time_short_format" value="h:mm a" />
    <setting id="date_short_format" value="M/d/yy" />
    <setting id="date_time_format" value="{1}, {0}" />
    <setting id="idle_screen_clock_format" value="{0} EEE, MMM d" />
    <setting id="ringer_volume" value="5" />
    <setting id="lock_ringing_volume" value="0" />
    <setting id="speaker_volume" value="5" />
    <setting id="handset_volume" value="5" />
    <setting id="headset_volume" value="5" />
    <setting id="reset_call_volume" value="0" />
    <setting id="active_ringtone" value="Sangoma" />
    <setting id="headset_answer" value="0" />
    <setting id="ring_headset_only" value="0" />
    <setting id="call_waiting_tone" value="1" />
    <setting id="ehs" value="auto" />
    <setting id="call_control_checkx" value="0" />
    <setting id="parking_lot_extension" value="700" />
    <setting id="parking_lot_enable_blind_transfer" value="0" />
    <setting id="enable_blf_on_unused_line_keys" value="0" />
    <setting id="contacts_max_subscriptions" value="40" />
    <setting id="name_format" value="first_last" />
    <setting id="blf_contact_group" value="Default" />
    <setting id="use_call_photos" value="0" url="https://user:password@server.example.com/photos?did=" />
    <setting id="expansion_enable" value="0" type="EXP100" page_indicators="0" />
    <setting id="network_enable_dhcp" value="1" />
    <setting id="network_static_ip_address" value="" />
    <setting id="network_subnet_mask" value="" />
    <setting id="network_default_gateway" value="" />
    <setting id="network_domain_name" value="" />
    <setting id="network_primary_dns_server" value="" />
    <setting id="network_secondary_dns_server" value="" />
    <setting id="network_disable_arping" value="0" />
    <setting id="allow_insecure_ssl" value="0" />
    <setting id="network_ipv6_enabled" value="0"/>
    <setting id="network_ipv6_preferred" value="0"/>
    <setting id="network6_static_ip_address" value=""/>
    <setting id="network6_mask" value=""/>
    <setting id="network6_default_gateway" value=""/>
    <setting id=""enable_tcp_sack" value="0" />
    <setting id="network_vlan_discovery_mode" value="NONE" network="10.10.0.0/16" />
    <setting id="network_vlan_id" value="44" />
    <setting id="pc_vlan_id" value="10" />
    <setting id="lan_port_mode" value="auto" />
    <setting id="pc_port_mode" value="auto" />
    <setting id="log_level" value="debug" />
    <setting id="enable_logging" value="0" />
    <setting id="log_server" value="10.1.2.3" />
    <setting id="log_port" value="514" />
    <setting id="web_ui_enabled" value="1" />
    <setting id="sip_qos" value="3" />
    <setting id="rtp_qos" value="6" />
    <setting id="pc_qos" value="1" />
    <setting id="sip_dscp" value="24" />
    <setting id="rtp_dscp" value="46" />
    <setting id="in_switchvox_environment" value="0" />
    <setting id="server_environment" value="" />
    <setting id="allow_app_dev" value="0" />
    <setting id="handshake_timeout" value="86400" />
    <setting id="retransmit_until_response" value="0" />
    <setting id="8021x_passthrough" value="0"/>
    <setting id="8021x_eapol_on_disconnect" value="0"/>
    <setting id="8021x_method" value=""/>
    <setting id="8021x_identity" value=""/>
    <setting id="8021x_anonymous_identity" value=""/>
    <setting id="8021x_password" value=""/>
    <setting id="8021x_client_cert" value=""/>
    <setting id="8021x_client_key" value=""/>
    <setting id="8021x_debug" value="" />
    <setting id="network_default_enable_openvpn" value="0" />
    <setting id="openvpn_inline_config" url="https://user:password@server.example.com/vpn/client.ovpn" value="1" md5="abc123" />
    <setting id="config_recheck" value="0" idle_time="1800" days="0123456" start_time="2200" hours="4" />
</config>

Each <setting> element represents at least an id and value pair of attributes. Some <setting> tags may have additional attributes.

General (Login)

Option

Values

Description

Models

config_server_url

The URL of the DPMA / Switchvox config server in the format:
sip:proxy@host:port;transport=xyz

or:

[protocol://][user:password@]server[:port][/path] 

For phones attached to DPMA or Switchvox, contains the URL path to the config server. Transport type is dependent upon model and firmware version. sip:proxy is a literal.

Specifies the URL string that the Sangoma phone's cURL application will call in order to retrieve the phone's configuration file.

No default. 

P310, P315

pbx_credentials

value as string
account_id per Switchvox
host as the Switchvox hostname
user as the Switchvox account username
pass as the Switchvox account API password 

For Switchvox-connected phones only, specifies the set of credentials used by an application when the use_pbx_credentials appconfig parameter is true. This should be omitted for phones connecting to something other than Switchvox.

No default.

P310, P315

login_password

Integer, e.g. 789

Sets the Admin Password for logging into Web UI or Admin Settings Section on Phone Menu.

Defaults to 789

P310, P315

send_mac_with_useragent

boolean

If 1, the phone will send its MAC address long with its Model and Firmware version in any cURL User-Agent requests that it makes.

Defaults to 0.

P310, P315

use_secure_labels

boolean

If 1, the phone will replace the config fetch URL with "Server" on boot and will disguise user and password inputs on Bootconfig Server URL entry screen with * characters.

Defaults to 0.

P310, P315

General (Time)

Option

Values

Description

Models

time_zone

Timezone String, e.g. America/Chicago

Sets the time zone for the phone.

Defaults to America/Los_Angeles

P310, P315

time_source

"ntp"

Sets the time source for the phone. Currently, the only option is "ntp"

Defaults to ntp.

P310, P315

ntp_server

Hostname or IP address, e.g. 0.digium.pool.ntp.org

Sets the NTP server to which the phone will synchronize itself.

Defaults to 0.digium.pool.ntp.org

P310, P315

ntp_resync

Seconds as integer, e.g. 86400

Sets the interval between NTP synchronization.

Defaults to 86400.

P310, P315

ntp_prefer_option42

boolean

If 1, the phone will prefer and use an IPv4 address, not host name, NTP server, first server only and not multiple servers, as provided by DHCP Option 42. If 0, the phone will ignore DHCP Option 42.

Defaults to 1.

P310, P315

General (SIP)

Option

Values

Description

Models

accept_local_calls

any / host

Sets whether to accept calls from any source or only from hosts to which the phone is registered.

Defaults to any.

P310, P315

compact_sip_headers

boolean, Defaults to 0

If enabled, causes the phone to utilize the compact form of SIP headers, rather than the expanded form, as well as causing the phone not to enumerate the statically defined codec payload types

P310, P315

transport_udp_enabled

boolean

If 1, enables UDP SIP transport. If 0, disables UDP SIP transport.

Defaults to 1

P310, P315

transport_udp_port

Valid integer for ports (1-65535)

Sets the local UDP SIP port.

Defaults to 5060

P310, P315

transport_tcp_enabled

boolean

If 1, enables TCP SIP transport. If 0, disables TCP SIP transport.

Defaults to 1

P310, P315

transport_tcp_port

Valid integer for ports (1-65535 )

Sets the local TCP SIP port.

Defaults to 5060

P310, P315

transport_tls_allowed

boolean

If 1, enables TLS SIP transport. If 0, disables TLS SIP transport.

Defaults to 1

P310, P315

transport_tls_port

Valid integer for ports (1-65535)

Sets the local TLS SIP port.

Defaults to 5061

P310, P315

enable_ice

boolean, defaults to 0

If enabled, ICE candidates will be gathered

P310, P315

stunaddr

string, defaults to turn.respoke.io:443

Sets the address of the STUN server to be used. Address is in the format stun.example.com:3478. If omitted, the default port of 3478 will be used.

P310, P315

tls_allow_wildcard_certs

boolean, defaults to 0

If enabled, SIP TLS signaling will accept a wildcard certificate as valid, contrary to RFC 5922 section 7.2

P310, P315

udp_ka_interval

integer, in seconds

Sets the UDP keep alive interval, at which the phone will send CR-LF to the registered server.

Defaults to 0, never.

P310, P315

Preferences (Idle Screen)

Option

Values

Description

Models

logo_file

value as "factory" or "user"
path as location on disk of file
url as optional location to fetch a logo
md5 as optional when url is used to determine if logo has changed to avoid re-fetching

Sets the idle screen logo.

value defaults to factory.

path defaults to "/factory_asterisk.png" and should be "/user_image.png" for custom

P310, P315

wallpaper_file

value as "factory" or "user"
path as location on disk of file
url as optional location to fetch a logo
md5 as optional when url is used to determine if wallpaper has changed to avoid re-fetching

Sets the wallpaper

value defaults to factory.

path defaults to "/factory_wallpaper.png" and should be "/user_wallpaper.png" for custom

320x240 pixels for P310 and P315 

P310, P315

display_mc_notification

boolean

If 1, enables display of missed calls. If 0, disables display of missed calls.

Defaults to 1

P310, P315

display_pickup_notification

boolean

If 1, enables display of pickup notifications. If 0, disables display of pickup notifications.

Defaults to 1.

P310, P315

prefer_dialpad_over_incoming

boolean

If 1, the phone will keep the dial pad in the foreground during transfer operations, deferring new incoming calls received while in the transfer state to the background

P310, P315

hide_completed_elsewhere

boolean

If 1, the phone to not register a call, missed or otherwise, when receiving RFC 3326 "Call completed elsewhere" SIP Reason. If 0, all calls that are canceled from the remote side before answer by the local phone will show as missed.

Defaults to 0.

P310, P315

small_clock

boolean

If 1, the phone will display a small time and date on the idle screen. If 0, the regular, large format clock will be displayed on the idle screen.

Defaults to 0. 

P310, P315

idle_company_text

string

When set, the phone will display this string in its status bar while idle and no other status notification icons are active.

No default.

P310, P315

Preferences (Display)

Option

Values

Description

Models

brightness

integer (1-10)

Sets the LCD screen brightness

Defaults to 5

P310, P315

contrast

integer (0-10)

Sets the LCD screen contrast

Defaults to 5

P310, P315

enable_check_sync

boolean

If 1, the phone will perform a reconfigure when sent a check-sync SIP NOTIFY Event from the server to which it is registered. This option is affected by the accept_calls_option. When the accept_any_calls option is set to "host," only check-sync Events from registered hosts will be acted upon. When the accept_any_calls option is set to "any," any check-sync Event from any host will be acted upon. If 0, the phone will ignore check-sync events.

Defaults to 1.

P310, P315

dim_backlight

boolean

If 1, the screen will dim after the backlight timeout has been reached and phone is otherwise idle. If 0, the phone will not dim the screen.

Defaults to 1

P310, P315

backlight_timeout

integer (0-3200)

Time, in seconds, before backlight is set to backlight_dim_level while phone is idle; setting to 0 disables backlight timeout.

Defaults to 0

P310, P315

backlight_dim_level

integer (0-10)

Brightness level dims to when when dim_backlight is true.

Defaults to 2

P310, P315

blf_page_return_timeout

integer (0-60)

Time, in seconds, that elapses before a D65 will return to its first page of rapid dial favorites.

Defaults to 0 (never return).

P310, P315

default_fontsize

integer (10-14)

Sets the default font size for the phone. Caution should be exercised when using this option as larger sizes will cause labels to overrun their allowed space.

P310, P315

Preferences (Localization)

Option

Values

Description

Models

locale

de_DE, en_AU, en_CA, en_GB, en_NZ, en_US, es_ES, es_MX, fr_BE, fr_CA, fr_FR, it_IT, nl_BE, nl_NL, pt_BR, pt_PT, ru_RU

Specifies the locale used by the phone.

Defaults to en_US.

P310, P315

time_short_format

an ICU date/time pattern

Sets the time format used by the phone when displaying the small clock. This setting is normally controlled by the phone's configured locale.

Defaults to h:mm a

P310, P315

date_short_format

an ICU date/time pattern

Sets the date format used by the phone when displaying the short date. This setting is normally controlled by the phone's configured locale.

Defaults to M/d/yy

P310, P315

date_time_format

string

Sets the date and time format used by the phone. This setting is normally controlled by the phone's configured locale. {0} represents time, and {1} represents the date.

Defaults to {1}, {0}

P310, P315

idle_screen_clock_format

an ICU date/time pattern

Sets the clock format used by the phone on its idle screen. This setting is normally controlled by the phone's configured locale.

Defaults to {0} EEE, MMM d

P310, P315

ICU Date Patterns

An ICU date/time pattern may contain the following character sequences:

    a : am/pm
    d : day of month (1 - 31)
   dd : day of month (01 - 31)
  EEE : day of week abbreviated
 EEEE : day of week full name 
    h : 12 hour clock hour of day (1 - 12)
   hh : 12 hour clock hour of day (01 - 12)
    m : minutes of hour (00 - 59)
   mm : minutes of hour (00 - 59)
    M : month of year (1 - 12)
   MM : month of year (01 - 12)
  MMM : month of year, abbreviated (Jan, Feb, etc.)
 MMMM : month of year (January, February, etc.)
    s : seconds of minute (01 - 59)
   ss : seconds of minute (01 - 59)
   yy : 2 digit year, no century
 yyyy : 4 digit year
  zzz : timezone abbreviation (may not conform to ICU)
 zzzz : timezone full name (may not conform to ICU)
   '' : Characters between single quotes are considered literal strings. No substitutions are performed.

Matching of ICU pattern characters is greedy, e.g. "yyyyy" will be converted to "2012y"

Preferences (Sounds)

Option

Values

Description

Models

ringer_volume

integer (0-10)

Sets the ringer volume.

Defaults to 5

P310, P315

lock_ringing_volume

boolean

If 1, the phone's hard ringing key will not change the ringing-volume of the phone. If 0, the hard ringing key will be able to change the ringing-volume of the phone.

Defaults to 0.

P310, P315

speaker_volume

integer (1-10)

Sets the speaker volume.

Defaults to 5

P310, P315

handset_volume

integer (1-10)

Sets the handset volume.

Defaults to 5

P310, P315

headset_volume

integer (1-10)

Sets the headset_volume.

Defaults to 5

P310, P315

handset_sidetone_db

Integer, e.g. -25

Sets the gain, in negative dBs, for sidetone presented on the phone's handset. Sangoma cautions against changing this value.

Defaults to -25.

P310, P315

headset_sidetone_db

Integer, e.g. -15

Sets the gain, in negative dBs, for sidetone presented on the phone's headset. Sangoma cautions against changing this value.

Defaults to -15.

P310, P315

reset_call_volume

boolean

If 1, volume changes made during a call do not persist to the next call. If 0, volume changes made during a call persist for subsequent calls.

Defaults to 0

P310, P315

active_ringtone

Tone ID from <tones> provided to phone

Sets the current user-selected ringtone.

Defaults to Sangoma

P310, P315

Preferences (Answering Calls)

Option

Values

Description

Models

headset_answer

boolean

If 1, the phone will use direct calls answered using the Answer soft key to the headset, rather than the handsfree speaker. If 0, the phone will direct calls answered using the Answer soft key to the handsfree speaker.

Defaults to 0

P310, P315

ring_headset_only

boolean

If 1, the phone will play ringing tones out the headset interface. If 0, the phone will play ringing tones out the handsfree speaker.

Defaults to 0

P310, P315

call_waiting_tone

boolean

If 1, the phone will play a call waiting tone when other calls are received. If 0, the phone phone will not playback a call waiting tone

Defaults to 1.

P310, P315

ehs

auto, jabra_iq, plantronics

Defines the Electronics Hookswitch type to support.

Defaults to auto.

P310, P315

call_control_checkx

boolean,

If 1, allows the confirmation key to answer a call and the x-key to reject a call. If 0, the confirmation key will not answer a call nor will the x-key reject a call.

Defaults to 0.

P310, P315

parking_lot_extension

string

For Switchvox and DPMA environments, specifies the lot in which a call is transferred using the Park soft key. This option must be defined also, duplicating the account-level parking_lot_extension setting.

No default.

P310, P315

parking_lot_enable_blind_transfer

boolean

For Switchvox and DPMA environments, specifies the type of call parking transfer to perform. If 1, a blind transfer will be performed. If 0, an attended transfer will be performed. This option must be defined also, duplicating the account-level parking_lot_enable_blind_transfer setting.

Defaults to 0.

P310, P315

Contacts

Option

Values

Description

Models

enable_blf_on_unused_line_keys

boolean

If 1, assigns BLFs beginning with first empty line key. If 0, assigns BLFs beginning with first sidecar key.

Defaults to 0.

P310, P315

contacts_max_subscriptions

integer, e.g. 40

Sets the maximum number of SUBSCRIBEs the phone will perform for contacts.

Defaults to 40.

P310, P315

name_format

first_last, last_first

Formats the display of contact names.

Defaults to first_last

P310, P315

blf_contact_group

Any group_name from the loaded contacts

The group_name of the contact list group to which the phone will subscribe. If this setting is blank, the phone will not subscribe for any indicators and no device state LEDs will light nor presence update.

No default.

P310, P315

use_call_photos

value as boolean, defaults to 0

url as url

If enabled, the phone will make a cURL request to the defined URL and append the called or calling number. The phone expects to receive a 64x64 RGBI PNG format photo that it will use on the left side of the call card.

P310, P315

expansion_enable

value as boolean, defaults to 0

type="EXP100"

page_indicators as boolean, defaults to 0

If enabled, the phone will start its expansion module daemon and will support expansion modules. At present, the only type supported is EXP100, which also supports the EXP150. Enabling this prevents the phone from using VLAN ID 3182 and prevents downstream devices, i.e. laptops, from making outbound requests (any protocol) on port 10024, 10025, and 10026. If page_indicators (2_9_1) is enabled, the unit will display a dot indicator for item activity on the non-active screen.

P310, P315

Network (IP Settings)

Option

Values

Description

Models

network_enable_dhcp

boolean

If 1, enables DHCPv4/v6 network configuration. If 0, DHCP configuration is not used.

Defaults to 1

P310, P315

network_static_ip_address

IPv4 address

Defines the network address for the phone.

No default.

P310, P315

network_subnet_mask

IPv4 netmask

Defines the netmask for the phone.

No default.

P310, P315

network_default_gateway

IPv4 address

Defines the network gateway for the phone.

No default.

P310, P315

network_primary_dns_server

IPv4 address

Defines the primary DNS server for the phone.

No default.

P310, P315

network_secondary_dns_server

IPv4 address

Defines the secondary DNS server for the phone.

No default.

P310, P315

network_disable_arping 

boolean

If 1, causes the phone to not ARP for an in-use address as-provided by a DHCP server, before using it. If 0, the phone will ARP for other devices responding to the same IP address before accepting the address from the DHCP server.

Defaults to 0.

P310, P315

allow_insecure_ssl

boolean

By default, phones will not, using SSL, connect to self-signed servers. Instead, they will only connect to publicly-signed server. To allow the phone to connect to a self-signed server, set this option to 1.

Defaults to false.

P310, P315

network_ipv6_enabled

boolean

If 1, the phone will attempt IPv6 networking, in addition to IPv4 networking.

Defaults to 0.

Support for IPv6 is in beta. DHCP IPv4 is still required at present.

P310, P315

network_ipv6_preferred

boolean

If 1, name servers returned by an IPv6 DHCP server will be tried first in the phone's DNS resolution.

Defaults to 0.

Support for IPv6 is in beta. DHCP IPv4 is still required at present.

P310, P315

network6_static_ip_address

IPv6 address

Defines the phone's IPv6 address, if it is not to be retrieved from a DHCPv6 server.

No default.

Support for IPv6 is in beta. DHCP IPv4 is still required at present.

P310, P315

network6_mask

IPv6 network mask

Defines the phone's IPv6 network mask, if it is not to be retrieved from a DHCPv6 server.

No default.

Support for IPv6 is in beta. DHCP IPv4 is still required at present.

P310, P315

network6_default_gateway

IPv6 address

Defines the phone's IPv6 default gateway, if it is not to be retrieved from a DHCPv6 server.

No default.

Support for IPv6 is in beta. DHCP IPv4 is still required at present.

P310, P315

enable_tcp_sack

boolean, Defaults to 0

If enabled, causes phone to enable TCP SACK processing. Defaults too disabled.

P310, P315

Network (Virtual LAN)

Option

Values

Description

Models

network_vlan_discovery_mode

NONE, MANUAL, LLDP

Sets use of none, manual, or LLDP discovered VLAN and, if MANUAL, defines the network.

Defaults to LLDP

P310, P315

network_vlan_id

integer (0-4095)

Sets the VLAN ID. VLAN ID 3182 is reserved ifexpansion_enable is enabled for D65 model phones.

No default.

P310, P315

pc_vlan_id

integer (0-4095)

Sets the VLAN ID of the PC port; untagged traffic from the PC port to the LAN port will be tagged with this VLAN ID.

No default.

P310, P315

Network (Interfaces)

Option

Values

Description

Models

lan_port_mode

auto, 10hd, 10fd, 100hd, 100fd, 1000fd

Sets the port speed for the phone's LAN port. "auto" will perform auto-negotiation.

Defaults to auto.

P310, P315

pc_port_mode

auto, 10hd, 10fd, 100hd, 100fd, 1000fd, off

Sets the port speed for the phone's PC port. "auto" will perform auto-negotiation; "off" disables the port."

Defaults to auto.

P310, P315

Logging

Option

Values

Description

Models

log_level

error, warning, debug, information

Sets the logging level.

Defaults to information

P310, P315

log_server

IPv4 address of syslog server

Specifies remote syslog server.

No default.

P310, P315

log_port

port as integer

Specifies port of remote syslog server.

No default.

P310, P315

enable_logging

boolean

If 1, the phone will send log events to a remove syslog server. If 0, the phone will not send log events to a remote syslog server.

Defaults to 0

P310, P315

Miscellaneous

Option

Values

Description

Models

web_ui_enabled

boolean

If 1, enables the phone's built-in web interface. If 0, disables the phone's built-in web interface.

Defaults to 1 (Enabled)

P310, P315

sip_qos

integer (0-7)

Sets the SIP signaling QOS level

Defaults to 3.

P310, P315

rtp_qos

integer (0-7)

Sets the RTP media QOS level.

Defaults to 6.

P310, P315

pc_qos

integer (0-7)

Sets the QOS level for traffic from the PC port to the LAN port.

No default.

P310, P315

sip_dscp

integer (0-63)

Specifies the DSCP field of the DiffServ byte for SIP Signaling QoS.

Defaults to 24

P310, P315

rtp_dscp

integer (0-63)

Specifies the DSCP field of the DiffServ byte for RTP Media QoS.

Defaults to 46

P310, P315

in_switchvox_environment

boolean, Defaults to 0

If 1, informs the phone that it should operate as though it is connected to Switchvox, as opposed to any other server type.

Defaults to 0

P310, P315

server_environment

empty string, DPMA, Switchvox.

Defines the server environment under which the phone should be operating. Phones not attached to DPMA or Switchvox need not define this. Phones attached to DPMA should define DPMA. Phones attached to Switchvox should define Switchvox.

Defaults to empty string

P310, P315

allow_app_dev

boolean

If 1, turns on the phone's built-in appdev web functionality.

Defaults to 0.

P310, P315

handshake_timeout

time in seconds

For phones connected to Switchvox and/or DPMA, specifies a default timeout at which the phone should reissue a handshake, regardless of any external commands to otherwise issue one.

Defaults to 86400

P310, P315

retransmit_until_response

boolean

If 1, causes the phone to continue sending requests to the proxy, should the proxy not respond. If 0, the phone will re-send the request only once. It is not recommended to enable this option.

Defaults to 0.

P310, P315

802.1X

Option

Values

Description

Models

8021x_passthrough

boolean

If 1, enables pass-through of EAPOL packets from the PC port to the LAN port. If 0, EAPOL packets will be blocked from traversing from the PC port to the LAN port.

Defaults to 0

P310, P315 (3_0_0) (always enabled)

8021x_eapol_on_disconnect

boolean

If 1, enables sending of EAPOL disconnect on behalf of a PC-port attached device when it disconnects. If 0, EAPOL disconnect not will not be sent on behalf of a PC-port attached device when it disconnects.

Defaults to 0

P310, P315

8021x_method

eap-md5, peap-mschap, eap-tls, peap-gtc, ttls-mschap, ttls-gtc

Sets the method of 802.1X authentication for the phone,

Defaults to empty string (none).

P310, P315

8021x_identity

string

Sets the 802.1X authentication identifier (username),

Defaults to empty string (none).

P310, P315

8021x_anonymous_identity

string, PHONE_MAC

Sets the 802.1X anonymous authentication identifier (username), can be set to "PHONE_MAC" to pass phone's MAC address.

Defaults to empty string (none).

P310, P315

8021x_password

string

Sets the 802.1X authentication password

Defaults to empty string (none)

P310, P315

8021x_client_cert

"value" as label for a defined <clientcert>

Sets the client certificate to be used when performing the 802.1X authentication. Value should be populated with the label of the <clientcert> to be used.

No default.

P310, P315

8021X_client_key

"value" as label for a defined <clientkey>

Sets the client key to be used when performing the 802.1X authentication.  Value should be populated with the label of the <clientkey> to be used.

No default.

P310, P315

8021x_debug

-d, -dd

Sets the debug level to be used when troubleshooting 802.1X authentication errors. Phone will generate error report that can be utilized by Sangoma Support. Phone should not be configured to operate in this mode on an ongoing basis as it will generate excessive messages.

No default.

P310, P315

OpenVPN

Option

Values

Description

Models

network_default_enable_openvpn

boolean

If 1, instructs the phone to perform the VPN connection on startup.

Defaults to 0.

P310, P315

openvpn_inline_config

http(s) URI as "url"

"1" as "value"

md5sum of url file as "md5" 

Sets the URL the phone will use to cURL in an inline OpenVPN configuration file. Value must be set to 1. md5 must be valid.

No default.

P310, P315

Config Re-check

Option

Values

Description

Models

config_recheck

value as boolean

idle_time as time, in seconds

days as string format day of week (0-6, 0=Sunday, 6=Saturday)

start_time as integer (hhmm)

hours as integer (1-23)

If value is true, sets phones that are configured using cURL config method (non-DPMA) to perform a periodic configuration request and application to the defined config_server_url. The specific time of the check will be random within the window set by the other parameters of the setting.  Default to 0.

idle_time determines the amount of time in seconds that the phone must be idle before the phone can begin the config pull. If the phone is not idle for this period of time, then the other values will not be evaluated.  Default 600 (10 minutes).

days determines on what days of the week the phone will perform the check.  Default every day.

start_time sets the time at which the check window opens.  Default 2AM.

hours sets the amount of time for which the check window remains open, during which the specific time is randomly calculated.  Default 2 hours.

P310, P315 (3_7_0)

Events Element

 Events Element Example

Events Element Example

<?xml version="1.0" ?>
<config>
    <events>
        <event id="digium.incomingCall.voicemail" action="app" />
        <event id="digium.parkingLot.parked" action="app" />
    </events>
</config>

Any number of event elements may be present directly under the events element.

Option

Values

Description

Models

id

digium.incomingCall.voicemail, digium.parkingLot.parked

Specifies the event that the phone should expect from server

No default.

P310, P315

action

app

Specifies that the phone should load an associated app / notification upon receiving the defined event

No default.

P310, P315

Keymap Elements

 Keymap Element Example

Keymap Element Example

<?xml version="1.0" ?>
<config>
    <keymap>
        <state id="idle">
            <softkeys>
                <key id="0" action="missed_or_call_log"/>
                <key id="1" action="show_application" label1="_CONTACTS">
                    <arg>contacts</arg>
                </key>
                <key id="2" action="status"/>
                <key id="3" action="info"/>
                <key id="4" action="forward_calls" label1="_FORWARD"/>
                <key id="5" action="menu"/>
            </softkeys>
        </state>
        <state id="hold">
            <softkeys>
                <key id="0" action="resume"/>
                <key id="1" action="none"/>
                <key id="2" action="none"/>
                <key id="3" action="end_call"/>
            </softkeys>
        </state>
        <state id="hold/transfer">
            <softkeys>
                <key id="0" action="resume"/>
                <key id="1" action="show_application" label1="_CONTACTS">
                    <arg>contacts</arg>
                </key>
                <key id="2" action="none"/>
                <key id="3" action="cancel_call"/>
            </softkeys>
        </state>
        <state id="hold/conference">
            <softkeys>
                <key id="0" action="resume"/>
                <key id="1" action="split_conference"/>
                <key id="2" action="none"/>
                <key id="3" action="end_call"/>
            </softkeys>
        </state>
        <state id="hold/preconference">
            <softkeys>
                <key id="0" action="resume"/>
                <key id="1" action="show_application" label1="_CONTACTS">
                    <arg>contacts</arg>
                </key>
                <key id="2" action="none"/>
                <key id="3" action="end_call"/>
            </softkeys>
        </state>
        <state id="incoming">
            <softkeys>
                <key id="0" action="accept_call"/>
                <key id="1" action="reject_call"/>
                <key id="2" action="transfer_call"/>
            </softkeys>
        </state>
        <state id="incoming/transfer">
            <softkeys>
                <key id="0" action="show_application" label1="_CONTACTS">
                    <arg>contacts</arg>
                </key>
                <key id="1" action="none"/>
                <key id="2" action="none"/>
                <key id="3" action="cancel_call"/>
            </softkeys>
        </state>
        <state id="connected">
            <softkeys>
                <key id="0" action="conference"/>
                <key id="1" action="none"/>
                <key id="2" action="none"/>
                <key id="3" action="end_call"/>
            </softkeys>
        </state>
        <state id="connected/conference">
            <softkeys>
                <key id="0" action="none"/>
                <key id="1" action="split_conference"/>
                <key id="2" action="none"/>
                <key id="3" action="end_call"/>
            </softkeys>
        </state>
        <state id="connected/transfer">
            <softkeys>
                <key id="0" action="transfer_call"/>
                <key id="1" action="none"/>
                <key id="2" action="none"/>
                <key id="3" action="end_call"/>
            </softkeys>
        </state>
        <state id="dial">
            <softkeys>
                <key id="0" action="toggle_url_number"/>
                <key id="1" action="show_application" label1="_CONTACTS">
                    <arg>contacts</arg>
                </key>
                <key id="2" action="none"/>
                <key id="3" action="cancel_call"/>
            </softkeys>
        </state>
        <state id="dial/conference">
            <softkeys>
                <key id="0" action="none"/>
                <key id="1" action="show_application" label1="_CONTACTS">
                    <arg>contacts</arg>
                </key>
                <key id="2" action="none"/>
                <key id="3" action="cancel_call"/>
            </softkeys>
        </state>
        <state id="dial/transfer">
            <softkeys>
                <key id="0" action="none"/>
                <key id="1" action="show_application" label1="_CONTACTS">
                    <arg>contacts</arg>
                </key>
                <key id="2" action="none"/>
                <key id="3" action="cancel_call"/>
            </softkeys>
        </state>
        <state id="dialing">
            <softkeys>
                <key id="0" action="make_call"/>
                <key id="1" action="backspace"/>
                <key id="2" action="none"/>
                <key id="3" action="cancel_call"/>
            </softkeys>
        </state>
        <state id="dialing/conference">
            <softkeys>
                <key id="0" action="make_call"/>
                <key id="1" action="show_application" label1="_CONTACTS">
                    <arg>contacts</arg>
                </key>
                <key id="2" action="backspace"/>
                <key id="3" action="cancel_call"/>
            </softkeys>
        </state>
        <state id="dialing/transfer">
            <softkeys>
                <key id="0" action="transfer_call"/>
                <key id="1" action="make_call"/>
                <key id="2" action="backspace"/>
                <key id="3" action="cancel_call"/>
            </softkeys>
        </state>
        <state id="failed">
            <softkeys>
                <key id="0" action="none"/>
                <key id="1" action="none"/>
                <key id="2" action="none"/>
                <key id="3" action="clear_call"/>
            </softkeys>
        </state>
        <state id="calling">
            <softkeys>
                <key id="0" action="none"/>
                <key id="1" action="none"/>
                <key id="2" action="none"/>
                <key id="3" action="end_call"/>
            </softkeys>
        </state>
    </keymap>
</config>

Keymap Elements control the functionality of softkeys during various phone states.

Option

Values

Description

Models

state

id as one of:

  • calling

  • connected

  • connected/conference

  • connected/transfer

  • dial

  • dial/conference

  • dial/transfer

  • dialing

  • dialing/conference

  • dialing/transfer

  • failed

  • hold

  • hold/conference

  • hold/preconference

  • hold/transfer

  • idle

  • incoming

  • incoming/transfer

Sets the phone state to which this soft key mapping should apply.

P310, P315

key

id as integer, beginning with 0

action as one of:

  • accept_call

  • backspace

  • cancel_call

  • clear_call

  • conference

  • end_call

  • forward_calls

    • label1 as:

      • _FORWARD

  • info

  • make_call

  • menu

  • missed_or_call_log

  • none

  • park_call

  • record_call

  • reject_call

  • resume

  • send_to_vmail

  • show_application

    • label1 as one of:

      • _CONTACTS

      • _PARKED_CALLS

      • _QUEUES

      • _STATUS

    • arg as one of:

      • contacts

      • voicemail

      • parking

      • status

      • queues

  • split_conference

  • status

  • toggle_url_number

  • transfer_call

Maps a soft key, represented by an id (index=0), left-to right, where index greater than the free keys on-screen will result in a "More..." soft key being automatically applied to the right-most key, to an action, optionally passed a label1, and optionally passed an arg. Note that not all actions are appropriate for all phone states and not all functionality, e.g. Call Recording, cannot be accomplished outside of a DPMA or Switchvox environment. There is currently no label1 for voicemail.

Queues and voicemail applications not valid for P310 and P315 models.
record_call not valid for P310 and P315 models.

P310, P315

Contacts Element

 Contacts Element Example

Contacts Element Example

<?xml version="1.0" ?>
<config>
    <contacts url="https://server.example.com/myfile.xml" id="internal" md5="abcd123" />
</config>

Any number of contacts elements may be present directly under the config element.
These <contacts> elements have attributes, most importantly url which allow contacts xml sheets to be downloaded via the DPMA.

Option

Values

Description

Models

contacts

url as file link
id as unique identifier
md5 as the md5sum of the xml file

Specifies the contacts XML file to be retrieved by the phone and identifies that file; more than one contacts parameter may be used. Sangoma phones support basic authentication, so a username and password may be passed in the URL line, e.g. http://user:pass@server.example.com.

No defaults.

P310, P315

Smart BLF Element

The Smart BLF element contains the BLF Items child element.  BLF Items points to an XML sheet that defines the function and positioning of BLF keys, Contacts and Applications on the phone.

BLF Items: Child Element of <smart_blf>

 BLF Items Element Example

BLF Items Element Example

<?xml version="1.0">
<config>
    <smart_blf>
        <blf_items url="http://server.example.com/myblfitems.xml" network_id="mynetwork" md5="abcd123" />
    </smart_blf>
</config>

Option

Values

Description

Models

blf_items

url as file link, network_id (optional) as network identifier for this element,

md5 (optional) as md5 sum of referenced XML sheet

Specifies the BLF Items XML file to be retrieved by the phone. Sangoma phones support basic authentication, so a username and password may be passed in the URL line, e.g. http://user:pass@server.example.com

P310, P315

Accounts Element

 Accounts Element Example

Accounts Element Example

<?xml version="1.0" ?>
<config>
    <accounts>
        <account server_uuid="0" index="0" status="1" register="1" account_id="100" username="100" authname="100" password="100" passcode="100" line_label="100 Alligator" caller_id="100 Alligator" dial_plan="[0-8]xxxxx|911|9411|9611|9011xxx.T3|91xxxxxxxxxx|9[2-9]xxxxxx|*xx.T3|[0-8]xx.T3"  visual_voicemail="0" voicemail="sip:800@10.1.2.3" needMwiSubscription="1" plar_number="" ring_type="normal" subscription_extension="100" conflict="replace" mwi_subscription_uri="" >
            <host_primary server="10.10.2.108" port="5060" transport="udp" media_encryption="" reregister="300" retry="25">
                <outbound_proxy server="" port="" transport="" />
            </host_primary>
            <host_alternate server="10.1.2.3" port="5060" transport="udp" media_encryption="" reregister="300" retry="25">
                <outbound_proxy server="" port="" transport="" />
            </host_alternate>
            <permission id="record_own_calls" value="0" />
            <setting id="use_call_log_api" value="0" />
            <setting id="call_log_fetch_entries" value="50" />
            <setting id="parking_lot_extension" value="700" />
            <setting id="parking_lot_enable_blind_transfer" value="1" />
            <permission id="use_voicemail" value="1" />
            <permission id="send_to_voicemail" value="1" />
            <permission id="ignore_calls" value="1" />
        </account>
    </accounts>
</config>

Option

Values

Description

Models

server_uuid

Non-zero String

Specifies a unique identifier for the server.

P310, P315

index

integer (0-5)

Defines the line key to which the account will be mapped.

There is no default index value. This option is mandatory.

P310, P315

status

boolean

If 1, enables the account's line key. If 0, will not display the account's line on the phone or register with the primary host.

Defaults to 0.

P310, P315

register

boolean

If 1, then this account will attempt to register with the primary host. If 0, then registration will not be performed for this account.

Defaults to 0.

P310, P315

account_id

string

For Switchvox systems, the Switchvox account_id associated with the SIP account. For non-Switchvox systems, a unique identifier, not necessarily related to any SIP credentials.

P310, P315

username

string

SIP username

P310, P315

authname

string

SIP authname

P310, P315

password

string

SIP password

P310, P315

passcode

string

SIP password

P310, P315

line_label

string

The text that shows up next to the line key for this account

P310, P315

caller_id

Name <Number>

Outgoing caller id displayed for this account

P310, P315

dial_plan

Digit mapping, see Dial Plans

The dial plan / digit mapping for this account

P310, P315

visual_voicemail

boolean

Only valid on account with index of 0. Only valid for phones provisioned by Switchvox or the DPMA. If 1, then the Msgs button action will open the voicemail app. If 0, then the Msgs button will be mapped to the extension defined for the voicemail option.

Defaults to 0.

P310, P315

voicemail

digits or SIP URI

A SIP URI or extension to be dialed for voicemail pertaining to this account.

P310, P315

needMwiSubscription

boolean

If 1, the phone will subscribe for MWI for this account. If 0, the phone will not subscribe for MWI for this account.

Defaults to 0.

P310, P315

plar_number

string

If defined, the phone will dial the configured string as a URI when the account is taken off-hook.

P310, P315

ring_type

normal, answer, ring-answer, visual

Allows control over the default ringing type for this account in the absence of any explicit Alert-Info header. Defaults to normal.

P310, P315

subscription_extension

string

For DPMA-connected phones, defines the user-part to which the phone should subscribe for presence updates

P310, P315

mwi_subscription_uri

SIP URI e.g.:
sip:mailbox@host 

If empty, subscribe to the host_primary using the SIP username. If non-empty, allows definition of the URI for MWI subscription

P310, P315 (3_3_1)

Host Primary: Child Element of <account>

Option

Values

Description

Models

server

Hostname or IPv4 Address

Sets the server to which calls for this account are directed

P310, P315

port

empty, or integer (1-65535)

Sets the server's SIP port. If empty, and if a hostname is used for the server, the port will be retrieved from DNS. The port option must be specified, even if it is set to empty, and is not optional.

P310, P315

transport

udp, tcp, tls

Sets the transport type, UDP or TCP, TLS.

P310, P315

media_encryption

sdes

Sets the media_encryption method, none or SDES.

Defaults to empty string (none).

The media_encryption setting for the host_primary must match the setting for the host_alternate.

P310, P315

reregister

integer in seconds

Sets the re-registration interval which the phone will present in the Expires header of the REGISTER. At half the interval of the reregister value, plus or minus a few random seconds, the phone will perform its reregistration.

Defaults to 300.

P310, P315

retry

integer

Specifies the period, plus or minutes 10 random seconds, at which the phone will perform a registration retry, given a registration failure.

Defaults to 25.

P310, P315

needMwiSubscription

boolean

Per-host override of needMwiSubscription from account element

P310, P315 (3_7_0)

mwi_subscription_uri

SIP URI e.g.:
sip:mailbox@host 

Per-host override of mwi_subscription_uri from account element

P310, P315 (3_7_0)

Host Alternate: Child Element of <account>

Option

Values

Description

Models

server

Hostname or IPv4 Address

Sets the server to which calls for this account are directed in the event that host_primary is unreachable

P310, P315

port

empty, or integer (1-65535)

Sets the server's SIP port. If empty, and if a hostname is used for the server, the port will be retrieved from DNS. The port option must be specified, even if it is set to empty, and is not optional.

P310, P315

transport

udp, tcp, tls

Sets the transport type, UDP or TCP, TLS.

P310, P315

reregister

integer in seconds

Sets the re-registration interval which the phone will present in the Expires header of the REGISTER. At half the interval of the reregister value, plus or minus a few random seconds, the phone will perform its reregistration.

Defaults to 300.

P310, P315

retry

integer

Specifies the period, plus or minutes 10 random seconds, at which the phone will perform a registration retry, given a registration failure.

Defaults to 25.

P310, P315

authname

String

Specifies an authentication name to be used when registering to the host_alternate server, if null, utilizes the auth name from the account object.

P310, P315 

password

String

Specifies an authentication password to be used when registering to the host_alternate server, if null, utilizes the authentication password from the account object.

P310, P315 

needMwiSubscription

boolean

Per-host override of needMwiSubscription from account element

P310, P315 (3_7_0)

mwi_subscription_uri

SIP URI e.g.:
sip:mailbox@host 

Per-host override of mwi_subscription_uri from account element

P310, P315 (3_7_0)

Outbound Proxy: Child Element of <host_primary> and/or <host_alternate>

Option

Values

Description

Models

server

Hostname or IP Address

Outbound proxy for this host.

P310, P315 (3_3_1)

port

empty, or integer (1-65535)

Port for the outbound proxy

P310, P315 (3_3_1)

transport

udp, tcp, tls

SIP Transport for the outbound proxy

P310, P315 (3_3_1)

Permission: Child Element of <account>

Defines line/account based permissions for various phone functions with an id and value pair.

Option

Values

Description

Models

record_own_calls

boolean

If 1, allows the user to record their own calls using a soft-key. Note that this feature can only enabled when using the DPMA. Users manually provisioning Sangoma phones should set this to false in order to ensure that a non-functional (because the DPMA is not being used) call recording softkey does not appear.

Defaults to 0.

P310, P315

use_voicemail

boolean

If 1, allows the user to have voicemail for this account.

Defaults to 0.

P310, P315

send_to_voicemail

boolean

If 1, allows the user to send an incoming call to voicemail.

Defaults to 0.

P310, P315

ignore_calls

boolean

If 1, allows the user to ignore an incoming call.

Defaults to 0.

P310, P315

Setting: Child Element of <account>

Defines line/account based settings for various phone functions with an id and value pair.

Option

Values

Description

Models

use_call_log_api

boolean

If 1, the phone will use the Switchvox Call Log API for this account.

Defaults to 0.

P310, P315

call_log_fetch_entries

integer

Specifies the number of Call Log entries to fetch when making a request.

Defaults to 50.

P310, P315

parking_lot_extension

integer

For Switchvox and DPMA environments, specifies the lot in which a call is transferred using the Park soft key, This option must be defined also, duplicating the phone-level parking_lot_extension setting.

No default.

P310, P315

parking_lot_enable_blind_transfer

boolean

For Switchvox and DPMA environments, specifies the type of call parking transfer to perform. This option must be defined also, duplicating the phone-level parking_lot_enable_blind_transfer setting.

Defaults to 0.

P310, P315

Networks Element

 Networks Element Example

Networks Element Example

<?xml version="1.0" ?>
<config>
    <networks>
        <network id="network1" display_name="Internal" cidr="192.168.8.0/24" />
        <network id="network2" display_name="External" cidr="10.0.0.0/8" />
        <network id="network3" display_name="All Networks" cidr="0.0.0.0/0" />
    </networks>
</config>

The networks element contains definitions for networks, each described by an individual <network> element and its attributes.

Each <network> element is described by the following attributes:

Option

Values

Description

Models

id

string

Unique identifier for the network

P310, P315

display_name

string

A named identifier for the network

P310, P315

cidr

CIDR formatted address

A CIDR formatted network address, e.g. 10.0.0.0/8

P310, P315

Codecs Element

 Codecs Element Example

Codecs Element Example

<?xml version="1.0" ?>
<config>
    <codecs>
        <codec id="PCMU" priority="255" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="1" />
        <codec id="PCMA" priority="13" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="1" />
        <codec id="G722" priority="11" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="1" />
        <codec id="G726-32" priority="7" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="1" />
        <codec id="opus" priority="6" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="1" complexity="10" samplerate="wb" use_vbr="0" />
        <codec id="G729" priority="5" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="1" />
    </codecs>
</config>

The codecs element contains all available codecs, each described by an individual <codec> element and its attributes.

Each <codec> element is described by the following attributes:

Option

Values

Description

Models

id

PCMU, PCMA, G722, G726-32, opus, G729

A codec supported by the phone

P310, P315

priority

integer (1-255)

Priority of the codec where higher numbers mean the codec is more favored

P310, P315

packetization

integer in 10ms increments per RFC codec guidelines

Packetization (ptime) rate for the specified codec, defaults to 20

P310, P315

jitter_min

integer in ms

Sets the minimum size of the codec jitter buffer

P310, P315

jitter_max

integer in ms

Sets the maximum size of the codec jitter buffer

P310, P315

jitter_target

integer in ms

Sets the target size of the codec jitter buffer

P310, P315

enabled

boolean

If 1, enables the codec. If 0, disables the codec.

P310, P315

complexity

integer, 1-10

Defines the encoding complexity for the Opus codec. Higher (10) numbers require more CPU time but produce better sounding audio. Defaults to 10.

P310, P315

samplerate

Depends on codec: nb, wb, uwb

Sets the sampling rate for a codec, applicable to Opus codec. Opus operates at either nb (8000Hz) or wb (16000Hz). Defaults to wb for Opus.

P310, P315

bitrate

Applies to G.722.1 & G.722.1C, licensed by Polycom ®, codecs: 24000, 32000, 48000

Sets the bitrate for a G.722.1 or G.722.1C codec. G.722.1 may be 24000bps or 32000bps. G.722.1C may be 24000, 32000 or 48000bps. Defaults to 48000 for G.722.1C and 32000 for G.722.1

P310, P315

use_vbr

boolean

Applies to the Opus codec. If 1, uses a variable bitrate encoder. If 0, uses a constant bitrate encoder.

Defaults to 1.

P310, P315

Ringtones Element

This section has two primary child elements:

  1. tones, which are the actual sounds heard when a call is made

  2. alerts, which map to a tone and represent a certain call condition

Tones: Child element of <ringtones>

 Tones Element Example

Tones Element Example

<?xml version="1.0" ?>
<config>
    <ringtones>
        <tones>
            <tone id="Alarm" display="Alarm" type="phone"/>
            <tone id="Chimes" display="Chimes" type="phone"/>
            <tone id="Sangoma" display="Sangoma" type="phone"/>
            <tone id="GuitarStrum" display="Guitar Strum" type="phone"/>
            <tone id="Jingle" display="Jingle" type="phone"/>
            <tone id="Office" display="Office" type="phone"/>
            <tone id="Office2" display="Office 2" type="phone"/>
            <tone id="RotaryPhone" display="Rotary Phone" type="phone"/>
            <tone id="SteelDrum" display="Steel Drum" type="phone"/>
            <tone id="Techno" display="Techno" type="phone"/>
            <tone id="Theme" display="Theme" type="phone"/>
            <tone id="Tweedle" display="Tweedle" type="phone"/>
            <tone id="Twinkle" display="Twinkle" type="phone"/>
            <tone id="Vibe" display="Vibe" type="phone"/>
            <tone id="208" display="Fancy" url="http://10.1.2.3/mytone.sln" md5="abc123" type="user"/>
        </tones>
    </ringtones>
</config>

Element lists the <tone> elements, each described by the following attributes:

Option

Values

Description

Models

id

string

Internal Tone identifier

P310, P315

display

string

External Tone Description

P310, P315

url

URL string

Location from which to retrieve a 16-bit, 16kHz, mono raw signed linear sound file, less than 1MB in size

P310, P315

md5

md5sum

MD5 sum of the file to be retrieved

P310, P315

type

phone, user

Indicates the tone's origin; tones that are type phone are embedded into the phone's firmware, tones that are type user are retrieved by URL

P310, P315

Alerts: Child element of <ringtones>

 Alerts Element Example

Alerts Element Example

<?xml version="1.0" ?>
<config>
    <ringtones>
        <alerts>
            <alert alert_info="normal" ringtone_id="Sangoma" ring_type="normal" />
            <alert alert_info="ring-answer" ringtone_id="Sangoma" ring_type="ring-answer" />
            <alert alert_info="intercom" ringtone_id="" ring_type="answer" />
            <alert alert_info="visual" ringtone_id="" ring_type="visual" />
        </alerts>
    </ringtones>
</config>
  • Element lists the <alert> elements, each described by the following attributes.

  • Alert tones are played when the event designated by 'alert_info' occurs.

Option

Values

Description

Models

alert_info

string

The alert_info header that, as received, applies to this alert

P310, P315

ringtone_id

string

The id of the ring tone for this alert

P310, P315

ring_type

normal, answer, ring-answer, visual

The type of call-answer to affect for this alert.

P310, P315

Firmwares Element

 Firmwares Element Example

Firmwares Element Example

<?xml version="1.0" ?>
<config>
    <firmwares>
        <firmware model="P310" version="3_0_7" url="http://10.10.4.11/firmware/3_0_7_P310_firmware.eff" />
        <firmware model="P315" version="3_0_7" url="http://10.10.4.11/firmware/3_0_7_P315_firmware.eff" />
    </firmwares>
</config>
  • Element lists the <firmwares> elements, each described by the following attributes.

  • Network, if specified, allows the phone to load different firmware URLs depending on its own network address mask

Option

Values

Description

Models

model

P310, P315

Model number of the Sangoma phone

P310, P315

version

string

Version string for the firmware. On boot, the phone will check the version string against an internal copy of the string, as previously loaded. If the strings differ, the phone will load the new firmware

P310, P315

url

http URL string

URL location of the phone firmware. Sangoma phones support basic authentication, so a username and password may be passed in the URL line, e.g. http://user:pass@server.example.com.

P310, P315

Public Firmwares Element

 Public Firmwares Element Example

Firmwares Element Example

<?xml version="1.0" ?>
<config>
    <public_firmwares>
        <public_firmware model="P310" version="3_0_7" url="http://firmware.example.com/firmware/3_0_7_P310_firmware.eff" />
        <public_firmware model="P315" version="3_0_7" url="http://firmware.example.com/firmware/3_0_7_P315_firmware.eff" />
    </public_firmwares>
</config>
  • Element lists the <public_firmwares> elements, each described by the following attributes.

  • Specifies a fallback firmare location - more than one public_firmware element may be specified for each model and the public_firmware servers will be tried in the order they are listed, in the event that an internal firmware server cannot be reached

  • A <public_firmwares> element does not take the place of a <firmwares> element; if a <firmwares> element is not present in the config, the phone will not apply any settings from any <public_firmwares> elements.

Option

Values

Description

Models

model

P310, P315

Model number of the Sangoma phone

P310, P315

version

string

Version string for the firmware. On boot, the phone will check the version string against an internal copy of the string, as previously loaded. If the strings differ, the phone will load the new firmware

P310, P315

url

http URL string

URL location of the phone firmware. Sangoma phones support basic authentication, so a username and password may be passed in the URL line, e.g. http://user:pass@server.example.com.

P310, P315

Appconfig Element

 Appconfig Element Example

Appconfig Element Example

<?xml version="1.0" ?>
<config>
    <appconfig id="appscreen">
        <application id="parking" />
        <application id="status" />
        <application id="contacts" />
        <application id="call_log" />
        <application id="forward_calls" />
        <application id="hotdesking"
        <auto_start />
    </appconfig>
    <appconfig id="phonemenu">
      <auto_start />
    </appconfig>
    <appconfig id="contacts">
        <account account_id="101" username="101" password="1234" appserver="dasp://server.example.com/json" apiformat="json"/>
        <display_rules>
            <display_rule id="1" action_id="dial_vm" phone_state="idle" show="0"/>
            <display_rule id="2" action_id="transfer_vm" show="0"/>
            <display_rule id="3" action_id="transfer_vm" phone_state="transfer" show="1"/>
        </display_rules>
        <settings can_transfer_vm="1" name_format="last_first" use_local_storage="0" preferred_contact_group="" />
        <settings in_switchvox_environment="0" />
        <auto_start />
    </appconfig>
    <appconfig id="status">
        <account account_id="101" username="101" password="1234" appserver="dasp://server.example.com/json" apiformat="json"/>
        <send_dnd status="" />
        <auto_start />
        <full_application />
    </appconfig>
    <appconfig id="parking">
        <account account_id="101" username="101" password="1234" appserver="dasp://server.example.com/json" apiformat="json"/>
        <auto_start />
    </appconfig>
    <appconfig id="hotdesking">
        <account account_id="000000000000" username="000000000000" appserver="https://server.example.com/json" apiformat="json"/>
    </appconfig>
     <appconfig id="call_log">
        <account account_id="101" username="101" password="1234" appserver="dash://server.example.com/json" apiformat="json"/>
        <enabled />
    </appconfig>
</config>
  • Element lists the <appconfig> elements.  Each element is identified by its identifier.  Native apps require use of an account parameter.

  • auto_start element applies to all appconfig definitions and specifies that an application should be loaded when the phone boots, not just on first use of the application.  This sill increase boot time but will decrease first load of the application.

  • Custom applications do not apply to model P310 and P315 telephones.

Account: Child Element of <appconfig> for contacts, status, queues, parking, voicemail, and  call_log applications

Option

Values

Description

Models

account_id

String

Specifies the account ID used when accessing the application server; typically the same as the SIP endpoint ID.

P310, P315

username

String

Specifies the SIP endpoint ID used when accessing the application server.

P310, P315

password

String

Specifies the password used when accessing the application server as well as the password used when the require_password application setting is applied. Need not be the same as the SIP endpoint password.

P310, P315

appserver

dash://YOUR SERVER/json

Specifies the location of application server, prefixed with "dasp" transport type.

P310, P315

apiformat

json

Specifies the data format to use when exchanging information with the application server

P310, P315

Account: Child Element of <appconfig> for hotdesking applications

Option

Values

Description

Models

account_id

string

Specifies the MAC address of the telephone when logged_out and the server's account_id of the device when logged_in

P310, P315 

username

string

Specifies the MAC address of the telephone when logged_out and the username for the server when logged_int

P310, P315 

auth_token

string

When logged_in, specifies the auth_token for the user of the server

P310, P315 

appserver

URL as string

Specifies the URL of the application server

P310, P315 

apiformat

json

Specifies the data format to use when exchanging information with the application server

P310, P315 


Appscreen: Application Child Element of <appconfig> for appscreen application

Option

Values

Description

Models

id

parking, status, contacts, call_log, forward_calls, hotdesking

Specifies the application to load into the phone's app screen, dependent on phone model.

P310, P315

Phone Menu: Application Child Elements of <appconfig> for phone menu application

Option

Values

Description

Models

hide_options id

about, applications, preferences, admin, advanced

Specifies the menu item to hide

P310, P315

option id

admin: network, qos, vlan, ethernetModes, systemTools, sipLines, changePassword, vpn
preferences: display, localization, sound, answering, network_select
advanced: reconfigure, factoryReset 

Specifies the sub-menu item to hide

P310, P315

Contacts: Settings Child Elements <appconfig> for contacts application

Option

Values

Description

Models

use_local_storage

boolean

If 1, directs the contacts application to allow the use of local storage for contacts.

Defaults to 0.

P310, P315

can_transfer_vm

boolean

If 1, specifies that the phone is allowed to perform transfers to voicemail targets from within the contacts application.

Defaults to 0.

P310, P315

name_format

first_last, last_first

Specifies the formatting of name display, e.g. First Last or Last, First.

Defaults to first_last

P310, P315

in_switchvox_environment

boolean

If 1, alerts the Contacts application that it is operating inside a Switchvox system.

Defaults to 0. 

P310, P315

preferred_contact_group

string

Specifies the contacts group to display when the application is loaded into the foreground. Defaults to empty string; all contacts.

P310, P315

Display Rules: Child Element of <appconfig> for contacts application

Option

Values

Description

Models

id

unique id

A unique identifier for this display_rule, e.g. 0, 1, 2, etc.

P310, P315

action_id

A valid action as defined in the phone's Contacts file

Sets the action_id for the display rule to act upon

P310, P315

phone_state

idle, hold, transfer, incoming/transfer, incoming, connected, dialing, calling, failed

Defines the state of the local phone during which the rule will be acting. If not specified in a rule, all states are matched. Note that this list of states differs from the larger list of states available for BLF key action mappings.

P310, P315

target_status

unknown, idle, on_hold, ringing, on_the_phone

Optional. Sets the status of the subscribed to contact that must be matched for this display rule to be in effect

P310, P315

show

boolean

If set to 1, shows a particular action. If set to 0, hides the action. To hide an action for all states and only show it for some states, first declare the action to have a false show, then declare it to have a true show for only a particular state or states.

P310, P315

Status: Settings Child Elements of <appconfig> for Status application

Option

Values

Description

Models

send_dnd

status set to one of:
available, unavailable, away, xa, chat, dnd 

Can be defined multiple times, one for each status. If set for a status, directs the phone to return 486 BUSY when in that status mode.

P310, P315

full_application

None

If defined, alerts the Status application to run in full mode. Full mode should only be run against DPMA or Switchvox.

Hot Desking: Application Child Elements of <appconfig> for hotdesking application

Option

Values

Description

Models

use_pbx_credentials

boolean

If enabled, the phone will use the credentials loaded in from the pbx_credentials configuration element

P310, P315 

status

logged_out, logged_in

Defines whether the phone is in a logged out or a logged in state

P310, P315 

Multicastpage Element

 Multicastpage Element Example

Multicastpage Element Example

<?xml version="1.0" ?>
<config>
    <multicastpage>
        <listener id="1" name="SomePage" extension="123" addr="239.0.0.1" port="32000" priority="1" interrupt_calls="0"/>
        <listener id="2" name="All Page" extension="456" addr="239.0.0.2" port="32000" priority="2" interrupt_calls="1"/>
    </multicastpage>
</config>
  • Element lists the <multicastpage> elements, each described by the following attributes.

  • Specifies listener addresses to which phone will subscribe for multicast audio playback in G.711 u-law, G.711 a-law, or G.722 formats

    A blank multicast page element should be passed to the phone to ensure that listeners are turned off, e.g.:

    <multicastpage>
    <!-- need blank multicastpage to ensure listener removed if turned off -->
    </multicastpage>

Option

Values

Description

Models

id

string

A unique identifier for the listener, required

P310, P315

name

string

A name to be provided in the phone's announcement status bar when audio is received over this listener, required

P310, P315

extension

string

Sets a local extension for this listener, that, if dialed by the phone, causes the phone to ignore RTP from this listener.

P310, P315

addr

IPv4 address

Multicast address to which phone should subscribe for audio, required

P310, P315

port

Valid integer for ports (1-65535)

Port, combined with address above, to which phone should subscribe for audio, required

P310, P315

priority

integer, 1-10

Prioritization level, lower given more priority, for playing back streams when more than one subscribed address is providing audio, required

P310, P315

interrupt_calls

integer, 0-2

If 1, places any in-progress calls on hold before playing back audio, and ignore the phone's local volume setting, playing back the audio at full volume. If 0, in-progress calls will have their audio played over the top of any in-progress calls. If 2, phone will ignore pages for this listener if it is involved in another call (added in 2_9_5 and 1_12_3).

Defaults to 2.

P310, P315

Certs Element

 Certs Element Example

Certs Element Example

<?xml version="1.0" ?>
<config>
    <certs>
        <cert id="1" label="my-ca" md5="abc123">MIICXQIBAAKB...XYZ</cert>
        <clientcert id="1" label="my-client-cert" md5="abc123">MIICXQIBAAKB...XYZ</clientcert>
        <clientkey id="1" label="my-client-cert" type="RSA" md5="abc123">MIICXQIBAAKB...XYZ</clientkey>
    </certs>
</config>
  • Element lists the <cert>, <clientcert>, and <clientkey> elements, each containing an in-line, raw certificate payload, not prefixed by an "----BEGIN CERTIFICATE----" header nor postfixed by an "----END CERTIFICATE----" footer.

  • cert will be loaded by phone and combined with built-in certificate bundle as a trusted certificate

Option

Values

Description

Models

id

string

A unique identifier for the cert, required

P310, P315

label

string

A name to be used to identify this cert, that can be utilized by other phone configuration elements.

P310, P315

type

ALL, RSA, DSA, EC

For clientkey types, specifies the type of encryption used for the client key, to be recognized by OpenSSL.

P310, P315

md5

string

Contains the md5sum of the certificate body. When this changes for any certificate, the phone will execute a restart in order to ensure the new certificates are used.

P310, P315

Activity Indicator Element

 Activity Indicator Element Example

Activity Indicator Element Example

<?xml version="1.0" ?>
<config>
    <activity_indicator>
        <setting id="idle" color="amber" state="off" />
        <setting id="default" color="amber" state="off" />
        <setting id="hold" color="red" state="slow" />
        <setting id="ringing" color="green" state="fast" /> 
        <setting id="active" color="green" state="on" />
        <setting id="new_vm" color="red" state="slow" />
        <setting id="listen_vm" color="red" state="on" />
        <setting id="leaving_vm" color="amber" state="slow" />
        <setting id="screen_vm" color="amber" state="on" />
        <setting id="announcement" color="amber" state="fast" />
    </activity_indicator> 
</config>
  • Controls the behavior of the activity indicator lamp during various phone states.

Option

Values

Description

Models

id

idle, default, hold, ringing, activity, new_vm, listen_vm, leaving_vm, screen_vm, announcement

Specifies the state being configured

P310, P315

color

amber, green, red

Specifies the color to apply to the state being configured

P310, P315

state

off, on, slow, fast

Specifies the lamp disposition to apply to the state being configured

P310, P315

use_proxy_for Element

 use_proxy_for Element Example

use_proxy_for Element Example

<?xml version="1.0" ?>
<config>
    <use_proxy_for network="10.10.0.0/20" network_id="network1" host="10.1.2.3" use="0" />
</config>
  • Controls whether the phone should make direct API requests to Switchvox or indirect cURL requests.  Default to indirect.  This option should only be used inside Switchvox environments.

Option

Values

Description

Models

network

CIDR format netmask

Specifies the network to which the setting should be applied

P310, P315

network_id

id of a defined network

Specifies the network to which the setting should be applied

P310, P315

host

hostname

Specifies the proxy hostname

P310, P315

use

boolean

If 1, enables the use_proxy_for setting. If 0, disables the use_proxy_for setting.

Defaults to 0.

P310, P315

network_id attribute

The network_id attribute, in conjunction with the Networks element is used to provision multiple different options for a particular element, e.g. account address, so that when the Sangoma phone is located on different networks, the proper element for that network can be loaded by the phone. When the phone boots and discovers its IP address, it compares that against matching elements with network_id attributes and loads only those elements, rather than elements with non-matching network_ids.

Currently, the network_id attribute can be applied to the following elements:

  • ntp_server setting

  • network_vlan_discovery_mode setting

  • pc_vlan_id setting

  • host_primary element

  • host_alternate element

  • contacts element

  • firmwares element

Example

 network_id Attribute Example

network_id Attribute Example

<?xml version="1.0" ?>
<config>
    <networks>
        <network id="network1" display_name="Home" cidr="192.168.8.0/24" />
        <network id="network2" display_name="Work" cidr="10.0.0.0/8" />
    </networks>
    <setting id="ntp_server" value="0.digium.pool.ntp.org" network_id="network1" />
    <setting id="ntp_server" value="ntp.example.com" network_id="network2" />
    <setting id="network_vlan_discovery_mode" value="NONE" network_id="network1" />
    <setting id="network_vlan_discovery_mode" value="LLDP" network_id="network2" />
    <accounts>
        <account index="0" status="1" register="1" account_id="100" username="100" authname="100" password="100" passcode="100" line_label="100 Alligator" caller_id="100 Alligator" dial_plan="[0-8]xxxxx|911|9411|9611|9011xxx.T3|91xxxxxxxxxx|9[2-9]xxxxxx|*xx.T3|[0-8]xx.T3"  visual_voicemail="0" voicemail="sip:800@10.1.2.3" outbound_proxy="" outbound_port="" conflict="replace">
            <host_primary server="pbx.example.com" port="5060" transport="udp" reregister="300" retry="25" network_id="network1" />
            <host_alternate server="10.1.2.3" port="5060" transport="udp" reregister="300" retry="25" network_id="network1" />
            <host_primary server="10.1.2.4" port="5060" transport="udp" reregister="300" retry="25" network_id="network2" />
            <host_alternate server="10.1.2.5" port="5060" transport="udp" reregister="300" retry="25" network_id="network2" />
            <permission id="record_own_calls" value="0" />
        </account>
    </accounts>
    <contacts url="https://server.example.com/myfile.xml" id="internal" md5="abcd123" network_id="network1" />
    <contacts url="https://10.1.2.3/myfile.xml" id="internal" md5="abcd123" network_id="network2" />
    <firmware network_id="network1">
        <firmware model="P310" version="3_0_7" url="http://server.example.com/firmware/P310.firmware.eff" />
        <firmware model="P315" version="3_0_7" url="http://server.example.com/firmware/P315.firmware.eff" />
    </firmwares>
    <firmwares network_id="network2">
        <firmware model="P310" version="3_0_7" url="http://10.1.2.3/firmware/P310.firmware.eff" />
        <firmware model="P315" version="3_0_7" url="http://10.1.2.3/firmware/P315.firmware.eff" />
    </firmwares>
</config>

  • No labels