First time here? Check out the FAQ!

Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

оповещение при переключении звонка [закрыт]

0

Подскажите пожалуйста, как можно сделать так, чтобы при переводе внешнего звонка через *2, когда абонент "А" передал информацию о звонке абоненту "Б" и перевел внешний звонок на абонента "Б", этот абонент "Б" слышал бы в линии любое уведомление (например короткий сигнал или голосовое уведомление) о том, что он уже соединился с внешним абонентом, а не разговаривает еще с внутренним. Наверно запутанно написал... а то сейчас при переводе звонка внимательно слушаешь линию и после того как слышишь ухудшение связи - понимаешь что на тебя уже переключили. Использую freepbx 2.10


**P.S. вопрос решил с помощью xfersound=beep в features_general_custom.conf**

спросил Jun 5 '13

sorgchik Gravatar sorgchik
85 37 8 17

обновил Jun 5 '13

Comments

м. проверьте с помощью тарнсфер кнопки телефона, удивитесь.

meral (Jun 5 '13)edit

а я про кнопку телефона изначально написал, что перевод через *2

sorgchik (Jun 5 '13)edit

1 Ответ

0

эта пробелма не имеет простого решения.

сложное решение - слушаеть евенты астриска и при окончании перевода(кажися по link) запускать chanspy на отдельном канале чтоб сказать абонентам что перевод завершен.

Уровень решения - експерт/guru.1

выглядит както вот так

sub save_transfer {
   
my ($ami, $event) = @_;
   
if($event->{'TransferMethod'} eq "SIP"){
           
my $chan=$event->{'TargetChannel'};
           
print "Detected transfer $chan\n";
           $transfer
{$chan}=1;
   
}else{
       
print 'transfer ',Dumper($event),"\r\n";
   
}
}

sub save_masquerade {
   
my ($ami, $event) = @_;
   
my $chan=$event->{'Original'};
   
if(exists $transfer{$chan}){# we have such transfer
       
my $new=$event->{'Clone'};
       
print "Detected masquerade $chan $new \n";
       
delete($transfer{$chan});
        $masq
{$new}=$chan;
   
}

}

sub do_hold_end {
 
my ($ami, $event) = @_;
 
if($event->{'State'} eq "Stop"){
       
#print "Detected moh stop \n";
       
my $chan=$event->{'Channel'};
       
if(exists $masq{$chan}){
               
print "Detected moh stop on $chan \n";
                $ami
->send_action({  Action => 'Originate',
                                       
Channel=> 'Local/s@custom-play-spy',
                                       
Application => 'Playback',
                                       
Data => $sound_file,
                                       
Variable => "chan=$chan",
                                       
Async => 1

                               
},sub { return }, 7);
               
delete($masq{$chan});
       
}else{  
               
print "detected MOH stop,but no transfer recorded\n";#,Dumper($event);
       
}
 
}else{

 
}
}
ссылка удалить спам редактировать

ответил Jun 5 '13

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

обновил Jun 5 '13

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: Jun 5 '13

Просмотрен: 381 раз

Обновлен: Jun 05 '13

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.