Size: a a a

Asterisk Community

2020 February 26

IV

Igor Vyrva in Asterisk Community
Alexey Drinkin
Это вы правы конечно! Просто сегодня полдня убил на то чтобы понять почему из этих трех, по-сути одинаковых вариантов работает самый странный
Так как при dial макрос отрабатывает для dstchannel то можно использовать переменную канала
источник

IV

Igor Vyrva in Asterisk Community
Сейчас не за астером, но есть вроде что-то на подобии ${CHANNELL}
источник

AD

Alexey Drinkin in Asterisk Community
${DIALEDPEERNAME}  - Dialed peer name
${DIALEDPEERNUMBER}  - Dialed peer number
источник

AD

Alexey Drinkin in Asterisk Community
в родной вики написано
источник

AD

Alexey Drinkin in Asterisk Community
чего бы не использовать
источник

AD

Alexey Drinkin in Asterisk Community
Кстати как правильно передавать параметры в макрос???

Чего-то наткнулся на: M(macroname^${ARG1}^${ARG2})
а не через запятую ?!
источник

АШ

Александр Шандер in Asterisk Community
M(macro[^arg[^...]]):
       macro - Name of the macro that should be executed.
Во всех не понятных случая][ смотрю хелп в консоли asterisk )))
источник

AD

Alexey Drinkin in Asterisk Community
Александр Шандер
M(macro[^arg[^...]]):
       macro - Name of the macro that should be executed.
Во всех не понятных случая][ смотрю хелп в консоли asterisk )))
Потестил, все равно DIALEDPEERNUMBER не прилетает в этом случае
exten => t,n,Dial(SIP/1111&SIP/2222&SIP/3333,60,tTgmM(PeerMakeAns^${CALLERID(num)}^${DIALEDPEERNUMBER}))

но отлично ловится если его внутрь макроса убрать
источник

АШ

Александр Шандер in Asterisk Community
Ну та нога и ни куда ни чего не набирает )))
источник

AD

Alexey Drinkin in Asterisk Community
Александр Шандер
Ну та нога и ни куда ни чего не набирает )))
Александр, смилуйтесь, в конце дня голова немного уже тупит! Расшифруйте этот сарказм ?
источник

АШ

Александр Шандер in Asterisk Community
У звонка две ноги, инициализирущая вызов и приземляющая, я считаю, что вторая нога, не набирает ни куда, по этому переменная пустая.
источник

AD

Alexey Drinkin in Asterisk Community
Александр Шандер
У звонка две ноги, инициализирущая вызов и приземляющая, я считаю, что вторая нога, не набирает ни куда, по этому переменная пустая.
БЛИН!
M(x): Заставляет выполнить macro (x) в момент ответа на вызов
M( macro^arg ) - Execute the specified macro for the called channel before connecting to the calling channel

Я правильно понимаю что есть разница в этих двух предлоежниях ?
источник

АШ

Александр Шандер in Asterisk Community
Нет.
источник

AD

Alexey Drinkin in Asterisk Community
Почему?
"Заставляет выполнить macro (x) в момент ответа на вызов"
И
"Выполняет указанный макрос для вызываемого канала перед подключением к вызывающему каналу"
источник

AD

Alexey Drinkin in Asterisk Community
в момент ответа у нас есть "обе ноги"
а во втором случае есть одна нога и для неё макрос делается ?
источник

АШ

Александр Шандер in Asterisk Community
У каждого канала свои переменные. Не значит, если переменная есть в одном канале, она будет и в другом.
Нужная вам переменная, содержит набранный номер, т.е. Dial  отработал в на канале первой ноги, там и установится. На второй ноге видать Dial не ставит переменную. Почему так я не знаю, видать есть смысл в этом.
источник

YG

Yuriy Gorlichenko in Asterisk Community
Alexey Drinkin
Почему?
"Заставляет выполнить macro (x) в момент ответа на вызов"
И
"Выполняет указанный макрос для вызываемого канала перед подключением к вызывающему каналу"
Вызовите chanDump до макрос ( перед Dial) и в макрос и посмотрите отличия
источник

YG

Yuriy Gorlichenko in Asterisk Community
Ну и поменяйте местами переменные поставляемые в макрос. Пусть первой будет dialed peer. Посмотрите - в arg проблема или в самой переменной
источник

YG

Yuriy Gorlichenko in Asterisk Community
Но вообще при вызове Dial у вас dialed peer number ещё не заполнена. Она заполняется по подъему трубки, а в диал вы её передаёте до подъема
источник

YG

Yuriy Gorlichenko in Asterisk Community
Соответственно там ничего и нет
источник