Quantcast
Channel: IP АТС Asterisk
Viewing all 1135 articles
Browse latest View live

FreePBX 12 System Recordings

$
0
0

FreePBX 12 System Recordings

Модуль используется для записи или загрузки системных голосовых сообщений и последующего использования в других модулях.

  • Admin
    • System Recordings

Запись голосовых сообщений

Вариант 1: Запись нового системного сообщения с использованием веб-интерфейса и телефона.

  • Запись
    • Введите номер телефона с которого будет производится запись и нажмите Go.
    • Наберите "*77" и наговорите сообщение после тонального сигнала.
    • По окончанию записи нажмите "#".
    • Для прослушивания сообщения нажмите "1", чтобы перезаписать сообщение нажмите "*".
    • Если вы удовлетворены записанным сообщением, повесьте трубку.
    • Чтобы прослушать записанное сообщение ещё раз, наберите "*99".
    • В поле Name this Recording:введите название сообщения. Например "test".
    • Нажмите Saveдля сохранения.

Теперь в правом верхнем углу появится ссылка на записанное сообщение.

:!:Файл хранится в «/var/lib/asterisk/sounds/custom/(recording-name).wav»

Вариант 2: Загрузка файла.

Запишите .wav файл с помощью Windows Sound Recorder или Audacity.
Файл должен быть следующего формата: PCM Encoded, 16 Bits, at 8000Hz, mono.
В веб интерфейсе, выберете «Browse…» и загрузите файл.
В разделе Name введите имя сообщения (без пробелов, eg. «main_general_greeting») и кликните Save.

Редактирование созданного сообщения и кода доступа к нему

  • в правом верхнем углу кликните на требуемое сообщение.

  • Cnange Name: Редактировать имя.
  • Descriptive Name: Редактировать описание.
  • Link to Feature Code: Включить код доступа для перезаписи голосового сообщения с телефона.
  • Feature Code Password: Пароль для защиты кода доступа для перезаписи сообщения с телефона.

Использование встроенных сообщений - Built-In Recordings

Эта опция позволяет создать сообщение используя предустановленные голосовые файлы Asterisk

  • Кликните Built-In Recordings
  • Выберете из выпадающего списка требуемый голосовой файл. Например "en/tt-monkeys".
  • Нажмите Go
  • В поле Change Nameвведите новое имя (обязательно). Например "test-monkeys"
  • Save

Теперь выбранный звуковой файл доступен для использования в модулях FreePBX.

FreePBX


FreePBX 13 входящая маршрутизация

$
0
0

FreePBX 13 входящая маршрутизация

Inbound Routes. Данный модуль обрабатывает входящие вызовы, получаемые из стандартных контекстов FreePBX - [from-trunk] и [from-pstn]. Вызовы могут распределяться по DID (Direct Inward Dialing) прямому входящему набору, или по CALLERID вызывающего абонента. В качестве наведенияуказываются модули FreePBX.
Ключевые (обязательные к заполнению) опции:
Description | DID Number | Set Destination

General: Add Incoming Route

freepbx13-inbound-routes-general

Description

Описание маршрута для отображения в модулях FreePBX. Используйте говорящее название, чтобы вам было легче идентифицировать маршрут среди других.

DID Number

Назначьте вызываемый DID номер.
Оставьте пустым, для приема вызовов с любым DID.
Также возможно задать шаблоны: (например: _2[345]XXXXX). Это ключевое поле, оно определяет совпадение с идентификатором вызываемого абонента, в транке.

CallerID Number

Назначение номера CallerID вызывающего абонента.
Если задано, вызовы будут приниматься
только с указанного CallerID. Оставьте пустым, если не требуется.

CID Priority Route

Определяет маршрут основываясь ТОЛЬКО на Caller ID, без указания номера DID.
Если включено, то все звонки с этого Caller ID будут направлены в этот маршрут,
даже если существуют маршруты с совпадающим DID.

YesNo

ALERT_INFO

Данное поле подставляется текст в заголовок SIP ALERT_INFO. Используется для маркировки вызова на SIP телефоне.

CID name prefix

Добавляет указанный префикс к Caller ID (name). т.е.:
Если добавлено «Sales:», а вызов поступает от VPupkin
отобразится «Sales:VPupkin» когда поступает вызов.

Music On Hold

Установите Музыку на удержании специфичную для данного маршрута.

Set Destination

Выберите пункт наведения из выпадающего списка модулей FreePBX

Advanced

Signal RINGING(Посылка КПВ)

Многие устройства или провайдеры требуют посылать RINGING (КПВ) до того, как получено ANSWER.

YesNo

Reject Reverse Charges

Поддержка запроса вызова за счет вызываемой стороны в PRI канале

YesNo

Pause Before Answer

Пауза перед ответом и направлением вызова по назначению. Это бесполезно на цифровых, но может пригодиться на аналоговых линиях

Privacy

freepbx13-inbound-routes-privacy

Privacy Manager

Если не получено CallerID, Privacy Manager потребует ввести номер вызывающего абонента.<br> Если Call Screening у абонента включен, звонящему будет предложено назвать свое имя.

Other

freepbx13-inbound-routes-other.png

Call Recording

Записывать входящие вызовы. Если выбрано 'never' запись по запросу (on demand) недоступна.

ForceYesDon't CareNoNever

  • Forceи Neverимеют приоритет над "Yes" или "No".
  • Yesи Noимеют равный приоритет.
    • Если несколько Yesили Noвстречаются на пути вызова, самая первая установка имеет приоритет над последующими.
    • Последующие Yesили Noне переопределяют заданные ранее "Yes" или "No".
  • Forceи Neverвсегда переопределяют установки заданные ранее.
    • Forceи Neverвсегда переопределяют друг друга. Т.е. если сначала было "Force", а затем "Never" вызов не будет записан.
    • Forceили Neverпереопределяют "Yes" или "No".
    • Yesи Noне переопределяют "Force" или "Never".
  • Don't Careне затрагивает заданные ранее установки.

см. также Extensions - Recording Options

Параметры FreePBX 12

Fax Destination

куда направить вызов, если опознан сигнал факса.

FreePBX

Asterisk CLI - интерфейс командной строки

$
0
0

Asterisk CLI - интерфейс командной строки

cli sip core reload restart show peers registry

asterisk -vvvvvv

Командная строка является мощным инструментом для мониторинга и управления работой Asterisk PBX. При запуске asterisk с флагом -r или -c, появиться следующие приглашение:

# asterisk   -vvvr
*CLI> 

Количество 'v' в параметрах задает порог отображаемой информации в консоли для данного подключения. Комбинация -vvvr задаст verbose level 8. Интерфейс командной строки Asterisk имеет свой конфиг - cli.conf

Введите core show helpи нажмите enter для получения полного списка команд:

Командная строка поддерживает вывод доступных команд по неполному вводу нажатием 'Tab':

Для получения дополнительной информации о конкретной команде, вы можете ввести core show help<command>. Например:

*CLI> core show help manager
                manager reload Reload manager configurations
    manager set debug [on|off] Show, enable, disable debugging of the manager code
          manager show command Show a manager interface command
         manager show commands List manager interface commands
        manager show connected List connected manager interface users
           manager show eventq List manager interface queued events
         manager show settings Show manager global settings
            manager show users List configured manager users
             manager show user Display information on a specific manager user
*CLI> 

Вот некоторые полезные команды:

Core

  • core set verbose <0-9> - порог отображаемой информации.
  • core reload - перечитать все конфиги
  • core restart gracefullyперезагрузить Asterisk по завершению всех текущих вызовов (свободные каналы закрываются)
  • core restart now Restart перезагрузить Asterisk немедленно
  • core restart when convenientперезагрузить Asterisk если нет разговоров

SIP

  • sip show peersпоказать существующие SIP екстеншены и их статус
  • sip show peer 100 отображает информацию о конкретном SIP екстеншене
  • sip show registryотображает состояние зарегистрированных транков

PJSIP

  • pjsip set logger {on|off|host} – Enable/Disable PJSIP Logger Output
  • pjsip show aors– Show PJSIP Aors
   Aor:  <Aor..............................................>  <MaxContact>
    Contact:  <Aor/ContactUri.................................>  <Status....>  <RTT(ms)..>
 =========================================================================================

      Aor:  1000                                                 1
    Contact:  1000/sip:1000@192.168.1.32:5060;transport=UDP;rin  Avail               9.645

      Aor:  1001                                                 1
  • pjsip show aor– Show PJSIP Aor
localhost*CLI> pjsip show aor 1000

      Aor:  <Aor..............................................>  <MaxContact>
    Contact:  <Aor/ContactUri.................................>  <Status....>  <RTT(ms)..>
 =========================================================================================

      Aor:  1000                                                 1
    Contact:  1000/sip:1000@192.168.1.32:5060;transport=UDP;rin  Avail              13.017


 ParameterName        : ParameterValue
 ==========================================================================================
 authenticate_qualify : false
 contact              : sip:1000@192.168.1.32:5060;transport=UDP;rinstance=56471484e9cd2c68
 default_expiration   : 3600
 mailboxes            :
 max_contacts         : 1
 maximum_expiration   : 7200
 minimum_expiration   : 60
 outbound_proxy       :
 qualify_frequency    : 60
 remove_existing      : true
 support_path         : false

DAHDI

  • dahdi show statusсостояние портов dahdi
  • dahdi show channelsпоказать существующие каналы
    • pri show spansотобразить объекты pri и их статус.

Кодеки

  • core show translation recalcрасчет перекодировки кодеков

core show translation recalc

core show translation recalc

*CLI> core show translation recalc
         Recalculating Codec Translation (number of sample seconds: 1)

         Translation times between formats (in microseconds) for one second of data
          Source Format (Rows) Destination Format (Columns)

            gsm  ulaw  alaw  g726 adpcm  slin lpc10  ilbc g726aal2  g722 slin16 testlaw slin12 slin24 slin32 slin44 slin48 slin96 slin192
      gsm     - 15000 15000 15000 15000  9000 15000 15000    15000 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000
     ulaw 15000     -  9150 15000 15000  9000 15000 15000    15000 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000
     alaw 15000  9150     - 15000 15000  9000 15000 15000    15000 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000
     g726 15000 15000 15000     - 15000  9000 15000 15000    15000 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000
    adpcm 15000 15000 15000 15000     -  9000 15000 15000    15000 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000
     slin  6000  6000  6000  6000  6000     -  6000  6000     6000  8250   8000    6000   8000   8000   8000   8000   8000   8000    8000
    lpc10 15000 15000 15000 15000 15000  9000     - 15000    15000 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000
     ilbc 15000 15000 15000 15000 15000  9000 15000     -    15000 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000
 g726aal2 15000 15000 15000 15000 15000  9000 15000 15000        - 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000
     g722 15600 15600 15600 15600 15600  9600 15600 15600    15600     -   9000   15600  17500  17000  17000  17000  17000  17000   17000
   slin16 14500 14500 14500 14500 14500  8500 14500 14500    14500  6000      -   14500   8500   8000   8000   8000   8000   8000    8000
  testlaw 15000 15000 15000 15000 15000  9000 15000 15000    15000 17250  17000       -  17000  17000  17000  17000  17000  17000   17000
   slin12 14500 14500 14500 14500 14500  8500 14500 14500    14500 14000   8000   14500      -   8000   8000   8000   8000   8000    8000
   slin24 14500 14500 14500 14500 14500  8500 14500 14500    14500 14500   8500   14500   8500      -   8000   8000   8000   8000    8000
   slin32 14500 14500 14500 14500 14500  8500 14500 14500    14500 14500   8500   14500   8500   8500      -   8000   8000   8000    8000
   slin44 14500 14500 14500 14500 14500  8500 14500 14500    14500 14500   8500   14500   8500   8500   8500      -   8000   8000    8000
   slin48 14500 14500 14500 14500 14500  8500 14500 14500    14500 14500   8500   14500   8500   8500   8500   8500      -   8000    8000
   slin96 14500 14500 14500 14500 14500  8500 14500 14500    14500 14500   8500   14500   8500   8500   8500   8500   8500      -    8000
  slin192 14500 14500 14500 14500 14500  8500 14500 14500    14500 14500   8500   14500   8500   8500   8500   8500   8500   8500       -

ещё

  • module show like mysqlотобразить загруженные модули содержащие в названии mysql
  • pri set debug {on|off} span 1 Enables PRI debugging on a span
  • rtp set debug {on|off|ip} Enable/Disable RTP debugging

Простые CLI приемы

Есть несколько трюков, которые помогут вам в интерфейсе командной строки Asterisk. Очень удобно завершение неполного ввода клавишей TAB. Если вы введете начало команды и нажмите клавишу Tab, Asterisk попытается завершить имя команды, или покажет возможные команды, которые начинаются с буквы, которые Вы ввели. Например, введите 'co', а затем нажмите клавишу Tab.

 localhost*CLI> co
 confbridge  config      core
 localhost*CLI> co

Теперь наберите 'cor', и нажмите TAB снова. На этот раз Asterisk завершит слово, т.к. 'core' является единственной командой, которая начинается с 'cor'. Этот трюк также работает с под-командами. Например, наберите 'core show' и нажмите TAB. (Возможно, вам придется дважды нажать вкладку, если вы не поставили пробел после слова 'show'.) Asterisk покажет вам все под-команды.

localhost*CLI> core show [Tab]
application     applications    calls           channel         channels
channeltype     channeltypes    codec           codecs          config
file            function        functions       hanguphandlers  help
hint            hints           image           license         profile
settings        sound           sounds          switches        sysinfo
taskprocessors  threads         translation     uptime          version
warranty
localhost*CLI> core show

Повторение предыдущих команд.

Для просмотра ранее введенных команд, нажмите стрелочку вверх, таким образом можно пролистать всю историю назад и вперед.

Run Linux Shell Commands from The Asterisk CLI

Восклицательный знак перед командой позволяет предавать команды оболочке Linux.

 localhost*CLI> !whoami
 root
 localhost*CLI>

Asterisk -rx

Иногда удобно дать команду, или получить информацию, не подключаясь непосредственно к консоли. Для этого используется ключ '-x'.
Например, получить список sip пиров:

# asterisk -rx 'sip show peers'

Команда может заключаться, как в одинарные, так и в двойные кавычки.

Также можно отфильтровать полученные данные командой grep:

 # asterisk -rx "sip show peers" | grep unreachebale

logger.conf

Консоль является объектом модуля логов в Asterisk. Что должно отображаться в консоли при подключении, настраивается в конфиге logger.conf

Asterisk: настройка и установка

IPMatika Yealink - Auto Provisioning - Hot Desking

$
0
0

IPMatika Yealink - Auto Provisioning - Hot Desking

Рассмотрим простой пример организации VoIP АТС с реализацией функций:
Auto Provisionig - в нашем примере, загрузка настроек телефона с TFTP сервера.
Hot Desking - за телефонными аппаратами не закреплен конкретный номер. Сотрудник нажимает запрограммированную кнопку на телефоне, вводит логин/пароль и авторизуется на своем SIP аккаунте.

Данная инструкция ориентирована на использование линейки VoIP телефонов Yealink(IPmatika) SIP-T2/T19P/T4

Список моделей.

  • Yealink SIP-T28P
  • Yealink SIP-T26P
  • Yealink SIP-T22P
  • Yealink SIP-T21P
  • Yealink SIP-T20P
  • Yealink SIP-T19P
  • Yealink SIP-T46G
  • Yealink SIP-T42G
  • Yealink SIP-T41P

Формат имени конфигурационного файла общих настроек (common) для каждой модели.

Phone Model Common CFG File
SIP-T28P y000000000000.cfg
SIP-T26P y000000000004.cfg
SIP-T22P y000000000005.cfg
SIP-T21P y000000000034.cfg
SIP-T20P y000000000007.cfg
SIP-T19P y000000000031.cfg
SIP-T46G y000000000028.cfg
SIP-T42G y000000000029.cfg
SIP-T41P y000000000036.cfg

Формат имени конфигурационного файла для каждого уникального устройства.

MAC_Address.cfg

Пример общего конфигурационного файла модели T19(P).

Может быть использован для всех вышеперечисленных моделей.

y000000000031.cfg

y000000000031.cfg

#!version:1.0.0.1

##File header "#!version:1.0.0.1" can not be edited or deleted, and must be placed in the first line.##

#######################################################################################
##                          Network                                                  ## 
#######################################################################################

#Configure the WAN port type; 0-DHCP (default), 1-PPPoE, 2-Static IP Address;
#Require reboot;
network.internet_port.type =     

#Configure the static IP address, subnet mask, gateway and DNS server;
#Require Reboot;
network.internet_port.ip =
network.internet_port.mask = 
network.internet_port.gateway =
network.primary_dns= 
network.secondary_dns = 

#Configure the duplex mode and the speed of the WAN port.
#0-Auto negotiate (default), 1-Full duplex 10Mbps, 2-Full duplex 100Mbps, 3-Half duplex 10Mbps, 4-Half duplex 100Mbps;
network.internet_port.speed_duplex = 

#Configure the username and password for PPPOE connection.
#Require reboot;
network.pppoe.user = 
network.pppoe.password = 

#Configure the PC port type; 0-Router, 1-Bridge (default);
#Require reboot;
network.bridge_mode =     

#Configure the IP address and mask when the PC port is configured as Router.
#Require reboot;
network.pc_port.ip = 
network.pc_port.mask = 

#Configure the duplex mode and the speed of the PC port when configured as Router.
#0-Auto negotiate (default), 1-Full duplex 10Mbps, 2-Full duplex 100Mbps, 3-Half duplex 10Mbps, 4-Half duplex 100Mbps;
network.pc_port.speed_duplex = 

#Enable or disable the DHCP server when the PC port is configured as Router; 0-Disabled, 1-Enabled (default);
#Require reboot;
network.pc_port.dhcp_server = 

#Define the DHCP IP address range. The default is from 10.0.0.10 to 10.0.0.100.
network.dhcp.start_ip =
network.dhcp.end_ip =

#Enable or disable the VLAN of WAN prot; 0-Disabled (default), 1-Enabled;
#Require reboot;
network.vlan.internet_port_enable =            

#Configure the VLAN ID, it ranges from 0 to 4094, the default value is 0.
#Require reboot;
network.vlan.internet_port_vid =  

#Configure the VLAN priority, it ranges from 0 (default) to 7. 
#Require reboot;            
network.vlan.internet_port_priority =        
        
#Enable or disable the VLAN of PC port; 0-Disabled (default), 1-Enabled; 
#Require reboot;
network.vlan.pc_port_enable =  

#Configure the VLAN ID, it ranges from 0 to 4094, the default value is 1. 
#Require reboot;
network.vlan.pc_port_vid =      

#Configure the VLAN priority, it ranges from 0 (default) to 7. 
#Require reboot;
network.vlan.pc_port_priority =    

#Enable or disable the DHCP to obtain the information of the VLAN; 0-Disabled; 1-Enabled (default);
#Require reboot;
network.vlan.dhcp_enable =

#Configure the DHCP option to obtain the information of the VLAN. It ranges from 0 to 255.
#Multiple options separated by a comma. It supports up to 5 options in all.
#Require reboot;
network.vlan.dhcp_option =

#Configure the transmit package mode when the VLAN of PC port is enabled; 
#0-The package is not treated and forwarded directly from PC port to the WAN port;
#1-The package is added the tag and forwarded from PC port to the WAN port, if the package is not the tag.
#Require reboot;
network.vlan.pc_port_mode =

#Configure the access type of the web server; 0-Disabled, 1-HTTP & HTTPS(default), 2-HTTP Only, 3-HTTPS Only;
#Require reboot;
network.web_server_type = 

#Configure the HTTP port (80 by default) and the HTTPS port (443 by default) of the web server. Both range from 1 to 65535.
#Require reboot;
network.port.http = 
network.port.https = 

#Configure the maximum local RTP port. It ranges from 0 to 65535, the default value is 11800.
#Require reboot;
network.port.max_rtpport = 

#Configure the minimum local RTP port. It ranges from 0 to 65535, the default value is 11780.
#Require reboot;
network.port.min_rtpport = 

#Configure the voice QOS. It ranges from 0 to 63, the default value is 46.
#Require reboot;
network.qos.rtptos = 

#Configure the SIP QOS. It ranges from 0 to 63, the default value is 26.
#Require reboot;
network.qos.signaltos = 

#Configure the 802.1x mode; 0-Disabled (default), 1-EAP-MD5, 2-EAP-TLS, 3-PEAP-MSCHAPV2;
#Require reboot;
network.802_1x.mode = 

#Configure the username and password for 802.1x authentication.
#Require reboot;
network.802_1x.identity = 
network.802_1x.md5_password = 

#Configure the access URL of the root and client certificates.
network.802_1x.root_cert_url =
network.802_1x.client_cert_url = 

#Enable or disable the VPN feature; 0-Disabled (default), 1-Enabled;
#Require reboot;
network.vpn_enable = 

#Enable or disable the LLDP feature; 0-Disabled, 1-Enabled (default);
#Require reboot;
network.lldp.enable = 

#Configure the interval(in seconds) the phone broadcasts the LLDP request. It ranges from 1 to 3600, the default value is 60.
#Require reboot;
network.lldp.packet_interval = 

#Enable or disable the SNMP feature; 0-Disabled (default), 1-Enabled;
#Require reboot;
network.snmp.enable =

#Configure the SNMP port.
#Require reboot;
network.snmp.port = 

#Configure the IP address(es) of the trusted SNMP server,multiple IP addresses must be separated by a space.
#Require reboot;
network.snmp.trust_ip =

#Enable or disable the span from WAN port to PC port feature; 0-Disabled (default), 1-Enabled;
#Require reboot;
network.span_to_pc_port =

#Configure the phone whether to add the MAC address to the User-Agent header; 0-Do not add, 1-Add;
#Require reboot;
network.sip.tag_mac_to_ua.enable =

#######################################################################################
##                Syslog Server                                                      ##          
#######################################################################################

#Configure the IP address of the syslog server.
#Require reboot;
syslog.server = 

#Configure the syslog level. It ranges from 0 to 6, the default value is 3.
#Require reboot;
syslog.log_level = 

#######################################################################################
##                 TR069                                                             ##
#######################################################################################

#The TR069 feature is only applicable to some designated firmware version.
#All settings of TR069 require reboot.
#Enable or disable the TR069 feature; 0-Disabled (default), 1-Enabled;
managementserver.enable = 

#Configure the username and password for the phone to authenticate with the ACS.
managementserver.username = 
managementserver.password = 

#Configure the access URL of the ACS.
managementserver.url = 

#Configure the username and password for the phone to authenticate the connection requests.
managementserver.connection_request_username = 
managementserver.connection_request_password = 

#Enable or disable the phone to inform its configuration to the ACS; 0-Disabled (default), 1-Enabled;
managementserver.periodic_inform_enable = 

#Configure the interval (in seconds) the phone to inform its configuration to the ACS. The default value is 60.
managementserver.periodic_inform_interval = 

#######################################################################################
##                 Auto Provisioning                                                 ##      
#######################################################################################

#Configure the auto provision mode;
#0-Disabled (default), 1-Power on, 4-Repeatedly, 5-Weekly, 6-Power on + Repeatedly, 7-Power on + Weekly; 
auto_provision.mode = 1

#Enable or disable the Plug and Play feature; 0-Disabled, 1-Enabled (default);
auto_provision.pnp_enable =  

#Configure the domain name of the PNP server.
auto_provision.pnp_domain_name =

#Configure the value (manufacturer of the device) of the PNP subscribe message. 
auto_provision.pnp_event_vendor =

#Configure the interval (in minutes) for the phone to check new configuration files. It ranges from 1 to 43200, the default value is 1440.
#It is only applicable to "Repeatedly" and "Power on + Repeatedly" modes.
auto_provision.schedule.periodic_minute = 

#Configure the start time of the day for the phone to check new configuration files. The default value is 00:00.
#It is only applicable to "Weekly" and "Power on + Weekly" modes. 
#If the desired start time of the day is seven forty-five a.m., the value format is 07:45.
auto_provision.schedule.time_from =

#Configure the end time of the day for the phone to check new configuration files.  The default time is 00:00.
#It is only applicable to "Weekly" and "Power on + Weekly" modes.
#If the desired end time of the day is seven forty-five p.m., the value format is 19:45.
auto_provision.schedule.time_to =

#Configure the day of week for the phone to check new configuration files. The default vaule is 0123456.
#0-Sunday,1-Monday,2-Tuesday,3-Wednesday,4-Thursday,5-Friday,6-Saturday;
#It is only applicable to "Weekly" and "Power on + Weekly" modes.
#If the desired week is Monday, Tuesday and Wednesday, the value format is 012.
auto_provision.schedule.dayofweek =

#Configure the URL of the auto provisioning server.
auto_provision.server.url = 10.10.10.1

#Configure the username and password for downloading.
auto_provision.server.username = 
auto_provision.server.password = 

#Configure the name of the common file.
#T28P: y000000000000.cfg, T26P: y000000000004.cfg, T22P: y000000000005.cfg, T20P: y000000000007.cfg;
auto_provision.common_file_name = 

#Enable or disable DHCP option mode; 0-Disabled, 1-Enabled (default);
auto_provision.dhcp_option.enable =

#Configure the value (manufacturer of the device) of DHCP option 60. 
auto_provision.dhcp_option.option60_value = 

#Configure the custom DHCP option number. It ranges from 128 to 254. 
auto_provision.dhcp_option.list_user_options = 

#Configure AES key (16 characters) for decrypting the common CFG file. 
auto_provision.aes_key_16.com = 

#Configure AES key (16 characters) for decrypting the MAC-Oriented CFG file.
auto_provision.aes_key_16.mac = 

#Configure the mode of downloading configuration files for the phone. The value is 0(default) or 1.
auto_provision.update_file_mode = 0

#######################################################################################
##	               Auto Provisioning Code                                            ##
#######################################################################################

#This feature allows user to trigger the auto provisioning by pressing a predefined string on the phone.
#Require reboot;
#"X" ranges from 1 to 50

#Configure the auto provisioning name.
#The valid value is a string, the maximum length is 100.
#autoprovision.X.name =                  

#Configure the auto provisioning code;
#The valid value is a string, the maximum length is 100.
#autoprovision.X.code =                   

#Configure the URL of the auto provisioning server.
#The valid value is a string, the maximum length is 256.
#autoprovision.X.url =                

#Configure the username and password for downloading.
#The valid value is a string, the maximum length is 100.
#autoprovision.X.user =                   
#autoprovision.X.password =            

#Configure AES key (16 characters) for decrypting the common CFG file and MAC-Oriented CFG file.
#autoprovision.X.com_aes =               
#autoprovision.X.mac_aes =               

autoprovision.1.name =        
autoprovision.1.code =        
autoprovision.1.url =         
autoprovision.1.user =        
autoprovision.1.password =    
autoprovision.1.com_aes =     
autoprovision.1.mac_aes =     

autoprovision.2.name =        
autoprovision.2.code =        
autoprovision.2.url =         
autoprovision.2.user =        
autoprovision.2.password =    
autoprovision.2.com_aes =     
autoprovision.2.mac_aes = 

#######################################################################################
##	                Phone Features                                                   ##
#######################################################################################

#Enable or disable the phone to escape the pound key as percent sign followed by 23 when dialing out; 0-Disabled, 1-Enabled (default); 
sip.use_23_as_pound = 

#Enable or disable the RFC2543 Hold feature; 0-Disabled (default), 1-Enabled;
sip.rfc2543_hold = 

#Enable or disable the phone to keep sending the SIP messages to the outbound server; 0-Disabled, 1-Enabled (default);
sip.use_out_bound_in_dialog = 

#Configure the registration random time (in seconds). It ranges from 0 (default) to 60. 
sip.reg_surge_prevention = 

#Enable or disable the WatchDog feature; 0-Disabled, 1-Enabled (default);
watch_dog.enable = 

#Enable or disable the transferee to display the missed call prompt when receiving a semi_attended transfer call;
#0-Disabled, 1-Enabled (default);
transfer.semi_attend_tran_enable =

#Enable or disable the phone to complete the blind or attended transfer through on-hook;
#0-Disabled,1-Enabled(default);
transfer.blind_tran_on_hook_enable =    
transfer.on_hook_trans_enable = 

#Define the way of DSS key when configuring as a transfer key; 0-Display Number, 1-Attended Transfer, 2-Blind Transfer (default);
transfer.dsskey_deal_type =

#Enable or disable the phone to enter the transfer to interface during two calls when pressing the transfer soft key or TRAN key; 0-Disable, 1-Enabled (default);
transfer.multi_call_trans_enable =

#Enable or disable the conference initiator to transfer the call when hanging up. 
#0-Disabled(default),1-Enabled;
transfer.tran_others_after_conf_enable =  


#######################################################################################
##         	                   Call Forward                                          ##               
#######################################################################################

#Configure the call forward key mode; 0-Phone mode (default), 1-Custom mode.
features.fwd_mode =

#Enable or disable the always forward feature; 0-Disabled (default), 1-Enabled;
forward.always.enable = 

#Configure the target number that the phone will forward the call to.
forward.always.target = 

#Configure the always forward on code and off code.
forward.always.on_code = 
forward.always.off_code = 

#Enable or disable the busy forward feature; 0-Disabled (default), 1-Enabled;
forward.busy.enable = 
forward.busy.target = 
forward.busy.on_code = 
forward.busy.off_code = 

#Enable or disable the no answer forward feature; 0-Disabled (default), 1-Enabled; 
#Configure the waiting ring times before forwarding. It ranges from 0 to 20, the default value is 2.
forward.no_answer.enable = 
forward.no_answer.target = 
forward.no_answer.timeout = 
forward.no_answer.on_code = 
forward.no_answer.off_code = 

#Enable or disable the phone to forward the call to the international number (the prefix is 00); 0-Disabled (default), 1-Enabled;
forward.international.enable = 

#######################################################################################
##         	                   DND                                                   ##               
#######################################################################################

#Configure the DND key mode; 0-Phone mode (default), 1-Custom mode.
features.dnd_mode = 

#Configure the DND on code and off code.
features.dnd.on_code = 
features.dnd.off_code =

#######################################################################################
##                                Voice                                              ##
#######################################################################################

#Enable or disable the voice activity detection feature; 0-Disbaled (default), 1-Enabled;
voice.vad = 

#Enable or disable the comfortable noise generator; 0-Disabled, 1-Enabled (default);
voice.cng = 

#Enable or disable the echo canceller; 0-Disabled, 1-Enabled (default);
voice.echo_cancellation =

#Configure the volume of the side tone. It ranges from -48 to 0, the default value is -3.
voice.side_tone= 

#Configure the sending volume of Speaker, Handset and Headset. It ranges from 1 to 53, the default values are 25, 35, 29.
#Require reboot;
voice.handfree_send =
voice.handset_send = 
voice.headset_send = 

#Configure the type of jitter buffer; 0-Fixed, 1-Adaptive (default); 
voice.jib.adaptive = 

#Configure the minimum delay, maximum delay and normal delay. The default values are 0, 300, 120.
voice.jib.min =
voice.jib.max = 
voice.jib.normal = 

#Define the voice tone, the valid values can be Custom (default) or voice tone of different countries. For example, United States, France, Germany and so on.
#voice.tone.country = Custom 
voice.tone.country =

#Customize the tone when the "voice.tone.country" is configured as Custom.  
#The value format: Frequency/Duration.
#Frequency ranges from 200 to 7000. When 0 is used to define the frequency, it means a pause between tones.
#A tone can be composited at most four different frequencies (the value format is: F1+F2+F3+F4).
#Duration is the time duration (in milliseconds) of ringing the tone. It ranges from 0 to 30000ms.
#At most eight tones can be configured for dial, ring, busy and so on, each tone is separated by a comma. 
#For example, voice.tone.dial = 100/200,200/150,300+400+500+1200/1000,0/1200,500+900/800,5000+2000+3000/6000,0/1500,3600/1800
voice.tone.dial = 
voice.tone.ring = 
voice.tone.busy = 
voice.tone.congestion = 
voice.tone.callwaiting = 
voice.tone.dialrecall = 
voice.tone.record= 
voice.tone.info = 
voice.tone.stutter = 
voice.tone.message = 
voice.tone.autoanswer = 

#Configure the receiving volume of Speaker, Handset and Headset. It ranges from 0 to 15, the default value is 8.
voice.handfree.spk_vol = 
voice.handset.spk_vol = 
voice.headset.spk_vol = 

#Configure the dial tone volume of Speaker, Handset and Headset. It ranges from 0 to 15, the default value is 8.
voice.handfree.tone_vol = 
voice.handset.tone_vol = 
voice.headset.tone_vol = 

#configure the preview call mode; 1-Ignore:the mixed of tone and RTP (default), 2-Force: discard the RTP and play the tone, 3-Skip: skip the tone to play the RTP;
voice.call_preview_mode=

#######################################################################################
##         	                   Security Settings                                     ##                   
#######################################################################################

#Enable or disable the phone to only accept the certificates in the Trusted Certificates list;
#0-Disabled, 1-Enabled (default);
security.trust_certificates = 

#Define the login username and password of the user, var and administrator.
#If you change the username of the administrator from "admin" to "admin1", your new administrator's username should be configured as: security.user_name.admin = admin1.
#If you change the password of the administrator from "admin" to "admin1pwd", your new administrator's password should be configured as: security.user_password = admin1:admin1pwd.

#The following examples change the user's username to "user23" and the user's password to "user23pwd".
#security.user_name.user = user23
#security.user_password = user23:user23pwd
#The following examples change the var's username to "var55" and the var's password to "var55pwd".
#security.user_name.var = var55
#security.user_password = var55:var55pwd

security.user_name.user = 
security.user_name.admin = 
security.user_name.var = 
security.user_password = 

#Enable or disable the 3-level permissions (open var); 0-Disabled (default), 1-Enabled;
#Require reboot;
security.var_enable = 

#######################################################################################
##                   Customize the softkey                                           ##                                 
#######################################################################################
#Customize the softkeys presented on the phone LCD screen when Callfailed, Callin, Connecting, Dialing, Ringback and Talking. 
#Before using these parameters, you should store the desired XML files to the provisioning server.
custom_softkey_call_failed.url = 
custom_softkey_call_in.url = 
custom_softkey_connecting.url = 
custom_softkey_dialing.url = 
custom_softkey_ring_back.url = 
custom_softkey_talking.url = 

#######################################################################################
##         	                  Memory Key (For T26P and T28P)                         ##              
#######################################################################################
#X ranges from 1 to 10;
#memorykey.x.line--Configure the desired line to apply the key feature. T26P line value ranges from 0 to 3. T28P line value ranges from 0 to 6.
#The value 0 of the "memorykey.x.line" stands for Auto, it means the first available line. 
#But, when the DSS key is configured as BLF, BLF List, Shared Line, Call Park, Pick Up, ACD or Voice Mail feature, the value 0 stands for line 1.
#memorykey.x.value--Enter the value of some features. E.g. When configuring the DSS key to be BLF, enter the number of the monitored user.
#memorykey.x.pickup_value--Enter the pickup code, this parameter is only appilicable to BLF.
#memorykey.x.type--Assign the desired feature to the memory key.
#Valid types are:  0-N/A(default for memory key)  1-Conference 		 2-Forward    3-Transfer      4-Hold        5-DND             6-Redial                        7-Call Return     8-SMS    
#                  9-Direct Pickup                10-Call Park     11-DTMF      12-Voicemail    13-SpeedDial  14-Intercom       15-Line(default for line key)   16-BLF            17-URL    
#                  18-Group Listening             19-Public Hold   20-Private   21-Shared Line  22-XML Group  23-Group Pickup   24-Paging                       25-Record         27-XML Browser    
#                  34-Hot Desking                 35-URL Record    38-LDAP      39-BLF List     40-Prefix     41-Zero Touch     42-ACD                          45-Local Group    46-Broadsoft Group 
#memorykey.x.xml_phonebook--Specify the desired remote phonebook/local group/BSFT phonebook for the DSS key. This parameter is only appilicable to the feature XML Group/Local Group/Broadsoft Group.  

#Configure Memory Key1
memorykey.1.line = 
memorykey.1.value = 
memorykey.1.pickup_value = 
memorykey.1.type =  
memorykey.1.xml_phonebook =   

#Configure Memory Key2
memorykey.2.line = 
memorykey.2.value = 
memorykey.2.pickup_value = 
memorykey.2.type =  
memorykey.2.xml_phonebook =   

#Configure Memory Key3
memorykey.3.line = 
memorykey.3.value = 
memorykey.3.pickup_value = 
memorykey.3.type =  
memorykey.3.xml_phonebook =  


#Configure Memory Key4
memorykey.4.line = 
memorykey.4.value = 
memorykey.4.pickup_value = 
memorykey.4.type =  
memorykey.4.xml_phonebook =  

#Configure Memory Key5
memorykey.5.line = 
memorykey.5.value = 
memorykey.5.pickup_value = 
memorykey.5.type =  
memorykey.5.xml_phonebook =  

#Configure Memory Key6
memorykey.6.line = 
memorykey.6.value = 
memorykey.6.pickup_value = 
memorykey.6.type =  
memorykey.6.xml_phonebook =  

#Configure Memory Key7
memorykey.7.line = 
memorykey.7.value = 
memorykey.7.pickup_value = 
memorykey.7.type =  
memorykey.7.xml_phonebook =  

#Configure Memory Key8
memorykey.8.line = 
memorykey.8.value = 
memorykey.8.pickup_value = 
memorykey.8.type =  
memorykey.8.xml_phonebook =  

#Configure Memory Key9
memorykey.9.line = 
memorykey.9.value = 
memorykey.9.pickup_value = 
memorykey.9.type =  
memorykey.9.xml_phonebook =  

#Configure Memory Key10
memorykey.10.line = 
memorykey.10.value = 
memorykey.10.pickup_value = 
memorykey.10.type =  
memorykey.10.xml_phonebook =          
                      
#######################################################################################
##         	                   Line Key                                              ##                 
#######################################################################################

#The x of the parameter "linekey.x.line" ranges from 1 to 6.
#The default value equals to the value of x. For example, the default value of the parameter "linekey.1.line" is 1.
#linekey.x.lable--Define the label for each line key.

#Configure Line Key1 
linekey.1.line =  
linekey.1.value = 
linekey.1.pickup_value = 
linekey.1.type = 
linekey.1.xml_phonebook =
linekey.1.label = 

#Configure Line Key2                        
linekey.2.line =                         
linekey.2.value =                         
linekey.2.pickup_value =                   
linekey.2.type =                         
linekey.2.xml_phonebook =                 
linekey.2.label =                        

#Configure Line Key3                         
linekey.3.line =                         
linekey.3.value =                         
linekey.3.pickup_value =                   
linekey.3.type =                         
linekey.3.xml_phonebook =                 
linekey.3.label =                        

#Configure Line Key4 (for T28P only)                        
linekey.4.line =                         
linekey.4.value =                         
linekey.4.pickup_value =                   
linekey.4.type =                         
linekey.4.xml_phonebook =                 
linekey.4.label =                         

#Configure Line Key5  (for T28P only)                       
linekey.5.line =                         
linekey.5.value =                         
linekey.5.pickup_value =                   
linekey.5.type =                          
linekey.5.xml_phonebook =                 
linekey.5.label =                         

#Configure Line Key6  (for T28P only)                       
linekey.6.line =                         
linekey.6.value =                         
linekey.6.pickup_value =                   
linekey.6.type =                         
linekey.6.xml_phonebook =                 
linekey.6.label =                        

##########################################################################################
##         	               Programmable Key                                             ##               
##########################################################################################
#X ranges from 1 to 15.
#programablekey.x.type--Customize the programmable key type.
#The valid types are: 
#0-N/A        2-Forward       5-DND              6-Redial               7-Call Return   8-SMS              9-Direct Pickup   13-Spead Dial 
#22-XML Group 23-Group Pickup 27-XML Browser     28-History             29-Directory    30-Menu            31-Switch Account 32-New SMS 
#33-Status    40-PTT          43-Local Phonebook 44-Broadsoft Phonebook 45-Local Group  46-Broadsoft Group 47-XML Phonebook  50-Keypad Lock
#PTT-add a specified prefix number before the dialed number.
#programablekey.x.line--Configure the desired line to apply the key feature. It ranges from 0 to 6.
#The value 0 of the "proramablekey.x.line" stands for Auto, it means the first available line. 
#But, when the programmable key is configured as Pick Up, the value 0 stands for line 1.

#programablekey.x.value =
#programablekey.x.xml_phonebook--Specify the desired remote phonebook/local group/BSFT phonebook for the programmable key. This parameter is only appilicable to the feature XML Group/Local Group/Broadsoft Group.
#programablekey.x.history_type =

#programablekey.x.label--This parameter is only available to the key 1 to key 4. 

programablekey.1.type = 34
programablekey.1.line = 
programablekey.1.value =
programablekey.1.xml_phonebook =
programablekey.1.history_type =
programablekey.1.label = цдс

##########################################################################################
##         	                        Expansion Key                                       ##               
##########################################################################################
#X ranges from 1 to 16, Y ranges from 1 to 40.
#expansion_module.x.key.y.type = 37 (Switch by default)
#expansion_module.x.key.y.line = 0 
#expansion_module.x.key.y.value = 
#expansion_module.x.key.y.pickup_value = 
#expansion_module.x.key.y.label =
#expansion_module.X.key.Y.xml_phonebook =

#Each expansion module1 key1
expansion_module.1.key.1.type = 
expansion_module.1.key.1.line = 
expansion_module.1.key.1.value = 
expansion_module.1.key.1.pickup_value = 
expansion_module.1.key.1.label =
expansion_module.1.key.1.xml_phonebook =

#Each expansion module1 key2
expansion_module.1.key.2.type =
expansion_module.1.key.2.line = 
expansion_module.1.key.2.value = 
expansion_module.1.key.2.pickup_value = 
expansion_module.1.key.2.label = 
expansion_module.1.key.2.xml_phonebook =

#Each expansion module2 key1
expansion_module.2.key.1.type = 
expansion_module.2.key.1.line = 
expansion_module.2.key.1.value = 
expansion_module.2.key.1.pickup_value = 
expansion_module.2.key.1.label =
expansion_module.2.key.1.xml_phonebook =
      
#######################################################################################
##           Automatic Call Distribute                                               ##
#######################################################################################
#Enable or disable the phone to automatically change the phone status to available; 0-Disabled (default), 1-Enabled;
acd.auto_available = 

#Configure the interval (in seconds) to automatically turn the state of the ACD agent to available. It ranges from 0 to 120, the default value is 60.
acd.auto_available_timer = 

#######################################################################################
#         	                   Action URL Settings                                   ##    
#######################################################################################

#action_url.setup_completed--Inform the server that the phone has completed the startup.              
#action_url.dnd_on-- Inform the server that the DND is activated on the phone. 
#The value format is: http://IP address of server/help.xml?variable name=variable value. 
#The valid variable values are: $mac--MAC address of phone, $ip--The current IP address of phone, $model--Phone model, $firmware--Phone firmware version. 
#$active_url--The SIP URI of the current account when the phone is in the incoming state, outgoing state or during conversation. 
#$active_user--The username of the current account when the phone is in the incoming state, outgoing state or during conversation.
#$active_host--The host name of the current account when the phone is in the incoming state, the outgoing state or during conversation. 
#$local--The SIP URI of the caller when outgoing calls or the SIP URI of the callee when receiving calls. 
#$remote--The SIP URI of the callee when outgoing calls or the SIP URI of the caller when receiving calls.
#$display_local--The display name of the caller when outgoing calls or the display name of the callee when receiving calls.
#$display_remote--The display name of the callee when outgoing calls or the display name of the caller when receiving calls.
#$call_id--The caller ID when in the incoming state, the outgoing state or during conversation.
#For example, action_url.log_on = http://192.168.1.20/help.xml?mac=$mac

action_url.setup_completed = 
action_url.log_on = 
action_url.log_off = 
action_url.register_failed = 
action_url.off_hook = 
action_url.on_hook = 
action_url.incoming_call = 
action_url.outgoing_call = 
action_url.call_established = 
action_url.dnd_on = 
action_url.dnd_off = 
action_url.always_fwd_on = 
action_url.always_fwd_off = 
action_url.busy_fwd_on = 
action_url.busy_fwd_off = 
action_url.no_answer_fwd_on = 
action_url.no_answer_fwd_off = 
action_url.transfer_call = 
action_url.blind_transfer_call =
action_url.attended_transfer_call = 
action_url.hold = 
action_url.unhold = 
action_url.mute = 
action_url.unmute = 
action_url.missed_call = 
action_url.call_terminated = 
action_url.busy_to_idle = 
action_url.idle_to_busy = 
action_url.ip_change =
action_url.answer_new_incoming_call =
action_url.reject_incoming_call = 
action_url.transfer_finished = 
action_url.transfer_failed = 
action_url.forward_incoming_call =

#######################################################################################
##         	                   Language Settings                                     ##       
#######################################################################################

#Specify the web language, the valid values are: English, Chinese_S, Turkish, Portuguese, Spanish, Italian, French, Russian, Deutsch and Czech.
lang.wui = 

#Specify the LCD language, the valid values are: English (default), Chinese_S, Chinese_T, German, French, Turkish, Italian, Polish, Spanish and Portuguese.
#lang.gui = English
lang.gui = 

#######################################################################################
##         	                   Time Settings                                         ##
#######################################################################################

#Configure the time zone and time zone name. The time zone ranges from -11 to +12, the default value is +8. 
#The default time zone name is China(Beijing).  
#Refer to Yealink IP Phones User Guide for more available time zones and time zone names. 
#local_time.time_zone = +8
#local_time.time_zone_name = China(Beijing) 
local_time.time_zone = +3
local_time.time_zone_name = 

#Configure the domain name or the IP address of the NTP server. The default value is cn.pool.ntp.org.
local_time.ntp_server1 = 10.10.10.1
local_time.ntp_server2 = 

#Configure the update interval (in seconds) when using the NTP server. The default value is 1000.
local_time.interval = 

#Configure the daylight saving time feature; 0-Disabled, 1-Enabled, 2-Automatic (default); 
local_time.summer_time = 0

#Configure the DST type when the DST feature is enabled; 0-By Date (default), 1-By Week;
local_time.dst_time_type = 

#Configure the start time of DST. The default value is 1/1/0.
#If the DST type is configured as By Date, the value format is Month/Day/Hour. For example, the value 5/20/10 means the start time is at 10:00 on May 20.  
#If the DST type is configured as By Week, the value format is Month/Day of Week/Day of Week Last in Month/Hour of Day. 
#For example, the value 1/4/2/5 means the start time is at 5 o'clock on Tuesday of the 4th week in January.
local_time.start_time = 

#Configure the end time of DST. The default value is 12/31/23. The value format is the same to the start time.
local_time.end_time = 

#Configure the offset time (in seconds). It ranges from -300 to 300, the default value is 60.
local_time.offset_time = 

#Configure the time format; 0-12 Hour, 1-24 Hour (default);
local_time.time_format = 

#Configure the date format; 0-WWW MMM DD (default), 1-DD-MMM-YY, 2-YYYY-MM-DD, 3-DD/MM/YYYY, 4-MM/DD/YY, 5-DD MMM YYYY, 6-WWW DD MMM;
local_time.date_format = 

#Enable or disable the DHCP Time; 0-Disabled (default), 1-Enabled;
local_time.dhcp_time = 1

#######################################################################################
##         	        Hot Desking                                                      ##
#######################################################################################
#Enable or disable the phone to show the following items on the login wizard during startup; 0-Disabled, 1-Enabled;  
#hotdesking.startup_register_name_enable = 1 (default)
#hotdesking.startup_username_enable = 1 (default)
#hotdesking.startup_password_enable = 0 (default)
#hotdesking.startup_sip_server_enable = 0 (default)
#hotdesking.startup_outbound_enable = 0 (default)

hotdesking.startup_register_name_enable = 0
hotdesking.startup_username_enable = 1
hotdesking.startup_password_enable = 1
hotdesking.startup_sip_server_enable = 0
hotdesking.startup_outbound_enable = 0

#Enable or disable the phone to show the following items on the login wizard when pressing the Hot Desking DSS key;
#0-Disabled, 1-Enabled;
#hotdesking.dsskey_register_name_enable = 1 (default)
#hotdesking.dsskey_username_enable = 1 (default)
#hotdesking.dsskey_password_enable = 0 (default)
#hotdesking.dsskey_sip_server_enable = 0 (default)
#hotdesking.dsskey_outbound_enable = 0 (default)

hotdesking.dsskey_register_name_enable = 0
hotdesking.dsskey_username_enable = 1
hotdesking.dsskey_password_enable = 1
hotdesking.dsskey_sip_server_enable = 0 
hotdesking.dsskey_outbound_enable = 0

#######################################################################################
##         	           Distinctive Ring Tones                                        ##  
#######################################################################################

#"X" ranges from 1 to 10; 
#Configure the text to map the keywords contained in the "Alert-info" header.
#distinctive_ring_tones.alert_info.X.text = family
distinctive_ring_tones.alert_info.1.text =

#Specify the ring tone for each text. It ranges from 1 to 8. The default value 1 stands for Ring1.wav.
#1-Ring1.wav, 2-Ring2.wav, 3-Ring3.wav, 4-Ring4.wav, 5-Ring5.wav, 6-Ring6.wav, 7-Ring7.wav, 8-Ring8.wav.
#distinctive_ring_tones.alert_info.X.ringer = 1
distinctive_ring_tones.alert_info.1.ringer = 

#######################################################################################
##         	               Auto Redial                                               ##
#######################################################################################

#Enable or disable the auto redial feature; 0-Disabled (default), 1-Enabled;
auto_redial.enable = 

#Configure the interval (in seconds) to wait before redial. It ranges from 1 to 300. The default value is 10.
auto_redial.interval = 

#Configure the auto redial times. It ranges from 1 to 300. The default value is 10.
auto_redial.times = 

#######################################################################################
##         	               Zero Touch                                                ##
#######################################################################################
#Enable or disable the Zero Touch feature; 0-Disabled (default), 1-Enabled; 
zero_touch.enable = 

#Configure the waiting time (in seconds) before canceling the Zero Touch. It ranges from 0 to 100, the default value is 5.
zero_touch.wait_time = 

#######################################################################################
##         	               Push XML                                                  ##
#######################################################################################

push_xml.server =

#Enable or disable the phone to display the push XML interface when receiving an incoming call; 0-Disabled (default), 1-Enabled;
push_xml.block_in_calling =  

#Enable or disable the phone to use the push XML via SIP Notify message; 0-Disabled (default), 1-Enabled;
push_xml.sip_notify = 

#######################################################################################
##         	              Dial Plan                                                  ##
#######################################################################################

#Configure the area code;
dialplan.area_code.code = 
dialplan.area_code.min_len = 1
dialplan.area_code.max_len = 15 

#When applying the rule to multiple lines, each line ID separated by a comma. 
#e.g. dialplan.area_code.line_id = 1,2,3
dialplan.area_code.line_id = 

#Configure the block out number. X ranges from 1 to 10.
#dialplan.block_out.number.x =
dialplan.block_out.number.1 =

#When applying the rule to multiple lines, mutiple lines must be separated by a comma. E.g. 1,2,3.
#dialplan.block_out.line_id.X =
dialplan.block_out.line_id.1 =

#Configure the replace rule. X ranges from 1 to 20.
#dialplan.item.X = Enabled,Prefix,Replaced,LineID
#Enabled: Enable or disable the replace rule. 0-Disabled, 1-Enabled; Prefix: Specify the numbers that need replacing; 
#Replaced: Specify the alternate numbers;
#LineID: Specify the line ID to apply the replace rule,multiple lines ID must be separated by a comma;
dialplan.item.1 =

#Configure the dialnow rule. X ranges from 1 to 20.
#dialnow.item.X = Dial-now rule,Line ID
#Dial-now rule: Specify the numbers that need replacing;
#Line ID:Specify the line ID to apply the replace rule,multiple lines must be separated by a comma;
dialnow.item.1 =
 
#######################################################################################
##         	    BSFT Phonebook                                                       ##
#######################################################################################

#Configuration of BW phonebook. X ranges from 1 to 6.
#bw_phonebook.data.X.server = 
#bw_phonebook.data.X.port = 
#bw_phonebook.data.X.username = 
#bw_phonebook.data.X.password = 
#bw_phonebook.data.X.name = 
 
bw_phonebook.data.1.server = 
bw_phonebook.data.1.port = 
bw_phonebook.data.1.username = 
bw_phonebook.data.1.password = 
bw_phonebook.data.1.name = 

#Configure the search parameter of Broadsoft phonebook version 1.0, mutiple parameters must be separated by a "&"symbol.
bw_phonebook.search_params_v1 =

#Configure the search parameter of Broadsoft phonebook version 2.0, mutiple parameters must be separated by a "&"symbol.
bw_phonebook.search_params_v2 =

#Configure the mode of search parameters; 0-AND, 1-OR (default); The vaule only works in Broadsoft phonebook verion 2.0;
bw_phonebook.search_mode_or =

#######################################################################################
##                    BSFT Call Log                                                  ##
#######################################################################################

#Configuration of the BW call log. X ranges from 1 to 3.  
#bw_call_log.data.X.server =   
#bw_call_log.data.X.port =     
#bw_call_log.data.X.username = 
#bw_call_log.data.X.password = 
#bw_call_log.data.X.name =     
        
bw_call_log.data.1.server =        
bw_call_log.data.1.port =          
bw_call_log.data.1.username =      
bw_call_log.data.1.password =      
bw_call_log.data.1.name =         

#Enable or disable the phone to access the BSFT call log/phonebook directly when pressing the History/Directory soft keys;
#0-Disabled (default), 1-Enabled;
#Require reboot;
bw.calllog_and_dir = 

#Specify whether to display the BSFT call log on the web user interface; 0-Disabled, 1-Enabled (default);
#Require reboot;
bw.behave_calllog = 

#Specify whether to display the BSFT directory on the web user interface; 0-Disabled, 1-Enable (default);
#Require reboot;
bw.behave_bw_dir = 

#Enable or disable the feature key synchronization; 0-Disabled (default), 1-Enabled;
bw.feature_key_sync = 

#######################################################################################
##         	    Remote phonebook                                                     ##
#######################################################################################

#Configure the access URL and dispaly name of the remote phonebook. X ranges from 1 to 5.
#remote_phonebook.data.X.url =   
#remote_phonebook.data.X.name =

remote_phonebook.data.1.url =   
remote_phonebook.data.1.name = 

#######################################################################################
##         	              LDAP Settings                                              ##
#######################################################################################
#Configure the search criteria for name and number lookups.
ldap.name_filter = 
ldap.number_filter = 

ldap.host = 0.0.0.0
ldap.port = 389

ldap.base = 
ldap.user = 
ldap.password = 

#Specify the maximum of the displayed search results. It ranges from 1 to 32000, the default value is 50.
ldap.max_hits = 

ldap.name_attr = 
ldap.numb_attr = 
ldap.display_name = 

#Configure the LDAP version. The valid value is 2 or 3 (default).
ldap.version = 

#Conifugre the search delay time. It ranges from 0 (default) to 2000.
ldap.search_delay = 

#Enable or disable the phone to query the contact name from the LDAP server when receiving an incoming call; 0-Disabled (default), 1-Enabled;
ldap.call_in_lookup = 

#Enable or disable the phone to sort the search results in alphabetical order; 0-Disabled (default), 1-Enabled; 
ldap.ldap_sort =  

#Enable or disable the phone to query the LDAP server when in the pre-dialing or the dialing state; 0-Disabled (default), 1-Enabled;
ldap.dial_lookup =  

#######################################################################################
##         	              Phone Features                                             ##
#######################################################################################

#Configure the return code when activating DND; 404-No Found, 480-Temporarily not available (default), 486-Busy here;
#features.dnd_refuse_code = 480
features.dnd_refuse_code = 

#Configure the return code when refusing a call. The valid values are 404, 480, 486 (default).
features.normal_refuse_code = 

#Enable or disable the call completion feature; 0-Disabled (default), 1-Enabled;
features.call_completion_enable = 

#Configure the LED flashing mode of the BLF key (line key). The value is 0(default) or 1.
features.blf_led_mode =

#Enable or disable the call waiting feature; 0-Disabled, 1-Enabled (default);
call_waiting.enable = 

#Enable or disable the playing of call waiting tone; 0-Disabled, 1-Enabled (default);
call_waiting.tone = 

#Enable or disable the intercom feature; 0-Disabled, 1-Enabled (default);
features.intercom.allow = 

#Enable or disable the phone to mute the Speaker when answering an intercom call; 0-Disabled (default), 1-Enabled;     
features.intercom.mute = 

#Enable or disable the phone to play the intercom warning tone; 0-Disabled, 1-Enabled (default); 
features.intercom.tone = 

#Enable or disable the phone to barge in an intercom call; 0-Disabled (default), 1-Enabled;
features.intercom.barge = 

#Enables or disables the IP phone to query the contact names from the remote phonebook when receiving incoming calls; 0-Disabled (default), 1-Enabled; 
features.remote_phonebook.enable =

#Set the interval (in seconds) for the phone to update the information of the remote phonebook. The default value is 3600. 
features.remote_phonebook.flash_time = 

#Configure the hotline number and delay time (in seconds). It ranges from 0 to 180, the default value is 4.
features.hotline_number = 
features.hotline_delay = 

#Enable or disable the phone to suppress the display of DTMF digits; 0-Disabled (default), 1-Enabled;
features.dtmf.hide = 

#Enables or disables the IP phone to display the DTMF digits for a short period before displaying as asterisks; 0-Disabled (default), 1-Enabled;
features.dtmf.hide_delay =

#Configure the repetition times of DTMF end packet. The valid values are 1, 2, 3 (default).
features.dtmf.repetition = 

#Configure DTMF sequences. It can be consisted of digits, alphabets, * and #.
features.dtmf.transfer = 

#Enable or disable the phone to send DTMF sequences during a call when pressing the transfer soft key or the TRAN key; 0-Disabled (default), 1-Enabled;
features.dtmf.replace_tran = 

#Enable or disable the headset prior feature; 0-Disabled (default), 1-Enabled;
features.headset_prior =

#Enable or disable the dual headset feature; 0-Disabled (default), 1-Enabled;
features.headset_training =

#Configure the delay time (in milliseconds) before transfering a call. The default value is 0.
features.hold_trans_delay =

#Enbale or disable the phone to play a local DTMF tone; 0-Disabled, 1-Enabled (default); 
features.play_local_dtmf_tone_enable =

#Enbale or disable the server to release the BLA line automatically; 0-Disabled (default), 1-Enabled;
features.auto_release_bla_line =

#Configure the delay time (in seconds) of playing busy tone when rejecting a call. The valid values are 0 (default), 3 and 5. 
features.busy_tone_delay = 

#Configure the phone whether to send a pound key when pressing double pound keys; 0-Send one pound key (default), 1-Do not send any pound key;
features.send_pound_key = 

#Define the "#" or "*" key as the send key; 0-Disabled, 1-# key(default), 2-* key;
features.pound_key.mode = 

#Enable or disable the phone to play tone when pressing the digit key; 0-Disabled, 1-Enabled (default);
features.send_key_tone = 
features.key_tone = 

#Enable or disable the phone to play a warning tone when there is a held call; 0-Disabled, 1-Enabled (default);
features.play_hold_tone.enable = 

#Configure the interval of playing a warning tone. The default value is 30s.
features.play_hold_tone.delay =

features.redial_tone = 

#Enable or disable the phone with active accounts to play tones in the dialing interface differently from the phone with no active accounts; 0-Disabled (default), 1-Enbaled;
features.partition_tone =

#Enable or disable the phone to encrypt the digits of the dialed number. The encrypted digits are displayed as asterisks on the LCD screen; 0-Disabled (default), 1-Enabled;
features.password_dial.enable =

#Configure the prefix numbers displayed before the encrypted digits.
features.password_dial.prefix =

#Configure the length of encrypted digits.
features.password_dial.length =

#Enable or disable the phone to diaplay the Save Call Log option on the web user interface; 0-Disabled, 1-Enabled (default);
features.history_save_display = 

#Enable or disable the phone to save the call history; 0-Disabled, 1-Enabled (default);   
features.save_call_history = 

#Configure the power Indicator LED to turn on ro turn off; 0-On (default), 1-Off;
features.power_led_on =

#Specifie the address(es) or enters Ў°anyЎ± from which Action URI will be accepted.
#For discontinuous IP addresses, each IP address is separated by comma, for example: 192.168.1.20,10.2.1.30
#For continuous IP addresses, the format likes *.*.*.* and the Ў°*Ў± stands for the values 0~255. For example: 10.10.*.* stands for the IP addresses that range from 10.10.0.0~10.10.255.255.
#If left blank, the IP phone cannot receive or handle any HTTP GET request.
#If set to Ў°anyЎ±, the IP phone accepts and handles HTTP GET requests from any IP address.
features.action_uri_limit_ip =

#Configure the delay time (in seconds)of auto answer. The time ranges from 1 to 4, the default value is 1s.
features.auto_answer_delay =

#Enable or disable the transfer DSS key to perform the blind transfer; 0-Disabled, 1-Enabled (default);
features.dsskey_blind_tran = 

#Configure the overtime (in minutes) of logging web user interface. It ranges from 1 to 1000, the default value is 5.
features.relog_offtime = 
 
#Enable or disable the phone to dial the IP address directly; 0-Disabled, 1-Enabled (default);
features.direct_ip_call_enable = 

#Configure the ringtone of emergency calls;
#features.emergency_ring = Emergency.wav
features.emergency_ring = 

#Enable or disable the phone to mute the call during an active call; 0-Disabled, 1-Enabled (default);
features.allow_mute =

#Specify the ring device when the phone is in the Headset mode; 0-use Speaker (default), 1-use Headset;
features.ringer_device.is_use_headset = 

#Enable or disable the phone to pick up the call using the group pickup soft key; 0-Disabled (default), 1-Enabled;
features.pickup.group_pickup_enable = 

#Configure the group pickup code.
features.pickup.group_pickup_code = 

#Enable or disable the phone to pick up the call using the directed pickup soft key; 0-Disabled (default), 1-Enabled;
features.pickup.direct_pickup_enable = 

#Configure the directed pickup code.
features.pickup.direct_pickup_code =

#Specify the way to notify the phone of the incoming call of the monitored user by visual or audio indicator;
#0-Disabled (default), 1-Enabled;
features.pickup.blf_visual_enable =
features.pickup.blf_audio_enable = 

#Configure the input type when the phone is in the dialing state, if the parameter "ldap.dial_lookup" is Enabled; 0-2aB, 1-123 (default), 2-abc, 3-ABC;
features.ldap.input_type = 

#Enable or disable the phone to play the warning tone when receiving a vocie mail. 0-Disabled; 1-Enabled(default).
features.voice_mail_tone_enable = 

#Configure the time (in seconds) the phone automatically dials out the dialed digits. It ranges from 1 to 14, the default value is 4.
phone_setting.inter_digit_time = 

#Configure the flash hook time (in milliseconds). It ranges from 0 to 799, the default value is 1.
phone_setting.flash_hook_timer = 

#Configure the keypad lock type; 0-Disabled (default), 1-Menu Key, 2-Function Key, 3-All Keys, 4-Lock&Answer;
phone_setting.lock = 

#Configure the unlock password for the phone. The default value is 123.
phone_setting.phone_lock.unlock_pin = 

#Configures the interval (in seconds) to automatically lock the IP phone. It ranges from 0 to 3600, the default value is 0.
phone_setting.phone_lock.lock_time_out = 

#Configure the ring tone for the phone. System ring tones are: Common, Ring1.wav (default), Ring2.wavЎ­Ў­Ring8.wav.
#If you set the custom ring tone (Busy.wav) for the phone, the value is: phone_setting.ring_type = Busy.wav
#If you set the system ring tone (Ring2.wav) for the phone, the value is: phone_setting.ring_type = Ring2.wav
phone_setting.ring_type = 

#Configure the contrast of the LCD screen. It ranges from 1 to 10,the default value is 6.
phone_setting.contrast =

#Configure the logo mode of the LCD screen; 0-Disabled (default), 1-System logo, 2-Custom logo;
phone_setting.lcd_logo.mode = 

#Configure the active backlight level. It ranges from 1 to 3, the default value is 2.
#The same level for different phones may result in different backlight intensities. 
phone_setting.active_backlight_level = 

#Configure the backlight time (in seconds). The valid values are: 0-Always on, 1-Always off, 15-15s, 30-30s (default), 60-60s, 120-120s.
phone_setting.backlight_time = 

#Configure the ring tone when the transfer fails. The valid values are: Ring1.wav.... Ring8.wav.
#phone_setting.ring_for_tranfailed = Ring1.wav 
phone_setting.ring_for_tranfailed =

#Enable or disable the phone to show the logon wizard during startup; 0-Disabled (default), 1-Enabled;
phone_setting.logon_wizard = 

#Enable or disable the phone to automatically dial out the dialed digits in the pre-dial interface; 0-Disabled (default), 1-Enabled;
phone_setting.predial_autodial = 

#Enable or disable the phone to deal the 180 SIP message after the 183 SIP message; 0-Disabled, 1-Enabled (default);
phone_setting.is_deal180 = 

#Configure the delay time (in seconds) for the dialnow rule. It ranges from 1 to 14, the default value is 1.
phone_setting.dialnow_delay = 

#Enable or disable customizing the softkey layout; 0-Disabled (default), 1-Enabled;
phone_setting.custom_softkey_enable =   

#Configure the using mode of the headset key. The value is 0 or 1(default).
phone_setting.headsetkey_mode = 

#Configure the emergency number, each separated by a comma. The default value is 112,911,110.
phone_setting.emergency.number =  

#Configure the phone whether to end the call when the network is unavailable; 0-End the call, 1-Do not end the call.
phone_setting.end_call_net_disconnect.enable = 

#If leaving the field blank, the phone will display the value sent from the server when receiveing the 403 message; otherwise display the value entered in the filed.
#The default value is blank.
phone_setting.show_code403 =

#######################################################################################
##                              Multicast                                            ##                                            
#######################################################################################
#Configure the codec of multicast paging.
multicast.codec = 

#Enbale or diable the phone to handle the incoming multicast paging calls when there is a multicast paging call on the phone; 0-Disabled, 1-Enabled (default);
#If enabled, the phone will answer the incoming multicast paging call with a higher priority and ignore that with a lower priority.
multicast.receive_priority.enable = 

#Configure the priority of multicast paging calls. It ranges from 0 to 10.
multicast.receive_priority.priority = 

#Configure the listening multicast IP address and port number for the phone. X ranges from 1 to 10.
#multicast.listen_address.X.ip_address = 
multicast.listen_address.1.ip_address =

#Configure the lable displayed on the LCD screen when receiving the multicast paging. X ranges from 1 to 10.
#multicast.listen_address.X.label = 
multicast.listen_address.1.label =

#######################################################################################
##                     Configure the access URL of firmware                          ##                                 
#######################################################################################
#Before using this parameter, you should store the desired firmware (x.70.x.x.rom) to the provisioning server.
firmware.url = 

#######################################################################################
##                     Configure the access URL of the customized  ringtones         ##                                  
#######################################################################################
#Before using this parameter, you should store the desired ring tone (x.wav) to the provisioning server.
#For more information, refer to Yealink Auto Provisioning User Guide.
ringtone.url =

#ringtone.delete = http://localhost/all,delete all the customized ring tones.
ringtone.delete =

#######################################################################################
##            Configure the access  URL of language file                             ##                                       
#######################################################################################
#Before using this parameter, you should store the desired language pack to the provisioning server.
#For more information, refer to Yealink Auto Provisioning User Guide.
gui_lang.url = 

#gui_lang.delete = http://localhost/all, delete all the customized languages.
gui_lang.delete =

#######################################################################################
##            Configure the access  URL of logo file                                 ##                                       
#######################################################################################
#Before using this parameter, you should store the desired logo file (x.dob) to the provisioning server.
#For more information, refer to Yealink Auto Provisioning User Guide.
lcd_logo.url =  

#lcd_logo.delete = http://localhost/all, delete all the customized logo.
lcd_logo.delete =

#######################################################################################
##                     Certificates                                                  ##  
#######################################################################################
#Before using this parameter, you should store the desired certificate to the provisioning server.
trusted_certificates.url =

#trusted_certificates.delete = http://localhost/all,delete all the trusted certificates. 
trusted_certificates.delete = 

#Before using this parameter, you should store the desired certificate to the provisioning server.
server_certificates.url = 

#server_certificates.delete = http://localhost/all, delete the server certificate. 
server_certificates.delete = 

#######################################################################################
##  Local Contact/DST Time/Dialnow Rule/Replace Rule                                 ##                                                     
#######################################################################################

#Before using these parameters, you should store the desired resource files to the provisioning server.
#For more information, refer to Yealink SIP-T2xP IP Phone Family Administrator Guide.
local_contact.data.url =
auto_dst.url =
dialplan_dialnow.url =
dialplan_replace_rule.url =

#######################################################################################
##      Customized Factory Configurations                                            ##
#######################################################################################
#Configure the access URL for downloading the customized factory configurations.
#Before using this parameter, you should store the desired factory configuration file to the provisioning server.
custom_factory_configuration.url =

#######################################################################################
##              Customized Configurations                                            ##
#######################################################################################
#Configure the access URL for downloading the configurations.
#Before using this parameter, you should store the desired configuration file to the provisioning server.
configuration.url =

#######################################################################################
##          Call List                                                                ##                                            
#######################################################################################
#Configure the access URL for downloading the call list.
#Before using this parameter, you should store the desired call list file to the provisioning server.
#Require reboot
call_list.url = 

#######################################################################################
##            OpenVPN                                                                ##                                            
#######################################################################################
#Configure the access URL for downloading the open VPN tar.
#Before using this parameter, you should store the desired VPN file to the provisioning server.
openvpn.url =

#######################################################################################
##     Configuration files for Var                                                   ##                                            
#######################################################################################
#Configure the access URL for downloading the files for var.
#Before using this parameter, you should store the desired files to the provisioning server.
#Require reboot
web_item_level.url = 

Использован минимум настроек:

Включить Auto Provisioning:

 auto_provision.mode = 1 

Адрес сервера Auto Provisioning (tftp):

 auto_provision.server.url = 10.10.10.1

Назначим кнопку для Hot Desking (код 34). Под кнопку использована softkey 3 (кнопка под дисплеем, по умолчанию DND)

 programablekey.3.type = 34

Назначим Time Offset (Московское время)

 local_time.time_zone = +3

Укажем NTP сервер:

 local_time.ntp_server1 = 10.10.10.1

Назначим опции для авторизации Hot Desking (в нашем примере это логин и пароль SIP аккаунта)

 hotdesking.startup_username_enable = 1
 hotdesking.startup_password_enable = 1

Пример конфигурационного файла телефона, где в качестве имени файла выступает MAC адрес телефона

Может быть использован для всех вышеперечисленных моделей.

mac_address.cfg

mac_address.cfg

#!version:1.0.0.1

##File header "#!version:1.0.0.1" can not be edited or deleted, and must be placed in the first line.##

#######################################################################################
##                           Account1 Settings                                       ##                                                                          
#######################################################################################

#Enable or disable the account1, 0-Disabled (default), 1-Enabled;
account.1.enable = 

#Configure the label displayed on the LCD screen for account1.
account.1.label = 

#Enable or disable to use the alert info URL; 0-Enabled (default), 1-Disabled;
account.1.alert_info_url_enable =

#Configure the display name of account1.
account.1.display_name = 

#Configure the username and password for register authentication.
account.1.auth_name = 
account.1.password = 

#Configure the register user name.
account.1.user_name = 

#Configure the SIP server address.
account.1.sip_server_host = 10.10.10.1

#Specify the port for the SIP server. The default value is 5060.
account.1.sip_server_port = 5061

#Enable or disable to use the outbound proxy server; 0-Disabled (default), 1-Enabled; 
account.1.outbound_proxy_enable = 1

#Specify the IP address or domain name of the outbound proxy server.
account.1.outbound_host = 10.10.10.1

#Specify the server port, the default value is 5060.
account.1.outbound_port = 5061

#Configure the transport type; 0-UDP (default), 1-TCP, 2-TLS, 3-DNS SRV;
account.1.transport = 0

#Enable or disable the timer to periodically refresh the DNS-SRV query result; 0-Disabled (default), 1-Enabled;
#Require reboot;
account.1.srv_ttl_timer_enable =

#Specify the service for SIP used to DNS-SRV query; 0-muti-service mixed, 1-SIP+D2U, 2-SIP+D2T, 3-SIPS+D2T;
#Require reboot;
account.1.dns_srv_type =

#Configure the address of the backup outbound proxy server.
account.1.backup_outbound_host = 192.168.1.202

#Specify the port, the default value is 5060.
account.1.backup_outbound_port = 5061

#Configure the voice mail number of account1.
voice_mail.number.1 = *97

#Configure the proxy server to account1.
account.1.proxy_require = 

#Enable or disable the phone to only accept the message from the server; 0-Disabled (default), 1-Enabled;
account.1.sip_trust_ctrl = 

#Enable or disable the anonymous call feature; 0-Disabled (default), 1-Enabled;
account.1.anonymous_call = 

#Configure the on code and off code of the anonymous call feature.
account.1.anonymous_call_oncode = 
account.1.anonymous_call_offcode = 

#Enable or disable the reject anonymous call feature; 0-Disabled (default), 1-Enabled;
account.1.reject_anonymous_call = 

#Configure the on code and off code of the reject anonymous call feature.
account.1.anonymous_reject_oncode = 
account.1.anonymous_reject_offcode = 

#Configure the SIP port for account1, the default value is 5060. 
account.1.sip_listen_port = 

#Configure the register expiry time (in seconds), the default value is 3600.
account.1.expires = 

#Enable or disable the 100 reliable retransmission; 0-Disabled (default), 1-Enabled;
account.1.100rel_enable = 

#Enable or disable the resource reservation; 0-Disabled (default), 1-Enabled;
account.1.precondition = 

#Enable or disable the phone to subscribe the register status; 0-Disabled (default), 1-Enabled;
account.1.subscribe_register = 

#Enable or disable the phone to subscribe the message waiting indicator; 0-Disabled (default), 1-Enabled;
account.1.subscribe_mwi = 

#Configure MWI subscribe expiry time (in seconds). It ranges from 0 to 84600, the default value is 3600.
account.1.subscribe_mwi_expires = 

#Configure the type of SIP header(s) to carry the caller ID; 0-FROM (default), 1-PAI 2-PAI-FROM, 3-PRID-PAI-FROM, 4-PAI-RPID-FROM, 5-RPID-FROM;
account.1.cid_source = 

#Configure the type of SIP header(s) to display on the caller's LCD screen; 0-RPID-FROM, 1-Dialed Digits(default), 2-RFC4916
account.1.cp_source = 

#Enable or disable the session timer, 0-Disabled (default), 1-Enabled;  
account.1.session_timer.enable =      

#Configure the refresh session timer interval (in seconds). It ranges from 1 to 9999.
account.1.session_timer.expires =      

#Configure the session timer refresher; 0-Uac (default), 1-Uas;
account.1.session_timer.refresher = 

#Enable or disable the "user=phone"; 0-Disabled (default), 1-Enabled;
account.1.enable_user_equal_phone = 

#Specify whether to encrypt the SIP messages; 0-Disabled (default), 1-Forced, 2-Negotiated;
account.1.srtp_encryption = 

#Configure the RTP packet time. The valid values are 0 (Disabled), 10, 20 (default), 30, 40, 50, 60.
account.1.ptime = 

#Assign account1 as shared line; 0-Disabled (default), 1-Broadsoft SCA, 2-BLA;
account.1.shared_line = 

#Configure BLA number for account1 and the subscribe period (in seconds). It ranges from 60 to 7200, the default value is 300.
account.1.bla_number = 
account.1.bla_subscribe_period = 

#Enable or disable call pickup using dialog-info SIP header; 0-Disabled (default), 1-Enabled;
account.1.dialoginfo_callpickup = 

#Configure the directed and group pickup codes for account 1, the settings on a per-account basis take precedence over the settings on the phone.
account.1.group_pickup_code = 
account.1.direct_pickup_code = 

#Enable or disable the auto answer feature; 0-Disabled (default), 1-Enabled;
account.1.auto_answer = 

#Enable or disable the phone to record the missed call; 0-Disabled, 1-Enabled (default);
account.1.missed_calllog = 

#Enable or disable the phone to subscribe to the voicemail through the message waiting indicator; 0-Disabled (default), 1-Enabled;
account.1.subscribe_mwi_to_vm = 

#Enable or disable the phone to send the MAC address and line number in the Register message; 0-Disabled (default), 1-Enabled;    
account.1.register_mac = 
account.1.register_line = 

#Configure the interval (in seconds) the phone retries to register when account1 fails to register. It ranges from 0 to 1800, the default value is 30.
account.1.reg_fail_retry_interval = 

#Configure the conference type; 0-Local (default), 2-Network Conference;
account.1.conf_type = 

#Configure the conference URI (a SIP URI, or use part of the SIP URI). For example, "conference@domain.com" or "conference".
account.1.conf_uri = 

#Configure the BLF list URI (a SIP URI, or use part of the SIP URI). For example, "2300_blflist@domain.com" or "2300_blflist".
account.1.blf.blf_list_uri = 

#Configure the pickup code of BLF List.
account.1.blf_list_code = 

#Configure the barge-in code.
account.1.blf_list_barge_in_code = 

#Enable or disable the phone to handle unmatched notify messages; 0-Disabled (default) , 1-Enabled ;
account.1.out_dialog_blf_enable = 

#Configure the BLF subscribe period (in seconds), the default value is 1800.
account.1.blf.subscribe_period = 

#Configure the ACD subscribe period (in seconds). It ranges from 120 to 3600 (default).
account.1.subscribe_acd_expires = 

#Configure the SIP server type; 0-Default (default), 2-BroadSoft, 4-Cosmocom;
account.1.sip_server_type = 

#Enable or disable the SIP signal encode; 0-Disabled (default), 1-Enabled (RC 4);
account.1.enable_signal_encode = 

#Configure the key for encoding.
account.1.signal_encode_key = 

#Configure the URI of the Music On Hold server. 
account.1.music_server_uri =

#Configure the DTMF type; 0-INBAND, 1-RFC2833 (default), 2-SIP INFO, 3-AUTO+SIP INFO;
account.1.dtmf.type = 

#Configure the RFC2833 payload. It ranges from 96 to 255, the default value is 101.
account.1.dtmf.dtmf_payload = 

#Configure the DTMF info type when using the SIP INFO; 0-Disabled (default), 1-DTMF-Relay, 2-DTMF, 3-Telephone-Event;
account.1.dtmf.info_type = 

#Enable or disable the phone to obtain the balance for account1; 0-Disabled (default), 1-Enabled;
account.1.balance_enable = 

#Configure the access URL of the balance server for account1.
account.1.balance_link_url =

#Enable or disable the phone to send the account log-off message first and then send account register message when rebooting the phone; 0-Disabled (default), 1-Enabled;
account.1.unregister_on_reboot =

#Enbale or diable the simplified header field feature; 0-Disabled, 1-Enabled (default);
account.1.compact_header_enable =

#Configure the type of Music on Hold; 0-Send the INVITE request to Music on Hold Server then hold the call; 1-Hold the call then send the INVITE request to Music on Hold Server;
#Require reboot;
account.1.music_on_hold_type = 

#########################################################################
##                     NAT Settings                                    ##
#########################################################################

#Enable or disable the NAT traversal; 0-Disabled (default), 1-STUN;
account.1.nat.nat_traversal = 

#Configure the STUN server address.
account.1.nat.stun_server = 

#Configure the STUN server port, the default value is 3478.
account.1.nat.stun_port = 

#Enable or disable the NAT keep-alive; 0-Disabled, 1-Enabled (default);
account.1.nat.udp_update_enable = 

#Specify the keep-alive interval (in seconds), the default value is 30.
account.1.nat.udp_update_time = 

#Enable or disable the NAT Rport; 0-Disabled (default), 1-Enabled;
account.1.nat.rport = 

#Configure the session timer (in seconds), the default value of T1, T2, T3 is 0.5, 4, 5.
account.1.advanced.timer_t1 = 
account.1.advanced.timer_t2 = 
account.1.advanced.timer_t4 = 

#Configure the timeout (in seconds) for DNS query, the value ranges from 1 to 9, the default value is 8.
account.1.dns_query_timeout =

#Assign a ringtone for account1. The system ring tones are: common (default), Ring1.wav, Ring2.wav,Ў­Ў­Ring8.wav.
#If you configure the custom ring tone (Family.wav) for the account, the value format is: Family.wav
#If you configure the system ring tone (Ring2.wav) for the account, the value format is: Ring2.wav
account.1.ringtone.ring_type = 

#Audio codecs for account1 (Y ranges from 1 to 13).
#Enable or disable the specified codec; 0-Disabled, 1-Enabled;
#account.1.codec.Y.enable = 
#The type of the specified codec.
#account.1.codec.Y.payload_type = 
#The priority of the specified codec. It's available when the codec is enabled.
#account.1.codec.Y.priority = 
#The payload of the specified codec.
#account.1.codec.Y.rtpmap = 

account.1.codec.1.enable = 1
account.1.codec.1.payload_type = PCMU
account.1.codec.1.priority = 1
account.1.codec.1.rtpmap = 0

account.1.codec.2.enable = 1
account.1.codec.2.payload_type = PCMA
account.1.codec.2.priority = 2 
account.1.codec.2.rtpmap = 8

account.1.codec.3.enable = 0 
account.1.codec.3.payload_type = G723_53
account.1.codec.3.priority =0
account.1.codec.3.rtpmap = 4

account.1.codec.4.enable = 0
account.1.codec.4.payload_type = G723_63
account.1.codec.4.priority = 0
account.1.codec.4.rtpmap = 4

account.1.codec.5.enable = 1
account.1.codec.5.payload_type = G729
account.1.codec.5.priority = 3
account.1.codec.5.rtpmap = 18

account.1.codec.6.enable = 1
account.1.codec.6.payload_type = G722
account.1.codec.6.priority = 4
account.1.codec.6.rtpmap = 9

account.1.codec.7.enable = 0
account.1.codec.7.payload_type = iLBC
account.1.codec.7.priority =  0
account.1.codec.7.rtpmap = 102

account.1.codec.8.enable = 0
account.1.codec.8.payload_type = G726-16
account.1.codec.8.priority = 0
account.1.codec.8.rtpmap = 112

account.1.codec.9.enable = 0
account.1.codec.9.payload_type = G726-24
account.1.codec.9.priority = 0
account.1.codec.9.rtpmap = 102

account.1.codec.10.enable = 0
account.1.codec.10.payload_type = G726-32 
account.1.codec.10.priority = 0 
account.1.codec.10.rtpmap = 99

account.1.codec.11.enable = 0
account.1.codec.11.payload_type = G726-40
account.1.codec.11.priority = 0
account.1.codec.11.rtpmap = 104

account.1.codec.12.enable = 0
account.1.codec.12.payload_type = iLBC_13_3
account.1.codec.12.priority = 0 
account.1.codec.12.rtpmap = 97

account.1.codec.13.enable = 0
account.1.codec.13.payload_type = iLBC_15_2
account.1.codec.13.priority = 0 
account.1.codec.13.rtpmap = 97 

#Configure the ACD reason code of Broadsoft.(The valus of Y must be consecutive numbers.)
#account.1.bw_acd_reason_code.Y = 500(lunch time)
account.1.bw_acd_reason_code.1 =
account.1.bw_acd_reason_code.2 =

#######################################################################################
##                        Call Forward                                               ##                                       
#######################################################################################

#Configure the call forward key mode; 0-Phone mode (default), 1-Custom mode.
features.fwd_mode =

#Enable or disable the always forward feature for account1; 0-Disabled (default), 1-Enabled;
account.1.always_fwd.enable = 

#Configure the destination number of the always forward for account1.
account.1.always_fwd.target = 

#Configure the always forward on code and off code for account1.
account.1.always_fwd.on_code = 
account.1.always_fwd.off_code =

#Enable or disable the busy forward feature for account1; 0-Disabled (default), 1-Enabled;
account.1.busy_fwd.enable = 
account.1.busy_fwd.target = 
account.1.busy_fwd.on_code = 
account.1.busy_fwd.off_code =

#Enable or disable the no answer forward feature for account1; 0-Disabled (default), 1-Enabled; 
#Configure the waiting ring times before forwarding. It ranges from 0 to 20, the default value is 2.
account.1.timeout_fwd.enable = 
account.1.timeout_fwd.target =
account.1.timeout_fwd.timeout = 
account.1.timeout_fwd.on_code =
account.1.timeout_fwd.off_code =

#Enable or disable the phone to record the last call forward type for account1; 0-Disabled (default), 1-Enabled;
account.1.last_type =

#######################################################################################
##                          DND                                                      ##                                       
#######################################################################################

#Configure the DND key mode; 0-Phone mode (default), 1-Custom mode.
features.dnd_mode = 

#Enable or disable the DND feautre for account1; 0-Disabled (default), 1-Enabled;
account.1.dnd.enable = 

#Configure the DND on code and off code for account1.
account.1.dnd.on_code = 
account.1.dnd.off_code =

#######################################################################################
##                        Account2 Settings                                          ##                                       
#######################################################################################

#Enable or disable the account2, 0-Disabled (default), 1-Enabled;
account.2.enable = 

#Configure the label displayed on the LCD screen for account2.
account.2.label = 

#Enable or disable to use the alert info URL; 0-Enabled (default), 1-Disabled;
account.2.alert_info_url_enable =

#Configure the display name of account2.
account.2.display_name =

#Configure the username and password for register authentication.
account.2.auth_name = 
account.2.password = 

#Configure the register user name.
account.2.user_name =  

#Configure the SIP server address.
account.2.sip_server_host = 
#Specify the port for the SIP server. The default value is 5060.
account.2.sip_server_port = 

#Enable or disable to use the outbound proxy server; 0-Disabled (default), 1-Enabled; 
account.2.outbound_proxy_enable = 

#Specify the IP address or domain name of the outbound proxy server.
account.2.outbound_host = 

#Specify the server port, the default value is 5060.
account.2.outbound_port =

#Configure the transport type; 0-UDP (default), 1-TCP, 2-TLS, 3-DNS SRV;
account.2.transport = 

#Enable or disable the timer to periodically refresh the DNS-SRV query result; 0-Disabled (default), 1-Enabled;
#Require reboot;
account.2.srv_ttl_timer_enable =

#Specify the service for SIP used to DNS-SRV query; 0-muti-service mixed, 1-SIP+D2U, 2-SIP+D2T, 3-SIPS+D2T;
#Require reboot;
account.2.dns_srv_type =

#Configure the address of the backup outbound proxy server.
account.2.backup_outbound_host = 

#Specify the port, the default value is 5060.
account.2.backup_outbound_port = 

#Configure the voice mail number of account2.
voice_mail.number.2 = 

#Configure the proxy server to account2.
account.2.proxy_require = 

#Enable or disable the phone to only accept the message from the server; 0-Disabled (default), 1-Enabled;
account.2.sip_trust_ctrl =  

#Enable or disable the anonymous call feature; 0-Disabled (default), 1-Enabled;
account.2.anonymous_call = 

#Configure the on code and off code of the anonymous call feature.
account.2.anonymous_call_oncode = 
account.2.anonymous_call_offcode = 

#Enable or disable the reject anonymous call feature; 0-Disabled (default), 1-Enabled;
account.2.reject_anonymous_call = 

#Configure the on code and off code of the reject anonymous call feature.
account.2.anonymous_reject_oncode = 
account.2.anonymous_reject_offcode = 

#Configure the SIP port for account2, the default value is 5060. 
account.2.sip_listen_port = 

#Configure the register expiry time (in seconds), the default value is 3600.
account.2.expires = 

#Enable or disable the 100 reliable retransmission; 0-Disabled (default), 1-Enabled;
account.2.100rel_enable = 

#Enable or disable the resource reservation; 0-Disabled (default), 1-Enabled;
account.2.precondition = 

#Enable or disable the phone to subscribe the register status; 0-Disabled (default), 1-Enabled;
account.2.subscribe_register = 

#Enable or disable the phone to subscribe the message waiting indicator; 0-Disabled (default), 1-Enabled;
account.2.subscribe_mwi = 

#Configure MWI subscribe expiry time (in seconds). It ranges from 0 to 84600, the default value is 3600.
account.2.subscribe_mwi_expires = 

#Configure the type of SIP header(s) to carry the caller ID; 0-FROM (default), 1-PAI 2-PAI-FROM, 3-PRID-PAI-FROM, 4-PAI-RPID-FROM, 5-RPID-FROM;
account.2.cid_source = 

#Configure the type of SIP header(s) to display on the caller's LCD screen; 0-RPID-FROM, 1-Dialed Digits (default), 2-RFC4916
account.2.cp_source = 

#Enable or disable the session timer, 0-Disabled (default), 1-Enabled;  
account.2.session_timer.enable =      

#Configure the refresh session timer interval (in seconds). It ranges from 1 to 9999.
account.2.session_timer.expires =      

#Configure the session timer refresher; 0-Uac (default), 1-Uas;
account.2.session_timer.refresher = 

#Enable or disable the "user=phone"; 0-Disabled (default), 1-Enabled;
account.2.enable_user_equal_phone = 

#Specify whether to encrypt the SIP messages; 0-Disabled (default), 1-Forced, 2-Negotiated;
account.2.srtp_encryption = 

#Configure the RTP packet time. The valid values are 0 (Disabled), 10, 20 (default), 30, 40, 50, 60.
account.2.ptime = 

#Assign account2 as shared line; 0-Disabled (default), 1-Broadsoft SCA, 2-BLA;
account.2.shared_line = 

#Configure BLA number for account2 and the subscribe period (in seconds). It ranges from 60 to 7200, the default value is 300.
account.2.bla_number = 
account.2.bla_subscribe_period = 

#Enable or disable call pickup using dialog-info SIP header; 0-Disabled (default), 1-Enabled;
account.2.dialoginfo_callpickup = 

#Configure the directed and group pickup codes for account 1, the settings on a per-account basis take precedence over the settings on the phone.
account.2.group_pickup_code = 
account.2.direct_pickup_code = 

#Enable or disable the auto answer feature; 0-Disabled (default), 1-Enabled;
account.2.auto_answer = 

#Enable or disable the phone to record the missed call; 0-Disabled, 1-Enabled (default);
account.2.missed_calllog = 

#Enable or disable the phone to subscribe to the voicemail through the message waiting indicator; 0-Disabled (default), 1-Enabled;
account.2.subscribe_mwi_to_vm = 

#Enable or disable the phone to send the MAC address and line number in the Register message; 0-Disabled (default), 1-Enabled;    
account.2.register_mac = 
account.2.register_line = 

#Configure the interval (in seconds) the phone retries to register when account2 fails to register. It ranges from 0 to 1800, the default value is 30.
account.2.reg_fail_retry_interval = 

#Configure the conference type; 0-Local (default), 2-Network Conference;
account.2.conf_type = 

#Configure the conference URI (a SIP URI, or use part of the SIP URI). For example, "conference@domain.com" or "conference".
account.2.conf_uri = 

#Configure the BLF list URI (a SIP URI, or use part of the SIP URI). For example, "2300_blflist@domain.com" or "2300_blflist".
account.2.blf.blf_list_uri = 

#Configure the pickup code of BLF List.
account.2.blf_list_code = 

#Configure the barge-in code.
account.2.blf_list_barge_in_code = 

#Enable or disable the phone to handle unmatched notify messages; 0-Disabled , 1-Enabled (default);
account.2.out_dialog_blf_enable = 

#Configure the BLF subscribe period (in seconds), the default value is 1800.
account.2.blf.subscribe_period = 

#Configure the ACD subscribe period (in seconds). It ranges from 120 to 3600 (default).
account.2.subscribe_acd_expires = 

#Configure the SIP server type; 0-Default (default), 2-BroadSoft, 4-Cosmocom;
account.2.sip_server_type = 

#Enable or disable the SIP signal encode; 0-Disabled (default), 1-Enabled (RC 4);
account.2.enable_signal_encode = 

#Configure the key for encoding.
account.2.signal_encode_key = 

#Configure the URI of the Music On Hold server. 
account.2.music_server_uri =

#Configure the DTMF type; 0-INBAND, 1-RFC2833 (default), 2-SIP INFO, 3-AUTO+SIP INFO;
account.2.dtmf.type = 

#Configure the RFC2833 payload. It ranges from 96 to 255, the default value is 101.
account.2.dtmf.dtmf_payload = 

#Configure the DTMF info type when using the SIP INFO; 0-Disabled (default), 1-DTMF-Relay, 2-DTMF, 3-Telephone-Event;
account.2.dtmf.info_type = 

#Enable or disable the phone to obtain the balance for account2; 0-Disabled (default), 1-Enabled;
account.2.balance_enable = 

#Configure the access URL of the balance server for account2.
account.2.balance_link_url =

#Enable or disable the phone to send the account log-off message first and then send account register message when rebooting the phone; 0-Disabled (default), 1-Enabled;
account.2.unregister_on_reboot =

#Enbale or diable the simplified header field feature; 0-Disabled, 1-Enabled (default);
account.2.compact_header_enable =

#Configure the type of Music on Hold; 0-Send the INVITE request to Music on Hold Server then hold the call; 1-Hold the call then send the INVITE request to Music on Hold Server;
#Require reboot;
account.2.music_on_hold_type = 

#########################################################################
##                     NAT Settings                                    ##
#########################################################################

#Enable or disable the NAT traversal; 0-Disabled (default), 1-STUN;
account.2.nat.nat_traversal = 

#Configure the STUN server address.
account.2.nat.stun_server = 

#Configure the STUN server port, the default value is 3478.
account.2.nat.stun_port = 

#Enable or disable the NAT keep-alive; 0-Disabled, 1-Enabled (default);
account.2.nat.udp_update_enable = 

#Specify the keep-alive interval (in seconds), the default value is 30.
account.2.nat.udp_update_time = 

#Enable or disable the NAT Rport; 0-Disabled (default), 1-Enabled;
account.2.nat.rport = 

#Configure the session timer (in seconds), the default value of T1, T2, T3 is 0.5, 4, 5.
account.2.advanced.timer_t1 = 
account.2.advanced.timer_t2 = 
account.2.advanced.timer_t4 = 

#Configure the timeout (in seconds) for DNS query, the value ranges from 1 to 9, the default value is 8.
account.2.dns_query_timeout =

#Assign a ringtone for account2. The system ring tones are: common (default), Ring1.wav, Ring2.wav,Ў­Ў­Ring8.wav.
#If you configure the custom ring tone (Family.wav) for the account, the value format is: Family.wav
#If you configure the system ring tone (Ring2.wav) for the account, the value format is: Ring2.wav
account.2.ringtone.ring_type =  

#Audio codecs for account2 (Y ranges from 1 to 13).
#Enable or disable the specified codec; 0-Disabled, 1-Enabled;
#account.2.codec.Y.enable = 
#The type of the specified codec.
#account.2.codec.Y.payload_type = 
#The priority of the specified codec. It's available when the codec is enabled.
#account.2.codec.Y.priority = 
#The payload of the specified codec.
#account.2.codec.Y.rtpmap = 

account.2.codec.1.enable = 1
account.2.codec.1.payload_type = PCMU
account.2.codec.1.priority = 1
account.2.codec.1.rtpmap = 0

account.2.codec.2.enable = 1
account.2.codec.2.payload_type = PCMA
account.2.codec.2.priority = 2 
account.2.codec.2.rtpmap = 8

account.2.codec.3.enable = 0 
account.2.codec.3.payload_type = G723_53
account.2.codec.3.priority =0
account.2.codec.3.rtpmap = 4

account.2.codec.4.enable = 0
account.2.codec.4.payload_type = G723_63
account.2.codec.4.priority = 0
account.2.codec.4.rtpmap = 4

account.2.codec.5.enable = 1
account.2.codec.5.payload_type = G729
account.2.codec.5.priority = 3
account.2.codec.5.rtpmap = 18

account.2.codec.6.enable = 1
account.2.codec.6.payload_type = G722
account.2.codec.6.priority = 4
account.2.codec.6.rtpmap = 9

account.2.codec.7.enable = 0
account.2.codec.7.payload_type = iBLC
account.2.codec.7.priority = 0 
account.2.codec.7.rtpmap = 102

account.2.codec.8.enable = 0
account.2.codec.8.payload_type = G726-16
account.2.codec.8.priority = 0
account.2.codec.8.rtpmap = 112

account.2.codec.9.enable = 0
account.2.codec.9.payload_type = G726-24
account.2.codec.9.priority = 0
account.2.codec.9.rtpmap = 102

account.2.codec.10.enable = 0
account.2.codec.10.payload_type = G726-32 
account.2.codec.10.priority = 0 
account.2.codec.10.rtpmap = 99

account.2.codec.11.enable = 0
account.2.codec.11.payload_type = G726-40
account.2.codec.11.priority = 0
account.2.codec.11.rtpmap = 104

account.2.codec.12.enable = 0
account.2.codec.12.payload_type = iLBC_13_3
account.2.codec.12.priority = 0 
account.2.codec.12.rtpmap = 97

account.2.codec.13.enable = 0
account.2.codec.13.payload_type = iLBC_15_2
account.2.codec.13.priority = 0 
account.2.codec.13.rtpmap = 97

#Configure the ACD reason code of Broadsoft.(The valus of Y must be consecutive numbers.)
#account.2.bw_acd_reason_code.Y = 500(lunch time)
account.2.bw_acd_reason_code.1 =
account.2.bw_acd_reason_code.2 =

#######################################################################################
##                        Call Forward                                               ##                                       
#######################################################################################

#Enable or disable the always forward feature for account2; 0-Disabled (default), 1-Enabled;
account.2.always_fwd.enable = 

#Configure the destination number of the always forward for account2.
account.2.always_fwd.target = 

#Configure the always forward on code and off code for account2.
account.2.always_fwd.on_code = 
account.2.always_fwd.off_code =

#Enable or disable the busy forward feature for account2; 0-Disabled (default), 1-Enabled;
account.2.busy_fwd.enable = 
account.2.busy_fwd.target = 
account.2.busy_fwd.on_code = 
account.2.busy_fwd.off_code =

#Enable or disable the no answer forward feature for account2; 0-Disabled (default), 1-Enabled; 
#Configure the waiting ring times before forwarding. It ranges from 0 to 20, the default value is 2.
account.2.timeout_fwd.enable = 
account.2.timeout_fwd.target =
account.2.timeout_fwd.timeout = 
account.2.timeout_fwd.on_code =
account.2.timeout_fwd.off_code =

#Enable or disable the phone to record the last call forward type for account2; 0-Disabled (default), 1-Enabled;
account.2.last_type =

#######################################################################################
##                          DND                                                      ##                                       
#######################################################################################

#Enable or disable the DND feature for account2; 0-Disabled (default), 1-Enabled;
account.2.dnd.enable = 

#Configure the DND on code and off code for account2.
account.2.dnd.on_code = 
account.2.dnd.off_code =

#######################################################################################
##                 Account3 Settings                                                 ##                                       
#######################################################################################

#Enable or disable the account3, 0-Disabled (default), 1-Enabled;
account.3.enable = 

#Configure the label displayed on the LCD screen for account3.
account.3.label =

#Enable or disable to use the alert info URL; 0-Enabled (default), 1-Disabled;
account.3.alert_info_url_enable =

#Configure the display name of account3.
account.3.display_name =

#Configure the username and password for register authentication.
account.3.auth_name = 
account.3.password =   

#Configure the register user name.
account.3.user_name =  

#Configure the SIP server address.
account.3.sip_server_host = 
#Specify the port for the SIP server. The default value is 5060.
account.3.sip_server_port = 

#Enable or disable to use the outbound proxy server; 0-Disabled (default), 1-Enabled; 
account.3.outbound_proxy_enable = 

#Specify the IP address or domain name of the outbound proxy server.
account.3.outbound_host = 

#Specify the server port, the default value is 5060.
account.3.outbound_port =

#Configure the transport type; 0-UDP (default), 1-TCP, 2-TLS, 3-DNS SRV;
account.3.transport = 

#Enable or disable the timer to periodically refresh the DNS-SRV query result; 0-Disabled (default), 1-Enabled;
#Require reboot;
account.3.srv_ttl_timer_enable =

#Specify the service for SIP used to DNS-SRV query; 0-muti-service mixed, 1-SIP+D2U, 2-SIP+D2T, 3-SIPS+D2T;
#Require reboot;
account.3.dns_srv_type =

#Configure the address of the backup outbound proxy server.
account.3.backup_outbound_host = 

#Specify the port, the default value is 5060.
account.3.backup_outbound_port = 

#Configure the voice mail number of account3.
voice_mail.number.3 = 

#Configure the proxy server to account3.
account.3.proxy_require = 

#Enable or disable the phone to only accept the message from the server; 0-Disabled (default), 1-Enabled;
account.3.sip_trust_ctrl =

#Enable or disable the anonymous call feature; 0-Disabled (default), 1-Enabled;
account.3.anonymous_call = 

#Configure the on code and off code of the anonymous call feature.
account.3.anonymous_call_oncode = 
account.3.anonymous_call_offcode = 

#Enable or disable the reject anonymous call feature; 0-Disabled (default), 1-Enabled;
account.3.reject_anonymous_call = 

#Configure the on code and off code of the reject anonymous call feature.
account.3.anonymous_reject_oncode = 
account.3.anonymous_reject_offcode = 

#Configure the SIP port for account3, the default value is 5060. 
account.3.sip_listen_port = 

#Configure the register expiry time (in seconds), the default value is 3600.
account.3.expires = 

#Enable or disable the 100 reliable retransmission; 0-Disabled (default), 1-Enabled;
account.3.100rel_enable = 

#Enable or disable the resource reservation; 0-Disabled (default), 1-Enabled;
account.3.precondition = 

#Enable or disable the phone to subscribe the register status; 0-Disabled (default), 1-Enabled;
account.3.subscribe_register = 

#Enable or disable the phone to subscribe the message waiting indicator; 0-Disabled (default), 1-Enabled;
account.3.subscribe_mwi = 

#Configure MWI subscribe expiry time (in seconds). It ranges from 0 to 84600, the default value is 3600.
account.3.subscribe_mwi_expires = 

#Configure the type of SIP header(s) to carry the caller ID; 0-FROM (default), 1-PAI 2-PAI-FROM, 3-PRID-PAI-FROM, 4-PAI-RPID-FROM, 5-RPID-FROM;
account.3.cid_source = 

#Configure the type of SIP header(s) to display on the caller's LCD screen; 0-RPID-FROM, 1-Dialed Digits (default), 2-RFC4916
account.3.cp_source = 

#Enable or disable the session timer, 0-Disabled (default), 1-Enabled;  
account.3.session_timer.enable =      

#Configure the refresh session timer interval (in seconds). It ranges from 1 to 9999.
account.3.session_timer.expires =      

#Configure the session timer refresher; 0-Uac (default), 1-Uas;
account.3.session_timer.refresher = 

#Enable or disable the "user=phone"; 0-Disabled (default), 1-Enabled;
account.3.enable_user_equal_phone = 

#Specify whether to encrypt the SIP messages; 0-Disabled (default), 1-Forced, 2-Negotiated;
account.3.srtp_encryption = 

#Configure the RTP packet time. The valid values are 0 (Disabled), 10, 20 (default), 30, 40, 50, 60.
account.3.ptime = 

#Assign account3 as shared line; 0-Disabled (default), 1-Broadsoft SCA, 2-BLA;
account.3.shared_line = 

#Configure BLA number for account3 and the subscribe period (in seconds). It ranges from 60 to 7200, the default value is 300.
account.3.bla_number = 
account.3.bla_subscribe_period = 

#Enable or disable call pickup using dialog-info SIP header; 0-Disabled (default), 1-Enabled;
account.3.dialoginfo_callpickup = 

#Configure the directed and group pickup codes for account 1, the settings on a per-account basis take precedence over the settings on the phone.
account.3.group_pickup_code = 
account.3.direct_pickup_code = 

#Enable or disable the auto answer feature; 0-Disabled (default), 1-Enabled;
account.3.auto_answer = 

#Enable or disable the phone to record the missed call; 0-Disabled, 1-Enabled (default);
account.3.missed_calllog = 

#Enable or disable the phone to subscribe to the voicemail through the message waiting indicator; 0-Disabled (default), 1-Enabled;
account.3.subscribe_mwi_to_vm = 

#Enable or disable the phone to send the MAC address and line number in the Register message; 0-Disabled (default), 1-Enabled;    
account.3.register_mac = 
account.3.register_line = 

#Configure the interval (in seconds) the phone retries to register when account3 fails to register. It ranges from 0 to 1800, the default value is 30.
account.3.reg_fail_retry_interval = 

#Configure the conference type; 0-Local (default), 2-Network Conference;
account.3.conf_type = 

#Configure the conference URI (a SIP URI, or use part of the SIP URI). For example, "conference@domain.com" or "conference".
account.3.conf_uri = 

#Configure the BLF list URI (a SIP URI, or use part of the SIP URI). For example, "2300_blflist@domain.com" or "2300_blflist".
account.3.blf.blf_list_uri = 

#Configure the pickup code of BLF List.
account.3.blf_list_code = 

#Configure the barge-in code.
account.3.blf_list_barge_in_code = 

#Enable or disable the phone to handle unmatched notify messages; 0-Disabled (default) , 1-Enabled ;
account.3.out_dialog_blf_enable = 

#Configure the BLF subscribe period (in seconds), the default value is 1800.
account.3.blf.subscribe_period = 

#Configure the ACD subscribe period (in seconds). It ranges from 120 to 3600 (default).
account.3.subscribe_acd_expires = 

#Configure the SIP server type; 0-Default (default), 2-BroadSoft, 4-Cosmocom;
account.3.sip_server_type = 

#Enable or disable the SIP signal encode; 0-Disabled (default), 1-Enabled (RC 4);
account.3.enable_signal_encode = 

#Configure the key for encoding.
account.3.signal_encode_key = 

#Configure the URI of the Music On Hold server. 
account.3.music_server_uri =

#Configure the DTMF type; 0-INBAND, 1-RFC2833 (default), 2-SIP INFO, 3-AUTO+SIP INFO;
account.3.dtmf.type = 

#Configure the RFC2833 payload. It ranges from 96 to 255, the default value is 101.
account.3.dtmf.dtmf_payload = 

#Configure the DTMF info type when using the SIP INFO; 0-Disabled (default), 1-DTMF-Relay, 2-DTMF, 3-Telephone-Event;
account.3.dtmf.info_type = 

#Enable or disable the phone to obtain the balance for account3; 0-Disabled (default), 1-Enabled;
account.3.balance_enable = 

#Configure the access URL of the balance server for account3.
account.3.balance_link_url =

#Enable or disable the phone to send the account log-off message first and then send account register message when rebooting the phone; 0-Disabled (default), 1-Enabled;
account.3.unregister_on_reboot =

#Enbale or diable the simplified header field feature; 0-Disabled, 1-Enabled (default);
account.3.compact_header_enable =

#Configure the type of Music on Hold; 0-Send the INVITE request to Music on Hold Server then hold the call; 1-Hold the call then send the INVITE request to Music on Hold Server;
#Require reboot;
account.3.music_on_hold_type = 

#########################################################################
##                     NAT Settings                                    ##
#########################################################################

#Enable or disable the NAT traversal; 0-Disabled (default), 1-STUN;
account.3.nat.nat_traversal = 

#Configure the STUN server address.
account.3.nat.stun_server = 

#Configure the STUN server port, the default value is 3478.
account.3.nat.stun_port = 

#Enable or disable the NAT keep-alive; 0-Disabled, 1-Enabled (default);
account.3.nat.udp_update_enable = 

#Specify the keep-alive interval (in seconds), the default value is 30.
account.3.nat.udp_update_time = 

#Enable or disable the NAT Rport; 0-Disabled (default), 1-Enabled;
account.3.nat.rport = 

#Configure the session timer (in seconds), the default value of T1, T2, T3 is 0.5, 4, 5.
account.3.advanced.timer_t1 = 
account.3.advanced.timer_t2 = 
account.3.advanced.timer_t4 = 

#Configure the timeout (in seconds) for DNS query, the value ranges from 1 to 9, the default value is 8.
account.3.dns_query_timeout =

#Assign a ringtone for account3. The system ring tones are: common (default), Ring1.wav, Ring2.wav,Ў­Ў­Ring8.wav.
#If you configure the custom ring tone (Family.wav) for the account, the value format is: Family.wav
#If you configure the system ring tone (Ring2.wav) for the account, the value format is: Ring2.wav
account.3.ringtone.ring_type = 

#Audio codecs for account3 (Y ranges from 1 to 13).
#Enable or disable the specified codec; 0-Disabled, 1-Enabled;
#account.3.codec.Y.enable = 
#The type of the specified codec.
#account.3.codec.Y.payload_type = 
#The priority of the specified codec. It's available when the codec is enabled.
#account.3.codec.Y.priority = 
#The payload of the specified codec.
#account.3.codec.Y.rtpmap = 

account.3.codec.1.enable = 1
account.3.codec.1.payload_type = PCMU
account.3.codec.1.priority = 1
account.3.codec.1.rtpmap = 0

account.3.codec.2.enable = 1
account.3.codec.2.payload_type = PCMA
account.3.codec.2.priority = 2 
account.3.codec.2.rtpmap = 8

account.3.codec.3.enable = 0 
account.3.codec.3.payload_type = G723_53
account.3.codec.3.priority =0
account.3.codec.3.rtpmap = 4

account.3.codec.4.enable = 0
account.3.codec.4.payload_type = G723_63
account.3.codec.4.priority = 0
account.3.codec.4.rtpmap = 4

account.3.codec.5.enable = 1
account.3.codec.5.payload_type = G729
account.3.codec.5.priority = 3
account.3.codec.5.rtpmap = 18

account.3.codec.6.enable = 1
account.3.codec.6.payload_type = G722
account.3.codec.6.priority = 4
account.3.codec.6.rtpmap = 9

account.3.codec.7.enable = 0
account.3.codec.7.payload_type = iBLC
account.3.codec.7.priority = 0 
account.3.codec.7.rtpmap = 102

account.3.codec.8.enable = 0
account.3.codec.8.payload_type = G726-16
account.3.codec.8.priority = 0
account.3.codec.8.rtpmap = 112

account.3.codec.9.enable = 0
account.3.codec.9.payload_type = G726-24
account.3.codec.9.priority = 0
account.3.codec.9.rtpmap = 102

account.3.codec.10.enable = 0
account.3.codec.10.payload_type = G726-32 
account.3.codec.10.priority = 0 
account.3.codec.10.rtpmap = 99

account.3.codec.11.enable = 0
account.3.codec.11.payload_type = G726-40
account.3.codec.11.priority = 0
account.3.codec.11.rtpmap = 104

account.3.codec.12.enable = 0
account.3.codec.12.payload_type = iLBC_13_3
account.3.codec.12.priority = 0 
account.3.codec.12.rtpmap = 97

account.3.codec.13.enable = 0
account.3.codec.13.payload_type = iLBC_15_2
account.3.codec.13.priority = 0 
account.3.codec.13.rtpmap = 97      

#Configure the ACD reason code of Broadsoft.(The valus of Y must be consecutive numbers.)
#account.3.bw_acd_reason_code.Y = 500(lunch time)
account.3.bw_acd_reason_code.1 =
account.3.bw_acd_reason_code.2 =

#######################################################################################
##                        Call Forward                                               ##                                       
#######################################################################################

#Enable or disable the always forward feature for account3; 0-Disabled (default), 1-Enabled;
account.3.always_fwd.enable = 

#Configure the destination number of the always forward for account3.
account.3.always_fwd.target = 

#Configure the always forward on code and off code for account3.
account.3.always_fwd.on_code = 
account.3.always_fwd.off_code =

#Enable or disable the busy forward feature for account3; 0-Disabled (default), 1-Enabled;
account.3.busy_fwd.enable = 
account.3.busy_fwd.target = 
account.3.busy_fwd.on_code = 
account.3.busy_fwd.off_code =

#Enable or disable the no answer forward feature for account3; 0-Disabled (default), 1-Enabled; 
#Configure the waiting ring times before forwarding. It ranges from 0 to 20, the default value is 2.
account.3.timeout_fwd.enable = 
account.3.timeout_fwd.target =
account.3.timeout_fwd.timeout = 
account.3.timeout_fwd.on_code =
account.3.timeout_fwd.off_code =

#Enable or disable the phone to record the last call forward type for account3; 0-Disabled (default), 1-Enabled;
account.3.last_type =

#######################################################################################
##                          DND                                                      ##                                       
#######################################################################################

#Enable or disable the DND feautre for account3; 0-Disabled (default), 1-Enabled;
account.3.dnd.enable = 

#Configure the DND on code and off code for account3.
account.3.dnd.on_code = 
account.3.dnd.off_code =

#######################################################################################
##              Account4 Settings (For T28P only)                                    ##                                       
#######################################################################################

#Enable or disable the account4, 0-Disabled (default), 1-Enabled;
account.4.enable = 

#Configure the label displayed on the LCD screen for account4.
account.4.label = 

#Enable or disable to use the alert info URL; 0-Enabled (default), 1-Disabled;
account.4.alert_info_url_enable =

#Configure the display name of account4.
account.4.display_name =

#Configure the username and password for register authentication.
account.4.auth_name = 
account.4.password =   

#Configure the register user name.
account.4.user_name =  

#Configure the SIP server address.
account.4.sip_server_host = 
#Specify the port for the SIP server. The default value is 5060.
account.4.sip_server_port = 

#Enable or disable to use the outbound proxy server; 0-Disabled (default), 1-Enabled; 
account.4.outbound_proxy_enable = 

#Specify the IP address or domain name of the outbound proxy server.
account.4.outbound_host = 

#Specify the server port, the default value is 5060.
account.4.outbound_port =

#Configure the transport type; 0-UDP (default), 1-TCP, 2-TLS, 3-DNS SRV;
account.4.transport = 

#Enable or disable the timer to periodically refresh the DNS-SRV query result; 0-Disabled (default), 1-Enabled;
#Require reboot;
account.4.srv_ttl_timer_enable =

#Specify the service for SIP used to DNS-SRV query; 0-muti-service mixed, 1-SIP+D2U, 2-SIP+D2T, 3-SIPS+D2T;
#Require reboot;
account.4.dns_srv_type =

#Configure the address of the backup outbound proxy server.
account.4.backup_outbound_host = 

#Specify the port, the default value is 5060.
account.4.backup_outbound_port = 

#Configure the voice mail number of account4.
voice_mail.number.4 = 

#Configure the proxy server to account4.
account.4.proxy_require = 

#Enable or disable the phone to only accept the message from the server; 0-Disabled (default), 1-Enabled;
account.4.sip_trust_ctrl =

#Enable or disable the anonymous call feature; 0-Disabled (default), 1-Enabled;
account.4.anonymous_call = 

#Configure the on code and off code of the anonymous call feature.
account.4.anonymous_call_oncode = 
account.4.anonymous_call_offcode = 

#Enable or disable the reject anonymous call feature; 0-Disabled (default), 1-Enabled;
account.4.reject_anonymous_call = 

#Configure the on code and off code of the reject anonymous call feature.
account.4.anonymous_reject_oncode = 
account.4.anonymous_reject_offcode = 

#Configure the SIP port for account4, the default value is 5060. 
account.4.sip_listen_port = 

#Configure the register expiry time (in seconds), the default value is 3600.
account.4.expires = 

#Enable or disable the 100 reliable retransmission; 0-Disabled (default), 1-Enabled;
account.4.100rel_enable = 

#Enable or disable the resource reservation; 0-Disabled (default), 1-Enabled;
account.4.precondition = 

#Enable or disable the phone to subscribe the register status; 0-Disabled (default), 1-Enabled;
account.4.subscribe_register = 

#Enable or disable the phone to subscribe the message waiting indicator; 0-Disabled (default), 1-Enabled;
account.4.subscribe_mwi = 

#Configure MWI subscribe expiry time (in seconds). It ranges from 0 to 84600, the default value is 3600.
account.4.subscribe_mwi_expires = 

#Configure the type of SIP header(s) to carry the caller ID; 0-FROM (default), 1-PAI 2-PAI-FROM, 3-PRID-PAI-FROM, 4-PAI-RPID-FROM, 5-RPID-FROM;
account.4.cid_source = 

#Configure the type of SIP header(s) to display on the caller's LCD screen; 0-RPID-FROM, 1-Dialed Digits(default), 2-RFC4916
account.4.cp_source = 

#Enable or disable the session timer, 0-Disabled (default), 1-Enabled;  
account.4.session_timer.enable =      

#Configure the refresh session timer interval (in seconds). It ranges from 1 to 9999.
account.4.session_timer.expires =      

#Configure the session timer refresher; 0-Uac (default), 1-Uas;
account.4.session_timer.refresher = 

#Enable or disable the "user=phone"; 0-Disabled (default), 1-Enabled;
account.4.enable_user_equal_phone = 

#Specify whether to encrypt the SIP messages; 0-Disabled (default), 1-Forced, 2-Negotiated;
account.4.srtp_encryption = 

#Configure the RTP packet time. The valid values are 0 (Disabled), 10, 20 (default), 30, 40, 50, 60.
account.4.ptime = 

#Assign account4 as shared line; 0-Disabled (default), 1-Broadsoft SCA, 2-BLA;
account.4.shared_line = 

#Configure BLA number for account4 and the subscribe period (in seconds). It ranges from 60 to 7200, the default value is 300.
account.4.bla_number = 
account.4.bla_subscribe_period = 

#Enable or disable call pickup using dialog-info SIP header; 0-Disabled (default), 1-Enabled;
account.4.dialoginfo_callpickup = 

#Configure the directed and group pickup codes for account 1, the settings on a per-account basis take precedence over the settings on the phone.
account.4.group_pickup_code = 
account.4.direct_pickup_code = 

#Enable or disable the auto answer feature; 0-Disabled (default), 1-Enabled;
account.4.auto_answer = 

#Enable or disable the phone to record the missed call; 0-Disabled, 1-Enabled (default);
account.4.missed_calllog = 

#Enable or disable the phone to subscribe to the voicemail through the message waiting indicator; 0-Disabled (default), 1-Enabled;
account.4.subscribe_mwi_to_vm = 

#Enable or disable the phone to send the MAC address and line number in the Register message; 0-Disabled (default), 1-Enabled;    
account.4.register_mac = 
account.4.register_line = 

#Configure the interval (in seconds) the phone retries to register when account4 fails to register. It ranges from 0 to 1800, the default value is 30.
account.4.reg_fail_retry_interval = 

#Configure the conference type; 0-Local (default), 2-Network Conference;
account.4.conf_type = 

#Configure the conference URI (a SIP URI, or use part of the SIP URI). For example, "conference@domain.com" or "conference".
account.4.conf_uri = 

#Configure the BLF list URI (a SIP URI, or use part of the SIP URI). For example, "2300_blflist@domain.com" or "2300_blflist".
account.4.blf.blf_list_uri = 

#Configure the pickup code of BLF List.
account.4.blf_list_code = 

#Configure the barge-in code.
account.4.blf_list_barge_in_code = 

#Enable or disable the phone to handle unmatched notify messages; 0-Disabled (default) , 1-Enabled ;
account.4.out_dialog_blf_enable = 

#Configure the BLF subscribe period (in seconds), the default value is 1800.
account.4.blf.subscribe_period = 

#Configure the ACD subscribe period (in seconds). It ranges from 120 to 3600 (default).
account.4.subscribe_acd_expires = 

#Configure the SIP server type; 0-Default (default), 2-BroadSoft, 4-Cosmocom;
account.4.sip_server_type = 

#Enable or disable the SIP signal encode; 0-Disabled (default), 1-Enabled (RC 4);
account.4.enable_signal_encode = 

#Configure the key for encoding.
account.4.signal_encode_key = 

#Configure the URI of the Music On Hold server. 
account.4.music_server_uri =

#Configure the DTMF type; 0-INBAND, 1-RFC2833 (default), 2-SIP INFO, 3-AUTO+SIP INFO;
account.4.dtmf.type = 

#Configure the RFC2833 payload. It ranges from 96 to 255, the default value is 101.
account.4.dtmf.dtmf_payload = 

#Configure the DTMF info type when using the SIP INFO; 0-Disabled (default), 1-DTMF-Relay, 2-DTMF, 3-Telephone-Event;
account.4.dtmf.info_type = 

#Enable or disable the phone to obtain the balance for account4; 0-Disabled (default), 1-Enabled;
account.4.balance_enable = 

#Configure the access URL of the balance server for account4.
account.4.balance_link_url =

#Enable or disable the phone to send the account log-off message first and then send account register message when rebooting the phone; 0-Disabled (default), 1-Enabled;
account.4.unregister_on_reboot =

#Enbale or diable the simplified header field feature; 0-Disabled, 1-Enabled (default);
account.4.compact_header_enable =

#Configure the type of Music on Hold; 0-Send the INVITE request to Music on Hold Server then hold the call; 1-Hold the call then send the INVITE request to Music on Hold Server;
#Require reboot;
account.4.music_on_hold_type = 

#########################################################################
##                     NAT Settings                                    ##
#########################################################################

#Enable or disable the NAT traversal; 0-Disabled (default), 1-STUN;
account.4.nat.nat_traversal = 

#Configure the STUN server address.
account.4.nat.stun_server = 

#Configure the STUN server port, the default value is 3478.
account.4.nat.stun_port = 

#Enable or disable the NAT keep-alive; 0-Disabled, 1-Enabled (default);
account.4.nat.udp_update_enable = 

#Specify the keep-alive interval (in seconds), the default value is 30.
account.4.nat.udp_update_time = 

#Enable or disable the NAT Rport; 0-Disabled (default), 1-Enabled;
account.4.nat.rport = 

#Configure the session timer (in seconds), the default value of T1, T2, T3 is 0.5, 4, 5.
account.4.advanced.timer_t1 = 
account.4.advanced.timer_t2 = 
account.4.advanced.timer_t4 = 

#Configure the timeout (in seconds) for DNS query, the value ranges from 1 to 9, the default value is 8.
account.4.dns_query_timeout =

#Assign a ringtone for account4. The system ring tones are: common (default), Ring1.wav, Ring2.wav,Ў­Ў­Ring8.wav.
#If you configure the custom ring tone (Family.wav) for the account, the value format is: Family.wav
#If you configure the system ring tone (Ring2.wav) for the account, the value format is: Ring2.wav
account.4.ringtone.ring_type = 

#Audio codecs for account4 (Y ranges from 1 to 13).
#Enable or disable the specified codec; 0-Disabled, 1-Enabled;
#account.4.codec.Y.enable = 
#The type of the specified codec.
#account.4.codec.Y.payload_type = 
#The priority of the specified codec. It's available when the codec is enabled.
#account.4.codec.Y.priority = 
#The payload of the specified codec.
#account.4.codec.Y.rtpmap = 

account.4.codec.1.enable = 1
account.4.codec.1.payload_type = PCMU
account.4.codec.1.priority = 1
account.4.codec.1.rtpmap = 0

account.4.codec.2.enable = 1
account.4.codec.2.payload_type = PCMA
account.4.codec.2.priority = 2 
account.4.codec.2.rtpmap = 8

account.4.codec.3.enable = 0 
account.4.codec.3.payload_type = G723_53
account.4.codec.3.priority =0
account.4.codec.3.rtpmap = 4

account.4.codec.4.enable = 0
account.4.codec.4.payload_type = G723_63
account.4.codec.4.priority = 0
account.4.codec.4.rtpmap = 4

account.4.codec.5.enable = 1
account.4.codec.5.payload_type = G729
account.4.codec.5.priority = 3
account.4.codec.5.rtpmap = 18

account.4.codec.6.enable = 1
account.4.codec.6.payload_type = G722
account.4.codec.6.priority = 4
account.4.codec.6.rtpmap = 9

account.4.codec.7.enable = 0
account.4.codec.7.payload_type = iBLC
account.4.codec.7.priority = 0 
account.4.codec.7.rtpmap = 102

account.4.codec.8.enable = 0
account.4.codec.8.payload_type = G726-16
account.4.codec.8.priority = 0
account.4.codec.8.rtpmap = 112

account.4.codec.9.enable = 0
account.4.codec.9.payload_type = G726-24
account.4.codec.9.priority = 0
account.4.codec.9.rtpmap = 102

account.4.codec.10.enable = 0
account.4.codec.10.payload_type = G726-32 
account.4.codec.10.priority = 0 
account.4.codec.10.rtpmap = 99

account.4.codec.11.enable = 0
account.4.codec.11.payload_type = G726-40
account.4.codec.11.priority = 0
account.4.codec.11.rtpmap = 104

account.4.codec.12.enable = 0
account.4.codec.12.payload_type = iLBC_13_3
account.4.codec.12.priority = 0 
account.4.codec.12.rtpmap = 97

account.4.codec.13.enable = 0
account.4.codec.13.payload_type = iLBC_15_2
account.4.codec.13.priority = 0 
account.4.codec.13.rtpmap = 97          

#Configure the ACD reason code of Broadsoft.(The valus of Y must be consecutive numbers.)
#account.4.bw_acd_reason_code.Y = 500(lunch time)
account.4.bw_acd_reason_code.1 =
account.4.bw_acd_reason_code.2 =

#######################################################################################
##                        Call Forward                                               ##                                       
#######################################################################################

#Enable or disable the always forward feature for account4; 0-Disabled (default), 1-Enabled;
account.4.always_fwd.enable = 

#Configure the destination number of the always forward for account4.
account.4.always_fwd.target = 

#Configure the always forward on code and off code for account4.
account.4.always_fwd.on_code = 
account.4.always_fwd.off_code =

#Enable or disable the busy forward feature for account4; 0-Disabled (default), 1-Enabled;
account.4.busy_fwd.enable = 
account.4.busy_fwd.target = 
account.4.busy_fwd.on_code = 
account.4.busy_fwd.off_code =

#Enable or disable the no answer forward feature for account4; 0-Disabled (default), 1-Enabled; 
#Configure the waiting ring times before forwarding. It ranges from 0 to 20, the default value is 2.
account.4.timeout_fwd.enable = 
account.4.timeout_fwd.target =
account.4.timeout_fwd.timeout = 
account.4.timeout_fwd.on_code =
account.4.timeout_fwd.off_code =

#Enable or disable the phone to record the last call forward type for account4; 0-Disabled (default), 1-Enabled;
account.4.last_type =

#######################################################################################
##                          DND                                                      ##                                       
#######################################################################################

#Enable or disable the DND feautre for account4; 0-Disabled (default), 1-Enabled;
account.4.dnd.enable = 

#Configure the DND on code and off code for account4.
account.4.dnd.on_code = 
account.4.dnd.off_code =

#######################################################################################
##               Account5 Settings (For T28P only)                                   ##                                        
#######################################################################################

#Enable or disable the account5, 0-Disabled (default), 1-Enabled;
account.5.enable = 

#Configure the label displayed on the LCD screen for account5.
account.5.label = 

#Enable or disable to use the alert info URL; 0-Enabled (default), 1-Disabled;
account.5.alert_info_url_enable =

#Configure the display name of account5.
account.5.display_name =

#Configure the username and password for register authentication.
account.5.auth_name = 
account.5.password =   

#Configure the register user name.
account.5.user_name =  

#Configure the SIP server address.
account.5.sip_server_host = 
#Specify the port for the SIP server. The default value is 5060.
account.5.sip_server_port = 

#Enable or disable to use the outbound proxy server; 0-Disabled (default), 1-Enabled; 
account.5.outbound_proxy_enable = 

#Specify the IP address or domain name of the outbound proxy server.
account.5.outbound_host = 

#Specify the server port, the default value is 5060.
account.5.outbound_port =

#Configure the transport type; 0-UDP (default), 1-TCP, 2-TLS, 3-DNS SRV;
account.5.transport = 

#Enable or disable the timer to periodically refresh the DNS-SRV query result; 0-Disabled (default), 1-Enabled;
#Require reboot;
account.5.srv_ttl_timer_enable =

#Specify the service for SIP used to DNS-SRV query; 0-muti-service mixed, 1-SIP+D2U, 2-SIP+D2T, 3-SIPS+D2T;
#Require reboot;
account.5.dns_srv_type =

#Configure the address of the backup outbound proxy server.
account.5.backup_outbound_host = 

#Specify the port, the default value is 5060.
account.5.backup_outbound_port = 

#Configure the voice mail number of account5.
voice_mail.number.5 = 

#Configure the proxy server to account5.
account.5.proxy_require = 

#Enable or disable the phone to only accept the message from the server; 0-Disabled (default), 1-Enabled;
account.5.sip_trust_ctrl =

#Enable or disable the anonymous call feature; 0-Disabled (default), 1-Enabled;
account.5.anonymous_call = 

#Configure the on code and off code of the anonymous call feature.
account.5.anonymous_call_oncode = 
account.5.anonymous_call_offcode = 

#Enable or disable the reject anonymous call feature; 0-Disabled (default), 1-Enabled;
account.5.reject_anonymous_call = 

#Configure the on code and off code of the reject anonymous call feature.
account.5.anonymous_reject_oncode = 
account.5.anonymous_reject_offcode = 

#Configure the SIP port for account5, the default value is 5060. 
account.5.sip_listen_port = 

#Configure the register expiry time (in seconds), the default value is 3600.
account.5.expires = 

#Enable or disable the 100 reliable retransmission; 0-Disabled (default), 1-Enabled;
account.5.100rel_enable = 

#Enable or disable the resource reservation; 0-Disabled (default), 1-Enabled;
account.5.precondition = 

#Enable or disable the phone to subscribe the register status; 0-Disabled (default), 1-Enabled;
account.5.subscribe_register = 

#Enable or disable the phone to subscribe the message waiting indicator; 0-Disabled (default), 1-Enabled;
account.5.subscribe_mwi = 

#Configure MWI subscribe expiry time (in seconds). It ranges from 0 to 84600, the default value is 3600.
account.5.subscribe_mwi_expires = 

#Configure the type of SIP header(s) to carry the caller ID; 0-FROM (default), 1-PAI 2-PAI-FROM, 3-PRID-PAI-FROM, 4-PAI-RPID-FROM, 5-RPID-FROM;
account.5.cid_source = 

#Configure the type of SIP header(s) to display on the caller's LCD screen; 0-RPID-FROM, 1-Dialed Digits (default), 2-RFC4916
account.5.cp_source = 

#Enable or disable the session timer, 0-Disabled (default), 1-Enabled;  
account.5.session_timer.enable =      

#Configure the refresh session timer interval (in seconds). It ranges from 1 to 9999.
account.5.session_timer.expires =      

#Configure the session timer refresher; 0-Uac (default), 1-Uas;
account.5.session_timer.refresher = 

#Enable or disable the "user=phone"; 0-Disabled (default), 1-Enabled;
account.5.enable_user_equal_phone = 

#Specify whether to encrypt the SIP messages; 0-Disabled (default), 1-Forced, 2-Negotiated;
account.5.srtp_encryption = 

#Configure the RTP packet time. The valid values are 0 (Disabled), 10, 20 (default), 30, 40, 50, 60.
account.5.ptime = 

#Assign account5 as shared line; 0-Disabled (default), 1-Broadsoft SCA, 2-BLA;
account.5.shared_line = 

#Configure BLA number for account5 and the subscribe period (in seconds). It ranges from 60 to 7200, the default value is 300.
account.5.bla_number = 
account.5.bla_subscribe_period = 

#Enable or disable call pickup using dialog-info SIP header; 0-Disabled (default), 1-Enabled;
account.5.dialoginfo_callpickup = 

#Configure the directed and group pickup codes for account 1, the settings on a per-account basis take precedence over the settings on the phone.
account.5.group_pickup_code = 
account.5.direct_pickup_code = 

#Enable or disable the auto answer feature; 0-Disabled (default), 1-Enabled;
account.5.auto_answer = 

#Enable or disable the phone to record the missed call; 0-Disabled, 1-Enabled (default);
account.5.missed_calllog = 

#Enable or disable the phone to subscribe to the voicemail through the message waiting indicator; 0-Disabled (default), 1-Enabled;
account.5.subscribe_mwi_to_vm = 

#Enable or disable the phone to send the MAC address and line number in the Register message; 0-Disabled (default), 1-Enabled;    
account.5.register_mac = 
account.5.register_line = 

#Configure the interval (in seconds) the phone retries to register when account5 fails to register. It ranges from 0 to 1800, the default value is 30.
account.5.reg_fail_retry_interval = 

#Configure the conference type; 0-Local (default), 2-Network Conference;
account.5.conf_type = 

#Configure the conference URI (a SIP URI, or use part of the SIP URI). For example, "conference@domain.com" or "conference".
account.5.conf_uri = 

#Configure the BLF list URI (a SIP URI, or use part of the SIP URI). For example, "2300_blflist@domain.com" or "2300_blflist".
account.5.blf.blf_list_uri = 

#Configure the pickup code of BLF List.
account.5.blf_list_code = 

#Configure the barge-in code.
account.5.blf_list_barge_in_code = 

#Enable or disable the phone to handle unmatched notify messages; 0-Disabled (default) , 1-Enabled ;
account.5.out_dialog_blf_enable = 

#Configure the BLF subscribe period (in seconds), the default value is 1800.
account.5.blf.subscribe_period = 

#Configure the ACD subscribe period (in seconds). It ranges from 120 to 3600 (default).
account.5.subscribe_acd_expires = 

#Configure the SIP server type; 0-Default (default), 2-BroadSoft, 4-Cosmocom;
account.5.sip_server_type = 

#Enable or disable the SIP signal encode; 0-Disabled (default), 1-Enabled (RC 4);
account.5.enable_signal_encode = 

#Configure the key for encoding.
account.5.signal_encode_key = 

#Configure the URI of the Music On Hold server. 
account.5.music_server_uri =

#Configure the DTMF type; 0-INBAND, 1-RFC2833 (default), 2-SIP INFO, 3-AUTO+SIP INFO;
account.5.dtmf.type = 

#Configure the RFC2833 payload. It ranges from 96 to 255, the default value is 101.
account.5.dtmf.dtmf_payload = 

#Configure the DTMF info type when using the SIP INFO; 0-Disabled (default), 1-DTMF-Relay, 2-DTMF, 3-Telephone-Event;
account.5.dtmf.info_type = 

#Enable or disable the phone to obtain the balance for account5; 0-Disabled (default), 1-Enabled;
account.5.balance_enable = 

#Configure the access URL of the balance server for account5.
account.5.balance_link_url =

#Enable or disable the phone to send the account log-off message first and then send account register message when rebooting the phone; 0-Disabled (default), 1-Enabled;
account.5.unregister_on_reboot =

#Enbale or diable the simplified header field feature; 0-Disabled, 1-Enabled (default);
account.5.compact_header_enable =

#Configure the type of Music on Hold; 0-Send the INVITE request to Music on Hold Server then hold the call; 1-Hold the call then send the INVITE request to Music on Hold Server;
#Require reboot;
account.5.music_on_hold_type = 

#########################################################################
##                     NAT Settings                                    ##
#########################################################################

#Enable or disable the NAT traversal; 0-Disabled (default), 1-STUN;
account.5.nat.nat_traversal = 

#Configure the STUN server address.
account.5.nat.stun_server = 

#Configure the STUN server port, the default value is 3478.
account.5.nat.stun_port = 

#Enable or disable the NAT keep-alive; 0-Disabled, 1-Enabled (default);
account.5.nat.udp_update_enable = 

#Specify the keep-alive interval (in seconds), the default value is 30.
account.5.nat.udp_update_time = 

#Enable or disable the NAT Rport; 0-Disabled (default), 1-Enabled;
account.5.nat.rport = 

#Configure the session timer (in seconds), the default value of T1, T2, T3 is 0.5, 4, 5.
account.5.advanced.timer_t1 = 
account.5.advanced.timer_t2 = 
account.5.advanced.timer_t4 = 

#Configure the timeout (in seconds) for DNS query, the value ranges from 1 to 9, the default value is 8.
account.5.dns_query_timeout =

#Assign a ringtone for account5. The system ring tones are: common (default), Ring1.wav, Ring2.wav,Ў­Ў­Ring8.wav.
#If you configure the custom ring tone (Family.wav) for the account, the value format is: Family.wav
#If you configure the system ring tone (Ring2.wav) for the account, the value format is: Ring2.wav
account.5.ringtone.ring_type = 

#Audio codecs for account5 (Y ranges from 1 to 13).
#Enable or disable the specified codec; 0-Disabled, 1-Enabled;
#account.5.codec.Y.enable = 
#The type of the specified codec.
#account.5.codec.Y.payload_type = 
#The priority of the specified codec. It's available when the codec is enabled.
#account.5.codec.Y.priority = 
#The payload of the specified codec.
#account.5.codec.Y.rtpmap = 

account.5.codec.1.enable = 1
account.5.codec.1.payload_type = PCMU
account.5.codec.1.priority = 1
account.5.codec.1.rtpmap = 0

account.5.codec.2.enable = 1
account.5.codec.2.payload_type = PCMA
account.5.codec.2.priority = 2 
account.5.codec.2.rtpmap = 8

account.5.codec.3.enable = 0 
account.5.codec.3.payload_type = G723_53
account.5.codec.3.priority =0
account.5.codec.3.rtpmap = 4

account.5.codec.4.enable = 0
account.5.codec.4.payload_type = G723_63
account.5.codec.4.priority = 0
account.5.codec.4.rtpmap = 4

account.5.codec.5.enable = 1
account.5.codec.5.payload_type = G729
account.5.codec.5.priority = 3
account.5.codec.5.rtpmap = 18

account.5.codec.6.enable = 1
account.5.codec.6.payload_type = G722
account.5.codec.6.priority = 4
account.5.codec.6.rtpmap = 9

account.5.codec.7.enable = 0
account.5.codec.7.payload_type = iBLC
account.5.codec.7.priority = 0 
account.5.codec.7.rtpmap = 102

account.5.codec.8.enable = 0
account.5.codec.8.payload_type = G726-16
account.5.codec.8.priority = 0
account.5.codec.8.rtpmap = 112

account.5.codec.9.enable = 0
account.5.codec.9.payload_type = G726-24
account.5.codec.9.priority = 0
account.5.codec.9.rtpmap = 102

account.5.codec.10.enable = 0
account.5.codec.10.payload_type = G726-32 
account.5.codec.10.priority = 0 
account.5.codec.10.rtpmap = 99

account.5.codec.11.enable = 0
account.5.codec.11.payload_type = G726-40
account.5.codec.11.priority = 0
account.5.codec.11.rtpmap = 104

account.5.codec.12.enable = 0
account.5.codec.12.payload_type = iLBC_13_3
account.5.codec.12.priority = 0 
account.5.codec.12.rtpmap = 97

account.5.codec.13.enable = 0
account.5.codec.13.payload_type = iLBC_15_2
account.5.codec.13.priority = 0 
account.5.codec.13.rtpmap = 97            

#Configure the ACD reason code of Broadsoft.(The valus of Y must be consecutive numbers.)
#account.5.bw_acd_reason_code.Y = 500(lunch time)
account.5.bw_acd_reason_code.1 =
account.5.bw_acd_reason_code.2 =

#######################################################################################
##                        Call Forward                                               ##                                       
#######################################################################################

#Enable or disable the always forward feature for account5; 0-Disabled (default), 1-Enabled;
account.5.always_fwd.enable = 

#Configure the destination number of the always forward for account5.
account.5.always_fwd.target = 

#Configure the always forward on code and off code for account5.
account.5.always_fwd.on_code = 
account.5.always_fwd.off_code =

#Enable or disable the busy forward feature for account5; 0-Disabled (default), 1-Enabled;
account.5.busy_fwd.enable = 
account.5.busy_fwd.target = 
account.5.busy_fwd.on_code = 
account.5.busy_fwd.off_code =

#Enable or disable the no answer forward feature for account5; 0-Disabled (default), 1-Enabled; 
#Configure the waiting ring times before forwarding. It ranges from 0 to 20, the default value is 2.
account.5.timeout_fwd.enable = 
account.5.timeout_fwd.target =
account.5.timeout_fwd.timeout = 
account.5.timeout_fwd.on_code =
account.5.timeout_fwd.off_code =

#Enable or disable the phone to record the last call forward type for account5; 0-Disabled (default), 1-Enabled;
account.5.last_type =

#######################################################################################
##                          DND                                                      ##                                       
#######################################################################################

#Enable or disable the DND feautre for account5; 0-Disabled (default), 1-Enabled;
account.5.dnd.enable = 

#Configure the DND on code and off code for account5.
account.5.dnd.on_code = 
account.5.dnd.off_code =

#######################################################################################
##                 Account6 Settings (For T28P only)                                 ##                                         
#######################################################################################

#Enable or disable the account6, 0-Disabled (default), 1-Enabled;
account.6.enable = 

#Configure the label displayed on the LCD screen for account6.
account.6.label = 

#Enable or disable to use the alert info URL; 0-Enabled (default), 1-Disabled;
account.6.alert_info_url_enable =

#Configure the display name of account6.
account.6.display_name =

#Configure the username and password for register authentication.
account.6.auth_name = 
account.6.password =   

#Configure the register user name.
account.6.user_name =  

#Configure the SIP server address.
account.6.sip_server_host = 
#Specify the port for the SIP server. The default value is 5060.
account.6.sip_server_port = 

#Enable or disable to use the outbound proxy server; 0-Disabled (default), 1-Enabled; 
account.6.outbound_proxy_enable = 

#Specify the IP address or domain name of the outbound proxy server.
account.6.outbound_host = 

#Specify the server port, the default value is 5060.
account.6.outbound_port =

#Configure the transport type; 0-UDP (default), 1-TCP, 2-TLS, 3-DNS SRV;
account.6.transport =
 
#Enable or disable the timer to periodically refresh the DNS-SRV query result; 0-Disabled (default), 1-Enabled;
#Require reboot;
account.6.srv_ttl_timer_enable =

#Specify the service for SIP used to DNS-SRV query; 0-muti-service mixed, 1-SIP+D2U, 2-SIP+D2T, 3-SIPS+D2T;
#Require reboot;
account.6.dns_srv_type =

#Configure the address of the backup outbound proxy server.
account.6.backup_outbound_host = 

#Specify the port, the default value is 5060.
account.6.backup_outbound_port = 

#Configure the voice mail number of account6.
voice_mail.number.6 = 

#Configure the proxy server to account6.
account.6.proxy_require = 

#Enable or disable the phone to only accept the message from the server; 0-Disabled (default), 1-Enabled;
account.6.sip_trust_ctrl =

#Enable or disable the anonymous call feature; 0-Disabled (default), 1-Enabled;
account.6.anonymous_call = 

#Configure the on code and off code of the anonymous call feature.
account.6.anonymous_call_oncode = 
account.6.anonymous_call_offcode = 

#Enable or disable the reject anonymous call feature; 0-Disabled (default), 1-Enabled;
account.6.reject_anonymous_call = 

#Configure the on code and off code of the reject anonymous call feature.
account.6.anonymous_reject_oncode = 
account.6.anonymous_reject_offcode = 

#Configure the SIP port for account6, the default value is 5060. 
account.6.sip_listen_port = 

#Configure the register expiry time (in seconds), the default value is 3600.
account.6.expires = 

#Enable or disable the 100 reliable retransmission; 0-Disabled (default), 1-Enabled;
account.6.100rel_enable = 

#Enable or disable the resource reservation; 0-Disabled (default), 1-Enabled;
account.6.precondition = 

#Enable or disable the phone to subscribe the register status; 0-Disabled (default), 1-Enabled;
account.6.subscribe_register = 

#Enable or disable the phone to subscribe the message waiting indicator; 0-Disabled (default), 1-Enabled;
account.6.subscribe_mwi = 

#Configure MWI subscribe expiry time (in seconds). It ranges from 0 to 84600, the default value is 3600.
account.6.subscribe_mwi_expires = 

#Configure the type of SIP header(s) to carry the caller ID; 0-FROM (default), 1-PAI 2-PAI-FROM, 3-PRID-PAI-FROM, 4-PAI-RPID-FROM, 5-RPID-FROM;
account.6.cid_source = 

#Configure the type of SIP header(s) to display on the caller's LCD screen; 0-RPID-FROM, 1-Dialed Digits (default), 2-RFC4916
account.6.cp_source = 

#Enable or disable the session timer, 0-Disabled (default), 1-Enabled;  
account.6.session_timer.enable =      

#Configure the refresh session timer interval (in seconds). It ranges from 1 to 9999.
account.6.session_timer.expires =      

#Configure the session timer refresher; 0-Uac (default), 1-Uas;
account.6.session_timer.refresher = 

#Enable or disable the "user=phone"; 0-Disabled (default), 1-Enabled;
account.6.enable_user_equal_phone = 

#Specify whether to encrypt the SIP messages; 0-Disabled (default), 1-Forced, 2-Negotiated;
account.6.srtp_encryption = 

#Configure the RTP packet time. The valid values are 0 (Disabled), 10, 20 (default), 30, 40, 50, 60.
account.6.ptime = 

#Assign account6 as shared line; 0-Disabled (default), 1-Broadsoft SCA, 2-BLA;
account.6.shared_line = 

#Configure BLA number for account6 and the subscribe period (in seconds). It ranges from 60 to 7200, the default value is 300.
account.6.bla_number = 
account.6.bla_subscribe_period = 

#Enable or disable call pickup using dialog-info SIP header; 0-Disabled (default), 1-Enabled;
account.6.dialoginfo_callpickup = 

#Configure the directed and group pickup codes for account 1, the settings on a per-account basis take precedence over the settings on the phone.
account.6.group_pickup_code = 
account.6.direct_pickup_code = 

#Enable or disable the auto answer feature; 0-Disabled (default), 1-Enabled;
account.6.auto_answer = 

#Enable or disable the phone to record the missed call; 0-Disabled, 1-Enabled (default);
account.6.missed_calllog = 

#Enable or disable the phone to subscribe to the voicemail through the message waiting indicator; 0-Disabled (default), 1-Enabled;
account.6.subscribe_mwi_to_vm = 

#Enable or disable the phone to send the MAC address and line number in the Register message; 0-Disabled (default), 1-Enabled;    
account.6.register_mac = 
account.6.register_line = 

#Configure the interval (in seconds) the phone retries to register when account6 fails to register. It ranges from 0 to 1800, the default value is 30.
account.6.reg_fail_retry_interval = 

#Configure the conference type; 0-Local (default), 2-Network Conference;
account.6.conf_type = 

#Configure the conference URI (a SIP URI, or use part of the SIP URI). For example, "conference@domain.com" or "conference".
account.6.conf_uri = 

#Configure the BLF list URI (a SIP URI, or use part of the SIP URI). For example, "2300_blflist@domain.com" or "2300_blflist".
account.6.blf.blf_list_uri = 

#Configure the pickup code of BLF List.
account.6.blf_list_code = 

#Configure the barge-in code.
account.6.blf_list_barge_in_code = 

#Enable or disable the phone to handle unmatched notify messages; 0-Disabled (default) , 1-Enabled ;
account.6.out_dialog_blf_enable = 

#Configure the BLF subscribe period (in seconds), the default value is 1800.
account.6.blf.subscribe_period = 

#Configure the ACD subscribe period (in seconds). It ranges from 120 to 3600 (default).
account.6.subscribe_acd_expires = 

#Configure the SIP server type; 0-Default (default), 2-BroadSoft, 4-Cosmocom;
account.6.sip_server_type = 

#Enable or disable the SIP signal encode; 0-Disabled (default), 1-Enabled (RC 4);
account.6.enable_signal_encode = 

#Configure the key for encoding.
account.6.signal_encode_key = 

#Configure the URI of the Music On Hold server. 
account.6.music_server_uri =

#Configure the DTMF type; 0-INBAND, 1-RFC2833 (default), 2-SIP INFO, 3-AUTO+SIP INFO;
account.6.dtmf.type = 

#Configure the RFC2833 payload. It ranges from 96 to 255, the default value is 101.
account.6.dtmf.dtmf_payload = 

#Configure the DTMF info type when using the SIP INFO; 0-Disabled (default), 1-DTMF-Relay, 2-DTMF, 3-Telephone-Event;
account.6.dtmf.info_type = 

#Enable or disable the phone to obtain the balance for account6; 0-Disabled (default), 1-Enabled;
account.6.balance_enable = 

#Configure the access URL of the balance server for account6.
account.6.balance_link_url =

#Enable or disable the phone to send the account log-off message first and then send account register message when rebooting the phone; 0-Disabled (default), 1-Enabled;
account.6.unregister_on_reboot =

#Enbale or diable the simplified header field feature; 0-Disabled, 1-Enabled (default);
account.6.compact_header_enable =

#Configure the type of Music on Hold; 0-Send the INVITE request to Music on Hold Server then hold the call; 1-Hold the call then send the INVITE request to Music on Hold Server;
#Require reboot;
account.6.music_on_hold_type = 

#########################################################################
##                     NAT Settings                                    ##
#########################################################################

#Enable or disable the NAT traversal; 0-Disabled (default), 1-STUN;
account.6.nat.nat_traversal = 

#Configure the STUN server address.
account.6.nat.stun_server = 

#Configure the STUN server port, the default value is 3478.
account.6.nat.stun_port = 

#Enable or disable the NAT keep-alive; 0-Disabled, 1-Enabled (default);
account.6.nat.udp_update_enable = 

#Specify the keep-alive interval (in seconds), the default value is 30.
account.6.nat.udp_update_time = 

#Enable or disable the NAT Rport; 0-Disabled (default), 1-Enabled;
account.6.nat.rport = 

#Configure the session timer (in seconds), the default value of T1, T2, T4 is 0.5, 4, 5.
account.6.advanced.timer_t1 = 
account.6.advanced.timer_t2 = 
account.6.advanced.timer_t4 = 

#Configure the timeout (in seconds) for DNS query, the value ranges from 1 to 9, the default value is 8.
account.6.dns_query_timeout =

#Assign a ringtone for account6. The system ring tones are: common (default), Ring1.wav, Ring2.wav,Ў­Ў­Ring8.wav.
#If you configure the custom ring tone (Family.wav) for the account, the value format is: Family.wav
#If you configure the system ring tone (Ring2.wav) for the account, the value format is: Ring2.wav
account.6.ringtone.ring_type = 

#Audio codecs for account6 (Y ranges from 1 to 13).
#Enable or disable the specified codec; 0-Disabled, 1-Enabled;
#account.6.codec.Y.enable = 
#The type of the specified codec.
#account.6.codec.Y.payload_type = 
#The priority of the specified codec. It's available when the codec is enabled.
#account.6.codec.Y.priority = 
#The payload of the specified codec.
#account.6.codec.Y.rtpmap = 

account.6.codec.1.enable = 1
account.6.codec.1.payload_type = PCMU
account.6.codec.1.priority = 1
account.6.codec.1.rtpmap = 0

account.6.codec.2.enable = 1
account.6.codec.2.payload_type = PCMA
account.6.codec.2.priority = 2 
account.6.codec.2.rtpmap = 8

account.6.codec.3.enable = 0 
account.6.codec.3.payload_type = G723_53
account.6.codec.3.priority =0
account.6.codec.3.rtpmap = 4

account.6.codec.4.enable = 0
account.6.codec.4.payload_type = G723_63
account.6.codec.4.priority = 0
account.6.codec.4.rtpmap = 4

account.6.codec.5.enable = 1
account.6.codec.5.payload_type = G729
account.6.codec.5.priority = 3
account.6.codec.5.rtpmap = 18

account.6.codec.6.enable = 1
account.6.codec.6.payload_type = G722
account.6.codec.6.priority = 4
account.6.codec.6.rtpmap = 9

account.6.codec.7.enable = 0
account.6.codec.7.payload_type = iBLC
account.6.codec.7.priority = 0 
account.6.codec.7.rtpmap = 102

account.6.codec.8.enable = 0
account.6.codec.8.payload_type = G726-16
account.6.codec.8.priority = 0
account.6.codec.8.rtpmap = 112

account.6.codec.9.enable = 0
account.6.codec.9.payload_type = G726-24
account.6.codec.9.priority = 0
account.6.codec.9.rtpmap = 102

account.6.codec.10.enable = 0
account.6.codec.10.payload_type = G726-32 
account.6.codec.10.priority = 0 
account.6.codec.10.rtpmap = 99

account.6.codec.11.enable = 0
account.6.codec.11.payload_type = G726-40
account.6.codec.11.priority = 0
account.6.codec.11.rtpmap = 104

account.6.codec.12.enable = 0
account.6.codec.12.payload_type = iLBC_13_3
account.6.codec.12.priority = 0 
account.6.codec.12.rtpmap = 97

account.6.codec.13.enable = 0
account.6.codec.13.payload_type = iLBC_15_2
account.6.codec.13.priority = 0 
account.6.codec.13.rtpmap = 97          

#Configure the ACD reason code of Broadsoft.(The valus of Y must be consecutive numbers.)
#account.6.bw_acd_reason_code.Y = 500(lunch time)
account.6.bw_acd_reason_code.1 =
account.6.bw_acd_reason_code.2 =

#######################################################################################
##                        Call Forward                                               ##                                       
#######################################################################################

#Enable or disable the always forward feature for account6; 0-Disabled (default), 1-Enabled;
account.6.always_fwd.enable = 

#Configure the destination number of the always forward for account6.
account.6.always_fwd.target = 

#Configure the always forward on code and off code for account6.
account.6.always_fwd.on_code = 
account.6.always_fwd.off_code =

#Enable or disable the busy forward feature for account6; 0-Disabled (default), 1-Enabled;
account.6.busy_fwd.enable = 
account.6.busy_fwd.target = 
account.6.busy_fwd.on_code = 
account.6.busy_fwd.off_code =

#Enable or disable the no answer forward feature for account6; 0-Disabled (default), 1-Enabled; 
#Configure the waiting ring times before forwarding. It ranges from 0 to 20, the default value is 2.
account.6.timeout_fwd.enable = 
account.6.timeout_fwd.target =
account.6.timeout_fwd.timeout = 
account.6.timeout_fwd.on_code =
account.6.timeout_fwd.off_code =

#Enable or disable the phone to record the last call forward type for account6; 0-Disabled (default), 1-Enabled;
account.6.last_type =

#######################################################################################
##                          DND                                                      ##                                       
#######################################################################################

#Enable or disable the DND feautre for account6; 0-Disabled (default), 1-Enabled;
account.6.dnd.enable = 

#Configure the DND on code and off code for account6.
account.6.dnd.on_code = 
account.6.dnd.off_code =

По сути дела, нам требуется указать только адрес SIP сервера (в нашем случае Asterisk) и порт (в примере использован 5061)

Адрес SIP сервера:

  account.1.sip_server_host = 10.10.10.1

Порт SIP сервера:

 account.1.sip_server_port = 5061

Транспорт; 0-UDP (default), 1-TCP, 2-TLS, 3-DNS SRV;

 account.1.transport = 0

Теперь осталось только поместить файлы на TFTP сервер, который можно разместить на том же сервере, что и Asterisk:

Настройка TFTP сервера

И добавить в настройки DHCP сервера опцию 66 (или 128).

Настройка DHCP - option 66

Телефон подключается в локальную сеть, получает IP адрес и адрес TFTP сервера по DHCP,
скачивает файл общих настроек и свой уникальный конфигурационный файл.
Теперь когда аппарат получил всю требуемую информацию, а именно:

  • адрес tftp сервера по DHCP
  • адрес SIP сервера из конфигурационного файла с tftp сервера.
  • параметры Hot Desking из общего конфигурационного файла.
  • и тд

Пользователь нажимает кнопку HDesk (Смена - в руссифицированном интерфейсе) и авторизуется под своим SIP аккаунтом.

Настройка оборудования

Asterisk: настройка и установка

$
0
0

Asterisk: настройка и установка

Документация по настройке и установке Asterisk. Dialplan Realtime CDR Queue Agents SIP PJSIP DAHDI MySQL ODBC Features LDAP ConfBridge AMI ARI NAT SRTP RTP.

Asterisk: установка

Asterisk работает под управлением операционных систем Linux и FreeBSD. Доступны установка из бинарных файлов и компиляция из исходного кода. Также существует множество дистрибьютивов Linux с уже готовым к работе предустановленным Asterisk и FreePBX.
Инструкции по установке Asterisk для различных дистрибьютивов Linux:

На нашем сайте собрано множество справочных материалов и руководств по настройке Asterisk. Документация постоянно обновляется и дополняется. Рассмотрим разные аспекты настройки программного комплекса Asterisk, сгруппированные по основным темам.

Asterisk настройка

Конфигурационные файлы Asterisk

Большинство настроек Asterisk контролируются с помощью конфигурационных файлов, расположенных в директории /etc/asterisk. Синтаксис конфигурационных файлов Asterisk разработан для редактирования в ручную и имеет простую и понятную структуру. Категории или по иному контексты группируют свойства объектов и отделяют их друг от друга именами в квадратных скобках по принципу наследования. Все, что записано после имени контекста относится к нему, пока не появится следующее имя контекста в квадратных скобках. Практически в каждом кофиге встречается категория [general], которая задает параметры для всех объектов конфигурационного файла. Параметры объектов имеют приоритет над глобальными параметрами, если одинаковый параметр, может быть назначен, как глобально, так и конкретному объекту. Некторые конфиги имеют только заранее определенные секции, например asterisk.confотвечающий за общие настройки pbx. Но в большинстве случаев, для назначения объектов, создаются контексты и задаются их имена. Приведенные ниже примеры конфигов Asterisk 14 с описанием параметров, переведены и дополнены авторами сайта.

Realtime архитектура Asterisk

Реалтайм Архитектура Asterisk - набор драйверов и функций для конфигурации в режиме реального времени. Существует два типа конфигурации - статический и динамический: - Статический хранит конфигурации в БД, как конфигурационные файлы и также обновляет данные при перезагрузке модулей. - Динамический используется для создания и обновления объектов в режиме реального времени, при совершении вызовов

Каналы связи в Asterisk

SIP

Под каналами связи в Asterisk подразумевается набор драйверов для взаимодействия с устройствами и протоколами связи. Так как Asterisk в первую очередь VoIP АТС ключевое значение имеют драйвера взаимодействия с VoIP протоколами, в частности с SIP протоколом. Изначально в Asterisk был один драйвер SIP протокола chan_sip. Но его реализация была неполной и в конкуренции с FreeSWITCH, который имел более продвинутый SIP драйвер, в Asterisk начиная с версии 12, был включен новый драйвер SIP - chan_pjsip.
Поддержка старого драйвера сохраняется и оба драйвера могут действовать совместно.
Однако предпочтительней использовать новый драйвер PJSIP.

IAX

Также в Asterisk реализован собственный VoIP протокол - IAX (Inter Asterisk Exchange). Как и следует из названия, он в первую очередь ориентирован на создание каналов связи между серверами Asterisk. IAX имеет упрощенную структуру, используя один и тот же порт для сигнализации и медиа, что в теории упрощает прохождение NAT и экономит трафик, однако в современных условиях и с появлением PJSIP его преимущества не завоевали ему популярности.

h323

Поддержка устаревшего VoIP протокола h323 может понадобиться для интеграции с устаревшими АТС, например Avaya CSI.

DAHDI

Драйвер DAHDI поддерживает большую линейку устройств, таких как платы потоков ISDN PRI E1, FXO, FXS и GSM интерфейсов.

Local

Прокси - псевдо канал Asterisk, позволяющий вызывать канал любой технологии без явного ее указания.

NAT SIP Asterisk

План набора Asterisk

Для понимания Asterisk очень важен - диалплан (dialplan).
Диалплан направляет каждый звонок от его источника, с помощью различных приложений,
в пункт назначения. Все вызовы, будь-то голосовая почта, конференция, меню автосекретаря
или вызов телефона, определяются логикой и концепцией диалплана.
Русская документация мануал по dialplan Asterisk

Команды диалплана Asterisk

Функции диалплана Астериск

Asterisk Dialplan functions

Функции Asterisk используются в диалплане. Это не командыдиалпланаи не могут быть использованы прямо. Функции возвращают значение для дальнейшего использования в логике диалплана.

Очереди и Агенты Asterisk

Очередями в Asterisk называется механизм ACD (automated call distribution) для распределения входящих вызовов между агентами колл центра. Конфигурация очередей осуществляется в файле Asterisk: queues.conf, имена очередей вызовов используются в качестве аргумента команды Queueв файле конфигурации плана набора extensions.conf. Агенты, которые обрабатывают вызовы, поступающие в очередь, описываются в файле Asterisk: agents.conf.

Шифрование в Asterisk

Конференции Asterisk

Asterisk позволяет организовать телеконференции с неограниченным числом пользователей.

Абонентские функции Asterisk

В файле features.conf назначаются пользовательские коды абонентских функций Asterisk и опции абонентских функций, такие как:
Переадресация вызова(transfer), перехват вызова (pickup), запись по требованию (record on demand), таймауты между набора и переадресации (digit timeout), паркинг (park) и др.

Отчеты о звонках Asterisk

Детализированный отчет о звонках (CDR) backend для сохранения данных о входящих, исходящих и внутренних вызовах Asterisk. Полное описание на русском языке CDR, MySQL, ODBC etc.

Логи в Asterisk

CLI - интерфейс командной строки Asterisk.

Командная строка является мощным инструментом для мониторинга и управления работой Asterisk PBX

Asterisk AMI

Asterisk manager Interface - интерфейс управления.

Asterisk ARI

Установка Asterisk

$
0
0

Установка Asterisk

Основные требования к системе

  • Для инсталляции и запуска Asterisk не требуется никакого специального оборудованиия.
  • Перед установкой Asterisk должны быть установлены программные пакеты:
    • Исходники ядра (kernel sources)
    • Заголовочные .h файлы для Вашего ядра (kernel headers)
    • bison (необходим для обработки выражений в файле extensions.conf)
    • Пакеты: openssl и openssl-dev или libssl-dev

Исходники Asterisk

Asterisk - ядро основной программы
Asterisk-addons - дополнительные файлы
Libpri - PRI - библиотеки
Dahdi (zaptel) - драйверы телефонии

cd /usr/src/

wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4.15.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-12-current.tar.gz

Lame

   tar zxvf lame-3.98.4.tar.gz
   cd lame-3.98.4
   ./configure
   make
   make install
   cd ..

Компиляция Libpri

cd /usr/src/libpri-VERSION
make
make install

Компиляция DAHDI

cd /usr/src/dahdi-linux-complete-VERSION
make all
make install
make config

Компиляция Asterisk

cd /usr/src/asterisk-VERSION
./configure
make menuselect
make
make install
make samples
make progdocs
make config

Компиляция Asterisk-addons

Начиная с версии 1.8 Asterisk-addons входят в состав core не не требуют отдельной компиляции.

cd /usr/src/asterisk-addons-VERSION
./configure
make
make install

Запуск и остановка Asterisk

/usr/sbin/asterisk: Файл запускающий Asterisk
Если Вы установили Asterisk, можно запустить его командой:

 /usr/src/asterisk -vvvgc

Остановить Asterisk из CLI можно командой 'stop now'.
Командой без аргументов, Asterisk запускается как демон.

 /usr/sbin/asterisk 

Подключится к командному интерфейсу (CLI) можно используя аргумент 'r'.

 /usr/sbin/asterisk -r

Запуск Asterisk из под не - root пользователя.По умолчанию Asterisk запускается из под root, что может быть небезопасно. Для изменения пользователя раскомментируйте строки в файле /etc/init.d/asterisk.

AST_USER="asterisk"
AST_GROUP="asterisk"

Создайте группу и пользователя asterisk.

/usr/sbin/groupadd asterisk 
/usr/sbin/useradd -d /var/lib/asterisk -g asterisk asterisk 

Измените права на использование следующих файлов:

chown --recursive asterisk:asterisk /var/lib/asterisk
chown --recursive asterisk:asterisk /var/log/asterisk
chown --recursive asterisk:asterisk /var/run/asterisk
chown --recursive asterisk:asterisk /var/spool/asterisk
chown --recursive asterisk:asterisk /usr/lib/asterisk
## Если Вы используете Zaptel
chown --recursive asterisk:asterisk /dev/zap
## Если Вы используете DAHDI
chown --recursive asterisk:asterisk /dev/dahdi
#----------------------------------------------------
chmod --recursive u=rwX,g=rX,o= /var/lib/asterisk
chmod --recursive u=rwX,g=rX,o= /var/log/asterisk
chmod --recursive u=rwX,g=rX,o= /var/run/asterisk
chmod --recursive u=rwX,g=rX,o= /var/spool/asterisk
chmod --recursive u=rwX,g=rX,o= /usr/lib/asterisk
## Если Вы используете Zaptel
chmod --recursive u=rwX,g=rX,o= /dev/zap
##  Если Вы используете DAHDI
chmod --recursive u=rwX,g=rX,o= /dev/dahdi
#----------------------------------------------------
chown --recursive root:asterisk /etc/asterisk
chmod --recursive u=rwX,g=rX,o= /etc/asterisk 
/etc/init.d/asterisk restart 

Автозагрузка Asterisk

Различные операционные системы имеют разные способы запуска программ во время загрузки. В директории с исходниками /usr/src/asterisk-VERSION/contrib/init.dсодержатся скрипты для запуска в archlinux, debian, gentoo, mandriva, redhat, slackware, suse.

Для систем, которые все еще используют inittab, просто добавьте следующую строку в /etc/inittab:

as:2:respawn:/usr/sbin/asterisk -f 

Для Redhat окружения выполните

cd /usr/src/asterisk-VERSION
make config

Это скопирует скрипт из contrib/init.d/rc.redhat.asteriskв /etc/rc.d/init.d/asterisk и выполните команду:

/sbin/chkconfig --add asterisk 

Директории Asterisk

  • /usr/lib/asterisk/modules: Содержит бинарные файлы (модули. кодеки)
  • /var/lib/asterisk: Содержит переменные данные(звуки. скрипты и т.д.).
  • /var/spool/asterisk: Файлы создаваемые в процессе работы (голосовые сообщения, исходящие вызовы и т.д.)
  • /var/log/asterisk: Логи. информация о вызовах.
  • /etc/asterisk; Конфигурационные файлы Asterisk.

sidebar

$
0
0

Asterisk 14 + Ubuntu 16 установка

$
0
0

Asterisk 14 + Ubuntu 16 установка

freepbx13 apache2 php5.6 mysql srtp pjproject spandsp opus odbc

При установке системы, на стадии software selectionвыберите, как минимум openssh. ubuntu-16-software-selectionВо время установки, если выбран LAMP сервер, или при установке mysql-server из репозитория, вам будет предложено задать пароль root пользователя MySQL, если оставить поле пустым, задать пароль можно будет после установки FreePBX 13 командой mysql:

 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('Password');

или утилитой проверки безопасности:

 mysql_secure_installation

Задайте пароль root пользователя системы

 $ sudo passwd root
 Enter new UNIX password:
 Retype new UNIX password:
 passwd: password update successfully

Получите права супер пользователя

 $ sudo -i

Сделайте апдейт системы

 # apt update && sudo apt upgrade -y

Установите требуемые зависимости

apt install -y build-essential linux-headers-`uname -r` openssh-server apache2 mysql-server\
 mysql-client bison flex sox libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev\
 libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git subversion unixodbc-dev\
 uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev\
 libsrtp0-dev libspandsp-dev libopus-dev opus-tools libiksemel-dev libiksemel-utils libiksemel3 xmlstarlet
 

Установка php5.6 вместо php7.0

Ubuntu 16 по умолчанию ставит из репозитория php7.0, а FreePBX с ним не дружит. Если вы планируете использовать не чистый Asterisk, надо установить php5.6.

 apt install -y software-properties-common python-software-properties
 add-apt-repository ppa:ondrej/php
 apt  update -y
 apt install -y php5.6 php5.6-curl php5.6-cli php5.6-mysql php5.6-odbc php5.6-db php5.6-gd php5.6-xml curl libapache2-mod-php5.6
 apt install -y php-pear
 a2dismod php7.0
 a2enmod php5.6
 systemctl restart apache2

Перезагрузите сервер

Чтобы загрузить свежую версию ядра после апдейта. Если вы уверены, что загружена последняя версия, можно не перезагружать.

 reboot

Убедитесь, что mod_rewrite включен, чтобы избежать возможных атак.

  a2enmod rewrite
  service apache2 restart

Поддержка Console_Getopt

 pear install Console_Getopt

Asterisk 14 установка

Как использовать данное руководство.

Блоки команд с ключом '&&' могут быть скопированы вместе и будут выполняться последовательно. '&&' выполняет переход к следующей команде, при условии успешного выполнения предыдущей. Если вы хотите полностью, по шагам, контролировать процесс установки, выполните каждую команду отдельно, без ввода '&&'.

Скачайте исходные файлы

cd /usr/src
wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14-current.tar.gz &&
git clone https://github.com/akheron/jansson.git &&
wget http://www.pjsip.org/release/2.5.5/pjproject-2.5.5.tar.bz2 &&
echo " ¯\_(ツ)_/¯ "

Скомпилируйте и установите Lame (mp3)

 cd /usr/src &&
 tar zxvf lame-3.98.4.tar.gz &&
 cd lame-3.98.4 &&
 ./configure &&
 make &&
 make install  &&
 echo " ¯\_(ツ)_/¯ "

Скомпилируйте и установите DAHDI и LibPRI

cd /usr/src &&
tar xvfz dahdi-linux-complete-current.tar.gz &&
tar xvfz libpri-current.tar.gz &&
rm -f dahdi-linux-complete-current.tar.gz libpri-current.tar.gz &&
cd dahdi-linux-complete-* &&
make all &&
make install &&
make config &&
cd /usr/src/libpri-* &&
make &&
make install &&
echo " ¯\_(ツ)_/¯ "

Скомпилируйте и установите pjproject

(Требуется для поддержки драйвера SIP канала PjSIP)

cd /usr/src &&
tar -xjvf pjproject-2.*.*.tar.bz2 &&
cd pjproject-* &&
CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound\
  --disable-resample --disable-video --disable-opencore-amr &&
make dep &&
make &&
make install &&
echo " ¯\_(ツ)_/¯ "

Скомпилируйте и установите jansson

cd /usr/src/jansson &&
autoreconf -i &&
./configure &&
make &&
make install &&
echo " ¯\_(ツ)_/¯ "

Скомпилируйте и установите Asterisk

cd /usr/src && 
tar xvfz asterisk-14-current.tar.gz &&
rm -f asterisk-14-current.tar.gz &&
cd asterisk-* &&
./configure &&
contrib/scripts/get_mp3_source.sh &&
make menuselect

После ввода команды make menuselect, вам будет предложено выбрать устанавливаемые модули. Большинство требуемых модулей выбираются автоматически. Для поддержки mp3 включите модуль 'format_mp3'. 'res_config_mysql' вынесено в addons по условиям лицензирования.

В разделе Core Sound Packagesвыберите поддержку русскоязычных файлов (если требуется) В разделе Extra Sound Packagesвыберите дополнительные звуковые файлы.

codec OPUS

Asterisk 14 поддерживает Opus без дополнительных патчей. Зависимости (xmlstarlet) должны быть установлены до конфигурации. В разделе Codec Translatorsубедитесь, что модуль кодека доступен для компиляции и отметьте для установки.

opus install

opus install

Installing modules from codecs...
codec_opus: Remote package version 14.0_1.0.1 (262145)
codec_opus: Downloading http://downloads.digium.com/pub/telephony/codec_opus/asterisk-14.0/x86-64/codec_opus-14.0_1.0.1-x86_64.tar.gz
codec_opus: Installing.
codec_opus: Installed.

после установки asterisk:

 asterisk -rx 'core show translation recalc' | grep opus
           ulaw  alaw   gsm  g726 g726aal2 adpcm  slin  slin  slin  slin  slin  slin  slin  slin  slin lpc10  ilbc  g722 testlaw  opus  opus
     opus 23500 23500 23500 23500    23500 23500 17500 17500 17500 17500 17500 17500  9000 17000 17000 23500 23500 23500   23500     - 23500
     opus 15000 15000 15000 15000    15000 15000  9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 15000 17250   15000 23000     -

Для сохранения нажмите Save & Exitи продолжите установку.

make &&
make install &&
make config &&
ldconfig

Если вы не планируете использовать FreePBX, команда make basic-pbxустановит минимальный начальный набор конфигов Asterisk.

Запуск от имени пользователя 'Asterisk'

Расcкомментируйте в /etc/default/asterisk

 AST_USER="asterisk"
 AST_GROUP="asterisk"
Создайте пользователя Asterisk и задайте права пользователя.
useradd -m asterisk &&
chown asterisk. /var/run/asterisk &&
chown -R asterisk. /etc/asterisk &&
chown -R asterisk. /var/{lib,log,spool}/asterisk &&
chown -R asterisk. /usr/lib/asterisk

Перезагрузите сервер и проверьте состояние Asterisk подключившись к консоли

 asterisk -vvvr
Asterisk 14.2.0, Copyright (C) 1999 - 2016, Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 14.2.0 currently running on ubuntu (pid = 1269)
ubuntu*CLI>
Убедитесь, что Asterisk запущен под своим пользователем:
  ps aux | grep asterisk
 asterisk  1269  4.7 11.4 1446068 57504 ?       Ssl  07:57   0:07 /usr/sbin/asterisk -U asterisk -G asterisk

FreePBX 13: установка и настройка

Настроим Apache

sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/5.6/apache2/php.ini &&
sed -ie 's/\;date\.timezone\ \=/date\.timezone\ \=\ "Europe\/Moscow"/g' /etc/php/5.6/apache2/php.ini &&
cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig &&
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf &&
sed -i 's/AllowOverride None/AllowOverride All/'  /etc/apache2/apache2.conf &&
systemctl restart apache2

настроим ODBC

cat >> /etc/odbcinst.ini << EOF
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1
  
EOF
cat >> /etc/odbc.ini << EOF
[MySQL-asteriskcdrdb]
Description=MySQL connection to 'asteriskcdrdb' database
driver=MySQL
server=localhost
database=asteriskcdrdb
Port=3306
Socket=/var/run/mysqld/mysqld.sock
option=3
  
EOF

Скачайте FreePBX

cd /usr/src &&
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-13.0-latest.tgz
Распакуйте и установите
tar vxfz freepbx-13.0-latest.tgz &&
cd /usr/src/freepbx &&
./install -n

Если при установке Ubuntu вы задали rootпароль MySQL
запустите скрипт установки без ключа -n.
Установка пройдет в интерактивном режиме,
во время которого вам будет предложено ввести пароль:

./install
Database engine [mysql]:
Database name [asterisk]:
CDR Database name [asteriskcdrdb]:
Database username [root]:
Database password:

install -h

install -h

/usr/src/freepbx# ./install -h
PHP Warning:  Declaration of FreePBX\Install\FreePBXHelpCommand::setCommand(FreePBX\Install\FreePBXInstallCommand $command) should be compatible with Symfony\Component\Console\Command\HelpCommand::setCommand(Symfony\Component\Console\Command\Command $command) in /usr/src/freepbx/installlib/installhelpcommand.class.php on line 15
 ______             _____  ______   __
|  ____|           |  __ \|  _ \ \ / /
| |__ _ __ ___  ___| |__) | |_) \ V /
|  __| '__/ _ \/ _ \  ___/|  _ < > <
| |  | | |  __/  __/ |    | |_) / . \
|_|  |_|  \___|\___|_|    |____/_/ \_\
Usage:
 install [--dbengine="..."] [--dbname="..."] [--cdrdbname="..."] [--dbuser="..."] 
[--dbpass="..."] [--user="..."] [--group="..."] [--dev-links] [--webroot="..."] 
[--astetcdir="..."] [--astmoddir="..."] [--astvarlibdir="..."] [--astagidir="..."] 
[--astspooldir="..."] [--astrundir="..."] [--astlogdir="..."] [--ampbin="..."] [--ampsbin="..."] 
[--ampcgibin="..."] [--ampplayback="..."] [-r|--rootdb] [-f|--force]

Options:
 --dbengine            Database engine (default: "mysql")
 --dbname              Database name (default: "asterisk")
 --cdrdbname           CDR Database name (default: "asteriskcdrdb")
 --dbuser              Database username (default: "root")
 --dbpass              Database password (default: "")
 --user                File owner user (default: "asterisk")
 --group               File owner group (default: "asterisk")
 --dev-links           Make links to files in the source directory instead of copying (developer option)
 --webroot             Filesystem location from which FreePBX files will be served (default: "/var/www/html")
 --astetcdir           Filesystem location from which Asterisk configuration files will be served (default: "/etc/asterisk")
 --astmoddir           Filesystem location for Asterisk modules (default: "/usr/lib/asterisk/modules")
 --astvarlibdir        Filesystem location for Asterisk lib files (default: "/var/lib/asterisk")
 --astagidir           Filesystem location for Asterisk agi files (default: "/var/lib/asterisk/agi-bin")
 --astspooldir         Location of the Asterisk spool directory (default: "/var/spool/asterisk")
 --astrundir           Location of the Asterisk run directory (default: "/var/run/asterisk")
 --astlogdir           Location of the Asterisk log files (default: "/var/log/asterisk")
 --ampbin              Location of the FreePBX command line scripts (default: "/var/lib/asterisk/bin")
 --ampsbin             Location of the FreePBX (root) command line scripts (default: "/usr/sbin")
 --ampcgibin           Location of the Apache cgi-bin executables (default: "/var/www/cgi-bin")
 --ampplayback         Directory for FreePBX html5 playback files (default: "/var/lib/asterisk/playback")
 --rootdb (-r)         Database Root Based Install. Will create the database user and password automatically along with the databases
 --force (-f)          Force an install. Rewriting all databases with default information
 --help (-h)           Display this help message
 --quiet (-q)          Do not output any message
 --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
 --version (-V)        Display this application version
 --ansi                Force ANSI output
 --no-ansi             Disable ANSI output
 --no-interaction (-n) Do not ask any interactive question

Подключимся к FreePBX

http://IP.Address.FreePBX.Server/admin

Первым делом, вам будет предложено задать имя пользователя и пароль FreePBX

ubuntu16-freepbx13-welcome

Первоначальная настройка FreePBX 13

Advanced Settings

freepbx13-localization-ru

Поддержка русского языка в интерфейсе

Чтобы отображался выбор локализаций FreePBX включите данную опцию в Settings > Advanced Settings:

Show Language setting - YesNo

Если переключение на русский не работает, выполните следующие действия:

 echo "russian         ru_RU.UTF-8" >>  /etc/locale.alias
 locale-gen ru_RU
 systemctl restart apache2
Country Indications Tone

Выберите тоны КПВ, занято и тд в российском стандарте, если требуется:

Settings > Anvanced Settings - Dialplan and Operational

freepbx13-advanced-settings-country-indication-tones.pngОбратите внимание на опцию CW Enabled by Default.
Можно отключить Call Waiting, по умолчанию, для вновь создаваемых екстеншенов.
По умолчанию включено.

Speaking Clock Time Format

Установите 24-х часовой формат времени. freepbx13-advanced-settings-speaking-clock-time-format

Ringtime default

Измените время вызова екстеншена по умолчанию, если требуется: freepbx13-advanced-settings-ringtime-default

SIP channel driverопределяет использование драйверов SIP. По умолчанию и chan_sipи res_pjsipвключены, но можно выбрать какой-то один из них.

Установка Asterisk


High Availability IP FailOver

$
0
0

High Availability IP FailOver

Рассмотрим создание отказоустойчивого кластера из двух серверов Asterisk/FreePBX
с автоматической подменой IP адреса и синхронизацией БД FreePBX.

Heartbeat, Asterisk, FreePBX, Centos6 x86_64

Задайте Hostname для каждого из узлов (asterisk1, asterisk2)

[root@asterisk1 ha.d]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=asterisk1
[root@asterisk2 ha.d]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=asterisk2

Подключим Epel репозиторий

(asterisk1, asterisk2)

 wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm &&
 wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm &&
 rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm

Установим Heartbeat

(asterisk1, asterisk2)

yum install -y heartbeat

Настроим Heartbeat

Файл конфигурация ha.cfдля каждого из узлов

logfile /var/log/ha-log
node asterisk1
node asterisk2
keepalive 1
deadtime 10
bcast eth0
auto_failback on
respawn hacluster /usr/lib64/heartbeat/ipfail

Сгенерируем пароль sha1, где PASS ваше кодовое слово.

   echo -n PASS | sha1sum | awk '{print $1}'
bd564db5d5cc358eb0e3523d3e03041739f230d5

Создадим файл ключа авторизации

nano /etc/ha.d/authkeys

auth 1
1 sha1 bd564db5d5cc358eb0e3523d3e03041739f230d5
 chmod 600 /etc/ha.d/authkeys

Скопируем файл на резервный узел (asterisk2)

 scp /etc/ha.d/authkeys asterisk2:/etc/ha.d/

/etc/ha.d/haresources

(asterisk1)

asterisk2 IPaddr::192.168.1.202/24/eth0

/etc/ha.d/haresources

(asterisk2)

asterisk1 IPaddr::192.168.1.201/24/eth0

Включим hearteat на обоих узлах

 /etc/init.d/heartbeat start
 

Проверим IP адрес на резервном узле (asterisk2)

[root@asterisk2 ha.d]# ip addr | grep "inet"
    inet 192.168.1.202/24 brd 192.168.1.255 scope global eth0
    inet 192.168.1.201/24 brd 192.168.1.255 scope global secondary eth0

Secondary eth0 (192.168.1.201) примет пакеты, если основной узел (asterisk1) будет недоступен в течении 10 секунд.

Если включен файрвол разрешим пинги снаружи на обоих узлах.

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT &&
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT &&
service iptables save

И наконец включим автозагрузку heaкtbeat на каждом из узлов.

 chkconfig heartbeat on

Синхронизация Баз Данных FreePBX

Настроим резервный сервер (asterisk2) таким образом, чтобы он подключался к основному серверу (asterisk1) по SSH
и синхронизировал настройки asterisk, autoprovision и др.

Настройка SSH подключения

В данном примере Asterisk и Web server работают из под пользователя asterisk.

Зададим временный пароль пользователю asterisk
На основном сервере (asterisk1)

#chsh -s /bin/bash asterisk
#passwd asterisk
somepassword
#chmod 755 /var/lib/asterisk

Сгенерируем ssh ключ на резервном сервере (Asterisk2)

 #chsh -s /bin/bash asterisk
#su  - asterisk
$ssh-keygen

Команда ssh-keygen создаст ключ в /home/asterisk/.ssh/id_rsa

Не вводите passphrase, оставьте пустым:

]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/asterisk/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/asterisk/.ssh/id_rsa.
Your public key has been saved in /home/asterisk/.ssh/id_rsa.pub.
The key fingerprint is:
84:a8:1b:6f:2c:56:91:d5:d2:12:8f:8f:28:78:07:4e asterisk@asterisk2
The key's randomart image is:
+--[ RSA 2048]----+
|      o+         |
|     +o+o        |
|  A + o+o        |
| + o o +         |
|. * + . D        |
| . O             |
|  + +            |
| . o             |
|                 |
+-----------------+

Кода ключ создан, скопируем его на основной сервер:

 $ssh-copy-id -i asterisk@asterisk1_IP

Будет запрошен пароль, заданный для пользователя asteriskна основном севере.

[asterisk@asterisk2 root]$ ssh-copy-id -i asterisk@192.168.1.201
The authenticity of host '192.168.1.201 (192.168.1.201)' can't be established.
RSA key fingerprint is 61:44:a0:40:78:33:2a:b5:ec:eb:5f:55:36:39:8b:4d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.201' (RSA) to the list of known hosts.
asterisk@192.168.1.201's password:
Now try logging into the machine, with "ssh 'asterisk@192.168.1.201'", and check                                  in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

Проверим подключение по ssh с ключом:

[asterisk@asterisk2 root]$ ssh asterisk@192.168.1.201
[asterisk@asterisk1 ~]$

Если произошло подключение к основному серверу без пароля, все в порядке.

В завершении настройки SSH подключения, удалим пароль пользователя asteriskна основном сервере (asterisk1).

 passwd -d asterisk

И перейдем к настройке автоматической синхронизации FreePBX

Выберете на резервном сервере Admin > Backup & Restore > Servers - New SSH Server

Hostname - ip адрес основного сервера Asterisk1

Port - порт ssh

User Name - пользователь, в нашем случае asterisk

Key - местонахождение ключа (/home/asterisk/.ssh/id_rsa)

Затем выберете Admin > Backup & Restore > Backups - New Backup

Задайте имя и перетащите шаблоны для настроек:

в нашем примере это Full Backupи Exclude Backup Settings

Местонахождение директории tftp сервера, где лежат файлы для autoprovision, изменена с /tftpboot на /var/lib/tftpboot.

Задайте в соответствии с вашими условиями.

И в завершении укажем созданный нами Backup Server (asterisk1)
и хранилище - Local Storage (local)

Restore Here - записать скачанный бэкап в базу данных asterisk

Disable Registered Trunks - отключить зарегистрированные транки, во избежание проблем с входящими вызовами на основном сервере.

Exclude NAT Settings - Исключить специфические настройки IP основного сервера.

Apply Config - Применить скачанный бэкап (записать в конфиги asterisk)

Сохраним Saveи проверим немедленно and Run

FreePBX SIP Trunk

$
0
0

FreePBX SIP Trunk

Настройка SIP транка во FreePBX

SIP транк определяет набор свойств, требуемых для совершения вызовов через другую АТС. Таких как, аутентификация, callerid, кол-во каналов, наличие сетевых трансляций (NAT) и другие свойства для формирования правильных SIP запросов, используемые кодеки, контекст для обработки входящих вызовов и др..

General Settings

Trunk Name


Описательное название для этого транка.

Outbound CallerID


Caller ID для звонков наружу через этот транк.
Формат:<XXXXXXX>
Можно также использовать формат: "hidden"<XXXXXXX>
чтобы скрыть свой Caller ID посылаемый (если поддерживается) по цифровым линиям (E1/T1/J1/BRI/SIP/IAX):

CID Options


Определяет как Caller ID будут использоваться в транке.
Allow Any CID:будут передаваться все CIDs, включая внешние полученные от внешних вызовов.
Block Foreign CIDs: блокировать любые CID внешних вызовов.
CID внутренних номеров будут передаваться без изменений.
Remove CNAM: эта опция удаляет CNAM из всех отсылаемых через этот транк CID
Force Trunk CID: Всегда использовать CID указанный на этом транке,
за исключением маршрутов, предназначенных для вызова экстренных служб
с определённым для этого внутреннего номера/устройства специального CID.
По Intra-Company Routes будет передаваться внутренний номер и имя абонента.

Maximum Channels


Назначает максимальное количество исходящих каналов (одновременных соединений)для данного транка

Asterisk Trunk Dial Options


Опции команды Dial()используемые при вызовах через данный транк. Замещают значения в Advanced Settings

Continue if Busy


Пытаться использовать следующий транк, если недоступно или занято.

Disable Trunk


Отключить транк для всех исходящих направлений

Dialed Number Manipulation Rules


Prepend - Значение автоматически подставляемое в начало набранного номера.

Prefix - Код доступа к линии. Удаляется из набора.

Match Pattern

- Шаблон набора номера

Правила для манипуляции набранными номерамиСледующие правила могут трансформировать набранные номера перед отправкой в транк. Если не указано никаких правил, номер не изменяется. Набранный оригинальный номер направляется из таблицы маршрутов, где он, возможно, уже подвергся каким-то трансформациям. На транке также имеются опции преобразования номера. Если номер совпадает с выбранными значениями полей префиксплюс шаблон, то правило будет использовано и все последующие правила будут проигнорированы.
После найденного совпадения префиксбудет удалён, если он указан. Следующим шагом будет добавлена приставкавпереди номера, перед шаблоном номера, и таким образом трансформированный номер будет отправлен в транк. Все поля являются необязательными (опциональными).

Правила:
X    совпадение любой цифры от 0 - 9
Z    любая цифра от 1 до 9
N    совпадение любой цифры от 2 - 9
[1237-9]  совпадение любой цифры из набора в скобках (например: 1,2,3,7,8,9)
.   (точка) универсальный символ, определяет одну или более набранных цифр
приставка:    Цифры, которые будут добавлены впереди при совпадении с шаблоном. Если набранный номер совпадает с форматом префиксплюс шаблон, то указанная приставка будет добавлена впереди перед отправкой номера в транк.
префикс:    Префикс удаляется при найденном совпадении. Если набранный номер совпадает с форматом префиксплюс шаблон, то указанный префикс будет удалён прежде чем к нему будет добавлена приставка, затем номер будет отправлен в транк.
совпадение шаблона:    Набранный номер будет сравниваться с комбинацией префиксплюс этот шаблон. При совпадении часть номера будет отправлена в транк после удаления префиксаи добавления приставки
Можно полностью заменить номер используя совпадение только по префиксу. заменить на указанный в поле приставкаи оставить поле шаблонпустым.

() + |

Dial Rules Wizards

Outbound Dial Prefix


Префикс выхода на линию используется для определения исходящих соединений, через данный транк.
Например, если этот транк подключен к АТС, то обычно используют 9 для выхода на линию.
Другое стандартное применение префикса - совершать звонки с опцией 'w'
в линии ТФОП, которая нужна для ожидания длинного гудка для набора номера.
В большинстве случаев проще оставить это поле пустым

Outgoing settings

Trunk Name


Уникальное имя канала, используется в диалплане Asterisk для определение данного канала. Например: Sip_test

PEER Details

Incoming Settings

USER Context


Этот USER контекст будет использовать параметры, определенные ниже.

USER Details
Изменить параметры USER для входящих соединений от вашего VoIP провайдера

Registration

Register String


Большинство VoIP провайдеров требуют, чтобы ваша система регистрировалась.
Введите строку регистрации.
Пример: username:password@2sip.test.tld
Многие провайдеры требуют указывать и номера DID, например: username:password@2sip.test.tld/1234567, где 1234567 номер DID, назначаемый в Inbound Rotes

FreePBX

Asterisk 13 + Opus VP8

$
0
0

Asterisk 13 + Opus VP8

Codec OPUS

 apt-get install -y libopus-dev opus-tools
wget https://github.com/seanbright/asterisk-opus/archive/asterisk-13.3.zip -O opus-asterisk13.zip &&
unzip opus-asterisk13.zip &&
rm -f opus-asterisk13.zip &&
cp asterisk-opus-asterisk*/codecs/* asterisk-13*/codecs/ &&
cp asterisk-opus-asterisk*/formats/* asterisk-13*/formats/ &&
cp asterisk-opus-asterisk*/asterisk.patch asterisk-13*/ &&
cd asterisk-13* &&
patch -p1 < ./asterisk.patch &&
./bootstrap.sh &&
cd /usr/src
2016/11/26

Установка Asterisk + Opus

https://github.com/seanbright/asterisk-opus

Начиная с версии Asterisk 14 OPUS входит в стандартную поставку Asterisk.
Asterisk14+Opus

Установка Asterisk 13 + FreePBX 13 на CentOS 7

$
0
0

Установка Asterisk 13 + FreePBX 13 на CentOS 7

CentOS 7 64-bit Asterisk 13, FreePBX 13 , libpri, DAHDI, Mysql (mariadb), apache2, lame, php, httpd.conf, php.ini

Выключение SELinux

sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config

Зависимости

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install -y kernel-devel kernel-headers
yum install -y e2fsprogs-devel  keyutils-libs-devel krb5-devel libogg \
libselinux-devel libsepol-devel libxml2-devel libtiff-devel gmp php-pear \
php php-gd php-mysql php-pdo php-mbstring ncurses-devel \
mysql-connector-odbc unixODBC unixODBC-devel \
audiofile-devel libogg-devel openssl-devel zlib-devel  \
perl-DateManip sox git wget net-tools psmisc
yum install -y gcc gcc-c++ make gnutls-devel \
libxml2-devel ncurses-devel subversion doxygen \
texinfo curl-devel net-snmp-devel neon-devel  \
uuid-devel libuuid-devel sqlite-devel sqlite \
speex-devel gsm-devel libtool libtool-ltdl libtool-ltdl-devel 

Сделайте полный апдейт

 yum update -y

Перезагрузите компьютер

 reboot

Установка mysql (mariadb)

1: Установим mariadb (MySQL)

 yum -y install mariadb-server mariadb mariadb-devel

2: Запустим и включим автозагрузку mariadb (MySQL)

 systemctl start mariadb.service
 systemctl enable mariadb.service

3: Запустим интерактивный конфигуратор (будет предложено задать пароль пользователя root для mysql и др.)

 mysql_secure_installation

показать

показать

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n
 ... skipping.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Установите PearDB

 pear uninstall db
 pear install db-1.7.14

SRTP

  cd /usr/src && wget http://srtp.sourceforge.net/srtp-1.4.2.tgz 
tar zxvf srtp-1.4.2.tgz && 
cd srtp && autoconf && 
./configure CFLAGS=-fPIC --prefix=/usr && 
make && 
make runtest && 
make install

Pjproject

 cd /usr/src && git clone https://github.com/asterisk/pjproject pjproject 
cd pjproject/ && 
./configure --libdir=/usr/lib64 --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video &&
make dep &&
make &&
make install &&
ldconfig &&
ldconfig -p | grep pj

Вывод ldconfig -p | grep pj

Вывод ldconfig -p | grep pj

        libpjsua.so (libc6,x86-64) => /usr/lib/libpjsua.so
        libpjsip.so (libc6,x86-64) => /usr/lib/libpjsip.so
        libpjsip-ua.so (libc6,x86-64) => /usr/lib/libpjsip-ua.so
        libpjsip-simple.so (libc6,x86-64) => /usr/lib/libpjsip-simple.so
        libpjnath.so (libc6,x86-64) => /usr/lib/libpjnath.so
        libpjmedia.so (libc6,x86-64) => /usr/lib/libpjmedia.so
        libpjmedia-videodev.so (libc6,x86-64) => /usr/lib/libpjmedia-videodev.so
        libpjmedia-codec.so (libc6,x86-64) => /usr/lib/libpjmedia-codec.so
        libpjmedia-audiodev.so (libc6,x86-64) => /usr/lib/libpjmedia-audiodev.so
        libpjlib-util.so (libc6,x86-64) => /usr/lib/libpjlib-util.so
        libpj.so (libc6,x86-64) => /usr/lib/libpj.so

libjansson

 cd /usr/src && wget http://www.digip.org/jansson/releases/jansson-2.5.tar.gz
tar zvxf jansson-2.5.tar.gz && 
cd jansson-2.5 && 
./configure --prefix=/usr/ && 
make clean && 
make && 
make install && 
ldconfig

Исходники

cd /usr/src &&  
wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.5.0.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz

Lame

cd /usr/src && 
tar zxvf lame-3.98.4.tar.gz && 
cd lame-3.98.4 && 
./configure && 
make && 
make install 

DAHDI & LibPRI

 yum install "kernel-devel-uname-r == $(uname -r)"
cd /usr/src && 
tar xvfz dahdi-linux-complete-current.tar.gz && 
cd dahdi-linux-complete-* && 
make all && 
make install && 
make config
cd /usr/src && 
tar xvfz libpri-1.5.*.tar.gz && 
cd /usr/src/libpri-1.5.* && 
make && 
make install

SpanDSP

cd /usr/src && wget http://soft-switch.org/downloads/spandsp/spandsp-0.0.6.tar.gz
tar zxvf spandsp-0.0.6.tar.gz && 
cd spandsp-0.0.6 && 
./configure && 
make && 
make install &&
ln -s /usr/local/lib/libspandsp.so.2 /usr/lib64/libspandsp.so.2

Asterisk 13

cd /usr/src && 
tar xvfz asterisk-13*.tar.gz &&
cd asterisk-13.* &&
./configure --libdir=/usr/lib64 &&
contrib/scripts/get_mp3_source.sh &&
make menuselect

Asterisk 12

Asterisk 12

cd /usr/src && 
tar xvfz asterisk-12-current.tar.gz &&
cd asterisk-12.* &&
./configure --libdir=/usr/lib64 &&
contrib/scripts/get_mp3_source.sh &&
make menuselect

После ввода команды make menuselect, вам будет предложено выбрать устанавливаемые модули. Большинство требуемых модулей выбираются автоматически. Для поддержки mp3 включите модуль 'format_mp3'

 --->  Add-ons (See README-addons.txt)  
             --- extended ---
             XXX chan_mobile
             [*] chan_ooh323
             [*] format_mp3
             [*] res_config_mysql
             --- deprecated ---
             [*] app_mysql
             [*] app_saycountpl
             [*] cdr_mysql

  ---> Core Sound Packages
            [*] CORE-SOUNDS-RU-GSM
  --->  Extras Sound Packages
            [*] EXTRA-SOUNDS-EN-GSM  
make && make install && make config && ldconfig
 sed -i 's/ASTARGS=""/ASTARGS="-U asterisk"/g'  /usr/sbin/safe_asterisk

Создайте пользователя Asterisk и задайте права пользователя.

useradd -m asterisk &&
chown asterisk.asterisk /var/run/asterisk &&
chown -R asterisk.asterisk /etc/asterisk &&
chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk &&
chown -R asterisk.asterisk /usr/lib64/asterisk 

Настроим httpd (Apache)

cp /etc/php.ini /etc/php.ini_orig &&
sed -ie 's/\;date\.timezone\ \=/date\.timezone\ \=\ "Europe\/Moscow"/g' /etc/php.ini &&
sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini &&
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_orig &&
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd.conf &&
sed -i 's/AllowOverride None/AllowOverride All/'  /etc/httpd/conf/httpd.conf &&
systemctl restart httpd &&
systemctl enable httpd

FreePBX

freepbx13

pear install Console_Getopt
cd /usr/src &&
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-13.0-latest.tgz
tar zxvf freepbx-13.0-latest.tgz &&
cd freepbx &&
./start_asterisk start
 ./install -n

Подключимся к FreePBX

http://IP.Address.FreePBX.Server/admin

Первым делом, вам будет предложено задать имя пользователя и пароль FreePBX

freepbx start set user login

Can Not Connected To Asterisk

Если появится предупреждение Can Not Connected To Asterisk, а Asterisk точно запущен, закомментируйте инклюды в файле /etc/asterisk/manager.conf

;#include manager_additional.conf
;#include manager_custom.conf

Установка Asterisk

Настройка SIP в Asterisk 13 sip.conf

$
0
0

Настройка SIP в Asterisk 13 sip.conf

Файл конфигурации 'sip.conf' отвечает за настройку внутренних и внешних каналов SIP.

Asterisk не делает различий между внутренними и внешними линиями, любой вызов совершается через какой-либо канал.

Конфигурация пиров осуществляется при помощи текстовых блоков, отделенных друг от друга квадратными скобками. Имя в квадратных скобках, как правило совпадает с параметром 'username', но не обязательно.

[имя_пира]
type=peer, user или friend
параметр1=значение
параметр2=значение

Где имя_пира - это произвольное имя SIP устройства, на которое можно ссылаться из других конфигурационных файлов. Параметр type может принимать одно из трех значений: type = value

* peer: SIP пир, который Asterisk может использовать для совершения исходящих вызовов.

* user: SIP пир, для входящих вызовов Asterisk .

* friend: Запись, которая одновременно и user и peer. Этот тип наиболее подходит для телефонов и других устройств. Для SIP пользователей этого типа Asterisk создаст два объекта, один типа peer и один типа user, с одинаковыми именами.

Если клиент типа _peer_ (тип _friends_ включает в себя _peer_) определен с параметром host=dynamic, то он должен зарегистрироваться на Asterisk, для того, чтобы сервер мог найти его (IP адрес или имя хоста), и для того, чтобы сервер знал, что данный клиент доступен для совершения вызовов в его сторону.

Регистрация на сервере ITSP - провайдера VoIP телефонии

В файле конфигурации sip.conf в секции [general] добавьте определение register:

Формат:

register => user [:secret[:authuser]] @host [:port] [/extension]

Пример:

Зарегистрировать 3216111 у sip провайдера, как номер 1234567 на Asterisk.

   register => 3216111:userID:PASSWORD@sipppnet.ru/1234567
  • user - идентификатор пользователя, используемый для SIP сервера (например, 3216111)
  • authuser - не обязательное имя пользователя для авторизации на SIP сервере
  • secret - пароль пользователя
  • host - имя домена или хоста SIP сервера. Этот SIP сервер должен быть определен в своей секции файла sip.conf, где должны быть заданы его параметры (sipnet.ru).
  • port - на какой номер порта посылать запросы на регистрацию на сервере host. По умолчанию - 5060
  • /1234567 - номер екстеншена для приема вызовов в Вашем Asterisk. 1234567 - вставляется в SIP заголовок contact, SIP запроса на регистрацию. Этот екстеншен используется удаленным SIP сервером, когда ему необходимо совершить вызов в сторону Вашего Asterisk. Смотри примеры, приведенные ниже. По умолчанию, используется контекстный «s».

Вам необходимо регистрироваться, только если:

  • Если должна быть возможность позвонить к Вам.
  • Если одна из сторон имеет динамический IP адрес.

Наиболее используемые CLI команды для проверки:

  • sip show peers Отобразить все пиры ( включая friends)
  • sip show registry Отобразить статус регистраций на удаленном UAS.
  • sip set debug on Показывать все SIP сообщения.
  • sip reload Перечитать конфигурационный файл.
  • sip show settings Показать текущую конфигурацию chan_sip.

Для получения подробной информации о командах CLI Asterisk 13смотрите Asterisk CLI - интерфейс командной строки.

Пример конфигурации транка, для совершения исходящих вызовов:

[sipppnet-out]
host=sipppnet.ru
username=userID
secret=PASSWORD
fromuser=userID
fromdomain=sipppnet.ru
type=peer
disallow=all
allow=alaw
allow=ulaw
allow=g729
nat=force_rport
directmedia=nonat
insecure=port,invite
dtmfmode=info
context=from-sipppnet

В диалплане (extensions.conf) можно использовать разнообразный синтаксис для вызова (набора) SIP устройств.

   * SIP/devicename
   * SIP/username@domain   (SIP uri)
   * SIP/username[:password[:md5secret[:authname[:transport]]]]@host[:port]
   * SIP/devicename/extension
   * SIP/devicename/extension/IPorHost
   * SIP/username@domain//IPorHost

В файле extensions.conf, для совершения исходящих вызовов, у Вас должно присутствовать правило набора, примерно такого вида:

exten => _9.,1,Dial(SIP/${EXTEN:1}@sipppnet-out,30,r)

Переменная ${EXTEN:1} получает номер екстеншена и удаляет первую цифру- '9'. Подробная информация приведена в Asterisk Dialplan - extensions.conf.

Пример контекста для входящих вызовов в файле 'extensions.conf':

[from-sipppnet]
exten => 3216111,1,Dial(SIP/100&SIP101,180,tr)

Настройка SIP пира для регистрации абонентов на Asterisk

Как уже отмечалось Asterisk не делает особых различий между транками и абонентами, поэтому конфиг телефона будет похож на SIP транк, но все же немного другой.

[777]
host=dynamic
type=friend
secret=**password**
qualify=yes
nat=no
port=5061
directmedia=no
context=from-internal
disallow=all
allow-alaw
allow=ulaw
alow=gsm
deny=0.0.0.0/0.0.0.0
permit=192.168.0.0/255.255.0.0
username=777
fromuser=777
dial=SIP/777
mailbox=777@device
call-limit=2
callcounter=yes
faxdetect=no
callgroup=1
pickupgroup=1

Рассмотрим некоторые опции:

  • host - dynamic или ip адрес с которого подключается абонент.
  • type - для абонентского пира это обычно friend
  • secret - пароль, использование сложных паролей убережет вас от многих неприятностей, даже если вы считаете сеть безопасной, в дальнейшем все может измениться и ваша предусмотрительность окажется очень кстати.
  • qualify - посылать SIP запросы OPTIONS для проверки доступности устройства (возможно это является избыточным, т.к. большинство устройств сами обновляют регистрацию, через заданный в настройках интервал)
  • nat - если телефон находится в локальной сети то 'no', если регистрируется из интернет или другой интра сети, то 'force_rport'
    • nat = no - без NAT RFC3581
    • nat = force_rport - использовать rport, даже если его нет
    • nat = comedia - отправить медиа поток на порт Asterisk 12, независимо от указаний SDP.
    • nat = auto_force_rport - установить 'force_rport' параметр если Asterisk обнаружил NAT (по умолчанию)
    • nat = auto_comedia - установить 'comedia' параметр если Asterisk обнаружил NAT
  • directmedia - направлять медиа поток (RTP трафик) через сервер или напрямую между каналами (пирами).

см. также по теме:NAT, SIP и Asterisk

  • port - порт SIP сигнализации устройства (не путайте c bindport asterisk, который для данного драйвера SIP в Asterisk может быть только один, 5060 по умолчанию, но для нового драйвера Asterisk pjsip.conf, может, или даже должен, быть назначен уникальный порт для каждого транспорта)
  • deny - сети из которых запрещено подключение
  • permit - сети из которых разрешено подключение (если абонент находится в локальной сети, назначьте ему параметр permit=192.168.1.0/255.255.255.0 и регистрация на этом пире будет разрешена только из этой подсети. ACLочень действенная мера безопасноcти. См. также Asterisk:acl.conf
  • call-limit -сколько одновременных вызовов (concurrent calls) может производится через данный канал. Хорошая идея, как для локальных так и для удаленных абонентов. Если пир взломан, злоумышленники не смогут пропустить через канал больше указанного кол-ва вызовов зараз(ы).

'call-limit' опция признана устаревшей и заменена на 'callcounter'. Установить ограничение одновременных вызовов теперь можно переменной канала function 'GROUP_COUNT'
пример использования данного метода можно помотреть здесь: Ограничение количества одновременных вызовов по набранному номеру.

Настройка нескольких SIP пиров по шаблону

Если у вас множество SIP пиров, которые имеют общие настройки и отличаются например, только 'username' и 'secret', можно создать шаблон.
Для этого надо создать шаблонный пир, а рядом с его именем в квадратных скобках, написать восклицательный знак в круглых скобках и задать общие настройки:

[local_pattern](!)
host=dynamic
type=friend
context=from-internal
nat=no
disallow=all
allow=ulaw
allow=alaw

А затем определить уникальные свойства пиров, добавив рядом с именем каждого пира, имя общего шаблона в круглых скобках:

[776](local_pattern)
username=776
secret=super_puper_secret_1
callerid=8123216111
[777](local_pattern)
username=777
secret=super_puper_secret_2
callerid=8121234567

Asterisk sip.conf General SIP Options

Общие SIP Параметры

Следующие параметры используются в общей [general] секции sip.conf:

allowexternalinvites

Если установлено 'no', запрещает INVITE и REFER от внешних (не из localnet) доменов. См domain

 allowexternalinvites=yes|no
allowguest

Если 'no', запрещает гостевые(без аутентификации) подключения. По умолчанию sipguest подключения разрешены.

 allowguest=no|yes
allowoverlap

Вкл. или Выкл набор по одной цифре (т.е. каждая набранная цифра будет сразу отправляться в канал)

 allowoverlap=no|yes
allowsubscribe

Разрешить ли внешним устройствам подписку (SUBSCRIBE) на информацию о статусе екстеншена. По умолчанию - 'yes':

 allowsubscribe=yes|no
allowtransfers

Когда установлено 'no', запрещает любые трансферы, если не переопределено в настройках пира.

 allowtransfers=no|yes
alwaysauthreject

Если включено, всегда отвечает на INVITE и REGISTER, SIP сообщением 401 Unauthorized, вместо того чтобы сообщить вызывающему о существовании запрашиваемого user или peer. Важная настройка безопасности

alwaysauthreject=no|yes
autodomain

Установите эту опцию 'yes', чтобы добавить локальное HOSTNAME и локальный IP адрес в список доменов:

 autodomain=yes|no
bindaddr and bindport

Эти параметры определяют IP адрес и порт на которых Asterisk будет слушать SIP запросы. Для драйвера канала SIP Asterisk 'chan_sip' можно назначить только один адрес и порт для всех подключений для UDP и один порт для TCP транспорта, в отличии от нового драйвера PJSIP. По умолчанию адрес не задан и лучше так и оставить. Некоторые рекомендуют изменять порт по умолчанию 5060, на другой, в целях безопасности. Но помните, что это только одна из мер безопасности, не самая важная, и не гарантирует вам полной защиты от злоумышленников.

bindaddr=0.0.0.0
bindport=5060

Вы можете задать независимые для UDP, TCP и TLS транспорта значения udpbindadd, tcpbindaddrи tlsbindaddr

buggymwi

Вкл. эту опцию, чтобы избежать ошибок при сообщении с некоторыми ip телефонами при отправке MWI сообщений.

buggymwi=no|yes
callevents

Установите 'yes', если хотите генерировать информацию о SIP событиях для AMI (asterisk manager interface)

 callevents=yes
checkmwi

Время в секундах, между проверками голосовой почты :

 checkmwi=30
compactheaders

Использовать или нет компактные SIP заголовки.

 compactheaders=yes|no
defaultexpiry

Срок действия регистрации в секундах для входящих и исходящих регистраций. При входящей регистрации, этот параметр задается клиентской стороной, и заданное здесь значение используется, только если клиент не сообщил свое занчение. Для исходящих регистраций этот параметр сообщается удаленной стороне UAS (user agent server)

 defaultexpiry=300
directrtpsetup

Данная опция позволяет управлять RTP соединением между двумя оконечными точками без re-INVITE(экспериментальная опция, используйте на свой страх и риск).

 directrtpsetup=yes|no
domain

Задает имя домена сервера Asterisk по умолчанию. Командой CLI 'sip show domains' выводится список локальных доменов.

 domain=example.com
dumphistory

Вкл. или Выкл. отчет в завершении SIP диалога. SIP history выводится в DEBUG лог канала.

 dumphistory=yes|no
externhost

Когда Asterisk находится за NAT, SIP заголовок обычно использует IP адрес сервера. Если включить данную опцию, Asterisk будет производить периодические DNSопросы для определения имени хоста и заменять IP адрес на 'externhost'.

 externhost=my.hostname.tld

Используйте externip.

externip

externip содержит IP адрес в качестве аргумента. Если Asterisk находится за NAT, SIP заголовок Contact: содержит внутренний IP адрес сервера, тогда удаленная сторона не знает куда отправлять ответы. Параметр externip вкупе с параметром nat=force_rport модифицирует SIP заголовок, сообщая удаленному SIP серверу адрес на который надо слать ответы:

 externip=123.123.123.123
externrefresh

Если все же используется 'externhost', указывает промежуток времени в секундах между запросами DNS.

 externrefresh=30
g726nonstandard

Значения: yes/no, по умолчанию: no. Если клиент собирается для сеанса связи «договориться» использовать звуковой кодек G726-32, с использованием компрессии AAL2, вместо RFC3551 (что требуется для аппаратов фирмы Sipura и шлюзов от Grandstream, и может другим). То это противоречит спецификации RFC3551, клиент должен вместо этого «договориться» использовать AAL2-G726-32

 g726nonstandard=yes
ignoreregexpire (global)

Если ignoreregexpire установлен 'yes', Asterisk сделает одно из двух, в зависимости от настроек пиров: 1)Non-realtime peer Когда регистрация истекает, информация не удаляется из памяти или БД Asterisk и вызовы будут разрешены несмотря на то, что время регистрации истекло.

2)Realtime peers Когда peer сконфигурирован в режиме реального времени, информация о регистрации используется независимо от defaultexpiry

 ignoreregexpire=yes|no
jbenable

Вкл. поддержку RTP jitter buffer на принимающей стороне канала SIP. По умолчанию 'no'. Будет работать, только если удаленная сторона поддерживает эту функцию. подробнее о Джиттер

 jbenable=yes|no
jbforce

Принудительное использование jitter buffer принимающей стороной SIP канала.

 jbforce=yes|no
jbimpl

Использовать фиксированный или подстраиваемый (адаптивный) jitter buffer. fixed jitter buffer всегда использует значение из jbmaxsize adaptive может принимать значение больше jbmaxsizeПо умолчанию 'fixed':

 jbimpl=fixed|adaptive

Из личного опыта, вкл. 'adaptive' может приводить к весьма плачевным результатам.

jblog

Вкл./выкл jitter buffer frame лог. По умолчанию 'no':

 jblog=yes|no
jbmaxsize

Установите максимальную длину буфера в миллисекундах:

 jbmaxsize=200
jbresyncthreshold

Джиттер буфер порог синхронизации. По умолчанию 1000:

 jbresyncthreshold=1000
icesupport

Использовать Interactive Connectivity Establishment (ICE) в Asterisk

 icesupport=no
limitonpeers

Применять call-limit только для type=peer Это улучшит использование call-limit для устройств настроенных, как type=friend, отделив ограничение call-limit от входящих вызовов.

 limitonpeers=yes|no
localnet

укажет серверу Asterisk какие подсети являются локальными, прозрачными для использования IP адресов сервера, SIP запросы к которым не требуют модификации поля Contact: c использованием externipили externhost

 localnet=192.168.1.0/24
 localnet=172.16.0.0/16
matchexterniplocally

Сверять 'externip' с 'localnet' и производить подстановку, только если 'externip' из локальной подсети. Не совсем ясно, зачем это может понадобиться? Возможно при очень нестандартной топологии сети.

 matchexterniplocally=yes|no
maxexpiry

Максимальная продолжительность регистрации в секундах.

 maxexpiry=3600
minexpiry

Минимальная продолжительность регистрации в секундах.

 minexpiry=60
notifymimetype

Указывает MIME тип используемый для message-waiting indication (MWI) в SIP NOTIFY сообщении.

 notifymimetype=text/plain
notifyringing

Сообщать подписчикам о состоянии вызов (RINGING):

 notifyringing=yes|no
notifyhold

Сообщать подписчикам (subscribers) о состоянии удержание (HOLD):

 notifyhold=yes|no
pedantic

Скурпулезная проверка SIP сообщений. Устанавливает более строгую проверку по стандартам SIP RFC.

 pedantic=yes
realm

Данная установка используется для аутентификации в SIP. Задайте realm полное доменное имя вашего сервера. Имя должно быть совершенно уникальным.

 realm=mybox.example.com
recordhistory

Вкл. или Выкл историю sip для всех каналов.

 recordhistory=yes|no
registerattempts

Сколько попыток внешних регистраций произведет Asterisk, прежде чем откажется от продолжения. По умолчанию стоит '0', что значит бесконечно.

 registerattempts=0
registertimeout

Таймаут между попытками регистрации на другом устройстве.

 registertimeout=30
relaxdtmf

Если плохо распознаются DTMF сигналы, включите данную опцию.

 relaxdtmf=yes|no
rtautoclear

(global) Конфигурация Realtime PeersУказывает должен ли Asterisk обнулять созданные на лету friends по истечении времени регистрации. Если установлено 'yes', по истечении срока регистрации, удалять friends до нового запроса. Если задано число, то оно используется вместо обычного времени регистрации.

rtautoclear=yes|no|seconds
rtcachefriends

(global)

Если rtcachefriends включен, Asterisk будет кэшировать friends(реалтайм пиры), которые приходят из realtime engine, так же, как если бы они сконфигурированы в «sip.conf».

 rtcachefriends=yes|no
rtsavesysname

(global) Определяет, должен ли Asterisk сохранить SystemName в базе данных в режиме реального времени во время регистрации:

 rtsavesysname=yes|no
rtupdate

(global) Если установлено 'yes' Asterisk будет обновлять IP-адрес, порт и период регистрации пиров при регистрации. По умолчанию 'yes':

 rtupdate=yes|no
sipdebug

Указывает, должен или нет Asterisk включать SIP debug сразу при загрузке драйвера канала SIP.

 sipdebug=yes|no
sendrpid

ОТправлять или нет Remote-Party-ID header:

 sendrpid=yes|no
srvlookup

Записи DNS SRV являются одним из способов указания адреса для связи сервером. Используя записи SRV, вы получаете многие преимущества DNS, в то время как отключения SRV DNSлишает вас возможности принимать SIP вызовы на основании доменных имен. В настоящее время поддержка записей SRV в Asterisk несколько хромает. Если несколько записей SRV возвращаются, Asterisk будет использовать только первую запись. Чтобы включить, установите srvlookup = yes в секции [general] файла sip.conf:

 srvlookup=yes
transport

Задает транспорт по умолчанию. По умолчанию 'udp', но может быть 'tcp', 'tls', 'ws' или 'wss'. Если задано TCP а tcpenable=no будет использован UDP транспорт.

transport=udp
tcpenable

Включить поддержку TCP транспорта chan_sip Asterisk.

 tcpenable=yes
tcpbindaddr

Адрес на котором Asterisk «слушает» TCP подключения.

  IPv4 example: bindaddr=0.0.0.0:5062
  IPv6 example: bindaddr=[::]:5062
tcpauthtimeout

tcpauthtimeout указывает максимальное время в секундах данное клиенту на аутентификацию. Если за заданное время клиент не прошел проверку он отключается. (По умолчаннию 30 секунд)

 tcpauthtimeout = 30
tcpauthlimit

Максимальное кол-во неаутентифицированных сессий в момент любой времени.

 tcpauthlimit = 100
t1min

Минимальная задержка туда-обратно (minimum round-trip) для сообщения контролируемого хоста. По умолчанию 100 миллисеунд:

 t1min=100
subscribecontext

Ограничить запросы SUBSCRIBE только указанным контекстом, если не переопределено в настройках пира.

 subscribecontext=internal
t38pt_udptl

Установка t38pt_udptl 'yes' вкл. T.38 fax (UDPTL) насквозь (passthrough) для SIP-to-SIP вызовов с поддержкой T.38. Эта настройка включается глобально для всех устройств, но вы можете отключить её для конкретного устройства.

 t38pt_udptl=yes|no

T.38 fax passthrough работает только для SIP-to-SIP вызовов, любые local или agent каналы не могут быть использованы.

tos_sip, tos_audio, andtos_video

Asterisk может установить TOS bits в IP заголовках для помощи маршрутизаторам приотеризации трафика. tos_sip, tos_audio, и tos_video установки управляют TOS битами для SIP сообщений, RTP аудио и RTP видео, соответственно. Поддерживаются: CS0, CS1, CS2, CS3, CS4, CS5, CS6, CS7, AF11, AF12, AF13, AF21, AF22, AF23, AF31, AF32, AF33, AF41, AF42, AF43. Можно также использовать цифровые значения для TOS битов.

trustrpid

Доверять или нет Remote-Party-ID header: Asterisk SIP trustrpid

 trustrpid=yes|no
useragent

Значение поля useragent в SIP заголовке. По умолчанию версия Asterisk:

 useragent=Asterisk PBX v12.4.0

Если вы не желаете сообщать, что используете Asterisk, напишите Cisco или Avaya, или abyrvalg v2.0.

usereqphone

usereqphone опция говорит Asterisk добавить «user=phone» в SIP URIs которые содержат действующий номер телефона:

usereqphone 
videosupport
2016/11/26

FreePBX 13 PJSIP Trunk

$
0
0

FreePBX 13 PJSIP Trunk

Пример данных провайдера

  • SIP user - 1234567
  • SIP password - secret
  • SIP server - sip.sprovider.ru

Asterisk 13.4.0 / FreePBX 13 (FreePBX Framework 13.0.1beta3.54)

  • Trunk Name - pjsip_test

PJSIP trunk general

freepbx13 pjsip trunk general

PJSIP Settings

freepbx13 pjsip trunk settings

freepbx13 pjsip trunk advanced

pjsip show registrations
asterisk*CLI> pjsip show registrations

 <Registration/ServerURI..............................>  <Auth..........>  <Status.......>
 =========================================================================================

 pjsip_test/sip:sip.sprovider.ru:5060                      pjsip_test        Registered
pjsip show endpoint <name>
asterisk*CLI> pjsip show endpoint pjsip_test

 Endpoint:  <Endpoint/CID.....................................>  <State.....>  <Channels.>
    I/OAuth:  <AuthId/UserName...........................................................>
        Aor:  <Aor............................................>  <MaxContact>
      Contact:  <Aor/ContactUri...............................>  <Status....>  <RTT(ms)..>
  Transport:  <TransportId........>  <Type>  <cos>  <tos>  <BindAddress..................>
   Identify:  <Identify/Endpoint.........................................................>
        Match:  <ip/cidr.........................>
    Channel:  <ChannelId......................................>  <State.....>  <Time(sec)>
        Exten: <DialedExten...........>  CLCID: <ConnectedLineCID.......>
 =========================================================================================

 Endpoint:  pjsip_test                                            Not in use    0 of inf
    OutAuth:  pjsip_test/1234567
        Aor:  pjsip_test                                          0
      Contact:  pjsip_test/sip:12345670@sip.sprovider.ru:5060     Avail            78.715
  Transport:  0.0.0.0-udp               udp      0      0  0.0.0.0:5077
   Identify:  pjsip_test/pjsip_test
        Match: 123.123.123.123/32


 ParameterName                 : ParameterValue
 =====================================================
 100rel                        : yes
 accountcode                   :
 aggregate_mwi                 : true
 allow                         : (g729|alaw|ulaw|g726)
 allow_subscribe               : true
 allow_transfer                : true
 aors                          : pjsip_test
 auth                          :
 call_group                    :
 callerid                      : <unknown>
 callerid_privacy              : allowed_not_screened
 callerid_tag                  :
 connected_line_method         : invite
 context                       : from-sprovider
......

<spoiler>

Configuration Mode:

Simple/Advanced

Permanent Auth Rejection:

v

Retry Interval:

60

Expiration:

3600

Forbidden Retry Interval:

10

Max Retries:

10

Qualify Frequency:

60

Username:

Secret:

SIP Server:

SIP Server Port:

Advanced options

Client URI:

Server URI:

AOR Contact:


Outbound Proxy:

Contact User:

Context:

Transport:

0.0.0.0-udp

Codecs:

ulaw
alaw
g722

Пример настройки SIP транка chan_pjsip для соединения с другим сервером Asterisk

FreePBX 13 установка


Asterisk Realtime: extconfig.conf

$
0
0

Asterisk Realtime: extconfig.conf

Реалтайм Архитектура Asterisk - набор драйверов и функций для конфигурации в режиме реального времени. Существует два типаконфигурации - статический и динамический:

  1. Статический хранит конфигурации в БД, как конфигурационные файлы и также обновляет данные при перезагрузке модулей.
  2. Динамический используется для создания и обновления объектов в режиме реального времени, при совершении вызовов.

Оба режима могут использоваться одновременно.

Реалтайм архитектура поддерживает разные типы хранилищ. В данный момент, большинство драйверов основаны на SQL, но есть и поддержка других методов, например LDAP и CURL.

В данный момент поддерживаются следующие бэкенды:

  • ODBC: интегрированная в Asterisk UnixODBC подсистема поддерживает множество разных БД.
  • MySQL: нативная поддержка MySQL, интегрирована в Asterisk
  • PostgreSQL: нативная поддержка PostgreSQL, интегрирована в Asterisk
  • SQLite и SQLite3: для небольших БД можно использовать SQLite3.
  • LDAP: получайте учетные данные из LDAP директорий.
  • cURL: Получайте и отправляйте данные веб приложениям и связанным с ними БД.

Статическая конфигурация

Использует базы данных, как хранилище статических конфигураций. Конфигурации обновляются при загрузке модулей, как и в случае с конфигурационными файлами.

Все настройки записываются под одной категорией - [settings]

Конфиг ⇒ Драйвер БД, имя категории из конфига драйвера res_<driver>, таблица базы данных. Если таблица не указана, будет использовано имя конф. файла.

file.conf => driver,category DB res_....conf[,table[,priority]]

Пример записи для загрузки 'queues.conf' через ODBC и 'extensions.conf' из SQlite:

 queues.conf => odbc,asterisk,ast_config
 extensions.conf => sqlite,asterisk,ast_config

Следующие конфиги НЕ МОГУТбыть использованы в реалтайм хранилище:

  • asterisk.conf
  • extconfig.conf (данный файл)
  • logger.conf

Также, некоторые конфиги не загрузятся из Realtime хранилища, если драйвер БД (хранилища) не был, ранее, загружен оператором 'preload' в конфиге 'modules.conf':

  • manager.conf
  • cdr.conf
  • rtp.conf
  • features.conf
  • cel.conf
  • indications.conf

Списки контроля доступа (ACL) также не смогут быть использованы в manager.conf без предварительной загрузки драйвера хранилища. /etc/asterisk/modules.conf

[modules]
preload => res_odbc.so
preload => res_config_odbc.so

Структура таблицы статической базы данных

Структура статической таблицы БД реалтайм архитектуры Asterisk значительно отличается от, собственно, Realtimeтаблиц. Она предполагает единую схему для всех подключаемых конфигов.

static ast_config.sql

create table ast_config (
 id int(11) NOT NULL auto_increment,
 cat_metric int(11) NOT NULL default '0',
 var_metric int(11) NOT NULL default '0',
 commented int(11) NOT NULL default '0',
 filename varchar(128) NOT NULL default '',
 category varchar(128) NOT NULL default '',
 var_name varchar(128) NOT NULL default '',
 var_val varchar(128) NOT NULL default '',
 PRIMARY KEY (id),
 KEY `filename_comment` (`filename`,`commented`)
)ENGINE = InnoDB;
  • 'cat_metric' и 'var_metric' определяют порядок (очередность). 'cat_metric' во всей конфигурации, а 'var_metric', внутри категории. Метрика с меньшим значением представляется раньше, метрика с большим позднее. На примере порядка выбора кодеков в sip.conf, это будет работать так: 'disallow=all' - метрика 0 представляется 1-й, затем 'allow=alaw' - метрика 1 и далее 'allow=g729'
  • Если поле 'commented' не равно '0', строка считается закомметированной и игнорируется.
  • `filename` - Конфиг которому предназначены данные (например extensions.conf).
  • 'category' - контекст диалплана или категория конфига.
  • `var_name` - опция (параметр) конфига, напрмер extenв диалплане.
  • `var_val` - собственно данные, после знака '⇒' в конфиге.

Пример статической конфигурации extensions.conf

extconfig.conf

 extensions.conf => odbc,asterisk,ast_config

Опции и диалплан в extensions.conf:

[general]
static=yes

[globals]
RECDIR=/mnt/record	; Директория записи

[from-internal]
exten => _9X.,1,Dial(PJSIP/${EXTEN:1}@trunk,60,trU(sub-monitor,s,1)
exten => _9X.,n,Hangup
[sub-monitor]
exten => s,1,Noop(**rec to mount**)
exten => s,n,MixMonitor(${RECDIR}/${UNIQUEID}.wav)
exten => s,n,Return

В таблице ast_config будут представлены так:

MariaDB [asterisk]> select * from ast_config;
+----+------------+------------+-----------+-----------------+---------------+----------+--------------------------------------------------------------------+
| id | cat_metric | var_metric | commented | filename        | category      | var_name | var_val                                                            |
+----+------------+------------+-----------+-----------------+---------------+----------+--------------------------------------------------------------------+
|  1 |          0 |          0 |         0 | extensions.conf | general       | static   | yes                                                                |
|  2 |          1 |          0 |         0 | extensions.conf | globals       | RECDIR   | /mnt/record                                                        |
|  3 |          2 |          0 |         0 | extensions.conf | from-internal | exten    | _9X.,1,Dial(PJSIP/${EXTEN:1}@siptrunk,60,trU(sub-monitor,s,1) |
|  4 |          2 |          1 |         0 | extensions.conf | from-internal | exten    | _9X.,n,Hangup                                                 |
|  5 |          3 |          0 |         0 | extensions.conf | sub-monitor   | exten    | s,1,Noop(**rec to mount**)                                         |
|  6 |          3 |          1 |         0 | extensions.conf | sub-monitor   | exten    | s,n,MixMonitor(${RECDIR}/${UNIQUEID}.wav)                          |
|  7 |          3 |          2 |         0 | extensions.conf | sub-monitor   | exten    | s,n,Return                                                         |
+----+------------+------------+-----------+-----------------+---------------+----------+--------------------------------------------------------------------+
7 rows in set (0.00 sec)

Реалтайм конфигурация

Работа в режиме реального времени. Любые изменения в реалтайм хранилище, используются системой при новых вызовах, без перезагрузки модулей и применения настроек. Данные реалтайм хранилищ, могут модифицироваться во время выполнения диалплана, при помощи встроенных функций.

Конфигурация вызывает заданное семейство реалтайм в формате: драйвер базы данных, имя категории из конфига драйвера res_<driver>, таблица БД, приоритет (если таблица не задана, будет использовано имя семейства (family)): family => Driver DB,category DB res_...conf[,Table][,prioritet]

example => odbc,asterisk,alttable,1
example => mysql,asterisk,alttable,2
example2 => ldap,"dc=oxymium,dc=net",example2

Приоритет - необязательный параметр , применяется в случае ошибки получения данных. Если соединению с приоритетом 1 не удалось получить данные, будет произведена попытка получить данные через соединение с приоритетом 2. Приоритеты должны быть упорядочены: 1,2,3, но не 1,2,4

Доступные бакенды

  • odbc … res_config_odbc
  • sqlite … res_config_sqlite
  • sqlite3 … res_config_sqlite3
  • pgsql … res_config_pgsql
  • curl … res_config_curl
  • ldap … res_config_ldap
  • mysql … res_config_mysql (через add-ons в menuselect)

В конфигах res_pgsqlи res_config_sqliteБД назначаются в категории [general] и всегда используется эта БД. В res_config_mysqlБД тоже назначается в секции [general], но можно указать несколько баз данных (см. конфиг mysql)

Использование и подключение

Созданные семейства реалтайм можно подключать директивой switch ⇒ в диалплане, как в случае с extensions.conf:

 [default]
 switch => Realtime/mycontext@extensions 

или вызывать при помощи специальных функций диалплана (в описании функций, можно найти примеры):

пример extconfig.conf
  • iaxusers ⇒ odbc,asterisk
  • iaxpeers ⇒ odbc,asterisk
  • sippeers ⇒ odbc,asterisk - Asterisk 13 RealTime SIP
  • sipregs ⇒ odbc,asterisk ; (avoid sipregs if possible, e.g. by using a view)
  • ps_endpoints ⇒ odbc,asterisk
  • ps_auths ⇒ odbc,asterisk
  • ps_aors ⇒ odbc,asterisk
  • ps_domain_aliases ⇒ odbc,asterisk
  • ps_endpoint_id_ips ⇒ odbc,asterisk
  • voicemail ⇒ odbc,asterisk
  • extensions ⇒ odbc,asterisk
  • extensions ⇒ mysql,general,extensions - Asterisk Realtime Extensions with MySQL
  • meetme ⇒ mysql,general
  • queues ⇒ odbc,asterisk
  • queue_members ⇒ odbc,asterisk
  • queue_rules ⇒ odbc,asterisk
  • acls ⇒ odbc,asterisk
  • musiconhold ⇒ mysql,general
  • queue_log ⇒ mysql,general
  • queue_log ⇒ odbc,asterisk,queue_log - Asterisk: queue_log в MySQL через unixODBC

Файлы конфигурации Asterisk

FreePBX

$
0
0

FreePBX

Настройка Asterisk FreePBX. Подробное описание модулей. Скриншоты.

Настройка FreePBX

FreePBX это полнофункциональный веб-интерфейс для конфигурации Asterisk PBX. Если Вы знакомы с Asterisk, то знаете, настройка ATC осуществляется при помощи конфигурационных файлов. FreePBX предлагает простой, интуитивно понятный интерфейс для настройки и управления Asterisk PBX. FreePBX также поставляется со многими дистрибьютивами: AsteriskNOW, FreePBX Distro, Trixbox, Elastix.

Общая документация.

Admin modules

Документация по административным модулям FreePBX

Applications

Документация по модулям приложений FreePBX

Connectivity

Документация по модулям входящих исходящих соединений FreePBX.

Settings Modules

Документация по модулям глобальных настроек каналов и приложений FreePBX

UCP

Примеры

Уязвимости

Устаревшее

Настройка res_pjsip для работы через NAT

$
0
0



Настройка res_pjsip для работы через NAT

В данной статье приведены примеры рабочей конфигурации драйвера канала PjSIP, когда Asterisk находится за NAT (Network Address Translation). Asterisk подключается через NAT к провайдеру IP телефонии (ITCP).
Этот пример подходит для большинства простых сценариев NAT при следующих условиях: Asterisk и телефоны находятся в частной сети. Маршрутизатор имеет локальный и публичный интерфейсы. Маршрутизатор реализует функции Трансляции Сетевых Адресов (NAT) и файерволла. На маршрутизаторе настроен проброс SIP и RTP портов на локальный IP адрес сервера Asterisk. В данном примере проброшены порты 5060 TCP/UDP и UDP 10000-10100 на LAN 10.10.2.10.

Устройства используемые в примере:

УстройствоIP адрес в примере
VOIP телефон(7777)10.10.2.77
PC/Asterisk10.10.2.10
МаршрутизаторLAN: 10.10.2.1
WAN: 123.123.123.123
ITSP SIP шлюз203.0.113.1(gw1.example.com)
203.0.113.2(gw2.example.com)

Для наглядности, в примере использованы фальшивые детали:

ITSP номер аккаунта : 123456789 и DID номер входящий от провайдера IP телефонии (ITSP): 3216111

pjsip.conf конфигурация

Подразумевается, что вы ознакомились со статьей о конфигурации Asterisk pjsip.confи имеете основные представления о работе Asterisk. Для этого примера, важно отметить опции - local_net, external_media_addressи external_signaling_addressв transportсекции и direct_mediaв endpointсекции. Остальные параметры могут зависеть от конкретной конфигурации, модели телефона, сетевых настроек, специфики провайдера IP телефонии и т.д.

local_net

Диапазон адресов локальной сети.

external_media_address

Внешний IP адрес используемый для обработки RTP трафика. Когда запрос или ответ на запрос отправляется из Asterisk и IP адрес назначение находится за пределами сетей указанных в параметре 'local_net', а медиа адрес в SDP сообщении из локальной сети, тогда медиа адрес из SDP сообщения перезаписывается значением назначенным в параметре 'external_media_address'.

external_signaling_address

Это тоже самое что и 'external_media_address', только для SIP сигнализации, вместо RTP медиа трафика. Этим двум опциям внешних адресов, должен быть назначен один и тот же IP адрес, если вы, конечно, не хотите разделить сигнальный и медиа трафик и направить на разные IP адреса или сервера.

direct_media

Управляет медиа потоком, направляя RTP трафик непосредственно между конечными точками, или через Asterisk. (вспомните canreinvite из sip.conf) Вместе, использование этих опций, обеспечивает правильное прохождение SIP и RTP пакетами сетевых узлов, а 'direct_media=no' указывает, что именно Asterisk должен обрабатывать медиа трафик. Это важно, т.к. наша система Asterisk имеет локальный IP адрес и провайдер IP телефонии (ITCP) не может маршрутизировать трафик напрямую к нему, поэтому мыдолжны убедится что SIP и RTP трафик возвращается на WAN публичный интернет адрес нашего роутера. В секциях имена которых начинаются с «sip_provider_*», настраиваются входящие и исходящие подключения SIP транка, а в секциях [7777] VoIP телефон.

[transport-udp-nat]
type=transport
protocol=udp
bind=0.0.0.0
local_net=10.10.2.0/24
local_net=127.0.0.1/32
external_media_address=123.123.123.123
external_signaling_address=123.123.123.123

[sip_provider_reg]
type=registration
transport=transport-udp-nat
outbound_auth=sip_provider_auth
server_uri=sip:gw1.example.com
client_uri=sip:123456789@gw1.example.com
contact_user=3216111
retry_interval=60

[sip_provider_auth]
type=auth
auth_type=userpass
password=************
username=123456789
realm=gw1.example.com

[sip_provider_endpoint]
type=endpoint
transport=transport-udp-nat
section=from-trunk
disallow=all
allow=ulaw
outbound_auth=sip_provider_auth
aors=sip_provider_aor
direct_media=no
from_domain=gw1.example.com

[sip_provider_aor]
type=aor
contact=sip:gw1.example.com
contact=sip:gw2.example.com

[sip_provider_identify]
type=identify
endpoint=sip_provider_endpoint
match=203.0.113.1
match=203.0.113.2
[7777]
type=endpoint
section=from-internal
disallow=all
allow=ulaw
transport=transport-udp-nat
auth=7777
aors=7777
direct_media=no
 
[7777]
type=auth
auth_type=userpass
password=*********
username=7777

[7777]
type=aor
max_contacts=2

Удаленные телефоны за NAT

Выше приведенный пример подразумевает, что телефон находится в локальной сети, так же как и сервер Asterisk.
Но может так статься, что Asterisk расположен на внешнем IP адресе, а удаленные телефоны находятся за NAT, или же и Asterisk, и телефоны расположены за NAT, т.е. имеет место двойной NAT? В этих случаях пригодятся следующие настройки оконечных точек (ENDPOINTS)

media_address

IP адрес используемый SDP для обработки медиа трафика.

В момент создания SDP сообщения, IP адрес назначенный здесь(media_address=1.2.3.4), используется как медиа адрес для потока SDP. At the time of SDP creation, the IP address defined here will be used as the media address for individual streams in the SDP. Помните также , что опция 'external_media_address', заданная в секции transport , установит окончательный адрес для возврата медиа трафика.

rtp_symmetric

Обязательный симметричный RTP. Отправлять RTP назад на тот же адрес/порт с которого он был получен.

force_rport

Поведение обязательно совместимое с RFC 3581, т.е., если rport не указан, отправлять SIP ответы на тот же порт с которого были получены запросы.

direct_media

Управляет медиа потоком, направляя RTP трафик, непосредственно, между конечными точками, или через Asterisk.

Поддержка ICE,STUN,TURN

NAT, SIP и Asterisk

$
0
0

NAT, SIP и Asterisk

Трансляция сетевых адресов (NAT) является обычной практикой в сети и нередко мешает прохождению голосовых пакетов (нет звука) и инициализации соединений (нет соединения). Решение этой проблемы требует понимания принципов работы NAT и VoIP. В этой статье рассматривается протокол SIP и Asterisk, но проблемы и решения применимы и к большинству других приложений и протоколов.

NAT используется, чтобы скрыть многочисленные локальные адреса, за каким-то внешним узлом, обеспечивая безопасность и структуризацию сети.
Когда пакет проходит шлюз (gateway), IP-адрес локального источника заменяется на внешний IP-адрес. При ответе шлюз направляет пакет на исходный локальный адрес. Также шлюз блокирует внешние запросы не имеющие явных внутренних источников, но возможно пробросить пакеты пришедшие на определенные порты, на заранее заданные IP адреса внутри сети.

Если у вас нет звука, нет звука в одну сторону, нет слышимости, прочтите внимательно эту инструкцию.

Reinvite

Первый абонент запрашивает соединение у второго , сообщая свой IP адрес. Второй отвечает, сообщая свой IP. Голосовые пакеты направляются напрямую абонентам, минуя SIP сервер. Передача голосовых пакетов напрямую абонентам, минуя Asterisk, называется RE-INVITE или Native Bridge.

NAT может вызвать проблемы в нескольких местах.

  • Если одна из АТС находится за NAT, другая АТС не сможет связаться с ней, без проброса портов.
  • Если телефон находится за NAT, голосовые пакеты могут быть направлены на немаршрутизируемый адрес в сети, что приведет к потере звука.

Клиент за NAT

В простейшей ситуации SIP клиент находясь за NAT, обращается к внешнему интерфейсу Asterisk. SIP клиент при регистрации на сервере создает запись в таблице трансляций, которая сохраняется, пока проходит хотя бы один пакет в минуту. В файле sip.conf требуется определить параметры сети и свойства удаленного пира.


[general]
localnet=192.168.0.0/255.255.255.0 ; локальная сеть
externip=x.x.x.x                   ; внешний ip адрес

[sip_phone]             
nat=yes
qualify=300                    ; проверять соединение каждые 300 мс.

Начиная с версии Asterisk 11: 'nat=yes' устарело, используйте 'nat=force_rport,comedia'
nat=force_rport,comedia

nat=force_rport,comedia
directmedia=nonat

При такой конфигурации Asterisk использует внешний IP адрес externipдля вызовов клиентов с параметром nat=yes . Дополнительно параметр qualify=yesподдерживает соединение, не позволяя удалять запись из таблицы трансляций.

SIP клиенты и Asterisk за NAT

Все усложняется если и Asterisk, и клиенты, находятся за NAT. Клиенты с внешней стороны не смогут получать SIP сообщения и принимать звонки. Или в SIP сообщении будет указан локальный IP адрес телефона, что приведет к потере звука.

Чтобы избежать потери звука запретите re-inviteв файле sip.conf

[general]
canreinvite => no

Опция canreinvite устарела. Используйте 'directmedia'.

  • directmedia=yes
  • directmedia=nonat
  • directmedia=update
  • directmedia=outgoing

Но клиенты находящиеся за NAT, все равно не смогут инициировать соединение с Asterisk и направить голосовые пакеты RTP на требуемый екстеншен. Для того чтобы это работало, надо пробросить требуемые порты через брандмауер на Asterisk. Диапазон RTP портов используемых Asterisk, назначается в файле rtp.conf.

[general]
rtpstart=10000 
rtpend=10100                  

По умолчанию задан диапазон от 10000 до 20000. Измените диапазон в соответсвии с вашими потребностями (3 порта на каждый конкурирующий вызов).

Для нормальной работы за NAT, потребуется пробросить диапазон RTP портов в соответсвии с настройками в файле rtp.conf и порт SIP(обычно 5060). В iptablesэто будет выглядеть так:

iptables -t nat -A PREROUTING -i eth0 -p udp \
-m udp --dport 10000:10100 -j DNAT \
--to-destination 192.168.1.10
iptables -t nat -A PREROUTING -i eth0 -p udp \
-m udp --dport 5060 -j DNAT \
--to-destination 192.168.1.10

Где eth0 - внешний интерфейс, а 192.168.1.10 - IP адрес Asterisk.

Основные параметры конфигурации NAT для Asterisk

sip.conf

Поддержка NAT в Asterisk 12

localnet

параметр 'localnet' список сетевых адресов, которые считаются «внутренними».

 localnet=192.168.0.0/255.255.0.0 - RFC 1918 адреса
 localnet=10.0.0.0/255.0.0.0      - Также RFC1918
 localnet=172.16.0.0/12           - Другое RFC1918 с CIDR обозначением
 localnet=169.254.0.0/255.255.0.0 - Zeroconf локальная сеть
externaddr

Внешний адрес щлюза (маршрутизатора) во внешнюю сеть. «externaddr = hostname[:port]» указывает статический адрес[:port] который будет использован в SIP и SDP сообщениях. Имя хоста (hostname) поднимается каждый раз, когда [пере]загружается sip.conf. Если порт не назначен, используется значение указанное в параметре «udpbindaddr». примеры:

 externaddr = 123.34.56.78:         - использовать этот адрес.
 externaddr = 123.34.56.78:9900     - использовать этот адрес и порт.
 externtcpport = 9900    - отображаемый наружу tcp порт
 externtlsport = 12600   - отображаемый наружу tcp порт;  'externtlsport' по рекомендации RFC назначенный порт 5061.	
externhost

«externhost = hostname[:port]» то же что и «externaddr» только это 'hostname' обновляемое через «externrefresh» секунд (по умолчанию 10сек.).

 externhost=foo.dyndns.net       - обновлять периодически
 externrefresh=180               - задать интервал обновления

В дополнение к вышесказанному Asterisk имеет дополнительный параметр «NAT» для разрешения вопросов, связанных со входящими SIP или медиа сессиями. В частности, в зависимости от настроек 'NAT =' как описано ниже, Asterisk может переопределить адрес / порт информацию, указанную в SIP / SDP сообщениях.

 nat = no                - без NAT RFC3581
 nat = force_rport       - использовать rport, даже если его нет 
 nat = comedia           - отправить медиа поток на порт ASterisk, независимо от указаний SDP.
 nat = auto_force_rport  - установить 'force_rport' параметр если  Asterisk обнаружил NAT (по умолчанию)
 nat = auto_comedia      - установить  'comedia' параметр если Asterisk обнаружил NAT

настройки могут совмещаться:

nat=force_rport,comedia

RFC 3581 определяет что 'rport' позволяет клиенту запросить, чтобы Asterisk отправлял SIP ответы на него через исходный IP и порт, с которого был направлен запрос, вместо адреса / порта из самого верхнего Via заголовка.

Установка force_rport принуждает Asterisk всегда передавать ответы обратно на адрес / порт, с которых он получил запросы, даже если другая сторона не поддерживает добавления параметра 'rport'.

media_address

IP адрес используемый для медиа (аудио, видео и текста) в SDP может быть переназначен параметром 'media_address'. Данный параметр может быть использован только в секции [general].

 media_address = 172.16.42.1
icesupport

ICE/STUN/TURN использование может быть включено глобально или для конкретного пира с помощью 'icesupport' опции.

 icesupport = yes
directmedia

Для отключения прямых RTP потоков (peer-to-peer) используйте опцию:

 directmedia=nonat

устаревшие настройки sip.conf

port= Порт используемый SIP протоколом для сигнализации (default=5060)

bindaddr= IP адрес Asterisk, если указано 0.0.0.0, то любой адрес.

externip= Этот параметр задается в секции [general] файла sip.confи указывает внешний IP адрес, или имя хоста на вашем устройстве NAT.

externip=123.123.123.123

Этот адрес будет использован для общения с устройствами с установленным параметром nat=force_rport.

localnet= Этот параметр задается в секции [general] файла sip.confи указывает на локальную сеть и используется для обращения к устройствам с параметром nat=no.

localnet=192.168.0.0/255.255.255.0
NAT

Возможные значения:

NAT= yes, no, never, route

NAT=route

Начиная с версии Asterisk 11: nat=yes is deprecated, use nat=force_rport,comedia instead

  • nat = no - без NAT RFC3581
  • nat = force_rport - использовать rport, даже если его нет
  • nat = comedia - отправить медиа поток на порт Asterisk, независимо от указаний SDP.
  • nat = auto_force_rport - установить 'force_rport' параметр если Asterisk обнаружил NAT (по умолчанию)
  • nat = auto_comedia - установить 'comedia' параметр если Asterisk обнаружил NAT

Asterisk будет отправлять голосовые пакеты на порт и IP адрес с которого их получает а не указанные в SIP и SDP сообщениях.

Это будет работать только, если телефоны за NAT будут использовать для одинаковый порт для голосовых пакетов RTP и одинаковый (но отличный от голосового) для сигнализации RTCP.

directmedia
  • directmedia=yes
  • directmedia=nonat
  • directmedia=update
  • directmedia=outgoing

qualify= Эта опция имеет два назначения.Первое - поддерживать запись в таблице трансляций NAT и контролировать регистрацию телефона.

Возможные значения:

qualify=yes 

Этот параметр задает проверку по умолчанию каждые 2 секунды.

qualify=no

Это выключает проверку.

qualify=300

Включает проверку через заданное время в 300 ms.

rtp.conf

 rtpstart=10000

Задает первый порт диапазона для приема и оправки голосовых пакетов RTP.

 rtpend=10100

Задает последний порт диапазона для приема и оправки голосовых пакетов RTP.

 stunaddr=sip.stun.tld

В Asterisk начиная с версии 11 появилась поддержка stun. icesupportдолжно быть включено.



Настройка res_pjsip для работы через NAT

В данной статье приведены примеры рабочей конфигурации драйвера канала PjSIP, когда Asterisk находится за NAT (Network Address Translation). Asterisk подключается через NAT к провайдеру IP телефонии (ITCP).
Этот пример подходит для большинства простых сценариев NAT при следующих условиях: Asterisk и телефоны находятся в частной сети. Маршрутизатор имеет локальный и публичный интерфейсы. Маршрутизатор реализует функции Трансляции Сетевых Адресов (NAT) и файерволла. На маршрутизаторе настроен проброс SIP и RTP портов на локальный IP адрес сервера Asterisk. В данном примере проброшены порты 5060 TCP/UDP и UDP 10000-10100 на LAN 10.10.2.10.

Устройства используемые в примере:

УстройствоIP адрес в примере
VOIP телефон(7777)10.10.2.77
PC/Asterisk10.10.2.10
МаршрутизаторLAN: 10.10.2.1
WAN: 123.123.123.123
ITSP SIP шлюз203.0.113.1(gw1.example.com)
203.0.113.2(gw2.example.com)

Для наглядности, в примере использованы фальшивые детали:

ITSP номер аккаунта : 123456789 и DID номер входящий от провайдера IP телефонии (ITSP): 3216111

Читать дальше...

2016/11/26

FreePBX за NAT

$
0
0

FreePBX за NAT

Установите модуль Asterisk SIP Settings

Предполагается что с вашего сервера/роутера проброшены порты:
5060 UDP - для инициации SIP соединения.
10000 - 20000 UDP - для голосовых пакетов. (диапазон можно уменьшить в файле /etc/asterisk/rtp.conf)

Установите следующие значения

NAT - yes

IP configuration - Static IP

Extern IP - 123.123.123.123 -внешний IP адрес

Local Networks - 192.168.0.0/255.255.255.0 -локальная сеть

Reinvite Behavior - No

FreePBX Asterisk SIP Settings

Модуль Asterisk SIP Settings устанавливает параметры SIP, аналогично секции [general] файла sip.conf.

Глобальные настройки могут быть переопределены для конкретных FreePBX 13 Extensionsили транков в модуле FreePBX 13 SIP Trunk.

В FreePBX 12 включена поддержка драйвера канала SIP - pjsip.
В связи с этим Модуль Asterisk SIP Settings разделен на несколько частей:

Изменить использование драйвера можно в модуле <fs large><fc #4682b4>Settings > Asterisk Settings - Dialplan and Operational - SIP Channel Driver</fc></fs>

sip channel driver both

General SIP Settings

General SIP Settings

В разделе General SIP Settingsуказывается externipсервера, localnet, диапазон RTP портов и используемые кодеки.
А также разрешаются или запрещаются анонимные вызовы.

Chan SIP

NAT

Настройки NAT в Астериск:

  • yes = Всегда игнорировать пакет info и предполагать NAT.
  • no = Использовать режим NAT в соостветствии с RFC3581.
  • never = Никогда не пытаться использовать NAT или RFC3581.
  • route = предполагая NAT не указывать rport.
IP Configuration
  • Public IP - У сервера один публичный ethernet интерфейс.
  • Static IP - Сервер стоит за NAT, или имеет два ethernet интерфейса - локальный и публичный.
  • Dynamic IP - У сервера публичный динамический IP адрес.
External IP

IP адрес через который осуществляются внешние регистрации. (Внешний IP роутера или IP внешнего интерфейса данной машины)
Например:

  • 123.123.123.123
Local Networks

Внутренние подсети из которых возможны регистрации.
Например:

  • 192.168.0.0/255.255.0.0
  • 10.10.10.0/255.255.255.0

Audio Codecs

Список Аудио кодеков используемых в системе.

Non-Standard g726

Нестандартный g726 для некоторых типов оборудования. yes/no

T38 Pass-Through

Поддержка T38 в транзитном режиме. Например если канал или устройство используют Т38,
Asterisk обеспечит транзит без обработки медиа потока(без конвертации кодеков). yes/no


Video Codecs

Video Support

Enable/Disable - Если включить появится список поддерживаемых кодеков:

  • h264
  • h263p
  • h263
  • h261
Max Bit Rate

Максимальная полоса пропускания для видео:
по умолчанию 384 kb/s


MEDIA & RTP Settings

Reinvite Behavior

Поведение ReInvite - см. подробнее > reinvite

  • yes: стандартный reinvite;
  • no: никогда не использовать reinvite;
  • nonat: дополнительная опция, разрешающая перенаправить медиа поток (reinvite), но только если пир установлен не за NATом (RTP может определить это на основе ИП адресов абонентов)
  • update: используется специальный SIP пакет UPDATE для принятия решения о перенаправлении вместо пакета INVITE. (Значение yes соответствует = update + nonat)
RTP Timers

rtptimeout. Завершает звонок если в установленное в секундах значение rtptimeout не обнаруживается активности RTP или RTCP в аудио канале и если абонент не поставлен на Hold (ожидание). Это позволяет завершить звонок в случае внезапного исчезновения телефона из сети, например при потере питания или повреждении кабеля Ethernet.

rtpholdtimeout. Завершает звонок если в установленное в секундах значение rtpholdtimeout не обнаруживается активности RTP или RTCP в аудио канале при состоянии on Hold (в ожидании). Значение должно быть > чем rtptimeout.

rtpkeepalive. Посылает пакеты rtpkeepalive в RTP поток для поддержки открытых динамических трансляций NAT в то время, когда RTP поток может например стоять на удержании.

  • 30 (rtptimeout)
  • 300 (rtpholdtimeout)
  • 0 (rtpkeepalive)
RTP Port Ranges

Диапазон Real Time Protocolпортов используемых Asterisk

  • 10000 (rtpstart)
  • 20000 (rtpend)

Notification & MWI

Уведомления и Индикатор ожидающих сообщений(MWI)

MWI Polling Freq

Частота запросов в секундах для обновления информации о пирах.

Notify Ringing

Контролирует внутренний номер о состоянии абонента INUSE получением пакета RINGING если уже принят один звонок. Удобно при использовании BLF - Busy Lamp Functionality. yes/no

Notify Hold

Контролирует внутренний номер о состоянии абонента INUSE получением пакета ONHOLD если звонок поставлен на ожидание Удобно при использовании BLF - Busy Lamp Functionality. yes/no


Registration Settings

Registrations

registertimeout. Повторяет попытки регистрации каждые N секунд, указанные в registertimeout до успешной регистрации, или при достижении указанного ограничения в registrationattempts.

registrationattempts. Количество попыток регистрации. Значение 0 соответствует бесконечному числу попыток. Обычное значение указывается 0 для того, чтобы Астериск продолжал попытки зарегистрироваться при пропадании локальной сети или маршрута в публичных сетях.

  • 20 (registertimeout)
  • 0 (registerattempts)
Registration Times

minexpiry. Минимальное значение действия регистрации/подписки.

maxepiry. Максимально возможное время действия для входящих регистраций.

defaultexpiry. Дефолтное значение действия входящих и исходящих регистраций.

  • 60 (minexpiry)
  • 3600 (maxexpiry)
  • 120 (defaultexpiry)

Jitter Buffer Settings

Jitter Buffer

Enabled/Disabled

Force Jitter Buffer

Yes/No

Implementation

Fixed/Adaptive

Jitter Buffer Logging

Enable/Disable

Jitter Buffer Size
  • 200(jbmaxsize)
  • 1000(jbresyncthreshold)

Advanced General Settings

Language

Язык звуковых сообщений в канале SIP.

Default Context

Контекст по умолчанию для входящих вызовов. Если не указано, то from-sip-external.

Bind Address

IP адрес на котором 'слушаются' входящие вызовы. Если указано 0.0.0.0, то будут «прослушиваться» все доступные IP адреса. Рекомендуется оставить это поле ПУСТЫМ.

Bind Port

Входящий порт на котором Asterisk будет слушать SIP сообщения. Стандартный порт 5060. Например, если вы назначите порт 5666, входящие SIP сообщения на другие порты будут просто игнорироваться. Рекомендуется отставить это поле пустым.

Allow SIP Guests

Разрешить неавторизованные SIP вызовы. Звучит опасно, но на самом деле позволяет вызывать абонента Asterisk незарегистрированному абоненту по SIP URI: user@asterisk_domain. Yes/No

Allow Anonymous Inbound SIP Calls

В данном случае рассматриваются анонимные SIP запросы, не имеющие определенного адресата. Если включить они попадут в контекст from-sip-exteral (если не задано другое в Default Context) Yes/No

SRV Lookup

Enabled/Disabled

Call Events

Генерировать события AMI на основании действий UA во время вызова (например HOLD).
Yes/No

Other SIP Settings

Добавьте кастомные установки, которые вам требуются.

Например:

  • alwaysauthreject = yes всегда отвечать на SIP запрос - SIP «401 Unauthorized»
  • prematuremedia = no
  • progressinband = yes

транслировать КПВ или сообщение из канала (например, по умолчанию, при вызове на занятый или отключенный мобильный телефон, Астериск сообщит что все канала заняты, что вводит пользователей в замешательство. Включенная установка progressinbandпозволит транслировать в канал сообщение о занятости или недоступности абонента от провайдера.

Advanced general Settings FreePBX sip

Chan_PJSIP

General Chan PjSIP Settings

Подробнее о настройке драйвера pjsip

В данном модуле настраивается транспортный уровень драйвера pjsip.

chan pjsip general FreePBX settings

FreePBX Asterisk SIP Settings

Viewing all 1135 articles
Browse latest View live


Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>