Страница 1 из 1
различные переменные для slave channels
Добавлено: 27 ноя 2018, 11: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, 11: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, 11:25
ded
А где вы нашли такой синтаксис?
Dial(SIP/abonent1,SIP/abonent2)
Dial(Local/abonent1@servicecontext,Local/abonent2@servicecontext)
Сами придумали?
Re: различные переменные для slave channels
Добавлено: 27 ноя 2018, 11:28
shader
asterisker писал(а):не проверял, на уровне идеи:
Хорошая идея. Как сам то не догадался...
Re: различные переменные для slave channels
Добавлено: 27 ноя 2018, 12:24
bestann
Это в Вики по Астериску описано:
https://wiki.asterisk.org/wiki/display/ ... l+Examples
Dialing Destinations with Different Information - этот пример
Re: различные переменные для slave channels
Добавлено: 28 ноя 2018, 07:18
virus_net
Только там не запятая, а & между Local.
201,n,Dial(Local/201@internal&Local/201@external,30)
P. S.
shader, Оверквотинг не приветствуется.
Re: различные переменные для slave channels
Добавлено: 28 ноя 2018, 08:15
shader
Та про & понятно, мелочи. PS. А так все задуманное получилось и заработало. Всем спасибо.
Re: различные переменные для slave channels
Добавлено: 29 ноя 2018, 07:27
virus_net
Авот вам не спасибо. "Все получилось, все свободны". Класс...
А как получилось и что было сделано... Именно эти вопросы будут в голове у людей, которые прочтут это топик найдя его через поиск.
Re: различные переменные для slave channels
Добавлено: 29 ноя 2018, 16: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))
...