Digium Phones - How to implement BLF

This doesn’t tell the phone how to download the files. If I told you you needed to download a file called myBlfFIle.xml, you’d be stuck unless I told you where to go to download it… you’d probably Google it, but the phone can’t do that. :wink:

The url you define must be a url that the phone’s going to be able to reach, just like you’d punch into a web browser. A phone could reach http://server.example.com/contacts-internal.xml or http://server.example.com/myBlfFile.xml …for example. Now, you’d have to put the files there, of course.

All

I had to delete 5 posts from a user named rein_hard1. This user has been banned twice (now three times) for going around a ban. Creating duplicate accounts with different emails is against forum policy. This time we banned him and also removed his posts. So if this thread seems a little wonky now you know why.

OK, once I am done solving my issue, I will edit the 1st post to summarize what I did thanks to the help collected here and make the thread clearer.

I edited the file. Now, it is
http://192.168.120.90/digium_phones/contacts-internal.xml and
http://192.168.120.90/digium_phones/myBlfFile.xml

and all the files are there (checked and accessible) through a browser

But, something is still missing as it does not pull the BLFs.

I even edited the res_digium_phone_devices.conf to include this path before the blf file, just in case.

No luck,… sad sad sad.

I will try on my side for a few days. I will post back when I am done with more tests.

…But still using the same exact profile photo.
Based on his keeping a “low profile” every time he creates a new “unidentified” account, I assume he works at the NSA.

Sorry for going off topic.

1 Like

New test, no success but still.

I reconfigured the phone manually inputing my VOIP Server address and port:
192.168.120.90.

The phone then searchs for 000fd3092e62.cfg which is the GOOD news. The file exists and is located in 192.168.120.90/digium_phones/ i.e where it is supposed to pull the config from.

The file contains the following info (pulled from the banned buddy)

<?xml version="1.0" ?>
<config>
  <setting id="active_ringtone" value="Chimes" />
  <setting id="locale" value="fr_FR" />
  <setting id="default_fontsize" value="13" />
  <setting id="idle_screen_clock_format" value="{0} EEE, d.MMM" />
  <setting id="time_zone" value="Europe/Paris" />
  <setting id="time_source" value="ntp" />
  <setting id="ntp_server" value="0.at.pool.ntp.org" />
  <setting id="ntp_resync" value="86400" />
  <setting id="accept_local_calls" value="any" />
  <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="logo_file" value="user" path="/user_image3.png" url="" md5="" />
  <setting id="display_mc_notification" value="1" />
  <setting id="hide_completed_elsewhere" value="1" />
  <setting id="brightness" value="10" />
  <setting id="contrast" value="10" />
  <setting id="dim_backlight" value="1" />
  <setting id="backlight_timeout" value="60" />
  <setting id="backlight_dim_level" value="0" />
  <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="headset_answer" value="0" />
  <setting id="enable_blf_on_unused_line_keys" value="0" />
  <setting id="name_format" value="last_first" />
  <setting id="contacts_max_subscriptions" value="40" />
  <setting id="blf_contact_group" value="Internal Phonebook" />
  <setting id="allow_insecure_ssl" value="1" />
  <setting id="sip_qos" value="3" />
  <setting id="rtp_qos" value="6" />
  <setting id="pc_qos" value="1" />
  <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_dscp" value="24" />
  <setting id="rtp_dscp" value="46" />
  <setting id="in_switchvox_environment" value="0" />
  <setting id="config_server_url" value="sip:[email protected]:5060;transport=udp" />
  <setting id="server_environment" value="DPMA" />
  <setting id="udp_ka_interval" value="60" />
  <setting id="enable_check_sync" value="1" />
  <setting id="ehs" value="auto" />
  <setting id="ring_headset_only" value="0" />
  <setting id="call_waiting_tone" value="1" />
  <setting id="pc_vlan_id" value="" />
  <setting id="lan_port_mode" value="auto" />
  <setting id="pc_port_mode" value="auto" />
  <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" url="" value="" />
  <setting id="8021x_root_cert" url="" value="" />
  <setting id="8021x_debug" value="" />
  <setting id="parking_lot_extension" value="70" />
  <setting id="parking_lot_enable_blind_transfer" value="1" />
  <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="show_application" label1="_PARKED_CALLS">
                <arg>parking</arg                                          
             </key                                                           
             <key id="3" action="show_application" label1="_STATUS">
                <arg>status</arg             
             </key                                                                                                                         
             <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"/>
                <key id="3" action="send_to_vmail"/>
            </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="park_call" /                          
               <key id="2" action="record_call" /                             
               <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="record_call"/>
                <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 ="http://192.168.120.90/digium_phones/contacts-internal.xml" id="internal" />
  <smart_blf>
        <blf_items url="http://192.168.120.90/digium_phones/myBlfFile.xml" />
  </smart_blf
  <accounts>
    <account index="0" status="1" register="1" account_id="113" username="113" authname="113" password="xxx" line_label="113" caller_id="113" dial_plan="x.T|*xx.T" subscription_extension="auto_hint_17" visual_voicemail="1" needMwiSubscription="1">
    <host_primary server="192.168.120.90" port="5060" transport="udp" reregister="300" retry="25" />
    <permission id="use_voicemail" value="1" />
    <permission id="send_to_voicemail" value="1" />
    <permission id="record_own_calls" value="1"/>
    <setting id="parking_lot_extension" value="70" />
    <setting id="parking_lot_enable_blind_transfer" value="1" />
    <permission id="ignore_calls" value="1" />
    <setting id="call_log_fetch_entries" value="50" />
    </account>
  </accounts>
  <networks>
    <network id="1" display_name="All Networks" cidr="0.0.0.0/0" />
  </networks>
  <codecs>
        <codec id="PCMA" priority="255" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="1" />
        <codec id="G722" priority="125" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="1" />
        <codec id="PCMU" priority="13" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="1" />
        <codec id="G7221" priority="10" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="1" samplerate="uwb" bitrate="48000" />
        <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" />
        <codec id="iLBC" priority="4" packetization="30" jitter_min="0" jitter_max="0" jitter_target="0" enabled="1" />
        <codec id="L16" priority="2" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="1" />
        <codec id="L16-256" priority="1" 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="Digium" display="Digium" 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="Digium" ring_type="normal" />
      <alert alert_info="ring-answer" ringtone_id="Digium" 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="bluetooth" />
        <application id="voicemail" />
        <application id="parking" />
        <application id="status" />
        <application id="contacts" />
        <application id="queues" />
        <application id="call_log" />
        <application id="forward_calls" />
        <application id="LogOut" />
        <application id="conferences" />
        <auto_start />
    </appconfig>
    <appconfig id="phonemenu">
      <auto_start />
    </appconfig>
    <appconfig id="contacts">
        <account account_id="17" username="17" password="xxx" appserver="dasp://192.168.120.90/json" apiformat="json"/>
        <display_rules>
            <display_rule id="0" action_id="monitor" show="0"/>
            <display_rule id="1" action_id="monitor" target_status="on_the_phone" show="1"/>
            <display_rule id="2" action_id="intercom" show="0"/>
            <display_rule id="3" action_id="intercom" target_status="idle" show="1"/>
            <display_rule id="4" action_id="dial_vm" phone_state="idle" show="0"/>
            <display_rule id="5" action_id="transfer_vm" show="0"/>
            <display_rule id="6" 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="17" username="17" password="xxx" appserver="dasp://192.168.120.90/json" apiformat="json"/>
        <send_dnd status="dnd" />
        <auto_start />
        <full_application />
    </appconfig>
    <appconfig id="queues">
        <account account_id="17" username="17" password="xxx" appserver="dasp://192.168.120.90/json" apiformat="json"/>
        <auto_start />
    </appconfig>
    <appconfig id="parking">
        <account account_id="17" username="17" password="xxx" appserver="dasp://192.168.120.90/json" apiformat="json"/>
        <auto_start />
    </appconfig>
    <appconfig id="voicemail">
        <account account_id="17" username="17" password="xxx" appserver="dasp://192.168.120.90/json" apiformat="json"/>
        <settings require_password="0" />
        <auto_start />
    </appconfig>
    <appconfig id="LogOut">
        <auto_start />
    </appconfig>
    <appconfig id="conferences">
        <enabled />
        <default_bridge pin=""/>
    </appconfig>
  <firmwares>
    <firmware model="D50" version="2_7_2" url="http://192.168.120.90/digium_phones/firmware_2_7_2_package/2_7_2_D50_firmware.eff" />
  </firmwares>
  <multicastpage>
    <listener id="1" name="Multicast1" addr="" port="multicastPort0" priority="1" interrupt_calls="0" />
    <listener id="2" name="Multicast2" addr="" port="multicastPort1" priority="1" interrupt_calls="0" />
    <listener id="3" name="Multicast3" addr="" port="multicastPort2" priority="1" interrupt_calls="0" />
    <listener id="4" name="Multicast4" addr="" port="multicastPort3" priority="1" interrupt_calls="0" />
    <listener id="5" name="Multicast5" addr="" port="multicastPort4" priority="1" interrupt_calls="0" />
    <listener id="6" name="Multicast6" addr="" port="multicastPort5" priority="1" interrupt_calls="0" />
    <listener id="7" name="Multicast7" addr="" port="multicastPort6" priority="1" interrupt_calls="0" />
    <listener id="8" name="Multicast8" addr="" port="multicastPort7" priority="1" interrupt_calls="0" />
    <listener id="9" name="Multicast9" addr="" port="multicastPort8" priority="1" interrupt_calls="0" />
    <listener id="10" name="Multicast10" addr="" port="multicastPort9" priority="1" interrupt_calls="0" />
  </multicastpage
  <certs>
  </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="red" 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>

The bad thing is that the phone does not seem:
a) to find the file
b) or it does not like the file and it does not load it.

Any added idea ?

Thanks

You can watch your apache traffic to see if the phone tries to download the file.
You should use xmllint to validate the file (or just load it in Chrome).

The path that it’s searching on is important. Also, the location of the /digium_phones/ directory is important. I assume you’re using HTTP(s) configuration, so the DocumentRoot for that particular “website” on your server will be important.

@reinhard2 you must think this community is a joke. You’ve been banned three times. Each time you go around the ban. Each time you ignore the messages. You create another account with just a number change. You use the same avatar.

Do you really think you are tricking anyone?

I’m sorry everyone. But because of one bad egg who just doesn’t get it. I have to lock this thread entirely. As this user has created four different accounts just to reply to this thread. Accounts two through four were banned because he was warned in account 1 but thinks it’s ok to ignore the warning and the additional bans to just create new accounts from random ip addresses.