Поставить SIP-вызов Asterisk на удержание через AMI

Я пытаюсь поставить вызов на удержание через интерфейс управления Asterisk (AMI), и я выяснил, что для этого вам необходимо эффективно запарковать вызов. Где я столкнулся с проблемой, так это во втором канале, в котором вы размещаетесь и паркуетесь.

Я попытался поставить Channel2 с расширением 702, но это не работает, поскольку он жалуется, что это не канал (очевидно). Итак, как мне создать второй канал? Я инициирую другой вызов?

Мой файл functions.conf с подробным описанием парковочных вызовов:

[general]
parkext => 700          
parkpos => 701-720      


context => parkedcalls      
;parkinghints = no      
;parkingtime => 45  

Я использую отличную библиотеку PAMI (AMI для PHP):

$parkMsg = new ParkAction($_REQUEST['channel'],'702');//Getting channel is the original call chan, 702 is my misguided attempt at parking
$results = $pamiClient->send($parkMsg); 

person Mattisdada    schedule 25.02.2014    source источник
comment
Опубликуйте соответствующие части вашего файла conf.   -  person Siddharth    schedule 25.02.2014
comment
Я делаю это через AMI, поэтому просто опубликуйте [общее] в функциях, где есть припаркованные детали?   -  person Mattisdada    schedule 25.02.2014
comment
Есть ли код, который вы публикуете?   -  person Siddharth    schedule 25.02.2014


Ответы (2)



Я понял это, решение намного проще, чем я думал.

Чтобы сделать это, вы паркуетесь с Channel1 и Channel2, установленными как одно и то же.

Пример:

Action: Park
Channel: SIP/1037-0000bb4a
Channel2: SIP/1037-0000bb4a

Не уверен, что это правильно, но работает достаточно хорошо (переводит звонящего на удержание)

person Mattisdada    schedule 25.02.2014
comment
Channel2 вступает в действие, когда происходит тайм-аут. Установите время ожидания на что-нибудь низкое и посмотрите, что произойдет. - person Tim; 25.02.2014
comment
Это достаточно справедливо, как бы я тогда приостановил работу этого клиента? - person Mattisdada; 26.02.2014
comment
Я не понимаю вашего вопроса. Но то, что вы хотите сделать, это установить Channel2: в строку набора, чтобы он перезвонил человеку, который поставил их на удержание после истечения времени ожидания, или же установить время ожидания очень высоким, чтобы оно никогда не истекало. - person Tim; 26.02.2014
comment
Когда я впервые попробовал строку набора номера (это было первое, что я сделал), она сказала, что это недействительный канал (я использовал SIP/1037). - person Mattisdada; 27.02.2014
comment
Похоже, я ошибался, Channel2: действительно должен быть еще один прямой канал. Он объявляет место для парковки на канале 2: в дополнение к обратному вызову, если истекло время ожидания. - person Tim; 27.02.2014