Список форумов Asterisk Forum Asterisk Forum
The Asterisk Open Source PBX - Russian Community
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ПравилаПравила   ГруппыГруппы   ИзбранноеИзбранное    LinksСсылки   РегистрацияРегистрация 
 RSSRSS   ПрофильПрофиль   Войти и проверить личные сообщения   ВходВход 

Подмена CALLERID с подвывертом

 
Список форумов Asterisk Forum -> Asterisk IP PBX    вывод темы на печать
Предыдущая тема :: Следующая тема  
Автор Сообщение
nsdonner



Зарегистрирован:
14.10.2010
Сообщения: 87
Откуда: RU

Статус: Оффлайн 

СообщениеДобавлено: Вт Мар 15, 2016 09:46    Заголовок сообщения: Подмена CALLERID с подвывертом

День добрый, не могу сообразить, помогите решить задачку. Есть АТС ходящая по PRI на астер с кучей телефонов, по сути являющаяся просто FXS шлюзом. Маршрутизация настроена по принципу приходящего номера т.е.

Код:

[macro-access]
;сотовые урфо
exten => s/543,1,Goto(phones_urfosot,${ARG1},1)
exten => s/566,1,Goto(phones_urfosot,${ARG1},1)
;межгород
exten => s/147,1,Goto(phones_far,${ARG1},1)
exten => s/516,1,Goto(phones_far,${ARG1},1)
exten => s/550,1,Goto(phones_far,${ARG1},1)


Встала задача сделать пару телефонов "параллельными", т.е. при звонке на определенный номер, звонят два аппарата, при звонке с этих аппаратаов определяется одинаковый номер, вроде всё просто во входящем контексте

Код:
exten => 549,1,Dial(DAHDI/g0/${EXTEN}&DAHDI/g0/762,,t)


а вот с исходящим проблема... думал просто подменить CALLERID у 762, но т.к. диалплан завязан на номере звонящего то после смены этого CALLERID сессия рвётся Sad т.е.
Код:
exten => s/762,1,Set(CALLERID(num)=549)
exten => s/762,n,Goto(phones_town,${ARG1},1)


Код:

Executing [999@incoming:1] Macro("DAHDI/i1/762-cd5a", "access,999") in new stack
    -- Executing [s@macro-access:1] Set("DAHDI/i1/762-cd5a", "CALLERID(num)=549") in new stack
    -- Auto fallthrough, channel 'DAHDI/i1/762-cd5a' status is 'UNKNOWN'
    -- Hungup 'DAHDI/i1/762-cd5a'


и вот с какого боку тут подайти пока опыта не хватает.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
virus_net



Зарегистрирован:
05.10.2014
Сообщения: 377
Откуда: Москва

Статус: Оффлайн 

СообщениеДобавлено: Ср Мар 16, 2016 06:21    Заголовок сообщения:

Код:
[tests]
exten => 14/6010,1,NoOp(6010)

[users]
exten => 15,1,Set(CALLERID(num)=6010)
exten => 15,n,Goto(tests,14,1)

Цитата:
-- Executing [15@users:1] Set("SIP/6003-0000581d", "CALLERID(num)=6010") in new stack
-- Executing [15@users:2] Goto("SIP/6003-0000581d", "tests,14,1") in new stack
-- Goto (tests,14,1)
-- Executing [14@tests:1] NoOp("SIP/6003-0000581d", "6010") in new stack

Код:
[macro-testCID]
exten => s/6010,1,NoOp(6010)
[users]
exten => 15,1,Set(CALLERID(num)=6010).
exten => 15,n,Macro(testCID)

Цитата:
-- Executing [15@users:1] Set("SIP/6003-00005822", "CALLERID(num)=6010") in new stack
-- Executing [15@users:2] Macro("SIP/6003-00005822", "testCID") in new stack
-- Executing [s@macro-testCID:1] NoOp("SIP/6003-00005822", "6010") in new stack

Иными словами все работает. Asterisk 1.8

Судя по
Цитата:
-- Executing [s@macro-access:1] Set("DAHDI/i1/762-cd5a", "CALLERID(num)=549") in new stack

если ваш диалплан действительно такой как вы привели. то вы выставляете CALLERID в самом макро, а надо ДО вызова вашего macro-access.

Так же всегда есть возможность изобразить с GotoIf:
Код:
exten => s,n,GotoIf($["${CALLERID(num)}" = "762"]?pass:drop)

_________________
mega-net.ru - IT аутсорсинг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Телефон
nsdonner



Зарегистрирован:
14.10.2010
Сообщения: 87
Откуда: RU

Статус: Оффлайн 

СообщениеДобавлено: Ср Мар 16, 2016 10:16    Заголовок сообщения:

так а в чем разница то в макросе это делать или до? Мне же всё равно надо как то выбрать номер звонящего, а не подменять все CALLERID подряд. т.е. для вашего примера это дожно будет выглядеть как

Код:


[macro-testCID]
exten => s/6010,1,NoOp(6010)
[users]
exten => 15/555,1,Set(CALLERID(num)=6010).
exten => 15/555,n,Macro(testCID)



что в итоге приведет к тем же проблемам.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nsdonner



Зарегистрирован:
14.10.2010
Сообщения: 87
Откуда: RU

Статус: Оффлайн 

СообщениеДобавлено: Чт Мар 17, 2016 05:06    Заголовок сообщения:

а вот идея с проверкой CALLERID через gotoif решила вопрос! спасибо!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
virus_net



Зарегистрирован:
05.10.2014
Сообщения: 377
Откуда: Москва

Статус: Оффлайн 

СообщениеДобавлено: Чт Мар 17, 2016 06:18    Заголовок сообщения:

Разница в том, что CID нужно выставить ДО того как диалплан дойдет до места где этот самый CID будет проверяться. И не надо менять всем подряд, меняйте тем кому это необходимо.
Я вам наглядно на тестах показал что все работает, о каких проблемах вы говорите мне не совсем понятно.

ещё один вариант для gotoif без смены CID`а это проверять наличие/отсутствие/значение некой переменной на канале, а эту переменную добавлять нужным пирам в sip.conf:
Код:
[hostTest](locuser)
callerid="Test" <111>
...skiped..
setvar=myVar=1
...skiped..

[hostTest2](locuser)
callerid="Test2" <222>
...skiped..
setvar=myVar=2
...skiped..

Ну и в диалплане:
Код:
exten => s,n,GotoIf($["${myVar}" > "0"]?step1:cancel)

или
Код:
exten => s,n,GotoIf($["${myVar}" = "1"]?step2:cancel)
exten => s,n,GotoIf($["${myVar}" = "2"]?step3:cancel)

Тогда и CID менять не надо, основываясь на значении и сравнении значения можно накалякать какие угодно права доступа к выходу в ТФоП.

_________________
mega-net.ru - IT аутсорсинг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Телефон
nsdonner



Зарегистрирован:
14.10.2010
Сообщения: 87
Откуда: RU

Статус: Оффлайн 

СообщениеДобавлено: Чт Мар 17, 2016 06:49    Заголовок сообщения:

Цитата:
Разница в том, что CID нужно выставить ДО того как диалплан дойдет до места где этот самый CID будет проверяться.


По CID я фильтрую доступные звонящему направления, если его выставлять ДО момента где он проверяется, то я лишаюсь возможности его отфильтровать.


проблема была в том что при структуре

exten => _./CID смена CID - всё разваливалось, т.к. менялся экстеншен, а вот с вариантом gotoif всё нормально, проблема решена.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
virus_net



Зарегистрирован:
05.10.2014
Сообщения: 377
Откуда: Москва

Статус: Оффлайн 

СообщениеДобавлено: Пт Мар 18, 2016 05:46    Заголовок сообщения:

nsdonner писал(а):
то я лишаюсь возможности его отфильтровать

Либо вы меня не понимаете, либо я вас. Вообщем выше, в своих тестах, я привел, то как это должно и может работать.

_________________
mega-net.ru - IT аутсорсинг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Телефон
Zavr2008



Зарегистрирован:
19.07.2013
Сообщения: 518

Статус: Оффлайн 

СообщениеДобавлено: Пт Мар 18, 2016 14:40    Заголовок сообщения:

"С подвывертом" люблю женщин, понимающих толк в Subj Smile
_________________
http://mh.otx.ru SIP/E1 шлюзы Alvis, Добавь E1 к Asterisk, Проапгрейди Заказчику TDA/LDK!
Alvis-GW-2E1-L от 25500р, спеши! цены
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Skype Name Телефон
Список форумов Asterisk Forum -> Asterisk IP PBX Ответить на тему
Страница 1 из 1

Добавить в Избранное

 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
You cannot attach files in this forum
You cannot download files in this forum