Вопрос по управлению через AMI (внешний звонок)
Откуда: Москва
Сообщений: 64
|
Вопрос по управлению через AMI (внешний звонок)
Здравствуйте!
Может, кто знает, как реализовать следующею задачу:
Через AMI заставить Asterisk набрать одновременно два внешних номера телефона, если набранные номера ответили, то их соединить между собой, если ответил только одни, то проигрывать ему сообщение (hold) пока другой номер не ответит. (Также если номер занят или не доступен, пробовать набирать несколько раз)
Есть ли возможность командами через AMI заставить Asterisk выполнить определенный macro или context?
Заранее спасибо.
|
Откуда: Уфа
Сообщений: 5856
|
Re: Вопрос по управлению через AMI (внешний звонок)
можно. есть 2 варианта:
1) делать 2 originate, направленых в конференцию, в которой играет музыка если участник - один.
2) делать один originate, как дозвонится до первого, так начнет соединяццо со вторым. первому можно музыку играть в это время.
|
Откуда: Москва
Сообщений: 64
|
Re: Вопрос по управлению через AMI (внешний звонок)
switch: можно. есть 2 варианта:
1) делать 2 originate, направленых в конференцию, в которой играет музыка если участник - один.
2) делать один originate, как дозвонится до первого, так начнет соединяццо со вторым. первому можно музыку играть в это время.
Как бы это реализовать? Для originate если я не ошибаюсь нужен канал, а канал получается должен организоваться с внешним номером, через SIP транк. Т.е. есть например два внешних абонента, у которых обычные городские телефоны. Нужно послать команду через AMI чтобы Asterisk дозвонился до одного и второго и соединил их, т.е. внутренние SIP номера в этом процессе не участвуют. А у меня сейчас получается только дозвониться до внутреннего номера, если ответил, тогда звонок уже уходит на внешнею линию:
Action: Login
UserName: 200
Secret: 123
Action: Originate
Channel: SIP/200
Exten: 5555555
Timeout: 15000
Context: default
Priority: 1
Async: yes
Но этот вариант не подходит.
Можно ли заставить Asterisk через AMI выполнить определенный context или macro из extensions.conf? Там бы я сделал все что нужно.
|
Откуда: Нижний Новгород
Сообщений: 277
|
Re: Вопрос по управлению через AMI (внешний звонок)
Можно. Звонить через Originate на Local канал:
....
Channel: Local/<exten>@<context>
....
|
Откуда: Москва
Сообщений: 64
|
Re: Вопрос по управлению через AMI (внешний звонок)
Спасибо всем за отклики, разобрался.
Действительно оказалось достаточно все просто через Local. Ну а если есть возможность попасть в extensions.conf дальше будет проще.
Для тех кому будет интересно, как работает Local:
Action: Originate
Channel: Local/555@default
Context: default
Exten: 555
Priority: 1
[default]
exten => 555,1,Macro(exten,${EXTEN},SIP/${EXTEN})
[macro-exten]
exten => s,1,Dial(${ARG2},30,t)
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,Voicemail(u${ARG1})
exten => s-NOANSWER,n,Hangup
exten => s-BUSY,1,Busy
exten => _s-.,1,Goto(s-NOANSWER,1)
|
Сообщений: 80
|
Re: Вопрос по управлению через AMI (внешний звонок)
Мне вот не понятно, для того чтобы сделать звонок на номер 123-45-67 через SIP транк и связать его с внутренним абонентом 100, какие команды надо послать?
Action: Originate
Channel: ?
Context: from-internal
Exten: 101
Priority: 1
Все понятно, вопрос, что нужно прописать в Channel ?
|
Откуда: Уфа
Сообщений: 5856
|
Re: Вопрос по управлению через AMI (внешний звонок)
SIP/XXX
или
LOCAL/XXX@from-internal
|
Сообщений: 80
|
Re: Вопрос по управлению через AMI (внешний звонок)
Все равно не понял, наверное вопрос не правильно сформулировал.
Есть Elastix. Нужно сделать звонок через команды интерфейса AMI на городской телефон 123-45-67, с внутреннего SIP аппарата с номером 101.
|
Откуда: Уфа
Сообщений: 5856
|
Re: Вопрос по управлению через AMI (внешний звонок)
Action: Originate
Channel: LOCAL/91234567@from-internal
Context: from-internal
Exten: 101
Priority: 1
|
Сообщений: 80
|
Re: Вопрос по управлению через AMI (внешний звонок)
Ага, уже понятнее. Дозвон происходит, поднимаю трубку, и сразу сброс, внутренний не звонит
|
|