ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

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

Проблемы и их решения Asterisk как такового

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

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

Сообщение AndyBack » 19 май 2024, 17:19

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

Допустим, есть 2 астериска: аст1, аст2. Клиент звонит на аст1, но услуга, которую он хочет получить (например, конференция), сейчас активна на другом астериске аст2. Можно организовать транк аст1 - аст2 и перенаправить звонок в транк. Но можно просто попросить клиента сразу перезвонить на аст2 и получить услугу там, не задействуя более аст1. Клиент любой и зарегистрирован на аст1 и аст2. Такое вообще возможно средствами SIP и астериска? Или я хочу странного?
AndyBack
 
Сообщений: 40
Зарегистрирован: 31 авг 2018, 23:03

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

Сообщение ded » 19 май 2024, 17:34

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

Изображение
ded
 
Сообщений: 15864
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение AndyBack » 19 май 2024, 17:40

Да, второй аккаунт с тем же номером. Проблема в том что:
1) Это требует действий от пользователя.
2) Клиент может быть сам за транком и ни о каких аккаунтах не знать вообще. Например, звонок идет с PSTN.
AndyBack
 
Сообщений: 40
Зарегистрирован: 31 авг 2018, 23:03

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

Сообщение ded » 19 май 2024, 17:50

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. А давайте в воскресенье отдыхать? А работать в рабочие дни?
ded
 
Сообщений: 15864
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение gosha » 19 май 2024, 20:14

Transfer() из диалплана до ответа на звонок отдаст 302 телефону. В старом добром chan_sip'е по крайней мере )
gosha
 
Сообщений: 374
Зарегистрирован: 06 сен 2010, 17:41

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

Сообщение AndyBack » 19 май 2024, 21:25

Да, я видел такую логику в одном из PSTN-шлюзов. Он по получению 302 или истечении задаваемого тайм-аута делал запрос на сервер, указанный у него как резервный и только по неответу давал хангап клиенту. Вопрос как из диал-плана сделать Transfer() на другой сервер? В инете ничего не нашел.
AndyBack
 
Сообщений: 40
Зарегистрирован: 31 авг 2018, 23:03

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

Сообщение ded » 19 май 2024, 22:49

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)
ded
 
Сообщений: 15864
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение Zavr2008 » 20 май 2024, 20:02

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

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

Сообщение AndyBack » 20 май 2024, 21:10

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

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

Это относительно мелкая система, чтобы заводить там Камаилио...
AndyBack
 
Сообщений: 40
Зарегистрирован: 31 авг 2018, 23:03

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

Сообщение ded » 21 май 2024, 04:05

Тогда ответ: трансфер 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
ded
 
Сообщений: 15864
Зарегистрирован: 26 авг 2010, 19:00

След.

Вернуться в Конфигурация и настройка Asterisk

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 30

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH