AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

BLF Статусы

Asterisk IP PBX 32 сообщений -
#1

Доброго времени ALL:

Помогите настроить BLF при передачи межу Asterisk (FreePBX) серерами
(DPMA 1.5)

имеется схема

Абонент 1 Asterisk1 Asterisk2 Абонент 2
Абонент 3 Asterisk3 Asterisk2 Абонент 2

У абонента 1 установлен аппарат Yealink SIP-T28, у абонента 2 и 3 установлены Digium D70 (

Теперь внимание вопрос:

как между станциями завязать BLF чтобы абонент 2 видел возможную занятость абонента 1 и 3 (и наоборот соответсвенно)
и как передавать STATUS (Available, DND, Away итд) абонентов 2 и 3 между собой если они подключены к разным FreePBX серерам.

в LG была такая фишка - BLFManager когда все АТС сбрасывают на сервер статусы своих абонентов и каждая АТС LG получает этот статус, как тут сделать так не понятно.
#3

Что-то там все глухо, ни одна ссылка не работает внутри
#5

Я просто не совсем чего-то понял, проекта OpenAIS какбы больше не существует, но если я правильно понял существует проект corosync, и тут не совсем понятно, это одно и тоже или OpenAIS какбы дополнение к corosyc?
#6

OpenAIS не использовал. Проще в настройке и эксплуатации дистрибуция статусов через Jabber. Смотрите там же.
#7

ОО! через Jubber мысль интересная.
#9

Только хотел написать, что именно по этой инструкции делали, пока ничего не выходит выдается ошибка 503. Где копать в общем-то не понятно Sad.
res_jabber в 1.8 Asterisk - роняет Asterisk в seg.fault, разбираться уже не стал, все равно на 11й астериск собирались переходить, собрал новенький 11.3.0 в Сарове и в МСК уже стоит 11.2.1, в них уже нет res_jabber (ну есть на самом деле в качестве устаревших) по сию собрал - res_xmpp
пытались настроить через него:

Код:


iq type="error" id="aaaal" from="pubsub.hints-openfire.mydomain.net" to="ats-sar@hints-openfire/astvoip2">UNAVAILABLE

[2013-04-24 22:20:15] ERROR[10645]: res_xmpp.c:1402 xmpp_pubsub_handle_error: PubSub Server error, 503
#10

res_jabber или res_xmpp -- не важно.
Ну и по всему -- на вашем жаббер сервере не разрешены PubSub. Так что разбирайтесь с ним. Астер тут не причем.
#11

Судя по логам openfire стейты он получает нормально, никаких ошибок нет, но при попытке опенфайра отправить в подключенный родстер (наши астеры) - res_xmpp.so ругается ошибкой 503.
#12

С такими проблемами не сталкивался ни в res_jabber, ни в res_xmpp. Все всегда работало как часы.
Есть правда одно но. Я использую ejabberd. Не думаю, правда, что проблема в этом.
#13

У вас нет случайно ссылки на инструкцию как в ejabberd настроить pubsub?
#14

он там работает "из коробки"
#15

да вроде понятно, что модуль pubsub там из коробки присутствует, да только опыту нет у меня работы с ejabberd
#16

Мне не приходилось ничего дополнительно настраивать в ejabber. Все что было сделано:
1) зарегистрированы на жаббер-сервере аккаунты.
2) Обычным клиентом Жаббера были добавлены друг-другу в контакт-лист все учетные записи серверов Астера.
3) Настроен астериск.

И да, еще раз обращаю внимание: я нисколько не настаиваю на использовании ejabberd. Просто в моем случае поднимать OpenFire небыло ни желания, ни необходимости.
#17

да чего-то с openfire постоянно ошибка валится 409, и через некоторое время, минут через 5 Asterisk вываливается в segmentation fault.
#18

Если честно, то я всеравно не догоняю как это работает, не вижу я hint межстанционных, сообщения через ejabberd побежали

Вот я поставил ejabberd
завел пользователя admin задал пароль

далее через WEB морду создал пользователей:
ats-sar@ejabberd.mydomain.local
ats-msk@ejabberd.mydomain.local

далее сделал:
ejabberdctl register ats-sar ejabberd.mydomain.local 123
ejabberdctl register ats-msk ejabberd.mydomain.local 123

через res_xmpp.so сообщения не бегают, но как только я тоже самое настроил в res_jabber.so сообщения побежали в обе стороны:

Server1 (где телефоны 6XX)
Код:
JABBER: asterisk INCOMING: INUSEdevice_state

JABBER: asterisk INCOMING: INUSEdevice_state

JABBER: asterisk INCOMING: RINGINGdevice_state

JABBER: asterisk INCOMING: RINGINGdevice_state


Server 2 где телефоны 3XX:
Код:
JABBER: asterisk INCOMING: INUSEdevice_state557FED7A65255711A417A1E557126D243D

JABBER: asterisk INCOMING: INUSEdevice_state557FED7A65255711A417A1E557126D243D

JABBER: asterisk INCOMING: RINGINGdevice_state557FED7A65255711A417A1E557126D243D

JABBER: asterisk INCOMING: RINGINGdevice_state557FED7A65255711A417A1E557126D243D

JABBER: asterisk INCOMING: NOT_INUSEdevice_state557FED7A65255711A417A1E557126D243D



тем не менее если попросить
Код:
ats-msk*CLI> core show hint 608
608@ext-local-custom : SIP/608 State:Unavailable Watchers 0
1 hint matching extension 608

asterisk-users*CLI> core show hint 332
332@ext-local-custom : SIP/332 State:Unavailable Watchers 0
1 hint matching extension 332



дедл как написано в инструкции: (только свои цифры конечно)
Цитата:
Модуль res_jabber.so настроен, осталось добавить хинты в диалплан Asterisk. Если установлен FreePBX, хинты следует добавлять в файл /etc/asterisk/extensions_custom.conf в контекст [ext-local-custom]. В нашем случае, на АТС в Санкт-Петербурге добавляем следующие хинты для слежения за состоянием номеров 201, 202, 308 и 321 на других АТС:

[ext-local-custom]
exten => 201,hint,SIP/201
exten => 202,hint,SIP/202
exten => 308,hint,SIP/308
exten => 321,hint,SIP/321


Последний раз редактировалось: Alexey_Astashov (Сб Апр 27, 2013 07:44)
#19

Цитата:
через res_xmpp.so сообщения не бегают, но как только я тоже самое настроил в res_jabber.so сообщения побежали в обе стороны:


Хм. В качестве абсурда: вы jabber.conf в xmpp.conf переименовали?
Потому как, если при исользовании res_xmpp не бегают сообщения в жаббер, то скорее всего он у вас не настроен.
Между res_jabber и res_xmpp нет никакой разницы, кроме того, что они используют разные конфиги. jabber.conf и xmpp.conf соотвественно.
#20

Да непонятно на самом деле, видимо все-же разница есть, в общем смысл в том, что сообщения побежали, теперь нужно понять что сделано не правильно, почему я не вижу реальных статусов?
#21

subscribecontext=тому контексту где прописаны хинты?

Added after 56 seconds:

то есть, в вашем случае subcribecontext каждого телефона должен быть ext-local-custom

Added after 9 minutes:

Полностью у меня это выглядит так:

server1

xmpp.conf:
Код:
[mainoffice]
type=client
serverhost=jabber.server.ru
distribute_events=yes
pubsub_node=pubsub.jabber.server.ru
status=available
usetls=no
usesasl=yes
username=mainoffice@jabber.server.ru/mainoffice
secret=password
buddy=secoffice@jabber.server.ru/secoffice


sip.conf
[device1]
host=
secret=
otherparam=
subscribecontext=blf

extentions.conf
Код:
[blf]
exten => device1,hint,SIP/device1
exten => device2,hint,SIP/device2


server2

xmpp.conf:
Код:
[secoffice]
type=client
serverhost=jabber.server.ru
distribute_events=yes
pubsub_node=pubsub.jabber.server.ru
status=available
usetls=no
usesasl=yes
username=secoffice@jabber.server.ru/secoffice
secret=password
buddy=mainoffice@jabber.server.ru/mainoffice


sip.conf
[device2]
...
...
subscribecontext=blf

extentions.conf
Код:
[blf]
exten => device1,hint,SIP/device1
exten => device2,hint,SIP/device2
#22

ничего не получается, все сделано так как написано, но вот я тут начал копать глубжи и обнаружил:


Код:
[2013-04-29 10:02:23] ERROR[29864]: res_jabber.c:3578 aji_handle_pubsub_error: Error performing operation on PubSub node SIP/611, 409.
[2013-04-29 10:04:01] ERROR[29864]: res_jabber.c:3578 aji_handle_pubsub_error: Error performing operation on PubSub node SIP/603, 409.
[2013-04-29 10:04:04] ERROR[29864]: res_jabber.c:3578 aji_handle_pubsub_error: Error performing operation on PubSub node SIP/607, 409.
[2013-04-29 10:04:09] ERROR[29864]: res_jabber.c:3331 aji_handle_pubsub_event: Could not parse incoming PubSub event


не исключаю, что это связано
#23

Про эту ошибку:
Код:
[2013-04-29 10:04:04] ERROR[29864]: res_jabber.c:3578 aji_handle_pubsub_error: Error performing operation on PubSub node SIP/607, 409.

ничего не скажу, не встречал.

А вот это:
Код:
[2013-04-29 10:04:09] ERROR[29864]: res_jabber.c:3331 aji_handle_pubsub_event: Could not parse incoming PubSub event

встречал. Но не смотря на наличие этой ошибки статусы все равно бегают. В этоге, я просто перед сборкой комментирую в исходном коде строку логгирующую данную ошибку.
#24

Статусы-то бегают, я по дебагу их вижу, но ощущение, что Asterisk их не понимает эти сообщения.

Я чего думаю, может у меня парсер какой не установлен в системе?


Еще один момент, решился я тут проверить, а как вообще стейты отрабатывают на Digium аппаратах? сделал вот такой контекст:

Код:
[devstate_test]

exten => 605,hint,Custom:mystate
exten => 608,hint,Custom:mystate

exten => set_inuse,1,Set(DEVICE_STATE(Custom:mystate)=INUSE)
exten => set_not_inuse,1,Set(DEVICE_STATE(Custom:mystate)=NOT_INUSE)
exten => set_onhold,1,Set(DEVICE_STATE(Custom:mystate)=ONHOLD)
exten => set_ringing,1,Set(DEVICE_STATE(Custom:mystate)=RINGING)

exten => check,1,NoOp(Custom:mystate is ${DEVICE_STATE(Custom:mystate)})


соответсвенно через console dial set_XXXXXXX@devstate_test меняю статус

в записной книге Digium в интайрах выставил
сакрипшн yes
сабскрибшен URI: 608@devstate_test

ну какбы статус если поменять, то в хинтах можно увидеть новый статус, но на BLF индикация не передается. Для внутренних абонентов работает нормально
#25

Пересобрал Asterisk вместе с res_xmpp.so, зарабоал двухсторонний обмен данными через res_xmpp.so
но всеравно:
Код:
ats-msk-sintek*CLI> core show hint 608
608@ext-local-custom : SIP/608 State:Unavailable Watchers 0
1 hint matching extension 608


очень много обшибок

[2013-04-29 19:06:53] ERROR[19128] res_xmpp.c: Could not parse incoming PubSub event


Блин обманулся, у меня просто с одной стороны стоял res_jabber.so с другой res_xmpp.so
#26

господа, а никто не поделиться рабочим конфигом ejabberd, или хотя б строчкой пабсаба. с джабером не знаком, а без понимания что-либо настроить проблематично.
{mod_pubsub, [{access_createnode, pubsub_createnode},{plugins, ["flat", "pep", "hometree"]}]}, убирал флет результат аналогичный.
вроде как паблишится, а не приходит подписчикам, астериски в друзьях друг у дружки, подписки в обе строны.
как посмотреть на сервере джаббера что сообщение пришло от астериска.
ЗЫ контексты правильные, хинты прописаны, сип конф подправлен, настройки хммп аналогичны.
Спасибо.

оба астера 11.4 freebsd 9.1 x86
#27

Код:
%% Only accounts on the local ejabberd server can create Pubsub nodes:
{access, pubsub_createnode, [{allow, local}]}.

поскипано

{mod_pubsub, [
{access_createnode, pubsub_createnode},
{ignore_pep_from_offline, true}, % reduces resource comsumption, but XEP incompliant
%%{ignore_pep_from_offline, false}, % XEP compliant, but increases resource comsumption
{last_item_cache, false},
{plugins, ["flat", "hometree", "pep"]} % pep requires mod_caps
]},


вот так у меня.
#28

На первом:
Buddy: test2@jabber.soe.local
Resource: test2
node: http://www.asterisk.org/xmpp/client/caps
version: asterisk-xmpp
Google Talk capable: no
Jingle capable: yes
640@office SIP/640 State:Idle Watchers 0

на втором:
Buddy: test3@jabber.soe.local
Resource: test3
node: http://www.asterisk.org/xmpp/client/caps
version: asterisk-xmpp
Google Talk capable: no
Jingle capable: yes

640@office SIP/640 State:Unavailable Watchers 0

с первого паблиш уходит, на второй ничего не приходит(

в xmpp.conf
distribute_events=yes

в конфиге еджаббера
пабсаб поставил как в предыдущем сообщении

веб морда еджаббера говорит о:

pubsub_index 1 295
pubsub_item 60 19,183
pubsub_last_item 0 286
pubsub_node 64 910,854
pubsub_state 289 18,205
pubsub_subscription 2 346

куда копать?
----
Аsterisk 11.4 freebsd 9.1 x86
#29

В настройки безопасноти PubSub.
Скорее всего, могу предположить, что нода dev_state, которую создает астер создана с такими правами, что в нее запрещено писать тем, кто не находится
в ростере у создателя.
Таким образом, запустите жаббер-клиент(десктопный) от обоих аккаунтов и убедитесь, что оба сервера находятся друг у дружки в ростере, и подписка "both".

Ну и хорошо бы посмотреть, что там в реальности. Сделать это можно, например с помощью PSI. В этом клиенте есть XML console, с помощью которой можно послать и читать из жабера RAW сообщения. Запустите Psi, откройте консоль, включите ее(там есть галка "enable"). И пошлите в жаббер следующее:

Код:







Результат положите сюда, посмотрим. Ну или сам обратите внимание на узлы:

Код:

authorize
open
presence
roster
whitelist
open


friends
courtiers
servants
enemies


Added after 6 minutes:

Например, на моем сервере ответ выглядит так:

Цитата:


open



Значения могут быть такими http://xmpp.org/extensions/xep-0060.html#accessmodels

Мое "open" конечно, не очень хорошо, но было лень.
#30

статусы начали ходить в одну сторону, но обнаружился неприятный косяк, на 1.8.17 астер падал в корку при большом к-ве событий.
#31

Не скажу за конкретно 1.8.17 но еще с 1.6 версии и до 10-ой точно, был баг, при котором астер валился в корку если jabber-сервер вдруг оказывался недоступным. На 11-ой такого точно нет. Так что, в любом случае советую проверить баг про трекеру и обновиться.
#32

Вернулся к теме, поставл я тут Asterisk 11.5 в одном из офисов,собрал к нему res_xmpp
подключил к pubsub jabber серверу и О ЧУДО, на 11.5 у меня начали появляться hint прописанные, теперь я вижу state другого офиса.. проблема похоже в Asterisk 11.2/11.3 была
потому что в старомофисе стоит 11.3 хинты - не обновляются

ну да ладно...
и вот тепреь дошло время до телефонных аппарататов - прописал в phonebook - Digium D70 запись типа абонент 307 - а он не видит этих хинтов, и что я только не делал - BLF (Rapid Dial Key) никак не загораются..
помогите плиз.