| Код: |
| [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 сессия рвётся
| Код: |
| 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' |
и вот с какого боку тут подайти пока опыта не хватает.
| Код: |
| [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 аутсорсинг
| Код: |
| [macro-testCID] exten => s/6010,1,NoOp(6010) [users] exten => 15/555,1,Set(CALLERID(num)=6010). exten => 15/555,n,Macro(testCID) |
что в итоге приведет к тем же проблемам.
Я вам наглядно на тестах показал что все работает, о каких проблемах вы говорите мне не совсем понятно.
ещё один вариант для gotoif без смены CID`а это проверять наличие/отсутствие/значение некой переменной на канале, а эту переменную добавлять нужным пирам в sip.conf:
| Код: |
| [hostTest](locuser) callerid="Test" ...skiped.. setvar=myVar=1 ...skiped.. [hostTest2](locuser) callerid="Test2" ...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 аутсорсинг
| Цитата: |
| Разница в том, что CID нужно выставить ДО того как диалплан дойдет до места где этот самый CID будет проверяться. |
По CID я фильтрую доступные звонящему направления, если его выставлять ДО момента где он проверяется, то я лишаюсь возможности его отфильтровать.
проблема была в том что при структуре
exten => _./CID смена CID - всё разваливалось, т.к. менялся экстеншен, а вот с вариантом gotoif всё нормально, проблема решена.
| nsdonner писал(а): |
| то я лишаюсь возможности его отфильтровать |
Либо вы меня не понимаете, либо я вас. Вообщем выше, в своих тестах, я привел, то как это должно и может работать.
_________________
mega-net.ru - IT аутсорсинг
_________________
http://mh.otx.ru SIP/E1 шлюзы Alvis, Добавь E1 к Asterisk, Проапгрейди Заказчику TDA/LDK!
NEW! Alvis-GW-2E1-L по 29500р, спеши! цены