D65 using EPM - Logos still have issues

Using the old DPMA configuration tool worked great! I could take a large PNG image with transparency and it would scale the image to work with the model phone. It would respect the transparency and look great! Customers LOVED that I could slap their logo on the phone!

Try as I might I cannot make this work well on the older D phones using EPM. They always look like SHIT.

look at the example below; it was used with a PNG file with transparency. The Logo is cut off at the bottom and the black edging should be alpha channel(transparent).

Does any one have some suggestions on what I can try? Why does it have to always turn out like crap trying to get this to work? Where can I set actual backgrounds for the D series phones? It says “Background Image” in EPM but it’s clearly setting the file as a “logo”. If I could place an actual background on this phone I could manage.

Thanks for reading my rant. If anyone has any idea what’s going on and can help me out I’d appriciate it!

1 Like

Man, it has been a week and not a single reply from someone - anyone? Even if it’s to say “yah it sucks to suck”.

1 Like

The silence is deafening!

I am no expert…but the Digium/Sangoma D65 has been replaced with the Sangoma P330. There will be no firmware updates with new features or fixes.
Did it work with the Digium phone config module (freePBX 15)? If yes…theoretically…it would be a bug of EPM and you could create a bug report.
I still use 3 freePBX 15 systems with many D65 phones and the Digium phone config module. Everything works great, but I never tried to put a logo on the beautiful desktop background :wink:

Did you try to edit the config file of one of the D65s? There is a line with “logo-file”

<?xml version="1.0" ?>
<config>
  <setting id="active_ringtone" value="Chimes" />
  <setting id="locale" value="de_DE" />
  <setting id="default_fontsize" value="14" />
  <setting id="idle_screen_clock_format" value="{0} EEE, d.MMM" />
  <setting id="login_password" value="xxxxxx" />
  <setting id="time_zone" value="Europe/Vienna" />
  <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_image.png" url="" md5="" />
  <setting id="display_mc_notification" value="1" />
  <setting id="display_pickup_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="160" />
  <setting id="backlight_dim_level" value="1" />
  <setting id="ringer_volume" value="6" />
  <setting id="lock_ringing_volume" value="1" />
  <setting id="speaker_volume" value="6" />
  <setting id="handset_volume" value="6" />
  <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="internes-Telefonbuch" />
  <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="allow_app_dev" value="0" />
  <setting id="handshake_timeout" value="180" />
  <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="0" />
  <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"/>
            </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.0.36/digium_phones/contacts-2.xml" id="internes-Telefonbuch" />
  <contacts url ="http://192.168.0.36/digium_phones/phonebook-1.xml" id="Telefonbuch" />
  <smart_blf>
        <blf_items url="http://192.168.0.36/digium_phones/blf-15.xml" />
  </smart_blf>
  <accounts>
    <account index="0" status="1" register="1" account_id="15" username="15" authname="15" password="xxxxxx" passcode="xxxxxx" line_label="Labor" caller_id="Labor" dial_plan="x.T|*xx.T" subscription_extension="auto_hint_15" visual_voicemail="1" needMwiSubscription="1">
    <host_primary server="192.168.0.36" 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="opus" priority="250" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="1" complexity="10" samplerate="wb" use_vbr="0" />
        <codec id="G722" priority="200" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="1" />
        <codec id="PCMA" priority="100" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="1" />
        <codec id="PCMU" priority="11" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="0" />
        <codec id="G7221" priority="10" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="0" samplerate="uwb" bitrate="48000" />
        <codec id="G726-32" priority="9" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="0" />
        <codec id="G729" priority="7" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="0" />
        <codec id="iLBC" priority="6" packetization="30" jitter_min="0" jitter_max="0" jitter_target="0" enabled="0" />
        <codec id="L16" priority="5" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="0" />
        <codec id="L16-256" priority="4" packetization="20" jitter_min="0" jitter_max="0" jitter_target="0" enabled="0" />
  </codecs>
  <ringtones>
  <tones>
      <tone id="Alarm" display="Alarm" type="phone" />
      <tone id="Chimes" display="Chimes" type="phone" />
      <tone id="CuteBells" display="CuteBells" url="http://192.168.0.36/digium_phones/user_ringtone_5.raw" md5="abc123" type="user"/>
      <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="&lt;http://127.0.0.1&gt;;info=normal" ringtone_id="Digium" ring_type="normal" />
      <alert alert_info="&lt;http://127.0.0.1&gt;;info=Internal" ringtone_id="CuteBells" ring_type="normal" />
      <alert alert_info="&lt;http://127.0.0.1&gt;;info=Door" ringtone_id="Office" ring_type="normal" />
      <alert alert_info="&lt;http://127.0.0.1&gt;;info=ring-answer" ringtone_id="Theme" ring_type="ring-answer" />
      <alert alert_info="&lt;http://127.0.0.1&gt;;info=intercom"  ringtone_id=""  ring_type="answer" />
      <alert alert_info="&lt;http://127.0.0.1&gt;;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="call_log" />
        <application id="forward_calls" />
        <auto_start />
    </appconfig>
    <appconfig id="phonemenu">
      <auto_start />
    </appconfig>
    <appconfig id="contacts">
        <account account_id="15" username="15" password="xxxxxx" appserver="dasp://192.168.0.36/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="15" username="15" password="xxxxxx" appserver="dasp://192.168.0.36/json" apiformat="json"/>
        <send_dnd status="dnd" />
        <auto_start />
        <full_application />
    </appconfig>
    <appconfig id="queues">
        <account account_id="15" username="15" password="xxxxxx" appserver="dasp://192.168.0.36/json" apiformat="json"/>
        <auto_start />
    </appconfig>
    <appconfig id="parking">
        <account account_id="15" username="15" password="xxxxxx" appserver="dasp://192.168.0.36/json" apiformat="json"/>
        <auto_start />
    </appconfig>
    <appconfig id="voicemail">
        <account account_id="15" username="15" password="xxxxxx" appserver="dasp://192.168.0.36/json" apiformat="json"/>
        <settings require_password="0" />
        <auto_start />
    </appconfig>
  <firmwares>
    <firmware model="D65" version="2_9_25" url="http://192.168.0.36/digium_phones/firmware_2_9_25_package/2_9_25_D65_firmware.eff" />
  </firmwares>
  <multicastpage>
  </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>

…just to find out, what the problem is.

You could also use the Web-GUI of the D65 phone, I think.

And isn’t there a setting in EPM, where you can prioritize certain Web-GUI settings of the phone?

Nope…EPM does not have an option, where you could prioritize settings in the web-gui of the phone…at least I could not find it. In EPM there seems to be no setting for the logo, just for the background image.

Here I have the EPM settings for the P330…same might apply to the D65

So you could just do a basefile edit (logo-file)…

EDIT: Just to double-check…the good old Digium phones config module has it…the Logo option

EDIT2: If I were you, I would try to upload a logo file and a wallpaper file to the phone using the web-GUI of the phone. This would be the easiest way to understand, what the problem is.

That logo was uploaded from the phones GUI and it still messes it up. So I guess this isn’t a EPM issue. I wonder if the old DPMA did some funky stuff (resizing w/ scaleing, mergeing and flattening an image then applied it as a background).

I have a FPBX 15 install, lets see what that does.

1 Like

What if you use e.g. Gimp to combine the logo with the background image (download the original from the phone) and upload the edited image as a wallpaper (web-gui) or a background image (EPM).

This is when I made a backgroud w/ the logo in paint.net. looks great!

This is when I take the same background photo and apply it via EPM’s background section.


This is when I go into basefile section and change
<setting id="logo_file" value="__user__" path="__imgPath__" url="__background__" md5="__bgimagehash__" />

to

<setting id="wallpaper_file" value="__user__" path="__imgPath__" url="__background__" md5="__bgimagehash__" />

Interesting…is the size of the image correct?

Is an idle logo the same as the logo on the desktop? If yes, I found this

205x85 LOL:

original:

FreePBX_Logo_205x85

after rebooting the phone 1 more time just in case it did change some:

Just in case I missed it…did you try to download the original wallpaper file from the phone, edit it in e.g. Gimp and add the logo…and upload the edited wallpaper to the phone?

yes, it was this one.

How many D65s do you have? Is it ok for you to use the web-gui of the phones to upload the wallpaper? I just don’t know, if the EPM overwrites the phone settings or how to prevent that. Does anybody know?

Couple hundred across multiple installs. most are stuck at 15 because of this silly issue. I just KNOW customers will complain if we lose such a silly thing.

Ok…I understand :wink:
When I look at your result with the EPM background image, it looks as if the EPM downsizes the image before it gets uploaded. What happens when you increase the size of the image and upload it using EPM. Does it get bigger? Maybe we just have to find out, what the ideal size is (using EPM)?

EDIT: Yet, I still dont know what a background image is…is it a logo or a wallpaper?

Maybe @kgupta can help? It obviously is an EPM bug. Is there a chance that it will get fixed?

That’s a great question! It says background in EPM but in the basefile editor it looks to corrolate to the “logo_file” setting.
P-series?
XML Configuration 4.24.2+ - Phones - Sangoma Documentation (atlassian.net)
D-Series?
XML Configuration 2.9.25+ - Phones - Sangoma Documentation (atlassian.net)

So it seems…EPM does not have an option to change the wallpaper…and the option to add a logo has a bug regarding the position and the size of the image…and the transparency. EDIT: this is a firmware bug of the phone

And you already tried to add a line like this to the basefile…using the edited wallpaper image, right?

<setting id="wallpaper_file" value="user" path="/user_wallpaper.png" url="https://server.example.com/wallpaper.png" md5="126cd744583eeea1ab7e44ed8af3d39d" />