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

завершить вызов досрочно(До поднятия трубки)

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модератор: april22

завершить вызов досрочно(До поднятия трубки)

Сообщение SuperTone » 27 мар 2018, 21:36

Если я Начал вызов с помощью команды Originate, я могу завершить вызов досрочно(До поднятия трубки)?
Пытался использовать "Hangup: Завершение соединение на заданном канале. (необходимые привилегии: call,all)"
Получал:
[Response] => Success
[Message] => Channel Hungup
Но вызов всё равно шел.
SuperTone
 
Сообщений: 12
Зарегистрирован: 20 мар 2018, 21:15

Re: завершить вызов досрочно(До поднятия трубки)

Сообщение Kroteg » 28 мар 2018, 08:13

Приложение создает исходящий вызов и соединяет его с указанными екстеншенами или приложениями. Выполнение диалплана блокируется, пока приложение не вернет статус вызова, неудачный или отвеченный, а затем выполнение диалплана продолжается.Приложение возвращает переменную канала ${ORIGINATE_STATUS}

Так почему бы не задать условие при котором в любом случае переход на хэнгап? Т.е. описать все возможные значения:
  • FAILED
  • SUCCESS
  • BUSY
  • CONGESTION
  • HANGUP
  • RINGING
Изображение
Аватар пользователя
Kroteg
 
Сообщений: 45
Зарегистрирован: 11 янв 2018, 14:51
Откуда: Opck

Re: завершить вызов досрочно(До поднятия трубки)

Сообщение virus_net » 28 мар 2018, 08:30

Мимо.
Он спрашивает как завершить вызов ДО возврата и соответственно завершения команды.
Но не показывает ни как он делал вызов, ни диалплана, ни как пытался завершить, ни что видит в CLI. Вообщем по сути ничего кроме "не работает".
Вывод ? Ждёт телепатов.
Можно догадаться, что это делается через AMI, но гадать остальное желания нет.
мой SIP URI sip:virus_net@asterisk.ru или sip:dn@postmet.com
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Аватар пользователя
virus_net
 
Сообщений: 2130
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: завершить вызов досрочно(До поднятия трубки)

Сообщение Repz » 28 мар 2018, 11:55

SuperTone писал(а):вызов с помощью команды Originate, я могу завершить вызов досрочно?

нет.
Можете создать свой originate = dial+dial+bridge и извращаться над данной конструкцией сколько душе угодно.
Repz
 
Сообщений: 114
Зарегистрирован: 04 мар 2015, 12:35

Re: завершить вызов досрочно(До поднятия трубки)

Сообщение SuperTone » 29 мар 2018, 00:43

Код не приводил так как в теории спрашивал.
Я даже не знаю как представить всё что происходит.. вот куски
Это я пробовал для теста - так работает.

в php:
Код: выделить все
...
$params = [
  'Channel' => $number,
  'Context' => 'DialPlan2',
  'Priority' => 1,
  'Exten' => 's',
  'Async' => 'true',
  'Callerid' => CALLERID
];
$asm->add_event_handler('DialBegin', 'onDialBegin');
$res = $asm->send_request('Originate', $params);
...         
function onDialBegin($a, $b)     {
  global $asm;

  sleep(15);
  $params =  [
    'Channel'=>$b['DestChannel']
  ];
  $asm->send_request('Hangup', $params);
}
...

Так работает. Т.е. позвонит немого(15сек) и сам себя завершает - брать тубку не требовалось.

!! Пока писал пост разобрался.))
В моем исполнении я пытался завершить дозвон внутри AGI скрипта, который вызывался из диалплана
пример: same => n,AGI(mod.php)

Вот когда я вынес процедуру завершения из "AGI(mod.php)", тогда заработало.
Повторюсь до этого я получал "[Response] => Success, [Message] => Channel Hungup:", но по факту не работало.
Вопрос закрыт.
SuperTone
 
Сообщений: 12
Зарегистрирован: 20 мар 2018, 21:15


Вернуться в Вопросы новичков

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

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

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