VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Проблема с распределением входящих, контекстом

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Ответить
polupochnik
Сообщения: 60
Зарегистрирован: 21 ноя 2011, 18:50

Проблема с распределением входящих, контекстом

Сообщение polupochnik »

Добрый день!
Пытаюсь реализовать следующую схемe, 1 головной астериск объединен с десятками других клиентских астерисков (freepbx).
на клиентском астериске, создается iax extension, с сервера на каждый клиентский поднят транк с данными iax extension, При звонке на клиентском астериске на внутренний iax extension, на серверном настроено с помощью set caller id (модуль freepbx), добавление названия клиент, а также префикс, для возможности прозрачного перезвона с серверного.
Распределение с различных клиентских на разные set caller id instance думал сделать через inbound route, но такие звонки "no did no cid", при добавлении в строку регистрации login:pass@host/did регистрация (все на iax2) не проходит, считая did как часть хоста.
После чего решил, распределить через контекст
в транке:
peer details
username=login
type=peer
secret=pass
qualify=yes
host=ip.addresse.com

user context from-client1
user details
type=user
context=from-client1
register string
login:pass@ip.addresse.com

добавляю extensions_custom.conf
[from-client1]
exten => s,1,Set(__FROM_DID=${EXTEN})
exten => s,n,Gosub(app-blacklist-check,s,1())
exten => s,n,Set(CDR(did)=${FROM_DID})
exten => s,n,ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=${CALLERID(num)}))
exten => s,n,Set(CHANNEL(musicclass)=default)
exten => s,n,Set(__MOHCLASS=default)
exten => s,n,Set(__CALLINGPRES_SV=${CALLERPRES()})
exten => s,n,Set(CALLERPRES()=allowed_not_screened)
exten => s,n(dest-ext),Goto(app-setcid,1,1)
где app-setcid,1,1 app-setcid,2,1 app-setcid,2,1 разные инстансты для разных контекстов.

при 1 клиенте схема работает, при добавлении трех транков до клиентских, соответственно трех разных контекстов, звонки приходят, кажется по принципу "кто первый встал, того и тапки". то есть звонки от клиента1 и клиента 2 и клиента3 попадают в контекст from-client2 или наоборот.
Ошибка похожа на детскую, в отсутствии базовых знаний работы с контекстами. Поможете?
awsswa
Сообщения: 2390
Зарегистрирован: 09 июн 2012, 10:52
Откуда: Россия, Пермь skype: yarick_perm

Re: Проблема с распределением входящих, контекстом

Сообщение awsswa »

Проблема номер один:
Перестаньте сыпать техническими терминами

Вторая проблема:
Рисуйте на бумажке что вы хотите получить

Из всего что выше написано - понятно только одно, вы зачем то руками крутите iax2 - все делается в вебке
У вас схема с центральное точкой
Вам надо схему - каждый с каждым

Что за схема с подстановкой caller id - для перезвона ?
галочка в настройках исходящих маршрутов - intra-company стоит ?
платный суппорт по мере возможностей
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Проблема с распределением входящих, контекстом

Сообщение ded »

на клиентском астериске, создается iax extension, с сервера на каждый клиентский поднят транк с данными iax extension,
Неправильно.
Не нужен никакой iax extension, достаточно только пира (для простоты картины - type=friend & context=from-internal). Для клиентских Астерисков host=dynamic на центральном Астериске, чтобы они там регистрировались. И тогда с центрального Асьтьериска набор по маршрутам (через вэбку), в простоте так:

Код: Выделить всё

exten => _1XXX,1,Dial(IAX2/Asterisk-one/${EXTEN:1})
exten => _2XXX,1,Dial(IAX2/Asterisk-two/${EXTEN:1})
и так далее. Надеюсь, что справитесь с Outbond Caller ID для внутренних номеров на клиентских Астерисках...
добавляю extensions_custom.conf
ничего не надо через _custom.conf

Каждый с каждым можно через центральный, а если нет - то DUNDI switchВам в руки, и будет складно.
polupochnik
Сообщения: 60
Зарегистрирован: 21 ноя 2011, 18:50

Re: Проблема с распределением входящих, контекстом

Сообщение polupochnik »

Прошу прощения, попробую дополнить опиcание.

10 разных клиентских АТС, на них пересекающиеся внутренние номера, например АТС1 100,101,102 ... АТС2 100,101,102 ... АТС3 10,11,12 ...
модуль "set caller id", необходимо, чтобы к внутренним номерам каждой АТС, помимо цифрового префикса АТС1- префикс 11ХХХ добавлять имя "клиент1",
АТС2 -префикс 12ХХХ имя "клиент2". АТС3 -префикс 13ХХ имя - "клиент3"
Имя нужно, чтобы оператор колл центра, видел от какого клиента звонит внутренний номер , сам же префикс для удобства обратного набора оператором с центральной на клиентские АТС.
Исходящие с центральной АТС распределены через префикс, 11ХХХ звонить на ХХХ с АТС1, 12ХХХ на ХХХ с АТС2, 13ХХ на АТС3 соответственно.

я выбрал описанную выше схему через extension, удобства ради, на клиентских создавался extension 911, если клиент набирал городской номер колл центра центральной атс, городской подменялся на 911, при обратном звонке для клиентов от центральной все звонки определялись как 911, куда также напрямую они смогут перезванивать. То есть в данной схеме с клиентских АТС звонок нужно принимать на центральную АТС только в очередь колл центра.
Я понимаю что реализация кривая с моей стороны, но условно легко описываема для последующего администрирования. Также как и добавление префикса и имени к внутренним номерам с клиентских машин, хотелось бы проводить на стороне центральной АТС. То есть я пытался, через контекст в user details транка, в кастоме описывая его, распределить в соответствующие шаблоны модуля set caller id и далее на очередь коллцентра. Но при добавлении 2-3 клиентских транков, все звонки уходят в один контекст, что оборачивается одним и тем же префиксом и именем. Если держать любой из трех транков включенным один, то все работает корректно.

2ded спасибо! схема знакома и конечно, опробована, в данном кейсе пытался реализовать минимум изменений на клиентских АТС,
к Вашему вопросу на изменение outbound caller id на клиентских, представляю только через from-internal-custom
exten => _X.,1,Set(CALLERID(num)=11${CALLERID(num)})
exten => _X.,2,Set(CALLERID(name)=ATC1${CALLERID(name)})
exten => _X.,3,Goto(outbound-allroutes,${EXTEN},1)

но на клиентских АТС где то используется модуль custom-context от freepbx, где custom internal dialplan наверняка отключен, что также добавляет возможность ошибки для последующего администрирования, расширения этой схемы, на мой взгляд.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH