Страница 3 из 6

Re: Сквозной linkedid

Добавлено: 11 фев 2016, 23:41
ded
Ошибся, слишком бегло посмотрел, всё верно по п. 2)

Re: Сквозной linkedid

Добавлено: 18 фев 2016, 20:21
serg
Коллеги, есть проблема, подскажите:

На номер очереди(200) поступает вызов, например с номера 300:

exten => 200,1,Set(CDR(userfield)=${CDR(uniqueid)}) - задаем uniqueid
exten => 200,2,NoOp(CDR(userfield) is ${CDR(userfield)}) - записаваем uniqueid в CDR
exten => 200,3,SIPAddHeader(X-AsterMetka: ${CDR(uniqueid)}) - создаем метку с uniqueid, запаковываем в SIP заголовок
exten => 200,4,Queue(test) - попадаем в очередь с номером 201


Оператор(номер 201) принимает вызов, ставит 300 на удержание, далее вызывает номер 400:


exten => 400,1,Set(CDR(userfield)=${SIP_HEADER(X-AsterMetka)}) - проверяем метку
exten => 400,2,NoOp(CDR(userfield) is ${CDR(userfield)}) - записываем метку в CDR
exten => 400,3,Dial(SIP/400) - вызываем номер 400

Для агента создается новый канал, метка не передается:
exten => 400,1,Set(CDR(userfield)=${SIP_HEADER(X-AsterMetka)}) - пусто, т.к. новый канал ничего не запаковано
exten => 400,2,NoOp(CDR(userfield) is ${CDR(userfield)})


С наследование переменной не получилось:

exten => 200,1,Set(__CDR(userfield)=${CDR(uniqueid)})
exten => 200,2,NoOp(__CDR(userfield) is ${CDR(userfield)})
exten => 200,3,SIPAddHeader(X-AsterMetka: ${CDR(uniqueid)})
exten => 200,4,Queue(test)

exten => 400,1,Set(CDR(userfield)=${SIP_HEADER(X-AsterMetka)})
exten => 400,2,NoOp(CDR(userfield) is ${CDR(userfield)})
exten => 400,3,Dial(SIP/400)

Подскажите, куда копать, как ее выцепить?

Re: Сквозной linkedid

Добавлено: 18 фев 2016, 20:50
Samael28
Ищите другие способы передачи переменной между серверами.
Или сохраняйте в момент ответа связку "метка - ответивший" в базу, а при звонке ответившего смотрите в эту базу и подмешивайте в звонок метку. А при hangup очищайте связку.

Re: Сквозной linkedid

Добавлено: 18 фев 2016, 21:39
serg
Одинаковая метка должна оставаться в userfield и не подмешиваться при ответе агента и дозвона агента на другой номер.

Re: Сквозной linkedid

Добавлено: 18 фев 2016, 23:20
serg
Как же так, заявлено наследование подчеркиванием:

http://asterisk.ru/knowledgebase/Asterisk+variables

exten => 104,1,Set(FEE=${fee})
exten => 104,2,Set(_FIE=${fie})
exten => 104,3,Set(__FUM=${fum})
exten => 104,4,Dial(SIP/105)

exten => 105,1,NoOp(${FEE})
exten => 105,2,NoOp(${FIE})
exten => 105,3,NoOp(${FUM})
exten => 105,4,Dial(SIP/106)

exten => 106,1,NoOp(${FEE})
exten => 106,2,NoOp(${FIE})
exten => 106,3,NoOp(${FUM})

Делаю по примеру, выхлоп 0

не наследует, как так?

Re: Сквозной linkedid

Добавлено: 19 фев 2016, 00:20
ded
При звонке на 105 и 106 цепочка присвоений
Set(FEE=${fee})
Set(_FIE=${fie})
Set(__FUM=${fum})

не задействована, поэтому выхлоп 0
В примере то не exten => 104,4,Dial(SIP/105) а Local/105

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

exten => 104,1,Set(FEE=${fee})
exten => 104,2,Set(_FIE=${fie})
exten => 104,3,Set(__FUM=${fum})
exten => 104,4,Dial(Local/105)

exten => 105,1,NoOp(${FEE})
exten => 105,2,NoOp(${FIE})
exten => 105,3,NoOp(${FUM})
exten => 105,4,Dial(Local/106)

exten => 106,1,NoOp(${FEE})
exten => 106,2,NoOp(${FIE})
exten => 106,3,NoOp(${FUM})

Re: Сквозной linkedid

Добавлено: 19 фев 2016, 00:59
Samael28
А разве переменная выживет, если переадресация шла средствами телефона?

Re: Сквозной linkedid

Добавлено: 19 фев 2016, 01:55
whoim
а разве кто то юзает переадресацию средствами телефона?

Re: Сквозной linkedid

Добавлено: 19 фев 2016, 11:34
serg
Да в примере с local, но это как пример:
Если мы в команде Set присоединим спереди к имени переменной одиночный символ _ , то в этом случае эта переменная будет унаследована каналом, который будет создан основным каналом, например, при использовании команды Dial(Local/...);
Даже без переадрессации не пробрасывает, если с телефона на телефон совершить вызов:

exten => 100,1,Set(_METKA=${uniqueid})
exten => 100,2,Dial(SIP/101)

exten => 101,1,NoOp(${METKA})
exten => 101,2,Dial(SIP/101)

wtf ?

Re: Сквозной linkedid

Добавлено: 19 фев 2016, 16:22
serg
Мужики, ну помогите разобраться.

Если так прописать в диалплане с вызываемого номера 100 перестает работать переадресация по решетке, звездочке или все что укажу в features.conf для условной или безусловной переадресации:

exten => 100,1,Set(_METKA=${uniqueid})
exten => 100,2,Dial(SIP/100)

exten => 101,1,NoOp(${METKA})
exten => 101,2,Dial(SIP/101)

Как эту гребаную метку передать? ? :x :oops: :cry: :cry: