LINUX.ORG.RU
ФорумAdmin

Предать переменную в extensions

 


0

1
...
exten=> 99,n,Macro(test,100,102) #Позвонить на 100 и соеденить с 102
...
[macro-test]
exten=> s,1,Originate(SIP/${ARG1},exten,test,s,1})
exten=> s,n,Hangup

[test]
exten=> s,1,NoOp(1)
exten=> s,n,NoOp(2)
exten=> s,n,NoOp(3)
exten=> s,n,Dial(SIP/???)

В extensions «test» передать ${ARG2}?

★★★★★

У тебя есть 1) контекст 2) макрос 3) номер

Куда и что собственно ты собрался передавать (еще и «зачем» - но это вообще глупый вопрос)?

zgen ★★★★★
()
Последнее исправление: zgen (всего исправлений: 1)
Ответ на: комментарий от zgen

Задача, вызвать макрос в который передать два параметра, номера абонентов которых необходимо соеденить. Код выше, это попытка реализации описанной логики.

petav ★★★★★
() автор топика

ЕМНИП, так

...
exten=> 99,n,Macro(test,100,102) #Позвонить на 100 и соеденить с 102
...
[macro-test]
exten=> s,1,Originate(SIP/${ARG1},exten,test,${ARG2},1})
exten=> s,n,Hangup

[test]
exten=> _.,1,NoOp(1)
same=> n,NoOp(2)
same=> n,NoOp(3)
same=> n,Dial(SIP/${exten})

FeyFre ★★★★
()
Ответ на: комментарий от petav

Видимо что-то не логично сделал

....
; Входяшие 99
exten=> 99,1,Goto(99,s,1)  

[99]
exten=> s,1,Answer()
exten=> s,n,Background("Мы вам перезвоним когда освободимся")
exten=> s,n,Hangup ;!!!!!У звонящего трубка не вешается, вешается только после того как 100 из originate возъмет трубку!!!
exten=> h,1,Macro(test,100,102)

[macro-test]
exten=> s,1,Originate(SIP/${ARG1},exten,test,${ARG2},1)
exten=> s,n,Hangup

[test]
exten=> _.,1,NoOp(test)
same=> n,Background("Ожидайте соединения")
same=> n,Dial(SIP/${EXTEN})
Как это можно обойти?

petav ★★★★★
() автор топика
Ответ на: комментарий от zgen

Для начала расскажи, что ты хотел получить

  • Звонок в отдел
  • 10 секунд играет музыка
  • Сообщение: «Мы не успеваем снять трубку, продолжите ожидание или перезвоните»
  • 30 секунд играет музыка
  • Сообщение: «Мы запомнили Ваш звонок как важный, мы перезвоним»
  • Гудки повешания трубки вызываемой стороной
  • В течении 10 мин телефонная станция должна в фоне пытаться найти номер до которого не дозвонились. Если этот номер поднимает трубку начать вызывать звонившего и соеденить их.
  • Если станция не нашла вызываемого, она позвонит абоненту и предложит записать сообщение.

и почему у hangup отсутствуют "()"

Поправил, но роли не сыграло.

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

Как-то очень криво реализуешь и все равно непонятно, что именно.

Должно работать в части hangup.
1. Замени background на playback (hangup (и h,1) сработает после уведомления, а не во время)
если не поможет:
2.
Замени

exten=> h,1,Macro(test,100,102)

На

exten=> h,1,SayDigits(${CALLERID(num)})

И позвони - что будет слышно в трубке?

zgen ★★★★★
()
Последнее исправление: zgen (всего исправлений: 2)
Ответ на: комментарий от zgen

Как-то очень криво реализуешь

Замечаниям по концепции буду рад.

если не поможет:

Ситуация не изменилась. Трубка остается поднятой.

И позвони - что будет слышно в трубке?

SayDigits не сработала, аудио канала уже не было как я понимаю.

    -- Executing [h@99:1] SayDigits("SIP/107-00000013", "107") in new stack
[Apr 15 14:09:27] WARNING[18160]: file.c:747 ast_readaudio_callback: Failed to write frame

petav ★★★★★
() автор топика
Ответ на: комментарий от zgen

Если аудиоканала нет, то что тогда вы вкладываете в понятие «Трубка остается поднятой»?

Видимо сигнальный канал существует. Поведение аппаратонезависимое, в том числе на софтфонах проявляется.

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

Это интересно, пока времени нет перепроверить - какая версия asterisk'а?

И все таки, как ты определяешь, что трубка «не положена» - нет коротких гудков или что?

zgen ★★★★★
()
Последнее исправление: zgen (всего исправлений: 1)
Ответ на: комментарий от zgen

какая версия asterisk'а?

Asterisk 1.8.4.4 

И все таки, как ты определяешь, что трубка «не положена» - нет коротких гудков или что?

На табло аппарата и linphone идет время соединения, а в трубке тишина. Как только originate начинает работать hangup срабатывает.

petav ★★★★★
() автор топика
Последнее исправление: petav (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.