Jump to content

Yealink firmware provisioning


RichardDCG

Recommended Posts

You don't really need to set dir settings url unless you build a custom xml.

yealink-favorite.xml in phone pnp covers directory settings url, you will figure out what its doing by looking at that.

DSS Key Type, I all ways use "1" as this has the best user experience on Yealink. 

When using mode 1, pressing a monitored BLF key while in call will result in a Attended transfer, so you can be in the call then press DSS BLF key and the caller is put on hold automatically and a new call is started to the other extension then you can talk and hang up to transfer or press transfer soft key. 

Default operation is blind transfer, which means you have to manually hold the call then start a new call and press the BLF button, not ideal, too many steps. With mode one you can get the call to the other party in two moves vs three or four, I forget how many extra steps default mode made it but it feels awkward. 

If you combine DSS Key Type 1, with my other post post on Yealink and transfer reminder you will get the best operation.

I also find better stable operation of using park mode in FAC mode on Yealink.

I only do yealink's so I know a fair bit on them, AMA lol. It was once snom but prices here are way too high. 

 

 

 

Link to comment
Share on other sites

Here are my Yealink tweaks that might help you, note some only work when you modify the base yealink config and move the general pram include statement to the end of the file. 

I have found running with this setup I get way less call errors and failed alerts from the Yealink YMCS management portal. 

##DNS CONTROL## (Never trust a customers DHCP DNS set your own..)
static.network.static_dns_enable = 1
static.network.primary_dns = x.x.x.x
static.network.secondary_dns = x.x.x.x

##STUN NAT## (less random errors noted in YMCS)
account.1.nat.rport = 2
account.1.nat.nat_traversal = 1
static.sip.nat_stun.enable = 1
static.sip.nat_stun.server = stun.server
static.sip.nat_stun.port = 3478

##Remove SIP server 2 duplicate##
account.1.sip_server.2.address = %NULL%

##DM YEALINK## (YMCS great for remote management)
dm.enterprise_id = enterprise code
dm.site_id = site code

##LOCAL TONES## (Make true tones for your country)
voice.tone.country = countryname

##Dial Now Delay## (When using PNP proper dial plan)
phone_setting.dialnow_delay = 2

##LONG KEY LABLES## (More button realestate is welcomed by all)
features.config_dsskey_length = 1

##Fix DSS Trans with pbx call back## (Fixes transfer so can make use of pbx transfer reminder)
transfer.semi_attend_tran_enable = 0

##CustomRingTones## (I found I still had to upload my own to the phone)
ringtone.url = my custom tones
ringtone.url = my custom tones

##daily autop for button renames between midnight and 3am random## (Daily random sync so if customer puts in jobs for button name updates all phones will sync to download out of hours)
static.auto_provision.weekly.enable = 1
static.auto_provision.weekly.begin_time = 0:00
static.auto_provision.weekly.end_time = 3:00
static.auto_provision.weekly.dayofweek = 0123456

##Phone web timeout## (Sick of being logged out to soon when doing remote support)
features.relog_offtime = 30

##Fixs for pickup from blf and parks when using no outbound proxy ##
features.call_park.park_mode = 1
features.pickup.direct_pickup_code = *87 
features.blf_pickup_only_send_code = 0 
account.1.dialoginfo_callpickup = 0
 

##BLF PAGE TIPS## (When monitoring more BLF's and you get the virtual page key, the phone will flash the page that has the monitored blf blinking)
phone_setting.page_tip = 1

 

 

 

Link to comment
Share on other sites

Thanks, great suggestions. We'll add an enterprise and site ID parameter to the next version and also provide the tone country for a better local experience so you don't have to do that. 

We recommend to use the Yealink General parameter so that you don't have to customize (and freeze) the yealink_common template.

Link to comment
Share on other sites

10 hours ago, Vodia PBX said:

Thanks, great suggestions. We'll add an enterprise and site ID parameter to the next version and also provide the tone country for a better local experience so you don't have to do that. 

We recommend to use the Yealink General parameter so that you don't have to customize (and freeze) the yealink_common template.

Yep, I program into general prams for that reason, but you guys need to move the general parameter include statement to the end of the Yealink provisioning template so that if we want to make a change to something that exists in the config below where it includes the parameters now it's not overwritten by the base again. 

 

 

Link to comment
Share on other sites

12 hours ago, Scott1234 said:

Yep, I program into general prams for that reason, but you guys need to move the general parameter include statement to the end of the Yealink provisioning template so that if we want to make a change to something that exists in the config below where it includes the parameters now it's not overwritten by the base again. 

In Yealink provisioning world, the first occurrence of a setting wins. So it should be okay if parameters show up in the Yealink general and then again later in the provisioning file again.

Link to comment
Share on other sites

29 minutes ago, Vodia PBX said:

In Yealink provisioning world, the first occurrence of a setting wins. So it should be okay if parameters show up in the Yealink general and then again later in the provisioning file again.

I can tell you thats not whats going on with it where it is. Hence why I have posted it. Only resolved with it at the bottom. 

Link to comment
Share on other sites

9 hours ago, Vodia PBX said:

Anyhow, the PBX post-processes the Yealink provisioning files anyway. If there was an enterprise or site-ID, it will be dropped from the file.

Yeah but I thought the idea here is to not have to edit the base file, which I am doing and I have removed {parameter yealink-general} from where it sits normally and put it below {post-process-yealink} due to what I have mentioned.

I am saying if you simply move its location as part of the base pbx setup then we can be sure that any added changes to {post-process-yealink} will get applied and over write other defined settings. 

As yes it does seem to process it based on reoccurrence and over write that setting, even though the structure of the file generated shows two lots of commands with one being at the bottom, the last occurrence wins it seems. 

I guess to keep the config clean it would need a way of matching and merging/updating the same statements.  

Link to comment
Share on other sites

On 6/23/2023 at 8:58 PM, Scott1234 said:

Yeah but I thought the idea here is to not have to edit the base file, which I am doing and I have removed {parameter yealink-general} from where it sits normally and put it below {post-process-yealink} due to what I have mentioned.

Well, the whole point is to post-process what has been generated. Yes you can think about post-post-processed content 😬, but IMHO the post-processing does everything you need and there should be no reason to edit the template if you just want to add or override a setting.

Link to comment
Share on other sites

10 hours ago, Vodia PBX said:

Well, the whole point is to post-process what has been generated. Yes you can think about post-post-processed content 😬, but IMHO the post-processing does everything you need and there should be no reason to edit the template if you just want to add or override a setting.

I am not sure you are understanding what I am saying??

Here is an example you can test. 

Try and set this in Yealink General, with your default yealink config, key examples in bold.

##STUN NAT##
account.1.nat.rport = 2
account.1.nat.nat_traversal = 1
static.sip.nat_stun.enable = 1
static.sip.nat_stun.server = stun.server
static.sip.nat_stun.port = 3478

or

##daily autop for button renames##
static.auto_provision.weekly.enable = 1
static.auto_provision.weekly.begin_time = 0:00
static.auto_provision.weekly.end_time = 3:00
static.auto_provision.weekly.dayofweek = 0123456

 

And you will see it won't apply them because the base file has them defined, below where the {parameter yealink-general} section is, hence the last occurrence wins, being. 

account.{lc}.nat.nat_traversal = 0

auto_provision.weekly.enable = 0

 

Link to comment
Share on other sites

{post-process-yealink} writes a log message Filtering parameter xxx when it removes something (log level 9 for provisioning). The  {parameter yealink-general} is in the header right after  {require-credentials}. The replacement of the {lc} is already done at this step. It renders lines only when the text in front of the equal sign was not seen before, with a few exceptions like those URL parameters. 

I tested this here, and it did work as expected. If you have modified your yealink_common.txt please make sure that you have this structure:

#!version:1.0.0.1

## Model {get model} Version {get version}
{if provisional == "true"}
# ... stuff needed for LAN provisioning
{else}
{require-credentials}
{parameter yealink-general}
# ... all sorts of settings
{fi}
{post-process-yealink}
Link to comment
Share on other sites

I am not sure what to say.....

I will come back to this and post with more detail. when I have some spare time to try to explain what I am saying. As it does not work as intended with the default yealink_common settings, but I will make sure I document and capture everything I am saying.

To try show you. It's not like I am making this up ....

 

 

Link to comment
Share on other sites

2 hours ago, Scott1234 said:

To try show you. It's not like I am making this up ....

No worries. It's sometimes hard to get the "aha" moment! Being able to reproduce the problem is the hardest part. We already changed the logging for the post processing, not just to mention what parameters were removed during the filtering, but also what content. Hopefully this will help getting to the bottom of this one.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...