Size: a a a

2021 February 26

IV

Igor Vyrva in Asterisker-ы
так он попадёт в h
а там будет указано что ответил ${who_answer} при том что до него не дозвонились
источник

SL

Sergey L. Shirinyan in Asterisker-ы
Коллеги, мне стыдно, но я не могу найти костыль
Сделал в диалплане:
exten => _[78]9XXXXXXXXX,1,Set(OPSOS=${CURL(http://num.voxlink.ru/get/?num=7${EXTEN:1}}&field=operator)})
same => n,NoOp(${OPSOS})

На выхлопе получаю:

 0x7fd990073500 -- Strict RTP learning after remote address set to: 172.1.2.116:11786
[Feb 26 18:24:57] WARNING[24993][C-00000086]: pbx_functions.c:460 func_args: Can't find trailing parenthesis for function 'CURL(http://num.voxlink.ru/get/?num=79779685599'?
   -- Executing [89779685599@from-home:1] Set("SIP/019-000000e6", "OPSOS={"code": "977", "num": "9685599", "full_num": "9779685599", "operator": "Теле2", "region": "г. Москва и Московская область"}&field=operator)}") in new stack
   -- Executing [89779685599@from-home:2] NoOp("SIP/019-000000e6", "{"code": "977", "num": "9685599", "full_num": "9779685599", "operator": "Теле2", "region": "г. Москва и Московская область"}&field=operator)}") in new stack
   -- Executing [89779685599@from-home:3] Hangup("SIP/019-000000e6", "") in new stack
 == Spawn extension (from-home, 89779685599, 3) exited non-zero on 'SIP/019-000000e6'
источник

SL

Sergey L. Shirinyan in Asterisker-ы
Или могу?
источник

SL

Sergey L. Shirinyan in Asterisker-ы
Минуточку
источник

ДС

Дмитрий Спиридонов... in Asterisker-ы
7${EXTEN:1}} лишняя скобочка } ?
источник

SL

Sergey L. Shirinyan in Asterisker-ы
Дмитрий Спиридонов
7${EXTEN:1}} лишняя скобочка } ?
Да!
источник

SL

Sergey L. Shirinyan in Asterisker-ы
Дмитрий Спиридонов
7${EXTEN:1}} лишняя скобочка } ?
Благодарю
источник

MK

Mikhail Komarov in Asterisker-ы
Igor Vyrva
так он попадёт в h
а там будет указано что ответил ${who_answer} при том что до него не дозвонились
Да, тогда туда запишется не то что хотелось бы.
Ну тогда через U проставлять переменную
Что-то типа
same => n,Dial(SIP/2162,,U(test-sub^2162^${CHANNEL}))
[test-sub]
exten => s,1,NoOp('add resal exten to answer')
same => n,Set(__who_answer=${ARG1})
same => n,Set(SHARED(foo,${ARG2})=${ARG1})
same => n,Return()
а в h
exten => h,1,NoOp('hangup - ' ${SHARED(foo,${CHANNEL})
источник

MK

Mikhail Komarov in Asterisker-ы
Ярослав Лиходед
всем доброго дня... Имею кусочек плана...
exten => s,1,Dial(SIP/1202,18,rTt)
exten => s,n,Dial(SIP/1201,18,rTt)
exten => s,n,Dial(SIP/1111,40,rTt)
exten => s,n,HangUp()

exten => h,1,NoOp(Razgovor zavehon -- ${CALLERID(num)} -- ${EXTEN})

Как мне узнать кто поднял трубку?
в ${EXTEN}) - у меня h
Вот так попробуй

exten => s,1,Dial(SIP/1202,18,rTtU(save_answer_number^1202^${CHANNEL}))
exten => s,n,Dial(SIP/1201,18,rTtU(save_answer_number^1201^${CHANNEL}))
exten => s,n,Dial(SIP/1111,40,rTtU(save_answer_number^1111^${CHANNEL}))
exten => s,n,HangUp()

exten => h,1,NoOp(Razgovor zavehon -- ${CALLERID(num)} -- ${SHARED(foo,${CHANNEL})
[save_answer_number]
exten => s,1,NoOp('add real exten who answer')
same => n,Set(SHARED(foo,${ARG2})=${ARG1})
same => n,Return()
источник

IV

Igor Vyrva in Asterisker-ы
Mikhail Komarov
Вот так попробуй

exten => s,1,Dial(SIP/1202,18,rTtU(save_answer_number^1202^${CHANNEL}))
exten => s,n,Dial(SIP/1201,18,rTtU(save_answer_number^1201^${CHANNEL}))
exten => s,n,Dial(SIP/1111,40,rTtU(save_answer_number^1111^${CHANNEL}))
exten => s,n,HangUp()

exten => h,1,NoOp(Razgovor zavehon -- ${CALLERID(num)} -- ${SHARED(foo,${CHANNEL})
[save_answer_number]
exten => s,1,NoOp('add real exten who answer')
same => n,Set(SHARED(foo,${ARG2})=${ARG1})
same => n,Return()
Зачем шаред? Двойного поджопника бы хватило
источник

MK

Mikhail Komarov in Asterisker-ы
Igor Vyrva
Зачем шаред? Двойного поджопника бы хватило
Не хватило. Тоже думал что хватило бы. Но в h не пробрасывало переменную.
источник

MK

Mikhail Komarov in Asterisker-ы
Igor Vyrva
Зачем шаред? Двойного поджопника бы хватило
exten => 22244,1,NoOp("Test voice Record")
same => n,Wait(2)
same => n,Playback(beep)
same => n,Set(__answer='nobody')
;same => n,Record(/var/spool/asterisk/monitor/123.wav,5,15,xk)
same => n,Set(answer='nobody')
same => n,Dial(SIP/2162,,U(test-sub^2162^${CHANNEL}))
same => n,NoOp(${who_answer})
same => n,Hangup()
[test-sub]
exten => s,1,NoOp('add resal exten to answer')
same => n,Set(__answer=${ARG1})
same => n,Set(SHARED(foo,${ARG2})=${ARG1})
same => n,Return()
exten => h,1,NoOp('hangup - ' ${answer}) - всегда возвращало nobody
источник

DQ

Dmitriy Q in Asterisker-ы
Anuar
Забыл сказать, а если номера создавались через freepbx?
Bulk Handler посмотри
источник

DQ

Dmitriy Q in Asterisker-ы
Как можно быть таким ленивым что не изучить фришку методом тыка?
источник

ЯЛ

Ярослав Лиходед... in Asterisker-ы
Mikhail Komarov
exten => 22244,1,NoOp("Test voice Record")
same => n,Wait(2)
same => n,Playback(beep)
same => n,Set(__answer='nobody')
;same => n,Record(/var/spool/asterisk/monitor/123.wav,5,15,xk)
same => n,Set(answer='nobody')
same => n,Dial(SIP/2162,,U(test-sub^2162^${CHANNEL}))
same => n,NoOp(${who_answer})
same => n,Hangup()
[test-sub]
exten => s,1,NoOp('add resal exten to answer')
same => n,Set(__answer=${ARG1})
same => n,Set(SHARED(foo,${ARG2})=${ARG1})
same => n,Return()
exten => h,1,NoOp('hangup - ' ${answer}) - всегда возвращало nobody
Буду тестить... Спасибо за подсказку
источник

MK

Mikhail Komarov in Asterisker-ы
Ярослав Лиходед
Буду тестить... Спасибо за подсказку
Только оттуда не копипасть.
exten => s,1,Dial(SIP/1202,18,rTtU(save_answer_number^1202^${CHANNEL}))
exten => s,n,Dial(SIP/1201,18,rTtU(save_answer_number^1201^${CHANNEL}))
exten => s,n,Dial(SIP/1111,40,rTtU(save_answer_number^1111^${CHANNEL}))
exten => s,n,HangUp()

exten => h,1,NoOp(Razgovor zavehon -- ${CALLERID(num)} -- ${SHARED(foo,${CHANNEL})
[save_answer_number]
exten => s,1,NoOp('add real exten who answer')
same => n,Set(SHARED(foo,${ARG2})=${ARG1})
same => n,Return()
Вот прям твой случай.
источник

ЯЛ

Ярослав Лиходед... in Asterisker-ы
Mikhail Komarov
Только оттуда не копипасть.
exten => s,1,Dial(SIP/1202,18,rTtU(save_answer_number^1202^${CHANNEL}))
exten => s,n,Dial(SIP/1201,18,rTtU(save_answer_number^1201^${CHANNEL}))
exten => s,n,Dial(SIP/1111,40,rTtU(save_answer_number^1111^${CHANNEL}))
exten => s,n,HangUp()

exten => h,1,NoOp(Razgovor zavehon -- ${CALLERID(num)} -- ${SHARED(foo,${CHANNEL})
[save_answer_number]
exten => s,1,NoOp('add real exten who answer')
same => n,Set(SHARED(foo,${ARG2})=${ARG1})
same => n,Return()
Вот прям твой случай.
Save_answer_number - это контекст?
источник

MK

Mikhail Komarov in Asterisker-ы
Ярослав Лиходед
Save_answer_number - это контекст?
это sub контекст, то есть контекст который выполнившись возвращает управление в основной контекст из которого вызывался.
источник

ЯЛ

Ярослав Лиходед... in Asterisker-ы
Mikhail Komarov
это sub контекст, то есть контекст который выполнившись возвращает управление в основной контекст из которого вызывался.
Дошло кажется... Через пару часов постирую
источник

MK

Mikhail Komarov in Asterisker-ы
Ярослав Лиходед
Дошло кажется... Через пару часов постирую
его по хорошему с аналогией с макросом стоило бы назвать sub-save_answer_number но я поленился.
источник