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

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

0

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


**P.S. вопрос решил с помощью xfersound=beep в features_general_custom.conf**
удалить переоткрыть спам изменить тег редактировать

спросил 2013-06-05 10:08:34 +0400

sorgchik Gravatar sorgchik
85 37 8 17

обновил 2013-06-05 11:46:58 +0400

Comments

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

meral ( 2013-06-05 12:09:39 +0400 )редактировать

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

sorgchik ( 2013-06-05 12:20:58 +0400 )редактировать

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{

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

ответил 2013-06-05 10:43:28 +0400

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

обновил 2013-06-05 10:46:04 +0400

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

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

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

Статистика

Задан: 2013-06-05 10:08:34 +0400

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

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

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