SIP-T28

Business SIP Providers
Provider Plan Details Monthly Rate *
Vonage Business SIP Trunking
  • One provider & nationwide coverage
  • Easily integrated into your existing infrastructure
  • More uptime, flexibility and disaster recovery options
$25.00
Details

Auto-provisioning


Some notes on auto-provisioning these phones since the phones are great, but the documentation is nothing short of terrible. I had a lot of trouble finding any documentation so thought I'd share what I've worked out or scraped together. I'm not very good at documentation so feel free to clean this up for me.

In the config examples below, the comments starting with # are what came in the samples I got from a vendor who I believe got them from Yealink. They are not very clear as I don't believe english is the developers first language, if I've been able to make them less ambiguous I've expanded them with a double comment ##.

Configure your dhcp server with the boot/tftp server address, option 66 in windows dhcp server or add something like the following on a *nix box to your dhcpd.conf:

option tftp-server-name "x.x.x.x";
next-server x.x.x.x;

File names on your tftp server, should all be in lower case (assuming its a *nix server, windows tftp server probably wont matter). The phone can be configured with two files on the tftp server. One with the <mac>.cfg and another one called y000000000000.cfg

You should specify all options that will be common to all phones being provisioned in the y000000000000.cfg. My <mac>.cfg only has the "Account" section specified, you can however specify any or all options in either file, if an option is specified in both, it seems to give priority to the <mac>.cfg as you would expect.

You will notice that alot of configuration sections contain an option for 'path' for example:

[ RemotePhoneBook1 ]
path = /yealink/config/Setting/Setting.cfg
URL = http://x.x.x.x/Phonebook1.xml
Name = Phonebook Name

This is where the info specified in this section will be stored on the phone, as the documentation is relatively poor for these phones this comes in handy, as you can set options in the web interface and then telnet into the phone and see how the configuration is saved. The configuration information is stored in the mac or y000000000000.cfg the same way as the phone stores it in the internal configuration file, as in this example above the 'Setting.cfg'. As such if one didn't know the options for "RemotePhoneBook1", you put your phonebook info in the web interface and then telnet in and copy the "RemotePhoneBook1" section out of /yealink/config/Setting/Setting.cfg and put it in the provisioning files to auto provision the phones.

Samples of the phonebook / contact XML's are all the way at the bottom.

Sample Config this is my <mac>.cfg:



[ account ]
path=/yealink/config/voip/sipAccount0.cfg
Enable = 1
Label = 12345
DisplayName = 12345
UserName = 12345
AuthName = 12345
password = Secret
SIPServerHost = my.sip.host.com
SIPServerPort = 5060
SIPListenRandom = 0
SIPListenPort = 5060
Expire = 3600
UseOutboundProxy = 1
OutboundHost = my.sip.host.com
OutboundPort = 5060
EnableEncrypt = 0
BakOutboundHost =
BakOutboundPort = 5060
EnableSTUN = 0
proxy-require =
ptime = 0
srtp_encryption = 0
srtp_encryption_algorithm = 0
BackupSIPServerHost =
BackupSIPServerPort =
Enable 100Rel = 0
precondition = 0
SubsribeRegister = 1
CIDSource = 0
EnableSessionTimer = 1
SessionExpires = 3600
SessionRefresher = 0
EnableUserEqualPhone = 0
BLFList_URI =
SubsribeMWI = 0
AnonymousCall = 0
RejectAnonymousCall = 0



This is my y000000000000.cfg



[ autop_mode ]
path = /yealink/config/Setting/autop.cfg
#disable:0; power on:1; repeatly:4; weekly:5;
## Not sure what 2,3 and 6 do, worked out that 7 is power on + weekly
#schedule_min is the interval of time to update, the minimum value is 1
#schedule_time and schedule_time_end are the time for weekly update
#schedule_dayofweek is the setting for weekly choosen, Sunday:0; Monday:1; Tuesday:2;...if you want to update every sunday and Saturday, you could set it to 06
## My example below will update every night between 1 and 2 am, also when powered on. I'm not 100% sure, but I think the schedule_min is only used for
## option 4, repeatly
mode = 7
schedule_min = 60
schedule_time = 1:00
schedule_time_end = 2:00
schedule_dayofweek = 0123456

[ autoprovision ]
## My tftp server address, username and password are not needed if using tftp, you can use www or ftp with these options
## If you want to provision with www or ftp I think you just put http:// or ftp:// in front of the address but I've never tried it
path = /yealink/config/Setting/autop.cfg
server_address = 10.1.1.1
#user =
#password =

[ AES_KEY ]
path = /yealink/config/Setting/autop.cfg
#aes_key_16 =

[ ringtone ]
path = /tmp/download.cfg
#to specify a ringtone for update
#the format of the ringtone must be WAV
#an example for a right server_address:ftp://wxf:123456@192.168.0.132:21/Ring20.wav
#server_address =

[ Lang ]
path = /tmp/download.cfg
#to specify a language for update
#an example for a right server_address:http://192.168.0.132:9/file_provision/lang+English.txt
#server_address =

[ ContactList ]
path = /tmp/download.cfg
#to specify a XML phonebook for update
#an example for a right server_address:http://192.168.0.132:9/file_provision/contactData1.exml
## Note you MUST call the file contactData1.xml on your web/ftp server as well, it is case sensitive and you phone wont provision if you call it ANYTHING else
## This file will be downloaded and stored locally on the phone every time it is provisioned (ie over night), this is useful as it will match incoming caller id number to a name if it is found
## in the contact list.
server_address = http://10.1.1.1/contactData1.xml

[ firmware ]
path = /tmp/download.cfg
#to specify a firmware for update
#server_type can be tftp,ftp or http
#if the server requires authentication,the login_name and login_pswd will be used.
server_type = tftp
server_ip = 10.1.1.1
server_port = 69
#login_name =
#login_pswd =
#http_url =
firmware_name = name.rom

[ RemotePhoneBook0 ]
path = /yealink/config/Setting/Setting.cfg
## This xml can be called whatever you like, it will not be downloaded to the phone, but will be loaded from the web server when someone looks up the list on the phone.
URL = http://10.1.1.1/Phonebook0.xml
Name = Mobiles

[ RemotePhoneBook1 ]
path = /yealink/config/Setting/Setting.cfg
URL = http://10.1.1.1/Phonebook1.xml
Name = Services

[ Time ]
path = /yealink/config/Setting/Setting.cfg
TimeZone = +10
TimeServer1 = 10.1.1.1
TimeServer2 = 10.0.0.2
Interval = 1000
#Set daylight saving time.SummerTime 0 means disable,1 means enable
SummerTime = 0
TimeZoneInstead = 8
StartTime =
EndTime =

## Enable the codecs you want below
[ audio0 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 1
PayloadType = PCMU
priority = 1
rtpmap = 0

[ audio1 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 1
PayloadType = PCMA
priority = 2
rtpmap = 8

[ audio2 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 0
PayloadType = G723_53
priority = 0
rtpmap = 4

[ audio3 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 0
PayloadType = G723_63
priority = 0
rtpmap = 4

[ audio4 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 1
PayloadType = G729
priority = 3
rtpmap = 18

[ audio5 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 1
PayloadType = G722
priority = 0
rtpmap = 9

[ audio6 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 1
PayloadType = iLBC
priority = 3
rtpmap = 97

[ audio7 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 0
PayloadType = G726-16
priority = 0
rtpmap = 112

[ audio8 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 0
PayloadType = G726-24
priority = 0
rtpmap = 102

[ audio9 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 0
PayloadType = G726-32
priority = 0
rtpmap = 2

[ audio10 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 0
PayloadType = G726-40
priority = 0
rtpmap = 104

[ DTMF ]
path=/yealink/config/voip/sipAccount0.cfg
DTMFInbandTransfer = 1
DTMFPayload = 101
DTMFToneLen = 300
InbandDtmfVolume = 0
RxLatency = 20
CPTToneCountry = 12
G726CodeWord = 1
InfoType = 0

[ NAT ]
path=/yealink/config/voip/sipAccount0.cfg
MaxRTPPort = 11800
MinRTPPort = 11780
NATTraversal = 0
STUNServer = 0.0.0.0
STUNPort = 10000
EnableUDPUpdate = 1
UDPUpdateTime = 30
rport = 0

[ ADVANCED ]
path=/yealink/config/voip/sipAccount0.cfg
default_t1 = 0.5
default_t2 = 4
default_t4 = 5

[blf]
path=/yealink/config/voip/sipAccount0.cfg
SubscribePeriod = 3600

[ Message ]
path=/yealink/config/Features/Message.cfg
#Set voicemail number for each account
VoiceNumber0 = 99999
VoiceNumber1 =
VoiceNumber2 =
VoiceNumber3 =
VoiceNumber4 =
VoiceNumber5 =

[ Features ]
path=/yealink/config/Features/Phone.cfg
DND = 0
Call_Waiting = 1
EnableHotline = 0
Callpickup = 1
Hotlinenumber =

[ AutoAnswer ]
path=/yealink/config/Features/Phone.cfg
Enable = 0

[ PoundSend ]
path=/yealink/config/Features/Phone.cfg
#Set # key or * key as send. #:1 and *:2
Enable = 1

[ WAN ]
path=/yealink/config/Network/Network.cfg
#WANType:0:DHCP,1:PPPoE,2:StaticIP
WANType = 0
#WANStaticIP =
#WANSubnetMask =
#WANDefaultGateway =

[ DNS ]
path=/yealink/config/Network/Network.cfg
#PrimaryDNS =
#SecondaryDNS =

[ PPPoE ]
path=/yealink/config/Network/Network.cfg
PPPoEUser =
PPPoEPWD =

[ LAN ]
path=/yealink/config/Network/Network.cfg
#LANTYPE:0:Router, 1:Bridge
LANTYPE = 1

[ SYSLOG ]
path=/yealink/config/Network/Network.cfg
#specify the server for syslog storage
SyslogdIP =

[ RTPPORT ]
path=/yealink/config/Network/Network.cfg
MaxRTPPort = 11800
MinRTPPort = 11780

[ QOS ]
path=/yealink/config/Network/Network.cfg
SIGNALTOS = 40
RTPTOS = 40

[ VLAN ]
path=/yealink/config/Network/Network.cfg
#ISVLAN,VID and USRPRIORITY are used for VLAN on LAN port
#PC_PORT_VLAN_ENABLE,PC_PORT_VID and PC_PORT_PRIORITY are used for PC port
ISVLAN = 0
VID =
USRPRIORITY =
PC_PORT_VLAN_ENABLE =
PC_PORT_VID =
PC_PORT_PRIORITY =

[ snmp ]
path=/yealink/config/Network/Network.cfg
port = 0
trusted_address =

[ Profile ]
path=/yealink/config/vpm.cfg
VAD = 0
CNG = 1
GPHS = 12
ECHO = 1

[ Jitter ]
path=/yealink/config/vpm.cfg
Adaptive = 1
Min = 0
Max = 300
Nominal = 120

[ SecurityRTP ]
path=/yealink/config/vpm.cfg
Enable = 0

[ Country ]
path=/yealink/config/voip/tone.ini
#The tones are defined by countries.If Country = Custom,the customized values will be used.
Country = Australia

[ Tone Param ]
path=/yealink/config/voip/tone.ini
dial =
ring =
busy =
congestion =
callwaiting =
dialrecall =
record =
info =
stutter =
message =
autoanswer =

[ Default ]
path=/yealink/config/voip/tone.ini
dial = 1
ring = 1
busy = 1
congestion = 1
callwaiting = 1
dialrecall = 1
record = 1
info = 1
stutter = 1
message = 1
autoanswer = 1

[ PhoneSetting ]
path = /yealink/config/Setting/Setting.cfg
BacklightTime = 30
Manual_Time = 0
BackLight = 2
Contrast = 2
InterDigitTime = 4
FlashHookTimer = 300
Lock = 0
#the range of the volume is 1~15

[ Lang ]
path = /yealink/config/Setting/Setting.cfg
#ActiveWebLanguage is the setting of language on LCD.
#WebLanguage is the setting of language on web management
ActiveWebLanguage =
WebLanguage =

[ AlertInfo0 ]
path = /yealink/config/Setting/Setting.cfg
Text =
Ringer =

[ AlertInfo1 ]
path = /yealink/config/Setting/Setting.cfg
Text =
Ringer =

[ AlertInfo2 ]
path = /yealink/config/Setting/Setting.cfg
Text =
Ringer =

[ AlertInfo3 ]
path = /yealink/config/Setting/Setting.cfg
Text =
Ringer =

[ AlertInfo4 ]
path = /yealink/config/Setting/Setting.cfg
Text =
Ringer =

[ AlertInfo5 ]
path = /yealink/config/Setting/Setting.cfg
Text =
Ringer =

[ AlertInfo6 ]
path = /yealink/config/Setting/Setting.cfg
Text =
Ringer =

[ AlertInfo7 ]
path = /yealink/config/Setting/Setting.cfg
Text =
Ringer =

[ AlertInfo8 ]
path = /yealink/config/Setting/Setting.cfg
Text =
Ringer =

[ AlertInfo9 ]
path = /yealink/config/Setting/Setting.cfg
Text =
Ringer =

[ BlockOut ]
path = /yealink/config/DialRule/BlockOut.cfg
#Set Block Out number.
1 =
2 =
3 =
4 =
5 =
6 =
7 =
8 =
9 =
10 =

[ AreaCode ]
path = /yealink/config/DialRule/areacode.cfg
code =
minlen =
maxlen =

[ memory1 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Line means the line taken in use.0 stands for auto,1 stands for line1...except for one condition when type is blf(DKtype:16),0 stands for line1,1
stands for line2...
#DKtype defines the type of the key,ranging from 0 to 17
#DKtype 0:N/A 1:Conference 2:Forward 3:Transfer
#DKtype 4:Hold 5:DND 6:Redial 7:Call Return
#DKtype 8:SMS 9:Call Pickup 10:Call Park 11:Custom
#DKtype 12:Voicemail 13:SpeedDial 14:Intercom 15:Line(for line key only)
#DKtype 16:BLF 17:URL
#Set Memory key1
Line = 0
type = 0
Value =
Callpickup =
DKtype = 16
PickupValue =

[ memory2 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set Memory key2
Line = 0
type = blf
Value = 901
Callpickup =
DKtype = 16
PickupValue = 901

[ memory3 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set Memory key3
Line = 0
type = blf
Value = 902
Callpickup =
DKtype = 16
PickupValue = 902

[ memory4 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set Memory key4
Line = 0
type = blf
Value = 903
Callpickup =
DKtype = 16
PickupValue = 903

[ memory5 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set Memory key5
Line = 0
type = blf
Value = 904
Callpickup =
DKtype = 16
PickupValue = 904

[ memory6 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set Memory key6
Line =
type =
Value =
Callpickup =
DKtype = 0
PickupValue =

[ memory7 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set Memory key7
Line =
type =
Value =
Callpickup =
DKtype = 0
PickupValue =

[ memory8 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set Memory key8
Line =
type =
Value =
Callpickup =
DKtype = 0
PickupValue =

[ memory9 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set Memory key9
Line =
type =
Value =
Callpickup =
DKtype = 0
PickupValue =

[ memory10 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set Memory key10
Line = 1
type = 1
Value = 900
Callpickup =
DKtype = 3
PickupValue =

[ memory11 ]
path = /yealink/config/vpPhone/vpPhone.ini
#from memory11 to memory 16 are settings for 6 line keys of T28
#DKtype value is the same as it is defined for memory keys.Except for one that the line keys cannot be set to blf(DKtype:16).
#Set line key1
DKtype = 15
Line = 1
type =
Value =
KEY_MODE = Asterisk
HotNumber =
HotLineId = 1
Callpickup =
IntercomId = -1
IntercomNumber =
PickupValue =

[ memory12 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set line key2
DKtype = 0
Line = 0
type =
Value =
KEY_MODE = Asterisk
HotNumber =
HotLineId = 1
Callpickup =
IntercomId = -1
IntercomNumber =
PickupValue =

[ memory13 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set line key3
DKtype = 6
Line = 0
Value =
KEY_MODE = Asterisk
HotNumber =
HotLineId = 1
Callpickup =
IntercomId = -1
IntercomNumber =
PickupValue =

[ memory14 ]
path = /yealink/config/vpPhone/vpPhone.ini
DKtype = 2
Line = 0
Value =
KEY_MODE = Asterisk
HotNumber =
HotLineId = 1
Callpickup =
IntercomId = -1
IntercomNumber =
PickupValue =

[ memory15 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set line key5
DKtype = 9
Line = 0
Value = *8
KEY_MODE = Asterisk
HotNumber =
HotLineId = 1
Callpickup =
IntercomId = -1
IntercomNumber =
PickupValue =

[ memory16 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set line key6
DKtype = 12
Line = 0
type =
Value = 99999
KEY_MODE = Asterisk
HotNumber =
HotLineId = 1
Callpickup =
IntercomId = -1
IntercomNumber =
PickupValue =



Sample contactData1.xml I've written a really basic excel macro to export from excel to this xml format, let me know if you need it.


<contactData>
<group>
<contact sDisplayName="Person One" sOfficeNumber="13241" sMobilNumber="1234893534" sOtherNumber="84735" sLine="0"/>
<contact sDisplayName="Person Two" sOfficeNumber="12312" sMobilNumber="2938920385" sOtherNumber="23442" sLine="0"/>
</group>
<blacklist></blacklist>
</contactData>


Phonebook

Sample Phonebook.xml I've written a really basic excel macro to export from excel to this xml format, let me know if you need it.

<?xml version="1.0" encoding="UTF-8"?>
<SnomIPPhoneDirectory clearlight="true">
<Title>Phonelist</Title>
<Prompt>Prompt</Prompt>
<DirectoryEntry>
<Name>Entry One</Name>
<Telephone>02987654321</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Entry Two</Name>
<Telephone>02123456789</Telephone>
</DirectoryEntry>
</SnomIPPhoneDirectory>


Remote phonebook

Using the following php script, you can import on T28 the Asterisk phonebook. This was tested with AsteriskNow! a.k.a. FreePbx 2.7, you need the Phonebook module installed.

<?php
print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
print("<MyIPPhoneDirectory clearlight=\"true\">\n");
print("<Prompt>Prompt</Prompt>\n");
set_time_limit(5);
system("/usr/sbin/asterisk -rx \"database show cidname\" > /tmp/asterisk_cid-list.txt");
$fd=fopen("/tmp/asterisk_cid-list.txt","r");
while ($line=fgets($fd,1000))
{
if (strpos ($line,"cidname") == true) {
$nome=trim(substr($line,strpos($line,":")+1));
$numero=trim(substr($line,strpos($line,"cidname")+8,strlen($line)-strpos($line,":")-1));
print("<DirectoryEntry>\n");
print("<Name>");
print($nome);
print("</Name>\n");
print("<Telephone>");
print($numero);
print("</Telephone>\n");
print("</DirectoryEntry>\n");
}
}
fclose ($fd);
print("</MyIPPhoneDirectory>");
?>

Save the file with the name you want (e.g. T28.php) under /var/www/html (or a suitable sub-directory), and chown to asterisk.
On the T28 web configuration page, go to "Contacts" -> "Remote phone book" and add http://<asterisk IP>/T28.php as phonebook URL, give it a suitable name under Phone book name, and Confirm. Then you'll have the phonebook dynamically loaded onto the T28 phone.

The script was taken from GXP-2000 XML Phonebook page and modified for T28.

Where to Buy





Remote phonebook using T28P with trixbox 2.8.0.4


A slight modification is necessary if you plan to use remote phonebook in trixbox 2.8.0.4. The rest of instructions are the same from the item above.

<?php
print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
print("<MyIPPhoneDirectory clearlight=\"true\">\n");
print("<Prompt>Prompt</Prompt>\n");
set_time_limit(5);
system("/usr/sbin/asterisk -rx \"database show AMPUSER\" > /tmp/asterisk_cid-list.txt");
$fd=fopen("/tmp/asterisk_cid-list.txt","r");
while ($line=fgets($fd,1000))
{
if (strpos ($line,"cidname") == true) {
$nome=trim(substr($line,strpos($line,":")+1));
print("<DirectoryEntry>\n");
print("<Name>");
print($nome);
print("</Name>\n");
}
if (strpos ($line,"cidnum") == true) {
$numero=trim(substr($line,strpos($line,":")+1));
print("<Telephone>");
print($numero);
print("</Telephone>\n");
print("</DirectoryEntry>\n");
}
}
fclose ($fd);
print("</MyIPPhoneDirectory>");
?>


Save the file with the name you want (e.g. T28.php) under /var/www/html (or a suitable sub-directory), and chown to asterisk.
On the T28 web configuration page, go to "Contacts" -> "Remote phone book" and add http://<asterisk IP>/T28.php as phonebook URL, give it a suitable name under Phone book name, and Confirm. Then you'll have the phonebook dynamically loaded onto the T28 phone.

Auto-provisioning


Some notes on auto-provisioning these phones since the phones are great, but the documentation is nothing short of terrible. I had a lot of trouble finding any documentation so thought I'd share what I've worked out or scraped together. I'm not very good at documentation so feel free to clean this up for me.

In the config examples below, the comments starting with # are what came in the samples I got from a vendor who I believe got them from Yealink. They are not very clear as I don't believe english is the developers first language, if I've been able to make them less ambiguous I've expanded them with a double comment ##.

Configure your dhcp server with the boot/tftp server address, option 66 in windows dhcp server or add something like the following on a *nix box to your dhcpd.conf:

option tftp-server-name "x.x.x.x";
next-server x.x.x.x;

File names on your tftp server, should all be in lower case (assuming its a *nix server, windows tftp server probably wont matter). The phone can be configured with two files on the tftp server. One with the <mac>.cfg and another one called y000000000000.cfg

You should specify all options that will be common to all phones being provisioned in the y000000000000.cfg. My <mac>.cfg only has the "Account" section specified, you can however specify any or all options in either file, if an option is specified in both, it seems to give priority to the <mac>.cfg as you would expect.

You will notice that alot of configuration sections contain an option for 'path' for example:

[ RemotePhoneBook1 ]
path = /yealink/config/Setting/Setting.cfg
URL = http://x.x.x.x/Phonebook1.xml
Name = Phonebook Name

This is where the info specified in this section will be stored on the phone, as the documentation is relatively poor for these phones this comes in handy, as you can set options in the web interface and then telnet into the phone and see how the configuration is saved. The configuration information is stored in the mac or y000000000000.cfg the same way as the phone stores it in the internal configuration file, as in this example above the 'Setting.cfg'. As such if one didn't know the options for "RemotePhoneBook1", you put your phonebook info in the web interface and then telnet in and copy the "RemotePhoneBook1" section out of /yealink/config/Setting/Setting.cfg and put it in the provisioning files to auto provision the phones.

Samples of the phonebook / contact XML's are all the way at the bottom.

Sample Config this is my <mac>.cfg:



[ account ]
path=/yealink/config/voip/sipAccount0.cfg
Enable = 1
Label = 12345
DisplayName = 12345
UserName = 12345
AuthName = 12345
password = Secret
SIPServerHost = my.sip.host.com
SIPServerPort = 5060
SIPListenRandom = 0
SIPListenPort = 5060
Expire = 3600
UseOutboundProxy = 1
OutboundHost = my.sip.host.com
OutboundPort = 5060
EnableEncrypt = 0
BakOutboundHost =
BakOutboundPort = 5060
EnableSTUN = 0
proxy-require =
ptime = 0
srtp_encryption = 0
srtp_encryption_algorithm = 0
BackupSIPServerHost =
BackupSIPServerPort =
Enable 100Rel = 0
precondition = 0
SubsribeRegister = 1
CIDSource = 0
EnableSessionTimer = 1
SessionExpires = 3600
SessionRefresher = 0
EnableUserEqualPhone = 0
BLFList_URI =
SubsribeMWI = 0
AnonymousCall = 0
RejectAnonymousCall = 0



This is my y000000000000.cfg



[ autop_mode ]
path = /yealink/config/Setting/autop.cfg
#disable:0; power on:1; repeatly:4; weekly:5;
## Not sure what 2,3 and 6 do, worked out that 7 is power on + weekly
#schedule_min is the interval of time to update, the minimum value is 1
#schedule_time and schedule_time_end are the time for weekly update
#schedule_dayofweek is the setting for weekly choosen, Sunday:0; Monday:1; Tuesday:2;...if you want to update every sunday and Saturday, you could set it to 06
## My example below will update every night between 1 and 2 am, also when powered on. I'm not 100% sure, but I think the schedule_min is only used for
## option 4, repeatly
mode = 7
schedule_min = 60
schedule_time = 1:00
schedule_time_end = 2:00
schedule_dayofweek = 0123456

[ autoprovision ]
## My tftp server address, username and password are not needed if using tftp, you can use www or ftp with these options
## If you want to provision with www or ftp I think you just put http:// or ftp:// in front of the address but I've never tried it
path = /yealink/config/Setting/autop.cfg
server_address = 10.1.1.1
#user =
#password =

[ AES_KEY ]
path = /yealink/config/Setting/autop.cfg
#aes_key_16 =

[ ringtone ]
path = /tmp/download.cfg
#to specify a ringtone for update
#the format of the ringtone must be WAV
#an example for a right server_address:ftp://wxf:123456@192.168.0.132:21/Ring20.wav
#server_address =

[ Lang ]
path = /tmp/download.cfg
#to specify a language for update
#an example for a right server_address:http://192.168.0.132:9/file_provision/lang+English.txt
#server_address =

[ ContactList ]
path = /tmp/download.cfg
#to specify a XML phonebook for update
#an example for a right server_address:http://192.168.0.132:9/file_provision/contactData1.exml
## Note you MUST call the file contactData1.xml on your web/ftp server as well, it is case sensitive and you phone wont provision if you call it ANYTHING else
## This file will be downloaded and stored locally on the phone every time it is provisioned (ie over night), this is useful as it will match incoming caller id number to a name if it is found
## in the contact list.
server_address = http://10.1.1.1/contactData1.xml

[ firmware ]
path = /tmp/download.cfg
#to specify a firmware for update
#server_type can be tftp,ftp or http
#if the server requires authentication,the login_name and login_pswd will be used.
server_type = tftp
server_ip = 10.1.1.1
server_port = 69
#login_name =
#login_pswd =
#http_url =
firmware_name = name.rom

[ RemotePhoneBook0 ]
path = /yealink/config/Setting/Setting.cfg
## This xml can be called whatever you like, it will not be downloaded to the phone, but will be loaded from the web server when someone looks up the list on the phone.
URL = http://10.1.1.1/Phonebook0.xml
Name = Mobiles

[ RemotePhoneBook1 ]
path = /yealink/config/Setting/Setting.cfg
URL = http://10.1.1.1/Phonebook1.xml
Name = Services

[ Time ]
path = /yealink/config/Setting/Setting.cfg
TimeZone = +10
TimeServer1 = 10.1.1.1
TimeServer2 = 10.0.0.2
Interval = 1000
#Set daylight saving time.SummerTime 0 means disable,1 means enable
SummerTime = 0
TimeZoneInstead = 8
StartTime =
EndTime =

## Enable the codecs you want below
[ audio0 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 1
PayloadType = PCMU
priority = 1
rtpmap = 0

[ audio1 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 1
PayloadType = PCMA
priority = 2
rtpmap = 8

[ audio2 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 0
PayloadType = G723_53
priority = 0
rtpmap = 4

[ audio3 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 0
PayloadType = G723_63
priority = 0
rtpmap = 4

[ audio4 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 1
PayloadType = G729
priority = 3
rtpmap = 18

[ audio5 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 1
PayloadType = G722
priority = 0
rtpmap = 9

[ audio6 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 1
PayloadType = iLBC
priority = 3
rtpmap = 97

[ audio7 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 0
PayloadType = G726-16
priority = 0
rtpmap = 112

[ audio8 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 0
PayloadType = G726-24
priority = 0
rtpmap = 102

[ audio9 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 0
PayloadType = G726-32
priority = 0
rtpmap = 2

[ audio10 ]
path=/yealink/config/voip/sipAccount0.cfg
enable = 0
PayloadType = G726-40
priority = 0
rtpmap = 104

[ DTMF ]
path=/yealink/config/voip/sipAccount0.cfg
DTMFInbandTransfer = 1
DTMFPayload = 101
DTMFToneLen = 300
InbandDtmfVolume = 0
RxLatency = 20
CPTToneCountry = 12
G726CodeWord = 1
InfoType = 0

[ NAT ]
path=/yealink/config/voip/sipAccount0.cfg
MaxRTPPort = 11800
MinRTPPort = 11780
NATTraversal = 0
STUNServer = 0.0.0.0
STUNPort = 10000
EnableUDPUpdate = 1
UDPUpdateTime = 30
rport = 0

[ ADVANCED ]
path=/yealink/config/voip/sipAccount0.cfg
default_t1 = 0.5
default_t2 = 4
default_t4 = 5

[blf]
path=/yealink/config/voip/sipAccount0.cfg
SubscribePeriod = 3600

[ Message ]
path=/yealink/config/Features/Message.cfg
#Set voicemail number for each account
VoiceNumber0 = 99999
VoiceNumber1 =
VoiceNumber2 =
VoiceNumber3 =
VoiceNumber4 =
VoiceNumber5 =

[ Features ]
path=/yealink/config/Features/Phone.cfg
DND = 0
Call_Waiting = 1
EnableHotline = 0
Callpickup = 1
Hotlinenumber =

[ AutoAnswer ]
path=/yealink/config/Features/Phone.cfg
Enable = 0

[ PoundSend ]
path=/yealink/config/Features/Phone.cfg
#Set # key or * key as send. #:1 and *:2
Enable = 1

[ WAN ]
path=/yealink/config/Network/Network.cfg
#WANType:0:DHCP,1:PPPoE,2:StaticIP
WANType = 0
#WANStaticIP =
#WANSubnetMask =
#WANDefaultGateway =

[ DNS ]
path=/yealink/config/Network/Network.cfg
#PrimaryDNS =
#SecondaryDNS =

[ PPPoE ]
path=/yealink/config/Network/Network.cfg
PPPoEUser =
PPPoEPWD =

[ LAN ]
path=/yealink/config/Network/Network.cfg
#LANTYPE:0:Router, 1:Bridge
LANTYPE = 1

[ SYSLOG ]
path=/yealink/config/Network/Network.cfg
#specify the server for syslog storage
SyslogdIP =

[ RTPPORT ]
path=/yealink/config/Network/Network.cfg
MaxRTPPort = 11800
MinRTPPort = 11780

[ QOS ]
path=/yealink/config/Network/Network.cfg
SIGNALTOS = 40
RTPTOS = 40

[ VLAN ]
path=/yealink/config/Network/Network.cfg
#ISVLAN,VID and USRPRIORITY are used for VLAN on LAN port
#PC_PORT_VLAN_ENABLE,PC_PORT_VID and PC_PORT_PRIORITY are used for PC port
ISVLAN = 0
VID =
USRPRIORITY =
PC_PORT_VLAN_ENABLE =
PC_PORT_VID =
PC_PORT_PRIORITY =

[ snmp ]
path=/yealink/config/Network/Network.cfg
port = 0
trusted_address =

[ Profile ]
path=/yealink/config/vpm.cfg
VAD = 0
CNG = 1
GPHS = 12
ECHO = 1

[ Jitter ]
path=/yealink/config/vpm.cfg
Adaptive = 1
Min = 0
Max = 300
Nominal = 120

[ SecurityRTP ]
path=/yealink/config/vpm.cfg
Enable = 0

[ Country ]
path=/yealink/config/voip/tone.ini
#The tones are defined by countries.If Country = Custom,the customized values will be used.
Country = Australia

[ Tone Param ]
path=/yealink/config/voip/tone.ini
dial =
ring =
busy =
congestion =
callwaiting =
dialrecall =
record =
info =
stutter =
message =
autoanswer =

[ Default ]
path=/yealink/config/voip/tone.ini
dial = 1
ring = 1
busy = 1
congestion = 1
callwaiting = 1
dialrecall = 1
record = 1
info = 1
stutter = 1
message = 1
autoanswer = 1

[ PhoneSetting ]
path = /yealink/config/Setting/Setting.cfg
BacklightTime = 30
Manual_Time = 0
BackLight = 2
Contrast = 2
InterDigitTime = 4
FlashHookTimer = 300
Lock = 0
#the range of the volume is 1~15

[ Lang ]
path = /yealink/config/Setting/Setting.cfg
#ActiveWebLanguage is the setting of language on LCD.
#WebLanguage is the setting of language on web management
ActiveWebLanguage =
WebLanguage =

[ AlertInfo0 ]
path = /yealink/config/Setting/Setting.cfg
Text =
Ringer =

[ AlertInfo1 ]
path = /yealink/config/Setting/Setting.cfg
Text =
Ringer =

[ AlertInfo2 ]
path = /yealink/config/Setting/Setting.cfg
Text =
Ringer =

[ AlertInfo3 ]
path = /yealink/config/Setting/Setting.cfg
Text =
Ringer =

[ AlertInfo4 ]
path = /yealink/config/Setting/Setting.cfg
Text =
Ringer =

[ AlertInfo5 ]
path = /yealink/config/Setting/Setting.cfg
Text =
Ringer =

[ AlertInfo6 ]
path = /yealink/config/Setting/Setting.cfg
Text =
Ringer =

[ AlertInfo7 ]
path = /yealink/config/Setting/Setting.cfg
Text =
Ringer =

[ AlertInfo8 ]
path = /yealink/config/Setting/Setting.cfg
Text =
Ringer =

[ AlertInfo9 ]
path = /yealink/config/Setting/Setting.cfg
Text =
Ringer =

[ BlockOut ]
path = /yealink/config/DialRule/BlockOut.cfg
#Set Block Out number.
1 =
2 =
3 =
4 =
5 =
6 =
7 =
8 =
9 =
10 =

[ AreaCode ]
path = /yealink/config/DialRule/areacode.cfg
code =
minlen =
maxlen =

[ memory1 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Line means the line taken in use.0 stands for auto,1 stands for line1...except for one condition when type is blf(DKtype:16),0 stands for line1,1
stands for line2...
#DKtype defines the type of the key,ranging from 0 to 17
#DKtype 0:N/A 1:Conference 2:Forward 3:Transfer
#DKtype 4:Hold 5:DND 6:Redial 7:Call Return
#DKtype 8:SMS 9:Call Pickup 10:Call Park 11:Custom
#DKtype 12:Voicemail 13:SpeedDial 14:Intercom 15:Line(for line key only)
#DKtype 16:BLF 17:URL
#Set Memory key1
Line = 0
type = 0
Value =
Callpickup =
DKtype = 16
PickupValue =

[ memory2 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set Memory key2
Line = 0
type = blf
Value = 901
Callpickup =
DKtype = 16
PickupValue = 901

[ memory3 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set Memory key3
Line = 0
type = blf
Value = 902
Callpickup =
DKtype = 16
PickupValue = 902

[ memory4 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set Memory key4
Line = 0
type = blf
Value = 903
Callpickup =
DKtype = 16
PickupValue = 903

[ memory5 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set Memory key5
Line = 0
type = blf
Value = 904
Callpickup =
DKtype = 16
PickupValue = 904

[ memory6 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set Memory key6
Line =
type =
Value =
Callpickup =
DKtype = 0
PickupValue =

[ memory7 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set Memory key7
Line =
type =
Value =
Callpickup =
DKtype = 0
PickupValue =

[ memory8 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set Memory key8
Line =
type =
Value =
Callpickup =
DKtype = 0
PickupValue =

[ memory9 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set Memory key9
Line =
type =
Value =
Callpickup =
DKtype = 0
PickupValue =

[ memory10 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set Memory key10
Line = 1
type = 1
Value = 900
Callpickup =
DKtype = 3
PickupValue =

[ memory11 ]
path = /yealink/config/vpPhone/vpPhone.ini
#from memory11 to memory 16 are settings for 6 line keys of T28
#DKtype value is the same as it is defined for memory keys.Except for one that the line keys cannot be set to blf(DKtype:16).
#Set line key1
DKtype = 15
Line = 1
type =
Value =
KEY_MODE = Asterisk
HotNumber =
HotLineId = 1
Callpickup =
IntercomId = -1
IntercomNumber =
PickupValue =

[ memory12 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set line key2
DKtype = 0
Line = 0
type =
Value =
KEY_MODE = Asterisk
HotNumber =
HotLineId = 1
Callpickup =
IntercomId = -1
IntercomNumber =
PickupValue =

[ memory13 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set line key3
DKtype = 6
Line = 0
Value =
KEY_MODE = Asterisk
HotNumber =
HotLineId = 1
Callpickup =
IntercomId = -1
IntercomNumber =
PickupValue =

[ memory14 ]
path = /yealink/config/vpPhone/vpPhone.ini
DKtype = 2
Line = 0
Value =
KEY_MODE = Asterisk
HotNumber =
HotLineId = 1
Callpickup =
IntercomId = -1
IntercomNumber =
PickupValue =

[ memory15 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set line key5
DKtype = 9
Line = 0
Value = *8
KEY_MODE = Asterisk
HotNumber =
HotLineId = 1
Callpickup =
IntercomId = -1
IntercomNumber =
PickupValue =

[ memory16 ]
path = /yealink/config/vpPhone/vpPhone.ini
#Set line key6
DKtype = 12
Line = 0
type =
Value = 99999
KEY_MODE = Asterisk
HotNumber =
HotLineId = 1
Callpickup =
IntercomId = -1
IntercomNumber =
PickupValue =



Sample contactData1.xml I've written a really basic excel macro to export from excel to this xml format, let me know if you need it.


<contactData>
<group>
<contact sDisplayName="Person One" sOfficeNumber="13241" sMobilNumber="1234893534" sOtherNumber="84735" sLine="0"/>
<contact sDisplayName="Person Two" sOfficeNumber="12312" sMobilNumber="2938920385" sOtherNumber="23442" sLine="0"/>
</group>
<blacklist></blacklist>
</contactData>


Phonebook

Sample Phonebook.xml I've written a really basic excel macro to export from excel to this xml format, let me know if you need it.

<?xml version="1.0" encoding="UTF-8"?>
<SnomIPPhoneDirectory clearlight="true">
<Title>Phonelist</Title>
<Prompt>Prompt</Prompt>
<DirectoryEntry>
<Name>Entry One</Name>
<Telephone>02987654321</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Entry Two</Name>
<Telephone>02123456789</Telephone>
</DirectoryEntry>
</SnomIPPhoneDirectory>


Remote phonebook

Using the following php script, you can import on T28 the Asterisk phonebook. This was tested with AsteriskNow! a.k.a. FreePbx 2.7, you need the Phonebook module installed.

<?php
print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
print("<MyIPPhoneDirectory clearlight=\"true\">\n");
print("<Prompt>Prompt</Prompt>\n");
set_time_limit(5);
system("/usr/sbin/asterisk -rx \"database show cidname\" > /tmp/asterisk_cid-list.txt");
$fd=fopen("/tmp/asterisk_cid-list.txt","r");
while ($line=fgets($fd,1000))
{
if (strpos ($line,"cidname") == true) {
$nome=trim(substr($line,strpos($line,":")+1));
$numero=trim(substr($line,strpos($line,"cidname")+8,strlen($line)-strpos($line,":")-1));
print("<DirectoryEntry>\n");
print("<Name>");
print($nome);
print("</Name>\n");
print("<Telephone>");
print($numero);
print("</Telephone>\n");
print("</DirectoryEntry>\n");
}
}
fclose ($fd);
print("</MyIPPhoneDirectory>");
?>

Save the file with the name you want (e.g. T28.php) under /var/www/html (or a suitable sub-directory), and chown to asterisk.
On the T28 web configuration page, go to "Contacts" -> "Remote phone book" and add http://<asterisk IP>/T28.php as phonebook URL, give it a suitable name under Phone book name, and Confirm. Then you'll have the phonebook dynamically loaded onto the T28 phone.

The script was taken from GXP-2000 XML Phonebook page and modified for T28.

Where to Buy





Remote phonebook using T28P with trixbox 2.8.0.4


A slight modification is necessary if you plan to use remote phonebook in trixbox 2.8.0.4. The rest of instructions are the same from the item above.

<?php
print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
print("<MyIPPhoneDirectory clearlight=\"true\">\n");
print("<Prompt>Prompt</Prompt>\n");
set_time_limit(5);
system("/usr/sbin/asterisk -rx \"database show AMPUSER\" > /tmp/asterisk_cid-list.txt");
$fd=fopen("/tmp/asterisk_cid-list.txt","r");
while ($line=fgets($fd,1000))
{
if (strpos ($line,"cidname") == true) {
$nome=trim(substr($line,strpos($line,":")+1));
print("<DirectoryEntry>\n");
print("<Name>");
print($nome);
print("</Name>\n");
}
if (strpos ($line,"cidnum") == true) {
$numero=trim(substr($line,strpos($line,":")+1));
print("<Telephone>");
print($numero);
print("</Telephone>\n");
print("</DirectoryEntry>\n");
}
}
fclose ($fd);
print("</MyIPPhoneDirectory>");
?>


Save the file with the name you want (e.g. T28.php) under /var/www/html (or a suitable sub-directory), and chown to asterisk.
On the T28 web configuration page, go to "Contacts" -> "Remote phone book" and add http://<asterisk IP>/T28.php as phonebook URL, give it a suitable name under Phone book name, and Confirm. Then you'll have the phonebook dynamically loaded onto the T28 phone.
Created by: Yealink, Last modification: Tue 20 of Jan, 2015 (11:06 UTC) by voxsys
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+