Pull to refresh

Тестирование телефонов Digium с Asterisk и настройка Smart BLF

Reading time33 min
Views9.8K
Ранее специалистами нашей компании было проведено тестирование телефонов Digium с системой унифицированных коммуникаций Switchvox и одним из самых распространенных бесплатных дистрибутивов AsteriskNow. И вот наконец-то мы добрались до “голого” Asterisk'a.

В данном обзоре мы рассмотрим конфигурирование аппарата с помощью модуля взаимодествия телефонов Digium с Asterisk – DPMA (Digium Phone Module for Asterisk), а также настройку Smart BLF.

Всех заинтересовавшихся прошу под кат.

Итак, начнем.

Прежде всего, нужно заказать лицензию DPMA на официальном сайте производителя: store.digium.com/productview.php?product_code=804-00032
Лицензия бесплатная, но тем не менее продукт все равно требует регистрации. Буквально через несколько минут на почту приходит письмо от Digium с кодом активации. Естественно, чтобы получить лицензию нужно зарегистрироваться на сайте.

После получения лицензии необходимо скачать утилиту register:

wget http://downloads.digium.com/pub/register/x86-32/register


Далее меняем права доступа для утилиты register:

chmod 500 /root/register


И запускаем ее:

/root/register


Далее следуя подсказкам визарда выполняем все необходимые манипуляции:

Нажимаем 1, затем 11.

И, наконец, вводим ключик, присланный нам от Digium.

“Читаем” условия лицензионного соглашения, вводим необходимые данные для регистрации.

И видим в терминале надпись, что лицензия успешно записана.

Стоит отметить, что для того, чтобы лицензия успешно активировалась, сервер должен иметь выход в интернет, т.к. утилита лезет на сервера Digium для регистрации.

Переходим к следующему шагу: скачиваем модуль DPMA

# cd /root
# wget http://downloads.digium.com/pub/telephony/res_digium_phone/asterisk-11.0/x86-32/res_digium_phone-11.0_1.4.0.tar.gz


Разархивируем и копируем файл res_digium_phone.so в папку с модулями Asterisk (по умолчанию /usr/lib/asterisk/modules/):

tar xzvf res_digium_phone-11.0_1.4.0.tar.gz
# cp /root/res_digium_phone-11.0_1.4.0/res_digium_phone.so /usr/lib/asterisk/modules


Копируем файл конфигурации в папку конфигов asterisk (по умолчанию /etc/asterisk/):

cp /root/res_digium_phone-11.0_1.4.0/res_digium_phone.conf.sample /etc/asterisk/res_digium_phone.conf


Загружаем модуль:

asterisk -rx "module load res_digium_phone.so"


Подключаемся к Asterisk, проверяем валидность лицензии:

#asterisk -rvvv
*CLI> digium_phones license status
OK, Valid product license found


Лицензия DPMA привязывается к mac-адресу вашей сетевой карты, в случае ее замены, либо придется перерегистрировать модуль, либо подменять mac-адрес новой сетевой карты

Итак, переходим к настройке телефонов.

В sip.conf создаем юзеров:

[general] 

accept_outofcall_message = yes
outofcall_message_context = dpma_message_context
auth_message_requests = no
callcounter=yes

[000] 
type=friend 
host=dynamic 
context=dpma_phones 
secret=qwaszx 
mailbox=000 
qualify=yes 


[111] 
type=friend 
host=dynamic 
context=dpma_phones 
secret=qwaszx 
mailbox=111 
qualify=yes 


[222] 
type=friend 
host=dynamic 
context=dpma_phones 
secret=qwaszx 
mailbox=222 
qualify=yes 

[333] 
type=friend 
host=dynamic 
context=dpma_phones 
secret=qwaszx 
mailbox=333 
qualify=yes 

[444] 
type=friend 
host=dynamic 
context=dpma_phones 
secret=qwaszx 
mailbox=444 
qualify=yes 


[555] 
type=friend 
host=dynamic 
context=dpma_phones 
secret=qwaszx 
mailbox=555 
qualify=yes 


[666] 
type=friend 
host=dynamic 
context=dpma_phones 
secret=qwaszx 
mailbox=666 
qualify=yes 

[777] 
type=friend 
host=dynamic 
context=dpma_phones 
secret=qwaszx 
mailbox=777 
qualify=yes 

[888] 
type=friend 
host=dynamic 
context=dpma_phones 
secret=qwaszx 
mailbox=888 
qualify=yes 


[999] 
type=friend 
host=dynamic 
context=dpma_phones 
secret=qwaszx 
mailbox=999 
qualify=yes 


Для удобства я назвал их номерами телефонов.

В extensions.conf создаем правила для этих абонентов:

[dpma_phones] 

include=parkedcalls 
exten => XXX,hint,SIP/${EXTEN}
exten => XXX,1,Dial(SIP/${EXTEN},20) 
same => n,Voicemail(${EXTEN},${IF($["{DIALSTATUS}" = "BUSY"]?b:u)}) 
same => n,Hangup()



Настраиваем почтовые ящики для наших абонентов в voicemail.conf:
[default] 
000 => 1234,000 
111 => 1234,111 
222 => 1234,222 
333 => 1234,333 
444 => 1234,444 
555 => 1234,555 
666 => 1234,666 
777 => 1234,777 
888 => 1234,888 
999 => 1234,999 



Далее непосредственно переходим к файлу конфигурации res_digium_phone.conf.

Структура файла делится на несколько обязательных секций:
  • general
  • network
  • phone
  • line
  • external_line
  • application
  • ringtone
  • alert
  • firmware
  • translation


Остановимся поподробнее на каждой:

Секция General
server_uuid
строка
Уникальное имя для вашего сервера.
Используется приложением “Голосовая почта”
для предоставления доступа к абонентским
почтовым ящикам. Опционально.
globalpin
число; например: 10101019
Опциональный пин-код для получения телефоном конфига и прошивки
userlist_auth
disabled, globalpin
Указывает на метод аутентификации получения
контакт-листа. Два значения: либо отключено,
либо авторизация по глобальному пин-коду.
config_auth
mac, pin, globalpin, disabled
Указывает на метод получения конфига.
Либо аутентификация по mac-адресу,
либо по пин-коду, либо по глобальному пин-коду,
либо отключена и любой телефон
может забрать любой конфиг
mdns_address
IP адресс или имя хоста
Адрес сервера, с которого DPMA будет получать
конфиг через mDNS
mdns_port
Порт, по умолчанию 5060
Порт, на который будет стучаться DPMA
service_name
Строка, например Digium Phones Config Server
Имя сервера
service_discovery_enabled
yes / no
Разрешение на поиск серверов конфигурации
file_directory
Директория, например /var/lib/asterisk/digium_phones
Папка в которой лежат xml-файлы контактов


Секция Network (секция не обязательна для DPMA версий 1.2 и ниже, в новых версиях обязательна)
alias
Строка, например MyNetwork
Имя сети
alternate_registration_address
IP адрес или имя хоста
Альтернативный адрес регистрации (если не доступен основной)
alternate_registration_port
Порт, число, например: 5060
Альтернативный порт регистрации (если не доступен основной)
cidr
CIDR, например 198.51.100.1/24
Адрес сети, маска
file_url_prefix
URL, например: http://10.10.10.10/file_package_directory
Префикс URL, с которого телефон должен получать информацию о прошивке,
логотипе, рингтоне и smart blf (обязательно!
Для корректной работы необходим веб-сервер, например apache)
network_vlan_discovery_mode
NONE, MANUAL, LLDP
Информация о vlan
network_vlan_id
0-4095
Присваивает номер vlan (если есть)
ntp_server
hostname, IP address, e.g. ntp.mycompany.com
NTP сервер
pc_qos
Integer (0-7)
QoS для PC-порта
pc_vlan_id
(Integer (0-4095)
Назначает vlan PC-портуS
public_firmware_url_prefix
URL
Префикс публичного URL,
с которого телефон должен получать информацию
о прошивке в случае недоступности основного сервера,
ведет на сервера Digium. Должен иметь вид:
/VERSION/VERSION_MODEL_firmware.eff
registration_address
IP address or Hostname
Адрес сервера регистрации
registration_port
Port, as an Integer; e.g 5060
Порт сервера регистрации
rtp_dscp
Integer (0-63)
DSCP RTP
rtp_qos
Integer (0-7)
RTP QoS
sip_dscp
Integer (0-63)
SIP DSCP
sip_qos
Integer (0-7)
SIP QoS
syslog_level
debug, error, warning, information
Уровень логирования системных сообщений
syslog_port
порт, например 514
Порт, на который шлются системные сообщения, по умолчанию — 514.
syslog_server
hostname, IP address, например syslog.mycompay.com
Адрес сервера, на который шлются системные сообщения
udp_ka_interval
Время в секундах
Определяет интервал, с которым телефоны шлют keep-alive
сообщения, по умолчанию – 0, никогда


Секция Phone
network
"network" в res_digium_phone.conf
Имя сети, заданное в предыдущей секции
firmware
"firmware" в res_digium_phone.conf
Имя прошивки
mac
MAC-адрес, например 0123456789ab
Mac-адрес
pin
число, например 10101019
Пин-код для получения конфигов
group_pin
число, например 101010109
Пин-код для телефонов, объединенных в группу
line
line в res_digium_phone.conf
линия(должна быть названа также, как юзер в sip.conf)
external_line
external_line в res_digium_phone.conf
Внешняя линия, не зарегистрированная на вашем сервере asterisk
application
приложение
приложение
config_file
файл, например mycustomconfig.xml
DPMA автоматически генерирует конфигурационный файл для каждого телефона исходя из линий, которые к телефону привязаны, но можно создать отдельный файл конфигурации.
full_name
строка, например Bob Johnson
Полное имя абонента
contact
файл, например contacts.xml
XML-файл контактов
contacts_display_rules
файл, например mydisplayrules.xml
XML-файл из file_directory с правилами отображения контактов.
blf_contact_group
Строка, например “office-contacts”
Группа. Обязательное поле
blf_items
файл, например blfitems.xml
Xml-файл с настройками “поведения” кнопок быстрого набора
contacts_max_subscriptions
число, например 40
Максимальное кол-во регистраций телефонов, по умолчанию 40
timezone
Временная зона, например
America/Chicago
Временная зона
ntp_resync
время в секундах
Интервал ntp-синхронизации
parking_exten
extension, например, 700
Номер парковки
parking_transfer_type
blind / attended
Тип трансфера
ringtone
Название рингтона
Опция, загружающая необходимые рингтоны на телефон
active_ringtone
Alarm, Chimes, Digium, GuitarStrum, Jingle, Office2, Office, RotaryPhone, SteelDrum, Techno,
Theme, Tweedle, Twinkle, Vibe или имя вашего рингтона
Активный рингтон
web_ui_enabled
no / yes
Доступность веб-интерфейса телефона, по умолчанию при использовании DPMA
– отключена возможность зайти на телефон через веб-интерфейс f
record_own_calls
no / yes
Опция, позволяющая записывать собственные разговоры.
Во время активного разговора при включенной опции на дисплее появится кнопко “record”, по умолчанию отключена
alert
имя
Имя сообщения-предупреждения
blf_unused_linekeys
no / yes
Опция, позволяющая использовать кнопки линий в качестве кнопок быстрого набора
send_to_vm
yes / no
Опция, при неактивности которой с телефона убирается кнопка “отправить в почтовый ящик”
use_local_storage
yes / no
При использовании данной опции контакты будут храниться непосредственно в телефоне
d40_logo_file
строка
Логотип для Digium D40, png 150x45 пикселей, 10кб
d50_logo_file
строка
Логотип для Digium D50, png 150x45 пикселей, 10кб
d70_logo_file
строка
Логотип для Digium D40, png 205x85 пикселей, 10кб
ehs
auto, plantronics, jabra_iq
Определяет типа подключаемой гарнитуры
lock_preferences
yes / no
Опция позволяет закрепить настройки за определенным телефоном
login_password
число, например 789
Пароль для входа в веб-интерфейс
accept_local_calls
any, host
Позволяет принимать звонки либо с SIP-сервера, на котором телефон зарегистрирован, либо отовсюду
display_mc_notification
yes / no
Опция, определяющая вывод на дисплей информации о пропущенных звонках
brightness
число, 0-10
Яркость, по умолчанию 5
contrast
число, 0-10
Контрастность, по умолчанию 5
dim_backlight
yes, no
Затемнение экрана
backlight_timeout
число, в секундах (0-3200)
Время до затемнения экрана
backlight_dim_level
число (0-10)
Уровень яркости при затемненном экране
active_locale
de_DE, en_AU, en_CA, en_GB, en_US, es_ES, es_MX,
fr_BE, fr_CA, fr_FR, it_IT, nl_BE, nl_NL, pt_BR, pt_PT
Настройки локализации
ringer_volume
число (0-10)
Громкость звонка
speaker_volume
число (0-10)
Громкость микрофона
handset_volume
число (0-10)
Громкость динамик трубки
headset_volume
число (0-10)
Громкость гарнитуры
handset_sidetone_db
число, например -25
Коэффициент увелечения сигнала трубки, Дб
headset_sidetone_db
число, например -15
Коэффициент увелечения сигнала гарнитуры, Дб
reset_call_volume
yes / no
Если опция включена, но настройки громкости во время одного разговора не сохраняются после его завершения
headset_answer
yes / no
Задает использовать гарнитуру или трубку
name_format
first_last, last_first
Настройка показывания полного имени контакта
lan_port_mode
auto, 10hd, 10fd, 100hd, 100fd, 1000fd
Режим работы LAN-порта
pc_port_mode
auto, 10hd, 10fd, 100hd, 100fd, 1000fd, off
Режим работы PC-порта
enable_check_sync
yes / no
Разрешение отвечать на SIP-запросы синхронизации


Секция Line
exten
строка, например 1000
Extension из файла sip.conf
digit_map
строка
Правила набора номеров
line_label
строка
Название линии, которой будет отображаться на телефоне
mailbox
почтовый ящик из voicemail.conf
Почтовый ящик из voicemail.conf
voicemail_uri
стоока, в формате sip:user@host
URI вашего почтового ящика, доступный по нажатию кнопки “Msgs”
outboundproxy_address
Хост / IP адрес
Адрес вашего SIP-сервера
outboundproxy_port
Порт
Порт вашего SIP-сервера
transport
udp, tcp
Метод транспорта
reregistration_timeout
число, в секундах
Количество секунд до перерегистрации
registration_retry_interval
число, в секундах
Интервал в секундах между запросами на разрешение повторной регистрации
registration_max_retries
число, в секундах
Максимальное кол-во попыток регистрации
secret
строка, mymagicpassword
Пароль, обязателен если информация об экстеншене в ARA, а не в sip.conf
context
Asterisk dialplan context
Контекст, обязателен если информация об экстеншене в ARA, а не в sip.conf
callerid
caller id string, e.g. "Bob Jones" <1234>
Caller-ID, обязателен если информация об экстеншене в ARA, а не в sip.conf
subscribecontext
Asterisk dialplan context
Контекст, если определен здесь, то перезаписывает данные о контексте, затирая данные из sip.conf


Секция External Line
server_address
строка, например otherpbx.othercompany.com
Адрес SIP-сервера
server_port
число
Порт SIP-сервера
transport
tcp or udp
Метод транспорта
secondary_server_address
строка, например backuppbx.othercompany.com
Адрес SIP-сервера, к которому будет обращаться телефон в случае не доступности основного
secondary_server_port
число
Порт SIP-сервера, к которому будет обращаться телефон в случае не доступности основного
secondary_server_transport
tcp or udp
Метод транспорта
userid
строка, например bob1234
Username, по умолчанию = имя линии
authname
строка, например bob1234
SIP authorization name, если отличается от userid, поле должно быть ззаполнено
secret
строка
пароль
register
yes / no
регистрация
callerid
строка
Caller ID



Application – раздел конфигурирования приложений, содержит как стандартные приложения, так и дает возможность задать свое приложение
Queues Application (очередь)

queue
string
Идентификатор очереди, определен в файое queues.conf
membername
string
Имя члена очереди, по умолчанию = fullname из раздела [phone]
location
Asterisk queue member location, e.g. Local/6002@ext-queue/n
Местоположение согласно заданному образцу
member
yes / no
Член/не член очереди
permission
status, overview, details
Уровень доступа юзера к очереди
login_exten
Asterisk extension@context, e.g. *451234@ext-queue
Номер, который нужно набрать, чтобы залогиниться в очередь
logout_exten
Asterisk extension@context, e.g. *451234@ext-queue
Номер, который нужно набрать, чтобы разлогиниться из очереди


Status Application (приложение статуса)

status
available, dnd, away, xa, chat
Тип статуса
substatus
string
Доп. статус
send486
yes / no
Если устанвлено – телефон вернет ошибку 486 Asterisk'у


Parking Application (приложение парковки)

parkinglot
string
Имя экстеншена парковки, заданное в файле features.conf


Voicemail Applications (приложение голосовой почты)

translation
identifier of a type=voicemail section
Задает локализацию голосвой почты


Custom Applications (ваше собственное приложение, написанное на javascript)

name
string
имя
filename
string
файл .zip архива с приложением, который лежит в папке определенной параметром file_url_prefix.
autostart
yes / no
Автозагрузка при запуске телефона
key
value
Опциональные параметры, которые могут быть переданы в приложение


Секция Ringtone
alias
string
Имя рингтона, например FancyRinger.
filename
string
Имя вашего собственного рингтона, 16-bit 16kHz mono, не .wav, должен лежать в file_url_prefix.


Секция Alert
alert_info
string
Заголовок alert-сообщения, который должен ждать телефон, в случае использования данной опции
ring_type
normal, answer, ring-answer, visual
Тип звонка
ringtone
Alarm, Chimes, Digium, GuitarStrum, Jingle,
Office2, Office, RotaryPhone, SteelDrum, Techno, Theme, Tweedle,
Twinkle, Vibe, or one of the context names where type=ringtone
рингтон


Секция Firmware
model
D40, D50, D70
Модель телефона
version
version string identifier of firmware
Версия ПО, файл с расширением ”.eff”
file
string
Имя файла ПО, лежащего в папке, определенной в file_url_prefix network
public_firmware
yes, no
использвоание ПО на публичном сервере Digium, в случае недоступности вашего сервера


Секция Translation
key
строка
Устанавливает значение, которое будет заменено на заданное



Например:
[voicemail_de_DE]
type=translation
INBOX=INBOX
Work=Arbeit
Family=Familie
Friends=Freunde
Recordings=Aufnahmen


Итак, мы разобрали все секции файла конфигурации res_digium_phone.conf

Ниже приведен листинг моего используемого конфига:
[general]
server_uuid=abcdefg123
globalpin=1234
userlist_auth=disabled
config_auth=disabled
mdns_address=192.168.1.253
mdns_port=5060
service_name=Go 4 Phones
service_discovery_enabled=yes
file_directory=/var/lib/asterisk/digium_phones

[network1]
type=network
alias=My Default Network
cidr=192.168.1.0/24
registration_address=192.168.1.253
registration_port=5060
;alternate_registration_address=192.168.50.1
;alternate_registration_port=5080

file_url_prefix=http://192.168.1.253

;public_firmware_url_prefix=http://dphone.dl.digium.com/firmware/asterisk/
ntp_server=0.digium.pool.ntp.org
network_vlan_discovery_mode=NONE
sip_qos=3
rtp_qos=6
network_vlan_id=4
pc_vlan_id=10
pc_qos=2
sip_dscp=24
rtp_dscp=46
udp_ka_interval=60

[000]
type=phone
network=network1
;firmware=1.1Firmware
;mac=000fd306b59b
line=000
line=111
line=222
line=333
full_name=Mikhail
timezone=Europe/Moscow
ntp_resync=86400
parking_exten=700
parking_transfer_type=blind
ringtone=FancyTone
active_ringtone=GuitarStrum
web_ui_enabled=yes
record_own_calls=yes
alert=fancyringer
blf_unused_linekeys=no
send_to_vm=yes
use_local_storage=no
ehs=auto
lock_preferences=no
login_password=1234
accept_local_calls=any
display_mc_notification=yes
brightness=5
contrast=5
dim_backlight=yes
backlight_timeout=30
backlight_dim_level=2
active_locale=en_GB
ringer_volume=5
speaker_volume=5
handset_volume=5
headset_volume=5
reset_call_volume=no
headset_answer=no
name_format=last_first
lan_port_mode=auto
pc_port_mode=100fd
enable_check_sync=yes
blf_items=blf_test.xml
contact=contacts_test.xml
blf_contact_group=office-contacts

[000]
type=line
line_label=000
exten=000
outboundproxy_address=192.168.1.253
outboundproxy_port=5060
transport=udp
reregistration_timeout=300
registration_retry_interval=25
registration_max_retries=5
mailbox=000

[111]
type=line
line_label=111
exten=111
outboundproxy_address=192.168.1.253
outboundproxy_port=5060
transport=udp
reregistration_timeout=300
registration_retry_interval=25
registration_max_retries=5
mailbox=111

[222]
type=line
line_label=222
exten=222
outboundproxy_address=192.168.1.253
outboundproxy_port=5060
transport=udp
reregistration_timeout=300
registration_retry_interval=25
registration_max_retries=5
mailbox=222

[333]
type=line
line_label=333
exten=333
outboundproxy_address=192.168.1.253
outboundproxy_port=5060
transport=udp
reregistration_timeout=300
registration_retry_interval=25
registration_max_retries=5
mailbox=222

[444]
type=phone
network=network1
;firmware=1.1Firmware
;mac=000fd306b59b
line=444
line=555
line=666
line=777
line=888
full_name=Mikhail
timezone=Europe/Moscow
ntp_resync=86400
parking_exten=700
parking_transfer_type=blind
ringtone=FancyTone
active_ringtone=GuitarStrum
web_ui_enabled=yes
record_own_calls=yes
alert=fancyringer
blf_unused_linekeys=no
send_to_vm=yes
use_local_storage=no
ehs=auto
lock_preferences=no
login_password=1234
accept_local_calls=any
display_mc_notification=yes
brightness=5
contrast=5
dim_backlight=yes
backlight_timeout=30
backlight_dim_level=2
active_locale=en_GB
ringer_volume=5
speaker_volume=5
handset_volume=5
headset_volume=5
reset_call_volume=no
headset_answer=no
name_format=last_first
lan_port_mode=auto
pc_port_mode=100fd
enable_check_sync=yes
blf_items=blf_test.xml
contact=contacts_test.xml
blf_contact_group=office-contacts

[444]
type=line
line_label=444
exten=444
outboundproxy_address=192.168.1.253
outboundproxy_port=5060
transport=udp
reregistration_timeout=300
registration_retry_interval=25
registration_max_retries=5
mailbox=444

[555]
type=line
line_label=555
exten=555
outboundproxy_address=192.168.1.253
outboundproxy_port=5060
transport=udp
reregistration_timeout=300
registration_retry_interval=25
registration_max_retries=5
mailbox=555

[666]
type=line
line_label=666
exten=666
outboundproxy_address=192.168.1.253
outboundproxy_port=5060
transport=udp
reregistration_timeout=300
registration_retry_interval=25
registration_max_retries=5
mailbox=666

[777]
type=line
line_label=777
exten=777
outboundproxy_address=192.168.1.253
outboundproxy_port=5060
transport=udp
reregistration_timeout=300
registration_retry_interval=25
registration_max_retries=5
mailbox=777

[888]
type=line
line_label=888
exten=888
outboundproxy_address=192.168.1.253
outboundproxy_port=5060
transport=udp
reregistration_timeout=300
registration_retry_interval=25
registration_max_retries=5
mailbox=888


Теперь разберемся со структурой xml-файла с контактами:

Телефоны Digium оснащены приложение “Контакты” с встроенным быстрым набором, blf и статусом присутствия. Приложение “Контакты” связано с приложением “Статус”, так как оба эти приложения действуют на основании информации о присутствии пользователя. Приложение “Статус” опирается только на информацию о присутствии локального пользователя, в то время как приложение “Контакты” также смотрит на статусы других пользователей (информация о которых закреплена за кнопками быстрого набора).

Контакты без статуса присутствия могут быть загружены локально в телефон владельцем этого телефонв, однако это не рекомендуется. Предпочтительно использовать сконфигурированный администратором xml-файл для унификации.

Начиная с версии DPMA 1.3 телефоны Digium поддерживают возможность переноса локально добавленных пользователем контактов на сервер Asterisk. Для активации данной возможности опция “editable” должна иметь значение 1 и контакт должен иметь уникальный идентификатор.

Хотя и можно добавить контакты на сервер с телефона, контакты, сформированные на сервере, не редактируются с телефона и не удаляются из памяти телефона. Таким образом, Digium намекает, что лучше все-таки воздержатья от возможности добавления контактов с телефона во избежании потерь телефонной книги…

Загрузка контакт-листа

Файлы контактов, которые должен загрузить телефон, определяются в модуле DPMA или в основном XML-файле провиженинга телефона.

Параметр contact

Как сказано выше, может быть задано несколько полей contact, которые являются подэлементами элемента
Параметр Rapid Dial Keys

BLF задается параметром blf_contact_group (обязательное поле, BLF-кнопкам будут присвоены значения в соответствии с порядком их объявления в XML-файле.)

Структура файла контактов

Ввиду того, что контакты и blf используют синтаксис XML, очень важно верно построить структуру контакт-листа, так как телефоны Digium не имеют встроенного валидатора XML и вы не увидите никакого сообщения об ошибке.

Базовая структура файла контактов выглядит следующим образом:
<phonebooks>
    <contacts>
        <contact>
            <emails>
                <email />
            </emails>
            <actions>
                <action>
                    <headers>
                        <header />
                    </headers>
                </action>
            </actions>
        </contact>
    </contacts>
</phonebooks>


Секция Contacts
group_name
строка
Наименование группы контактов
editable
логический
Определяет возможность изменения контатков с телефона
id
строка
Уникальный идентификатор группы


Contact: дочерний элемент секции contacts
server_uuid
строка
Опционально. Уникальное имя сервера, к которому обращается телефон. При использовании
DPMA имя должно быть таким же, как и ф конфиге res_digium_phone.conf.
id
строка
Уникальный идентификатор контакта, используется для blf.
prefix
строка
Префикс контакта, например: "Mr."
first_name
строка
Имя контакта
second_name
строка
Второе имя контакта(не актуально для России, разве что писать в данном параметре отчество)
last_name
строка
Фамилия контакта
suffix
строка
Суффикс контакта, например: "Jr."
contact_type
sip, special
Тип контакта. Контакты с типом “Special” могут посылать телефону только свой
статус присутствия
organization
строка
Название организации контакта
job_title
строка
Должность контакта
location
строка
Местоположение контакта
notes
строка
Доп. Сведения о контакте
account_id
строка
Если контакт подписан на т ом же SIP-сервере, можно указать его id из sip.conf
subscribe_to
SIP URI
SIP URI


Не оставляйте параметры “first_name” и ”last_name” пустыми во избежание некорректного отображения контакт-листа
При использовании DPMA необходимо использовать параметр auto_hint для корректной blf-индикации в формате «auto_hint_,» например: subscribe_to=«auto_hint_1234»

В случае использования DPMA пропистывать хинты в диалплане не обязательно
Если не используется DPMA параметр subscribe_to выглядит следующим образом: subscribe_to=«sip:500@my.pbx.com»

Также необходимо прописать хинты в диалплане:

exten => 1234,hint,SIP/mypeer
exten => 1234,1,NoOp()
exten => 1234,n,Dial(SIP/mypeer,20)


В любом случае, используете вы DPMA или нет, параметр callcounter в sip.conf необходим
Секция Emails


Email: дочерний элемент emails
address
строка
e-mail контакта
label
строка
Текстовое описание e-mail контакта
primary
логический
Определяет основной e-mail контакта


Секция Actions


Action: дочерний элемент actions
id
строка
Обязательно. Уникальный идентификатор для действия, используется для blf. Один id с
зарезирвированным названием "primary" должен быть определен у каждого контакта.
dial
строка
Опционально. Номер, который должен набрать телефон
dial_prefix
строка
Опционально. Префикс номера, который должен подставить телефон перед набором номера
app_id
строка
Опционально. Уникальный идентификатор для приложения (как для стандартного, так и для вашего собственного)
label
строка
Обязательно. mandatory, Подходящий идентификатор для номера из контакт листа. Например:
“Мобильный” или имя SIP-экстеншена.
name
строка
Обязательно, название для action.


Headers: дочерний элемент actions

Header: дочерний элемент headers
key
строка
Например ,X-Digium-Call-Feature"
value
строка
Например, feature_send_to_vm, также могут быть использованы специальные символы (Wildcard Variables)


Wildcard Variables (специальные символы)

%_ACCOUNT_USERNAME_%
%_ACCOUNT_SERVER_%
%_ACCOUNT_PORT_%

Display Rules (правила отображения)


Начиная с версии ПО 1.4 приложение Контакты работает во взаимодействии с функцией BLF. Действия, определенные для контакта, по умолчанию, отображаются при просмотре информации о контакте.

Пример XML-файла Display Rules
<display_rules>
    <display_rule id="1" action_id="monitor" show="0"/>
    <display_rule id="2" action_id="monitor" target_status="on_the_phone" show="1"/>
    <display_rule id="3" action_id="intercom" show="0"/>
    <display_rule id="4" action_id="intercom" target_status="idle" show="1"/>
    <display_rule id="5" action_id="dial_vm" phone_state="idle" show="0"/>
    <display_rule id="6" action_id="transfer_vm" show="0"/>
    <display_rule id="7" action_id="transfer_vm" phone_state="transfer" show="1"/>
</display_rules>


id
Уникальный id
Идентификатор, например 0, 1, 2 и так далее.
action_id
Определенное действие
Например, monitor, intercom, dial_vm, transfer_vm
phone_state
idle, hold, transfer, incoming/transfer, incoming,
connected, dialing, calling, failed
Состояние телефона для которого выполняется действие
target_status
unknown, idle, on_hold, ringing, on_the_phone
Опционально. Статус, при котором будет выполняться действие
show
логический
Показывать/не показывать действие при определенных статусах


Ниже приведен листинг моего файла контактов:
<?xml version="1.0"?> 
<phonebooks> 
    <contacts group_name="office-contacts" editable="0" id="0"> 

 <contact 
   first_name="Digium D50" 
   last_name="Line 1" 
   organization="TEST" 
   contact_type="sip" 
   account_id="000" 
   id="000" 
   subscribe_to="000" 
                         > 
 <numbers> 
   <number dial="000" label="Extension" primary="1" /> 
     </numbers> 
 <actions> 
  <action id="primary" dial="000" dial_prefix="" label="Extension" name="Office" /> 
  </action> 
  </actions> 
 </contact> 

<contact 
  first_name="Digium D50" 
  last_name="Line 2" 
  organization="TEST" 
  contact_type="sip" 
  account_id="111" 
  id="111" 
  subscribe_to="111" 
                        > 
<numbers> 
   <number dial="111" label="Extension" primary="1" /> 
</numbers> 
<actions> 
<action id="primary" dial="111" dial_prefix="" label="Extension" name="Office" /> 
</action> 
</actions> 
</contact> 

<contact 
 first_name="Digium D50" 
 last_name="Line 3" 
 organization="TEST" 
 contact_type="sip" 
 account_id="222" 
 id="222" 
 subscribe_to="222" 
                   > 
 <numbers> 
 <number dial="222" label="Extension" primary="1" /> 
 </numbers> 
 <actions> 
 <action id="primary" dial="222" dial_prefix="" label="Extension" name="Office" /> 
 </action> 
 </actions> 
</contact> 

<contact 
 first_name="Digium D50" 
 last_name="Line 4" 
 organization="TEST" 
 contact_type="sip" 
 account_id="333" 
 id="333" 
 subscribe_to="333" 
                   > 
 <numbers> 
  <number dial="333" label="Extension" primary="1" /> 
  </numbers> 
  <actions> 
  <action id="primary" dial="333" dial_prefix="" label="Extension" name="Office" /> 
   </action> 
  </actions> 
</contact> 

 <contact 
   first_name="Digium D70" 
   last_name="Line 1" 
   organization="TEST" 
   contact_type="sip" 
   account_id="444" 
   id="444" 
   subscribe_to="444" 
                     > 
 <numbers> 
<number dial="444" label="Extension" primary="1" /> 
</numbers> 
 <actions> 
 <action id="primary" dial="444" dial_prefix="" label="Extension" name="Office" /> 
</action> 
 </actions> 
 </contact> 

<contact 
  first_name="Digium D70" 
  last_name="Line 2" 
  organization="TEST" 
  contact_type="sip" 
  account_id="555" 
  id="555" 
 subscribe_to="555" 
                   > 
<numbers> 
 <number dial="555" label="Extension" primary="1" /> 
 </numbers> 
 <actions> 
<action id="primary" dial="555" dial_prefix="" label="Extension" name="Office" /> 
</action> 
</actions> 
</contact> 

  <contact 
     first_name="Digium D70" 
     last_name="Line 3" 
     organization="TEST" 
     contact_type="sip" 
     account_id="666" 
     id="666" 
     subscribe_to="666" 
                       > 
      <numbers> 
      <number dial="666" label="Extension" primary="1" /> 
      </numbers> 
      <actions> 
      <action id="primary" dial="666" dial_prefix="" label="Extension" name="Office" /> 
       </action> 
      </actions> 
     </contact> 
    
          <contact 
          first_name="Digium D70" 
          last_name="Line 4" 
          organization="TEST" 
          contact_type="sip" 
          account_id="777" 
          id="777" 
          subscribe_to="777" 
      > 
        <numbers> 
                <number dial="777" label="Extension" primary="1" /> 
        </numbers> 
        <actions> 
                <action id="primary" dial="777" dial_prefix="" label="Extension" name="Office" /> 
                </action> 
        </actions> 
      </contact> 
    
      <contact 
          first_name="Digium D70" 
          last_name="Line 5" 
          organization="TEST" 
          contact_type="sip" 
          account_id="888" 
          id="888" 
          subscribe_to="888" 
      > 
        <numbers> 
                <number dial="888" label="Extension" primary="1" /> 
        </numbers> 
        <actions> 
                <action id="primary" dial="888" dial_prefix="" label="Extension" name="Office" /> 
               </action> 
        </actions> 
      </contact> 

      <contact 
          first_name="Linphone" 
          last_name="" 
          organization="TEST" 
          contact_type="sip" 
          account_id="999" 
          id="999" 
          subscribe_to="999" 
      > 
        <numbers> 
                <number dial="999" label="Extension" primary="1" /> 
        </numbers> 
        <actions> 
                <action id="primary" dial="999" dial_prefix="" label="Extension" name="Office" /> 
               </action> 
        </actions> 
      </contact> 
   </contacts> 
</phonebooks>


Структура файла smart blf

Smart BLF описывает поведение клавиш быстрого набора (начиная с версии прошивки 1.4). BLF определяет позицию кнопки быстрого набора, позволяет задавать фиксированное расположение на страницах (актуально для D70), поведение кнопки быстрого набора, действия при коротком и продолжительном нажатии, а также специальный рингтон контакта. Правила поведения кнопок быстрого набора конфигурируются в отдельном xml-файле, получаемом по http.

Ввиду того, что контакты и blf используют синтаксис xml, очень важно верно построить структуру контакт-листа, так как телефоны Digium не имеют встроенного валидатора XML и вы не увидите никакого сообщения об ошибке.

Базовая структура файла blf выглядет следующим образом:


<smart_blf>
    <blf_items>
        <blf_item>
            <behaviors>
                <behavior />
            </behaviors>
            <indicators>
                <indicator />
            </indicators>
        </blf_item>
    </blf_items>
</smart_blf>


Более подробный пример конфига:

<smart_blf>
    <blf_items>
        <blf_item location="side" index="0" paging="1" contact_id="101">
            <behaviors>
                <behavior phone_state="idle" target_status="on_the_phone" press_action="call_vm" press_function="dial" />
                <behavior phone_state="idle" target_status="idle" press_action="regular_dial" press_function="dial" />
                <behavior phone_state="idle" target_status="idle" long_press_action="anintercom" long_press_function="dial" />
            </behaviors>
            <indicators>
                <indicator target_status="idle" ring="0" ringtone_id="Digium" led_color="green" led_state="on" />
                <indicator target_status="ringing" ring="1" ringtone_id="Techno" led_color="red" led_state="fast" />
            </indicators>
        </blf_item>
    </blf_items>
 </smart_blf>


Элемент BLF Item
location
main, side
Определяет местоположение кнопок быстрого набора:
на главной панели (клавиши линий) или на боковой панели.
Для D40 возможно только значение “main” ввиду отсутствия боковой панели.
Для D70 возможно использования одинаковых индексов, которые будут отображаться на разных страницах панели.
Если расположение “main”, то index начинается с 1, т.к. 0 по умолчанию
используется для основной линии.
index
целочисленный
Положение кнопки быстрого набора, начиная с “0”
paging
Логический, 0, 1
По умолчанию 1. Если 0, то на разных страницах книги будет статично отображаться
один и тот же номер.
contact_id
строка
Соответствующее значение из файла контактов параметра "id"
app_id
строка
Либо название стандартного приложения
(contacts, voicemail, parking, status, queues)
либо идентификатор вашего собственного загруженного в телефон приложения.
Используется вместо contact_id, если на кнопку быстрого набора настроен вызов приложения.
blank
логический, 0,1
Позволяет оставить кнопку быстрого набора не настроенной и перейти
к конфигурации следующей


Behaviors: дочерний элемент blf_item


Behavior: дочерний элемент behaviors
Параметр behavior существует для определения действия по нажатию клавиши быстрого набора. Для каждой кнопки возможно несколько моделей поведения. В телефоне будут упорядочены по списку их объявления.

phone_state
Состояние телефона, соответствующе состоянию из секции phone state
Определяет состояние телефона
target_status
unknown, idle, on_hold, ringing, on_the_phone
Определяет статус телефона
press_action
id действия
Определяет id действия по нажатию кнопки.
press_function
dial, info, show_app, transfer, send_dtmf, none
Определяет действие по нажатию кнопки
long_press_action
An action id from the loaded contacts file
Определяет id действия по нажатию кнопки,
длящемся более 2 секунд
long_press_function
dial, info, show_app, transfer, send_dtmf, none
Определяет действие по нажатию кнопки,
длящемся более 2 секунд


Phone States
Есть несколько валидных состояний телефона, список приведен ниже:

idle
Никаких звонков в данный момент с телефона не производится
hold
Звонок на удержании
hold/transfer
Звонок на удержании и телефон в состоянии трансфера, например пользователь
ответил на звонок, а затем нажал кнопку “Transfer“ или нажал “Hold” вслед за “Transfer”.
hold/preconference
Звонок на удержании, пользователь нажал клавишу конференции
hold/conference
Телефон в режиме конференции, пользователь нажал клавишу удержания вызова
incoming
На телефон поступил вызов, звонок находится в активном поле, но звонок еще не отвечен.
incoming/transfer
На телефон поступил входящий вызов, пользователь нажал, пользователь нажал кнопку
“transfer” перед тем, как ответить на вызов
connected
Ведется разговор, никаких действий более не совершается
connected/conference
Ведется разговор в конференции
calling
Совершается исходящий вызов, на том конце еще не подняли трубку
dial
Снята трубка, пользователь собирается ввести номер, но еще ни одной цифры не было набрано
dialing
Снята трубка, пользователь набирает цифры
failed
Телефон получил ответ от сервера, что звонок невозможен из-за ошибок
all
Любое состояние


Indicators: дочерний элемент blf_item


Indicator: дочерний элемент indicators
target_status
unknown, idle, on_hold, ringing, on_the_phone
Статус наблюдаемого телефона
ring
Логический
Если “true”, то при совпадении заданых условий ваш телефон будет звонить
ringtone_id
Alarm, Chimes, Digium, GuitarStrum, Jingle, Office2, Office,
RotaryPhone, SteelDrum, Techno, Theme,
Tweedle, Twinkle, Vibe, or one of ids from a custom-loaded ringtone
Рингтон
led_color
amber, green, red
Определяет цвет диода на кнопке быстрого набора
led_state
off, on, slow, fast
Определяет поведение диода на кнопке быстрого набора
(выключен, включен, медленно/быстро мигает)


Ниже приведен листинг моего файла Smart BLF
<?xml version="1.0"?> 
<config> 
<smart_blf> 
    <blf_items> 
 <blf_item location="side" index="0" paging="1" contact_id="000"> 
        <behaviors> 
          <behavior phone_state="idle" target_status="on_the_phone" press_action="call_vm" press_function="dial" /> 
          <behavior phone_state="idle" target_status="idle" press_action="regular_dial" press_function="dial" /> 
          <behavior phone_state="idle" target_status="idle" long_press_action="anintercom" long_press_function="dial" /> 
        </behaviors> 
        <indicators> 
          <indicator target_status="idle" ring="0" ringtone_id="Digium" led_color="green" led_state="on" /> 
          <indicator target_status="ringing" ring="0" ringtone_id="Techno" led_color="red" led_state="fast" /> 
          <indicator target_status="on_the_phone" ring="0" ringtone_id="Techno" led_color="red" led_state="on" /> 
        </indicators> 
    </blf_item> 

<blf_item location="side" index="1" paging="1" contact_id="111"> 
        <behaviors> 
          <behavior phone_state="idle" target_status="on_the_phone" press_action="call_vm" press_function="dial" /> 
          <behavior phone_state="idle" target_status="idle" press_action="regular_dial" press_function="dial" /> 
          <behavior phone_state="idle" target_status="idle" long_press_action="anintercom" long_press_function="dial" /> 
        </behaviors> 
        <indicators> 
          <indicator target_status="idle" ring="0" ringtone_id="Digium" led_color="green" led_state="on" /> 
          <indicator target_status="ringing" ring="0" ringtone_id="Techno" led_color="red" led_state="fast" /> 
          <indicator target_status="on_the_phone" ring="0" ringtone_id="Techno" led_color="red" led_state="on" /> 
        </indicators> 
    </blf_item> 

<blf_item location="side" index="2" paging="1" contact_id="222"> 
        <behaviors> 
          <behavior phone_state="idle" target_status="on_the_phone" press_action="call_vm" press_function="dial" /> 
          <behavior phone_state="idle" target_status="idle" press_action="regular_dial" press_function="dial" /> 
          <behavior phone_state="idle" target_status="idle" long_press_action="anintercom" long_press_function="dial" /> 
        </behaviors> 
        <indicators> 
          <indicator target_status="idle" ring="0" ringtone_id="Digium" led_color="green" led_state="on" /> 
          <indicator target_status="ringing" ring="0" ringtone_id="Techno" led_color="red" led_state="fast" /> 
          <indicator target_status="on_the_phone" ring="0" ringtone_id="Techno" led_color="red" led_state="on" /> 
        </indicators> 
    </blf_item> 

<blf_item location="side" index="3" paging="1" contact_id="333"> 
        <behaviors> 
          <behavior phone_state="idle" target_status="on_the_phone" press_action="call_vm" press_function="dial" /> 
          <behavior phone_state="idle" target_status="idle" press_action="regular_dial" press_function="dial" /> 
          <behavior phone_state="idle" target_status="idle" long_press_action="anintercom" long_press_function="dial" /> 
        </behaviors> 
        <indicators> 
          <indicator target_status="idle" ring="0" ringtone_id="Digium" led_color="green" led_state="on" /> 
          <indicator target_status="ringing" ring="0" ringtone_id="Techno" led_color="red" led_state="fast" /> 
          <indicator target_status="on_the_phone" ring="0" ringtone_id="Techno" led_color="red" led_state="on" /> 
        </indicators> 
    </blf_item> 

<blf_item location="side" index="4" paging="1" contact_id="444"> 
        <behaviors> 
          <behavior phone_state="idle" target_status="on_the_phone" press_action="call_vm" press_function="dial" /> 
          <behavior phone_state="idle" target_status="idle" press_action="regular_dial" press_function="dial" /> 
          <behavior phone_state="idle" target_status="idle" long_press_action="anintercom" long_press_function="dial" /> 
        </behaviors> 
        <indicators> 
          <indicator target_status="idle" ring="0" ringtone_id="Digium" led_color="green" led_state="on" /> 
          <indicator target_status="ringing" ring="0" ringtone_id="Techno" led_color="red" led_state="fast" /> 
          <indicator target_status="on_the_phone" ring="0" ringtone_id="Techno" led_color="red" led_state="on" /> 
        </indicators> 
    </blf_item> 

<blf_item location="side" index="5" paging="1" contact_id="555"> 
        <behaviors> 
          <behavior phone_state="idle" target_status="on_the_phone" press_action="call_vm" press_function="dial" /> 
          <behavior phone_state="idle" target_status="idle" press_action="regular_dial" press_function="dial" /> 
          <behavior phone_state="idle" target_status="idle" long_press_action="anintercom" long_press_function="dial" /> 
        </behaviors> 
        <indicators> 
          <indicator target_status="idle" ring="0" ringtone_id="Digium" led_color="green" led_state="on" /> 
          <indicator target_status="ringing" ring="0" ringtone_id="Techno" led_color="red" led_state="fast" /> 
          <indicator target_status="on_the_phone" ring="0" ringtone_id="Techno" led_color="red" led_state="on" /> 
        </indicators> 
    </blf_item> 

<blf_item location="side" index="6" paging="1" contact_id="666"> 
        <behaviors> 
          <behavior phone_state="idle" target_status="on_the_phone" press_action="call_vm" press_function="dial" /> 
          <behavior phone_state="idle" target_status="idle" press_action="regular_dial" press_function="dial" /> 
          <behavior phone_state="idle" target_status="idle" long_press_action="anintercom" long_press_function="dial" /> 
        </behaviors> 
        <indicators> 
          <indicator target_status="idle" ring="0" ringtone_id="Digium" led_color="green" led_state="on" /> 
          <indicator target_status="ringing" ring="0" ringtone_id="Techno" led_color="red" led_state="fast" /> 
          <indicator target_status="on_the_phone" ring="0" ringtone_id="Techno" led_color="red" led_state="on" /> 
        </indicators> 
    </blf_item> 

<blf_item location="side" index="7" paging="1" contact_id="777"> 
        <behaviors> 
          <behavior phone_state="idle" target_status="on_the_phone" press_action="call_vm" press_function="dial" /> 
          <behavior phone_state="idle" target_status="idle" press_action="regular_dial" press_function="dial" /> 
          <behavior phone_state="idle" target_status="idle" long_press_action="anintercom" long_press_function="dial" /> 
        </behaviors> 
        <indicators> 
          <indicator target_status="idle" ring="0" ringtone_id="Digium" led_color="green" led_state="on" /> 
          <indicator target_status="ringing" ring="0" ringtone_id="Techno" led_color="red" led_state="fast" /> 
          <indicator target_status="on_the_phone" ring="0" ringtone_id="Techno" led_color="red" led_state="on" /> 
        </indicators> 
</blf_item> 

    <blf_item location="side" index="8" paging="1" contact_id="888"> 
      <behaviors> 
        <behavior phone_state="idle" target_status="on_the_phone" press_action="call_vm" press_function="dial" /> 
          <behavior phone_state="idle" target_status="idle" press_action="regular_dial" press_function="dial" /> 
          <behavior phone_state="idle" target_status="idle" long_press_action="anintercom" long_press_function="dial" /> 
      </behaviors> 
        <indicators> 
          <indicator target_status="idle" ring="0" ringtone_id="Digium" led_color="green" led_state="on" /> 
          <indicator target_status="ringing" ring="0" ringtone_id="Techno" led_color="red" led_state="fast" /> 
          <indicator target_status="on_the_phone" ring="0" ringtone_id="Techno" led_color="red" led_state="on" /> 
        </indicators> 
    
</blf_item> 
    <blf_item location="side" index="9" paging="1" contact_id="999"> 
      <behaviors> 
        <behavior phone_state="idle" target_status="on_the_phone" press_action="call_vm" press_function="dial" /> 
          <behavior phone_state="idle" target_status="idle" press_action="regular_dial" press_function="dial" /> 
          <behavior phone_state="idle" target_status="idle" long_press_action="anintercom" long_press_function="dial" /> 
      </behaviors> 
      <indicators> 
       <indicator target_status="idle" ring="0" ringtone_id="Digium" led_color="green" led_state="on" /> 
       <indicator target_status="ringing" ring="0" ringtone_id="Techno" led_color="red" led_state="fast" /> 
       <indicator target_status="on_the_phone" ring="0" ringtone_id="Techno" led_color="red" led_state="on" /> 
       </indicators> 
  </blf_item> 
 </blf_items> 
</smart_blf> 
</config>


Подробное описание всех опций и правила построения xml-файлов с контактами и smart blf можно найти на wiki asterisk.

Как было описано выше, файлы с поведением кнопок быстрого набора загружаются по http.

Я выбрал для этих целей apache2.

Тестирование проводилось на Centos 6.3. Пример установки:

yum install httpd


Заходим в файл конфигурации:

vim /etc/httpd/conf/httpd.conf


Ставим в параметре “ServerName” ip-адрес или доменное имя сервера, с которого телефон будет получать конфиги. В моем случае: ServerName 192.168.1.253
(не забываем снять коммент в начале строки).

Чтобы проверить, есть ли запросы от Digium-телефонов на получение Xml-файлов воспользуемся командой:

tail -f /var/log/httpd/*


Если телефон обращается за конфигом к apache, то в консоли мы увидим что-то типа:

192.168.1.143 - - [29/Jan/2014:18:39:15 +0400] "GET /blf_test.xml HTTP/1.1" 200 8564 "-" "Digium-D50/1_4_0_0_57389"
192.168.1.140 - - [29/Jan/2014:18:39:37 +0400] "GET /blf_test.xml HTTP/1.1" 200 8564 "-" "Digium-D70/1_4_0_0_57389"


Если все корректно настроено, то после перезагрузки ядра Asterisk ваш Digium-телефон приветливо заморгает зелеными и красными диодами:)









А ребята из Digium для того, чтобы разнообразить серые будни иногда делают такие вещи:)



Резюмируя все выше написанное, хотелось бы отметить, что первоначальная настройка может показаться довольно сложной, однако если у админа парк из 20 и более телефонов, то такой вариант провиженинга значительно облегчит работу по настройке телефонов. Богатый выбор опций, гибкая кастомизация, использование стандартных сервисов для автоматической настройки, плотная интеграция с asterisk и основанными на нем дистрибутивами делают телефоны Digium, на наш взгляд, лучшим решением на рынке IP-телефонии и унифицированных коммуникаций.
Tags:
Hubs:
+6
Comments7

Articles