asterisk настройка digium fxo

Настройка DAHDI — chan_dahdi

DAHDI Linux и DAHDI Tools

Скачать DAHDI

настройка E1 — /etc/dahdi/system.conf

В синхронной сети должно выполняться одно простое правило — master должен быть соединен с slave. Если это правило нарушается — будут потерянные(skip) или повторенные (slip) кадры.

При разговоре слышно легкое пощелкивание, факсы не идут или проходят с ошибками. У вас неправильно настроена синхронизация. Настройте синхронизацию как описано выше.

ISDN PRI — /etc/asterisk/chan_dahdi.conf

context — привязывает канал к контексту в плане набора (диалплане), тем самым определяя действия при инициации вызова. :

channel — назначает канал или несколько каналов, Каналы могут быть определены индивидуально, через запятую, или диапазоном через дефис.

group — назначает каналы в группу. Для исходящей связи будет выбираться первый свободный канал. Для назначения в несколько групп, перечислите значения через запятую. Чтобы не назначать в группу — оставьте значение пустым.

switchtype — устанавливает тип сигнализации для PRI.

Аналоговые интерфейсы могут стать источником путаницы в Asterisk.
Для FXS интерфейсов используется fxo_ks.
Для FXO — fxs_ks.

priindication: Этот параметр устанавливает то, как сервер Asterisk должен сигнализировать состояние Busy() и Congestion() для удаленного коммутатора или пользователя. По умолчанию: inband. Доступные значения следующие:

pridialplan — устанавливает тип плана набора для ISDN PRI. Игнорируется в большинстве случаев. Может понадобиться для корректной работы CallerID Доступные значения: unknown, local, private, national, international.

overlapdial: если — «yes», то набранные цифры будут сразу отправляться в поток. По умолчанию: no. (enblock)

Состояние аналоговых вызовов

В этой секции описываются директивы сигнализирующие о состоянии вызовов аналоговых интерфейсов.

busydetect — детектирование сигнала занято для FXS, FXO или T1 (E&M, Wink, Feature Group D). Значение ‘yes’ или ‘no’.

callprogress — контроллировать состояние вызова (КПВ, занято или подняли трубку). Значение ‘yes’ или ‘no’.

Функции CallerID

usecallerid — разрешить или запретить передачу CallerID (yes/no) По умолчанию ‘yes’.

hidecallerid — скрывать исходящий CallerID. По умолчанию ‘no’.

calleridcallwaiting — получать CallerID во время вызова.

callerid — устанавливает CallerID для данного канала. Принимает данные правильного формата «имя» и . Возможное значение ‘asreceived’ для передачи полученных значений.

Call feature options

Эти параметры включают или отключают дополнительные опции для FXS (FXO) каналов, такие как конференция и пере-адресация и т.д.. Значения могут быть только (yes/no)

threewaycalling — разрешает или запрещает three-way calling для канала.

cancallforward — разрешает или запрещает функцию «следуй за мной».

transfer — разрешает или запрещает функцию флэш для канала (для включения threewaycalling должно быть ‘yes’)

immediate — Если этот режим установлен ‘yes’, входящий вызов немедленно направляется на расширение ‘s’ без тона набора и чтения цифр.

ADSI — Включает или выключает поддержку ADSI. ADSI спецификации системы, аналогичной Caller ID для передачи закодированной информация для аналоговых телефонов. Это позволяет создавать интерактивные меню и обеспечивает доступ к таким услугам, как голосовая почта, посредством текстового интерфейса.

Параметры качества аудио

echocancel включить эхо-подавление. По умолчанию всегда включен.

rxgain — регулировка усиления приемника.
txgain — регулировка усиления передатчика.

Call Logging Options

Эти параметры влияют на записи Call Detail Records Asterisk.
amaflags: Устанавливает AMA флаги, влияющие на классификацию записей в Call Detail Records. Принимает следующие значения:

accountcode: Устанавливает код счета за звонки. Код в счете может иметь любое буквенное или цифровое значение.

Asterisk -vvvvvv команды CLI для тестирования DAHDI

dahdi show status

Команда dahdi show status отобразит состояние установленных плат.

источник

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

Ранее специалистами нашей компании было проведено тестирование телефонов 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:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Структура файла делится на несколько обязательных секций:

  • general
  • network
  • phone
  • line
  • external_line
  • application
  • ringtone
  • alert
  • firmware
  • translation

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

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-файлы контактов
Читайте также:  dpr 2000 настройка пароль по умолчанию
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, никогда
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 150×45 пикселей, 10кб
d50_logo_file строка Логотип для Digium D50, png 150×45 пикселей, 10кб
d70_logo_file строка Логотип для Digium D40, png 205×85 пикселей, 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-запросы синхронизации
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» Caller-ID, обязателен если информация об экстеншене в ARA, а не в sip.conf
subscribecontext Asterisk dialplan context Контекст, если определен здесь, то перезаписывает данные о контексте, затирая данные из sip.conf
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
Читайте также:  установка windows xp с процессором athlon

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 Опциональные параметры, которые могут быть переданы в приложение
alias string Имя рингтона, например FancyRinger.
filename string Имя вашего собственного рингтона, 16-bit 16kHz mono, не .wav, должен лежать в file_url_prefix.
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
рингтон
model D40, D50, D70 Модель телефона
version version string identifier of firmware Версия ПО, файл с расширением ”.eff”
file string Имя файла ПО, лежащего в папке, определенной в file_url_prefix network
public_firmware yes, no использвоание ПО на публичном сервере Digium, в случае недоступности вашего сервера
key строка Устанавливает значение, которое будет заменено на заданное

Итак, мы разобрали все секции файла конфигурации 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

;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
Параметр Rapid Dial Keys

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

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

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

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

group_name строка Наименование группы контактов
editable логический Определяет возможность изменения контатков с телефона
id строка Уникальный идентификатор группы
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»

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

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

Секция Emails
address строка e-mail контакта
label строка Текстовое описание e-mail контакта
primary логический Определяет основной e-mail контакта
Секция Actions
id строка Обязательно. Уникальный идентификатор для действия, используется для blf. Один id с
зарезирвированным названием «primary» должен быть определен у каждого контакта.
dial строка Опционально. Номер, который должен набрать телефон
dial_prefix строка Опционально. Префикс номера, который должен подставить телефон перед набором номера
app_id строка Опционально. Уникальный идентификатор для приложения (как для стандартного, так и для вашего собственного)
label строка Обязательно. mandatory, Подходящий идентификатор для номера из контакт листа. Например:
“Мобильный” или имя SIP-экстеншена.
name строка Обязательно, название для action.
Headers: дочерний элемент actions
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. Действия, определенные для контакта, по умолчанию, отображаются при просмотре информации о контакте.

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 логический Показывать/не показывать действие при определенных статусах
Структура файла smart blf

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

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

Базовая структура файла blf выглядет следующим образом:
Более подробный пример конфига:
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 существует для определения действия по нажатию клавиши быстрого набора. Для каждой кнопки возможно несколько моделей поведения. В телефоне будут упорядочены по списку их объявления.

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 секунд

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

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
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 Определяет поведение диода на кнопке быстрого набора
(выключен, включен, медленно/быстро мигает)

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

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

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

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

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

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

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

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

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

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

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

источник

Оцените статью
Adblock
detector