VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Можно ли перезвонить через другой сервер

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

AndyBack
Сообщения: 42
Зарегистрирован: 31 авг 2018, 22:03

Можно ли перезвонить через другой сервер

Сообщение AndyBack »

Как сказать клиенту средствами ARI/AGI/AMI/DialPlan чтобы он сделал новый звонок через другой сервер? И возможно ли такое?

Допустим, есть 2 астериска: аст1, аст2. Клиент звонит на аст1, но услуга, которую он хочет получить (например, конференция), сейчас активна на другом астериске аст2. Можно организовать транк аст1 - аст2 и перенаправить звонок в транк. Но можно просто попросить клиента сразу перезвонить на аст2 и получить услугу там, не задействуя более аст1. Клиент любой и зарегистрирован на аст1 и аст2. Такое вообще возможно средствами SIP и астериска? Или я хочу странного?
ded
Сообщения: 15608
Зарегистрирован: 26 авг 2010, 19:00

Re: Можно ли перезвонить через другой сервер

Сообщение ded »

Выбор линии - с которой делать вызов, средствами самого клиента (телефона).
Второй аккаунт на второй ast2 с тем же внутренним номером? На аппаратных телефонах - самый простой варинт.
Вторая линия - кнопка справа от экрана. Если её нажать - гудок от второго ast2, вызов будет через него:

Изображение
AndyBack
Сообщения: 42
Зарегистрирован: 31 авг 2018, 22:03

Re: Можно ли перезвонить через другой сервер

Сообщение AndyBack »

Да, второй аккаунт с тем же номером. Проблема в том что:
1) Это требует действий от пользователя.
2) Клиент может быть сам за транком и ни о каких аккаунтах не знать вообще. Например, звонок идет с PSTN.
ded
Сообщения: 15608
Зарегистрирован: 26 авг 2010, 19:00

Re: Можно ли перезвонить через другой сервер

Сообщение ded »

AndyBack писал(а):Как сказать клиенту средствами ARI/AGI/AMI/DialPlan чтобы он сделал новый звонок через другой сервер? И возможно ли такое?
exten => 5000,1,NoOp(Conference)
same => n,(действие: Goto(are this conference is available on ast1?:yes)
exten => n,Dial(IAX2/ast2/5000) ; goto conference @ ast2
same => n(yes),ConfBridge(${MEETME_ROOMNUM},,,${MENU_PROFILE}) ; use conference @ ast1

P.S. А давайте в воскресенье отдыхать? А работать в рабочие дни?
gosha
Сообщения: 375
Зарегистрирован: 06 сен 2010, 17:41
Контактная информация:

Re: Можно ли перезвонить через другой сервер

Сообщение gosha »

Transfer() из диалплана до ответа на звонок отдаст 302 телефону. В старом добром chan_sip'е по крайней мере )
AndyBack
Сообщения: 42
Зарегистрирован: 31 авг 2018, 22:03

Re: Можно ли перезвонить через другой сервер

Сообщение AndyBack »

Да, я видел такую логику в одном из PSTN-шлюзов. Он по получению 302 или истечении задаваемого тайм-аута делал запрос на сервер, указанный у него как резервный и только по неответу давал хангап клиенту. Вопрос как из диал-плана сделать Transfer() на другой сервер? В инете ничего не нашел.
ded
Сообщения: 15608
Зарегистрирован: 26 авг 2010, 19:00

Re: Можно ли перезвонить через другой сервер

Сообщение ded »

same => n,Transfer(IAX2/ast2/5000)
same => n,NoOp(Result is ${TRANSFERSTATUS})
*CLI> core show application Transfer

-= Info about application 'Transfer' =-

[Synopsis]
Transfer caller to remote extension.

[Description]
Requests the remote caller be transferred to a given desti
IAX2, LOCAL etc) is used, only an incoming call with the s
technology will be transferred. Note that for SIP, if you
is setup, a 302 redirect SIP message will be returned to t
The result of the application will be reported in the ${TR
variable:
${TRANSFERSTATUS}:
SUCCESS: Transfer succeeded.
FAILURE: Transfer failed.
UNSUPPORTED: Transfer unsupported by channel driver.

[Syntax]
Transfer([Tech/]destination)
Аватара пользователя
Zavr2008
Сообщения: 2210
Зарегистрирован: 27 янв 2011, 00:35
Контактная информация:

Re: Можно ли перезвонить через другой сервер

Сообщение Zavr2008 »

Регать на Kamailio телефоны и она уже решает куда направить звонок.
Ну или через Астер транзиты делать.
Всё остальное - пионер-онанизм.
Российские E1 шлюзы Alvis. Модернизация УПАТС с E1,Подключение к ИС "Антифрод" E1 PRI/SS#7 УВР Телестор, Грифин и др..
AndyBack
Сообщения: 42
Зарегистрирован: 31 авг 2018, 22:03

Re: Можно ли перезвонить через другой сервер

Сообщение AndyBack »

Тогда вопрос: чем Transfer() отличается от Dial() в этой ситуации?

same => n,Transfer(IAX2/ast2/5000)
exten => n,Dial(IAX2/ast2/5000)
В чем разница?

Это относительно мелкая система, чтобы заводить там Камаилио...
ded
Сообщения: 15608
Зарегистрирован: 26 авг 2010, 19:00

Re: Можно ли перезвонить через другой сервер

Сообщение ded »

Тогда ответ: трансфер Transfer() отдаёт такие ответы в вот эту переменную: ${TRANSFERSTATUS}:
SUCCESS: Transfer succeeded.
FAILURE: Transfer failed.
UNSUPPORTED: Transfer unsupported by channel driver.

Dial() отдаёт состяния в другую переменную - ${DIALSTATUS}

ANSWER: Call is answered. A successful dial. The caller reached the callee.
BUSY: Busy signal. The dial command reached its number but the number is busy.
NOANSWER: No answer. The dial command reached its number, the number rang for too long, then the dial timed out.
CANCEL: Call is cancelled. The dial command reached its number but the caller hung up before the callee picked up.
CONGESTION: Congestion. This status is usually a sign that the dialled number is not recognised.
CHANUNAVAIL: Channel unavailable. On SIP, peer may not be registered.
DONTCALL: Privacy mode, callee rejected the call
TORTURE: Privacy mode, callee chose to send caller to torture menu
INVALIDARGS: Error parsing Dial command arguments
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH