XML Configuration 4.9.0+
Â
XML Configuration
This section describes the formatting and options available when creating XML-based configuration files for provisioning Sangoma phones.Â
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="send_mac_with_useragent" value="0" />
    <setting id="use_secure_labels" value="1" />
    <setting id="time_zone" value="America/Los_Angeles" />
    <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="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="display_mc_notification" value="1" />
    <setting id="idle_company_text" value="" />
    <setting id="brightness" 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="idle_return_timer" value="120" />
    <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="date_long_format" value="EEE, MMM d" />
    <setting id="ringer_volume" value="5" />
    <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="parking_lot_extension" value="700" />
    <setting id="parking_lot_enable_blind_transfer" 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="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="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="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="handshake_timeout" value="86400" />
    <setting id="retransmit_until_response" value="0" />
    <setting id="sip_notify_call_control" 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_inline_config" url="https://user:password@server.example.com/vpn/client.ovpn" value="1" md5="abc123" />
    <setting id="wifi_enabled" value="0" />
    <setting id="wifi_ssid" value="" />
    <setting id="wifi_psk" value="" />
    <setting id="wifi_security" value="None" />
    <setting id="bluetooth_enabled" value="0" />
    <setting id="config_recheck" value="0" idle_time="600" days="0123456" start_time="0200" hours="2" />
    <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="1" />
        <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" 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="P320" version="3_0_7" url="http://10.10.4.11/firmware/3_0_7_P320_firmware.eff" />
        <firmware model="P325" version="2_8_0" url="http://10.10.4.11/firmware/3_0_7_P325_firmware.eff" />
    </firmwares>
    <public_firmwares>
        <public_firmware model="P320" version="3_0_7" url="http://firmware.example.com/firmware/3_0_7_P320_firmware.eff" />
        <public_firmware model="P325" version="3_0_7" url="http://firmware.example.com/firmware/3_0_7_P325_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="1" />
    <setting id="time_zone" value="America/Los_Angeles" />
    <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="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="display_mc_notification" value="1" />
    <setting id="idle_company_text" value="" />
    <setting id="brightness" 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="idle_return_timer" value="120" />
    <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="date_long_format" value="EEE, MMM d" />
    <setting id="ringer_volume" value="5" />
    <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="parking_lot_extension" value="700" />
    <setting id="parking_lot_enable_blind_transfer" 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="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="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="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="handshake_timeout" value="86400" />
    <setting id="retransmit_until_response" value="0" />
    <setting id="sip_notify_call_control" 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_inline_config" url="https://user:password@server.example.com/vpn/client.ovpn" value="1" md5="abc123" />
    <setting id="wifi_enabled" value="0" />
    <setting id="wifi_ssid" value="" />
    <setting id="wifi_psk" value="" />
    <setting id="wifi_security" value="None" />
    <setting id="bluetooth_enabled" value="0" />
    <setting id="config_recheck" value="0" idle_time="600" days="0123456" start_time="0200" hours="2" />
</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: 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. | P320, P325, P330, P370 |
pbx_credentials | value as string | 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. | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
use_secure_labels | boolean | If 1, the phone will replace the config fetch URL with "Server" or "Fetching" onboot. Defaults to 1 | P320, P325, P330 |
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 | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
ntp_resync | Seconds as integer, e.g. 86400 | Sets the interval between NTP synchronization. Defaults to 86400. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
transport_udp_enabled | boolean | If 1, enables UDP SIP transport. If 0, disables UDP SIP transport. Defaults to 1 | P320, P325, P330, P370 |
transport_udp_port | Valid integer for ports (1-65535) | Sets the local UDP SIP port. Defaults to 5060 | P320, P325, P330, P370 |
transport_tcp_enabled | boolean | If 1, enables TCP SIP transport. If 0, disables TCP SIP transport. Defaults to 1 | P320, P325, P330, P370 |
transport_tcp_port | Valid integer for ports (1-65535) | Sets the local TCP SIP port. Defaults to 5060 | P320, P325, P330, P370 |
transport_tls_allowed | boolean | If 1, enables TLS SIP transport. If 0, disables TLS SIP transport. Defaults to 1 | P320, P325, P330, P370 |
transport_tls_port | Valid integer for ports (1-65535) | Sets the local TLS SIP port. Defaults to 5061 | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
Preferences (Idle Screen)
Option | Values | Description | Models |
---|---|---|---|
logo_file | value as "factory" or "user" | Sets the idle screen logo 300x170 pixels for P320 and P325 | P320, P325, P330 (4_9_0) |
display_mc_notification | boolean | If 1, enables display of missed calls. If 0, disables display of missed calls. Defaults to 1 | P320, P325, P330, P370 |
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. | P320, P325, P330 |
Preferences (Display)
Option | Values | Description | Models |
---|---|---|---|
brightness | integer (1-10) | Sets the LCD screen brightness Defaults to 5 | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
backlight_dim_level | integer (0-10) | Brightness level dims to when when dim_backlight is true. Defaults to 2 | P320, P325, P330, P370 |
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). | P320, P325, P330 (4_7_0) |
idle_return_timer | integer | Time, in seconds, at which phone, if idle, will return from a foregrounded app to the home screen. Defaults to 120 | P320, P325, P330 (4_9_0) |
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. | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
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} | P320, P325, P330, P370 |
date_long_format | an ICU date/time pattern | Sets the date format used by the phone on its idle screen. This setting is normally controlled by the phone's configured locale. | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
speaker_volume | integer (1-10) | Sets the speaker volume. Defaults to 5 | P320, P325, P330, P370 |
handset_volume | integer (1-10) | Sets the handset volume. Defaults to 5 | P320, P325, P330, P370 |
headset_volume | integer (1-10) | Sets the headset_volume. Defaults to 5 | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
active_ringtone | Tone ID from <tones> provided to phone | Sets the current user-selected ringtone. Defaults to Sangoma | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
ehs | auto, jabra_iq, plantronics | Defines the Electronics Hookswitch type to support. Defaults to auto. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
Contacts
Option | Values | Description | Models |
---|---|---|---|
contacts_max_subscriptions | integer, e.g. 40 | Sets the maximum number of SUBSCRIBEs the phone will perform for contacts. Defaults to 40. | P320, P325, P330, P370 |
name_format | first_last, last_first | Formats the display of contact names. Defaults to first_last | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
network_static_ip_address | IPv4 address | Defines the network address for the phone. No default. | P320, P325, P330, P370 |
network_subnet_mask | IPv4 netmask | Defines the netmask for the phone. No default. | P320, P325, P330, P370 |
network_default_gateway | IPv4 address | Defines the network gateway for the phone. No default. | P320, P325, P330, P370 |
network_primary_dns_server | IPv4 address | Defines the primary DNS server for the phone. No default. | P320, P325, P330, P370 |
network_secondary_dns_server | IPv4 address | Defines the secondary DNS server for the phone. No default. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
enable_tcp_sack | boolean, Defaults to 0 | If enabled, causes phone to enable TCP SACK processing. Defaults too disabled. | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
Logging
Option | Values | Description | Models |
---|---|---|---|
log_level | error, warning, debug, information | Sets the logging level. Defaults to information | P320, P325, P330, P370 |
log_server | IPv4 address of syslog server | Specifies remote syslog server. No default. | P320, P325, P330, P370 |
log_port | port as integer | Specifies port of remote syslog server. No default. | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
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) | P320, P325, P330, P370 |
sip_qos | integer (0-7) | Sets the SIP signaling QOS level Defaults to 3. | P320, P325, P330, P370 |
rtp_qos | integer (0-7) | Sets the RTP media QOS level. Defaults to 6. | P320, P325, P330, P370 |
pc_qos | integer (0-7) | Sets the QOS level for traffic from the PC port to the LAN port. No default. | P320, P325, P330, P370 |
sip_dscp | integer (0-63) | Specifies the DSCP field of the DiffServ byte for SIP Signaling QoS. Defaults to 24 | P320, P325, P330, P370 |
rtp_dscp | integer (0-63) | Specifies the DSCP field of the DiffServ byte for RTP Media QoS. Defaults to 46 | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
sip_notify_call_control | boolean | If 1, causes the phone to respond to in-dialog SIP NOTIFY talk and hold Events to answer, hold, and resume calls. Defaults to 0. | P320, P325, P330 (4_8_0) |
802.1X
Option | Values | Description | Models |
---|---|---|---|
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). | P320, P325, P330, P370 |
8021x_identity | string | Sets the 802.1X authentication identifier (username), Defaults to empty string (none). | P320, P325, P330, P370 |
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). | P320, P325, P330, P370 |
8021x_password | string | Sets the 802.1X authentication password Defaults to empty string (none) | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
Wifi (network)
Option | Values | Description | Models |
---|---|---|---|
wifi_enabled | boolean | If 1, enables the wireless interface (wlan0). The physical interface (eth0) is disabled Defaults to 0. | P330, P370 |
wifi_ssid | string | Sets the name (ssid) of the wireless network. | P330, P370 |
wifi_psk | string, password | Sets the password of the wireless network | P330, P370 |
wifi_security | None | Sets the Wifi Security Method | P330, P370 |
Bluetooth
Option | Values | Description | Models |
---|---|---|---|
bluetooth_enabled | boolean | If 1, enables the bluetooth feature Default to 0 | P330, P370 |
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. | P320, P325, P330, P370 |
Events Element
 Events Element Example
Events Element Example
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. | P320, P325, P330, P370 |
action | app | Specifies that the phone should load an associated app / notification upon receiving the defined event No default. | P320, P325, P330, P370 |
Keymap Elements
 Keymap Element Example
Keymap Element Example
Keymap Elements control the functionality of softkeys during various phone states.
Option | Values | Description | Models |
---|---|---|---|
state | id as one of:
| Sets the phone state to which this soft key mapping should apply. | P320, P325, P330 |
key | id as integer, beginning with 0 action as one of:
| 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. | P320, P325, P330 |
Contacts Element
 Contacts Element Example
Contacts Element Example
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 | 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. | P320, P325, P330, P370 |
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
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 | P320, P325, P330, P370 |
Accounts Element
 Accounts Element Example
Accounts Element Example
Option | Values | Description | Models |
---|---|---|---|
server_uuid | Non-zero String | Specifies a unique identifier for the server. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
username | string | SIP username | P320, P325, P330, P370 |
authname | string | SIP authname | P320, P325, P330, P370 |
password | string | SIP password | P320, P325, P330, P370 |
passcode | string | SIP password | P320, P325, P330, P370 |
line_label | string | The text that shows up next to the line key for this account | P320, P325, P330, P370 |
caller_id | Name <Number> | Outgoing caller id displayed for this account | P320, P325, P330, P370 |
dial_plan | Digit mapping, see Dial Plans | The dial plan / digit mapping for this account | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
voicemail | digits or SIP URI | A SIP URI or extension to be dialed for voicemail pertaining to this account. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
plar_number | string | If defined, the phone will dial the configured string as a URI when the account is taken off-hook. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
subscription_extension | string | For DPMA-connected phones, defines the user-part to which the phone should subscribe for presence updates | P320, P325, P330, P370 |
mwi_subscription_uri | SIP URI e.g.: | If empty, subscribe to the host_primary using the SIP username. If non-empty, allows definition of the URI for MWI subscription | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
transport | udp, tcp, tls | Sets the transport type, UDP or TCP, TLS. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
needMwiSubscription | boolean | Per-host override of needMwiSubscription from account element | P320, P325, P330, P370 |
mwi_subscription_uri | SIP URI e.g.: | Per-host override of mwi_subscription_uri from account element | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
transport | udp, tcp, tls | Sets the transport type, UDP or TCP, TLS. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
needMwiSubscription | boolean | Per-host override of needMwiSubscription from account element | P320, P325, P330, P370 |
mwi_subscription_uri | SIP URI e.g.: | Per-host override of mwi_subscription_uri from account element | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
port | empty, or integer (1-65535) | Port for the outbound proxy | P320, P325, P330, P370 |
transport | udp, tcp, tls | SIP Transport for the outbound proxy | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
use_voicemail | boolean | If 1, allows the user to have voicemail for this account. Defaults to 0. | P320, P325, P330, P370 |
send_to_voicemail | boolean | If 1, allows the user to send an incoming call to voicemail. Defaults to 0. | P320, P325, P330, P370 |
ignore_calls | boolean | If 1, allows the user to ignore an incoming call. Defaults to 0. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
call_log_fetch_entries | integer | Specifies the number of Call Log entries to fetch when making a request. Defaults to 50. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
Networks Element
 Networks Element Example
Networks Element Example
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 | P320, P325, P330, P370 |
display_name | string | A named identifier for the network | P320, P325, P330, P370 |
cidr | CIDR formatted address | A CIDR formatted network address, e.g. 10.0.0.0/8 | P320, P325, P330, P370 |
Codecs Element
 Codecs Element Example
Codecs Element Example
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 | P320, P325, P330, P370 |
priority | integer (1-255) | Priority of the codec where higher numbers mean the codec is more favored | P320, P325, P330, P370 |
packetization | integer in 10ms increments per RFC codec guidelines | Packetization (ptime) rate for the specified codec, defaults to 20 | P320, P325, P330, P370 |
jitter_min | integer in ms | Sets the minimum size of the codec jitter buffer | P320, P325, P330, P370 |
jitter_max | integer in ms | Sets the maximum size of the codec jitter buffer | P320, P325, P330, P370 |
jitter_target | integer in ms | Sets the target size of the codec jitter buffer | P320, P325, P330, P370 |
enabled | boolean | If 1, enables the codec. If 0, disables the codec. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
samplerate | Depends on codec: nb, wb | 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. | P320, P325, P330, P370 |
use_vbr | boolean | Applies to the Opus codec. If 1, uses a variable bitrate encoder. If 0, uses a constant bitrate encoder. Only the variable bitrate encoder is supported. The constant bitrate encoder will deliver malformed audio. Defaults to 1. | P320, P325, P330, P370 |
Ringtones Element
This section has two primary child elements:
tones, which are the actual sounds heard when a call is made
alerts, which map to a tone and represent a certain call condition
Tones: Child element of <ringtones>
 Tones Element Example
Tones Element Example
Element lists the <tone> elements, each described by the following attributes:
Option | Values | Description | Models |
---|---|---|---|
id | string | Internal Tone identifier | P320, P325, P330, P370 |
display | string | External Tone Description | P320, P325, P330, P370 |
url | URL string | Location from which to retrieve a 16-bit, 16kHz, mono raw signed linear sound file, less than 1MB in size | P320, P325, P330, P370 |
md5 | md5sum | MD5 sum of the file to be retrieved | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
Alerts: Child element of <ringtones>
 Alerts Element Example
Alerts Element Example
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 | P320, P325, P330, P370 |
ringtone_id | string | The id of the ring tone for this alert | P320, P325, P330, P370 |
ring_type | normal, answer, ring-answer, visual | The type of call-answer to affect for this alert. | P320, P325, P330, P370 |
Firmwares Element
 Firmwares Element Example
Firmwares Element Example
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 | P320, P325, P330, P370 | Model number of the Sangoma phone | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
url | 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. https://user:pass@server.example.com. | P320, P325, P330, P370 |
Public Firmwares Element
 Public Firmwares Element Example
Firmwares Element Example
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 | P320, P325, P330, P370 | Model number of the Sangoma phone | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
url | 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. https://user:pass@server.example.com. | P320, P325, P330, P370 |
Appconfig Element
 Appconfig Element Example
Appconfig Element Example
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. | P320, P325, P330, P370 |
username | String | Specifies the SIP endpoint ID used when accessing the application server. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
appserver | dash://YOUR SERVER/json | Specifies the location of application server, prefixed with "dasp" transport type. | P320, P325, P330, P370 |
apiformat | json | Specifies the data format to use when exchanging information with the application server | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
username | string | Specifies the MAC address of the telephone when logged_out and the username for the server when logged_int | P320, P325, P330, P370 |
auth_token | string | When logged_in, specifies the auth_token for the user of the server | P320, P325, P330, P370 |
appserver | URL as string | Specifies the URL of the application server | P320, P325, P330, P370 |
apiformat | json | Specifies the data format to use when exchanging information with the application server | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
option id | admin: network, qos, vlan, ethernetModes, systemTools, sipLines, changePassword, vpn | Specifies the sub-menu item to hide | P320, P325, P330, P370 |
Contacts: Settings Child Elements <appconfig> for contacts application
Option | Values | Description | Models |
---|---|---|---|
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. | P320, P325, P330, P370 |
name_format | first_last, last_first | Specifies the formatting of name display, e.g. First Last or Last, First. Defaults to first_last | P320, P325, P330, P370 |
in_switchvox_environment | boolean | If 1, alerts the Contacts application that it is operating inside a Switchvox system. Defaults to 0. | P320, P325, P330, P370 |
preferred_contact_group | string | Specifies the contacts group to display when the application is loaded into the foreground. Defaults to empty string; all contacts. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
action_id | A valid action as defined in the phone's Contacts file | Sets the action_id for the display rule to act upon | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
Status: Settings Child Elements of <appconfig> for Status application
Option | Values | Description | Models |
---|---|---|---|
send_dnd | status set to one of: | 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. | P320, P325, P330, P370 |
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 | P320, P325, P330, P370 |
status | logged_out, logged_in | Defines whether the phone is in a logged out or a logged in state | P320, P325, P330, P370 |
Multicastpage Element
 Multicastpage Element Example
Multicastpage Element Example
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 | P320, P325, P330, P370 |
name | string | A name to be provided in the phone's announcement status bar when audio is received over this listener, required | P320, P325, P330, P370 |
extension | string | Sets a local extension for this listener, that, if dialed by the phone, causes the phone to ignore RTP from this listener. | P320, P325, P330, P370 |
addr | IPv4 address | Multicast address to which phone should subscribe for audio, required | P320, P325, P330, P370 |
port | Valid integer for ports (1-65535) | Port, combined with address above, to which phone should subscribe for audio, required | P320, P325, P330, P370 |
priority | integer, 1-10 | Prioritization level, lower given more priority, for playing back streams when more than one subscribed address is providing audio, required | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
Certs Element
 Certs Element Example
Certs Element Example
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 | P320, P325, P330, P370 |
label | string | A name to be used to identify this cert, that can be utilized by other phone configuration elements. | P320, P325, P330, P370 |
type | ALL, RSA, DSA, EC | For clientkey types, specifies the type of encryption used for the client key, to be recognized by OpenSSL. | P320, P325, P330, P370 |
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. | P320, P325, P330, P370 |
Activity Indicator Element
 Activity Indicator Element Example
Activity Indicator Element Example
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 | P320, P325, P330, P370 |
color | amber, green, red | Specifies the color to apply to the state being configured | P320, P325, P330, P370 |
state | off, on, slow, fast | Specifies the lamp disposition to apply to the state being configured | P320, P325, P330, P370 |
use_proxy_for Element
 use_proxy_for Element Example
use_proxy_for Element Example
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 | P320, P325, P330, P370 |
network_id | id of a defined network | Specifies the network to which the setting should be applied | P320, P325, P330, P370 |
host | hostname | Specifies the proxy hostname | P320, P325, P330, P370 |
use | boolean | If 1, enables the use_proxy_for setting. If 0, disables the use_proxy_for setting. Defaults to 0. | P320, P325, P330, P370 |
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
Â