Добрый день.
Имею проблему с консультативным вызовом. Но не просто с ним, а с вторичным, если можно так сказать, переводом вызова.
Схема такая.
Есть три номера: 200, 201 и 202.
По сценарию 202 звонит на 201. 201 делает Atxfer (через AMI, т.е. через ПК-шное приложение) на 200 и консультируется с большим боссом. Босс просит что-то уточнить и 201-й опять переключается на 202 для уточнения и потом опять на босса.
И вот тут засада. Первая часть, т.е. консультация с большим боссом проходит отлично, но когда 201 отправляет второй Atxfer на 202 (который в этот момент слушает музыку) на телефоне 202-го всплывает новый входящий вызов с астериска вместо того, что бы снять с music on hold существующую ногу и ее переиспользовать.
Вот такие командочки идут через AMI:
Для первого перевода на большого босса:
Action: Atxfer
Priority: 0
Exten: 200
Context: cc
Channel: SIP/201-0000030d
Response: Success
Message: Atxfer successfully queued
ActionID: 1
Для перевода на клиента (для доп. консультации):
Action: Atxfer
Priority: 0
Exten: 202
Context: cc
Channel: SIP/201-0000030d
Response: Success
Message: Atxfer successfully queued
ActionID: 2
Вопрос ... что не так .... :(. Голову уже сломал :(.
Астериск 13-й из штатного репозитория 16.04 убунты.
Через features codes та же история (через *3 я имею в виду, хотя у меня он на # повешен, но это не имеет значения). Т.е. похоже дело не просто в AMI командах, а в том, что надо что-то еще делать при обратном Atxfer-е ... Но что ... ?
Интернет прошерстил. Много где описано как делать Atxfer, но нигде не нашел как делать такой вот flip ... Может кто сталкивался, помогите, плз.
Задан: 2016-10-18 15:41:25 +0400
Просмотрен: 352 раз
Обновлен: Oct 18 '16
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Добавил в features.conf вот такую штуку
И по *6 работает переключение.
Остается узнать как сделать тоже самое через AMI. Если кто знает - буду премного благодарен!
kira ( 2016-10-18 16:42:10 +0400 )редактироватьа зачем вы делаете трансфер? чтото вы непонятно описали. В любом случае через ami это можно сделать( и будет проще) через постановку вызова в коференцию или pickup.
meral ( 2016-10-19 00:54:54 +0400 )редактироватьМне как раз не хотелось делать конференцию. Т.е. я понял, что конфой задачу можно решить, но .... Изначально была уже функция Atxfer (т.е. кнопка не неком клиентском АРМ-е). И, как часто бывает, возникло простое желание типа, если секретарь может уже проконсультироваться с боссом и переключить звонящего на босса, то почему босс не может попросить секретаря уточнить что-то у звонящего и сообщить ему что узнал(а). С точки зрения бизнеса тут все очень просто, уже все есть и почти ничего делать не надо. Но на практике оказалось, что Atxfer - это такая высокоуровнвая команда, которая жонглирует с simple bridge (как я понял из кода и наблюдением за AMI event-ами). Т.е. когда делается Atxfer внутри пороисодит постановка одно канала на MOH, а два другие собираются в simple bridge. Когда секретарь отключается происходит создание нового simple bridge в который добавляется каналы А и С (если считать секретаря как В).
kira ( 2016-10-21 13:38:26 +0400 )редактироватьИ кажется я понимаю теперь, что что бы сделать Atxfer так как я хочу надо или самому через AMI начать дирежировать каналами, делать из двух бридж, третий ставить на холд и обрабатвать все обрывы и неответы самому. Или да, пойти в конференцию ...
kira ( 2016-10-21 13:39:45 +0400 )редактировать