Страница 1 из 1

различные переменные для slave channels

СообщениеДобавлено: 27 ноя 2018, 12:10
shader
Столкнулся с задачей: (Asterisk 13)
Есть звонок (А канал)
В какой-то момент он раздваивается:

Код: выделить все
...
same => n,Dial(SIP/abonent1,SIP/abonent2)
...


И я хочу для каждого создаваемого канала (для абонента1(канал B) и абонента2(канал С)) Отдавать различные CALLERID звонящего абонента (канал А)
Но решить задачу не получается:
1. Если делать модификацию перед DIAL (Канал А), то, задача не решается. (модифицированный лишь однажды одинаковый CALLERID попадает в оба новых канала)
2. Если делать модификацию через subroute b:

Код: выделить все
...
same => n,Dial(SIP/abonent1,SIP/abonent2,b(callerid-modify,s,1))
...


То да, можно запустить скрипт AGI 2 раза для 2х создаваемых каналов. Но! Я не знаю как из каналов В и С изменить CALLERID в канале А. Скажите, это вообще возможно? На сколько я знаю (если что-то не поменялось) модифицировать переменные одного канала из другого канала - нельзя (сколько боли и страданий это добавляет). А только через SHARE.... Или все-таки как-то можно?

Re: различные переменные для slave channels

СообщениеДобавлено: 27 ноя 2018, 12:16
asterisker
не проверял, на уровне идеи:

Что, если сделать через local каналы и в каждом отдельном случае подменять clid?

Типа:
Код: выделить все
.....
same => n,Dial(Local/abonent1@servicecontext,Local/abonent2@servicecontext)
.....

[servicecontex]

exten=> abonent1,1,Set(CALLERID(num)=123)
same => n,Dial(SIP/${EXTEN})

exten=> abonent2,1,Set(CALLERID(num)=456)
same => n,Dial(SIP/${EXTEN})

Re: различные переменные для slave channels

СообщениеДобавлено: 27 ноя 2018, 12:25
ded
А где вы нашли такой синтаксис?
Dial(SIP/abonent1,SIP/abonent2)
Dial(Local/abonent1@servicecontext,Local/abonent2@servicecontext)
Сами придумали?

Re: различные переменные для slave channels

СообщениеДобавлено: 27 ноя 2018, 12:28
shader
asterisker писал(а):не проверял, на уровне идеи:

Хорошая идея. Как сам то не догадался...

Re: различные переменные для slave channels

СообщениеДобавлено: 27 ноя 2018, 13:24
bestann
Это в Вики по Астериску описано: https://wiki.asterisk.org/wiki/display/ ... l+Examples
Dialing Destinations with Different Information - этот пример

Re: различные переменные для slave channels

СообщениеДобавлено: 28 ноя 2018, 08:18
virus_net
Только там не запятая, а & между Local.
201,n,Dial(Local/201@internal&Local/201@external,30)


P. S. shader, Оверквотинг не приветствуется.

Re: различные переменные для slave channels

СообщениеДобавлено: 28 ноя 2018, 09:15
shader
Та про & понятно, мелочи. PS. А так все задуманное получилось и заработало. Всем спасибо.

Re: различные переменные для slave channels

СообщениеДобавлено: 29 ноя 2018, 08:27
virus_net
Авот вам не спасибо. "Все получилось, все свободны". Класс...
А как получилось и что было сделано... Именно эти вопросы будут в голове у людей, которые прочтут это топик найдя его через поиск.

Re: различные переменные для slave channels

СообщениеДобавлено: 29 ноя 2018, 17:32
shader
ну как что? Что и было предложено.
Код: выделить все
...
same => n,Dial(local/abonent1@hitrocontext&local/abonent2@hitrocontext)
...
...
[hitrocontext]
exten => _!.,1,AGI(super-puper-script.pl,${EXTEN}) ; Идем в БД, по имени пира что-то там ищем и потом меняем, сбиваем спутник с орбиты, начинаем 3 мировую и другие интересные вещи...
same => n,Dial(SIP/${EXTEN},60,rtTU(another-hitrocontext))
...