Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
abills:docs:call_center [2015/04/14 15:48]
kodr [Настройка ASTERISK]
abills:docs:call_center [2015/12/05 17:50] (текущий)
Строка 38: Строка 38:
   * Бесплатные секунды в звонке   * Бесплатные секунды в звонке
   * Предоплаченное время направлений   * Предоплаченное время направлений
-==== extensions ​====+==== Добавление Транка ​====
  
-В extensions.conf добавить 
  
-**/​etc/​asterisk/​extensions.conf**+==== Создание приветствий ====
  
-  [out-calls] +==== Создание сообщений ​====
-  exten => s,​1,​Answer +
-  exten => s,​2,​Playback(${RECORD}) +
-  ;​exten ​=> s,​n,​Set(CHOICE=""​) +
-  ;​exten ​=> s,​n,​Read(CHOICE,,​1,,​1,​10) +
-  ;​exten ​=> s,​n,​GotoIf($["​${CHOICE}" ​"​0"​]?​s,​2) +
-  exten => s,n,Hangup+
  
-Три закомментированные строки добавляют повтор ​сообщения для клиента +  * [[abills:​docs:​manual:​admin:​callcenter:​callcenter_messages|Сообщения]] 
-после нажатия им кнопки 0 на телефоне. Это если повтор понадобится.+====IVR (голосовое меню)==== 
 +  * [[abills:​docs:​manual:​admin:​callcenter:​callcenter_ivr|IVR (голосовое меню)  заведение]]
  
-==== Скрипт обзвона====+====Встроенные функции==== 
 +  
 +===Аутентификация абонента===
  
 +===Сведения о балансе===
  
-**out-calls.pl**+===Прием голосовых сообщений=== 
 + 
 +===Отображение информации об услугах=== 
 + 
 +===Активация кредита=== 
 + 
 +===Новости и акции=== 
 + 
 +=====AbillS===== 
 + 
 +''​mysql ​--default-character-set=utf8 -D abills < call_center.sql -p''​
  
-  #​!/​usr/​bin/​perl -w 
-  ​ 
-  use strict; 
-  use DBI; 
-  ​ 
-  my $dbname='​abills'; ​                   # Настройки подключения к базе 
-  my $login='​root';​ 
-  my $passwd='​pass';​ 
-  ​ 
-  my $voice_file='​ru/​demo-instruct'; ​     # файл для проигрывания в директории /​var/​lib/​asterisk/​sounds 
-  my $caller='​111'; ​                      # Номер звонящего 
-  my $max_retries=4; ​                     # Количество попыток дозвона,​ если звонок не был принят 
-  my $retry_pause=36; ​                    # Интервал между попытками в секундах 
-  my $debug=1; ​                           # режим отладочных сообщений 
-  ​ 
-  my $filedir='/​var/​spool/​asterisk/​outgoing';​ 
-  my $tmpdir='/​tmp';​ 
-  my $internal_pause=10;​ 
-  ​ 
-  my %MOBILE_PREFS=( ​                     # для префиксов мобильщиков автоматически в начале добавляется 0   ​если ​  ​его нет 
-  '​50'​ => 1, 
-  '​63'​ => 1, 
-  '​67'​ => 1, 
-  '​93'​ => 1, 
-  '​96'​ => 1, 
-  '​97'​ => 1, 
-  '​98'​ => 1, 
-  ); 
-  ​ 
-  my $default_trunk='​SIP/​111'; ​           # Исходящий транк asterisk по умолчанию 
-  ​ 
-  my %TRUNKS=( ​                           # транки для для отдельных направлений 
-  '​067'​ => '​DAHDI/​g0',​ 
-  '​097'​ => '​DAHDI/​g0',​ 
-  '​096'​ => '​Dongle/​i:​359124037702136',​ 
-  ); 
-  ​ 
-  out_call('​0964742263'​); ​        # убрать после тестов 
-  exit 0;                 # убрать после тестов 
-  ​ 
-  my $dbh = DBI->​connect("​DBI:​mysql:​$dbname",​ $login, $passwd) || die "Could not connect to database: ​  ​$DBI::​errstr";​ 
-  ​ 
-  my $sql="​SELECT phone FROM users_pi as a join bills as b on (a.uid=b.uid) WHERE deposit<​0";​ 
-  my $sth = $dbh->​prepare($sql);​ 
-  $sth->​execute();​ 
-  while (my $result = $sth->​fetchrow_hashref()) 
-  { 
-      my $phone=$result->​{phone};​ 
-      $phone=~s/​\+/​00/​g;​ 
-      $phone=~s/​\D//​g;​ 
-      $phone=~s/​^00380/​0/​g;​ 
-      if ((length($phone)==9) and (substr($phone,​0,​1) ne '​0'​) and ($MOBILE_PREFS{substr($phone,​0,​2)} ne ''​)) 
-      { 
-          $phone='​0'​.$phone;​ 
-      } 
-      if ((length($phone)>​5) and (length($phone)<​11) and (substr($phone,​0,​2) ne '​00'​)) { 
-          print "​Calling $phone\n"​ if $debug; 
-          out_call($phone);​ 
-          print "​Sleeping $internal_pause s\n" if $debug; 
-          sleep $internal_pause;​ 
-      } 
-      else { 
-        print STDERR "​Invalid number: '​$result->​{phone}'​\n"​ if $debug; 
-      } 
-  } 
-  ​ 
-  $dbh->​disconnect();​ 
-    
-  exit 0; 
-  ​ 
-  sub out_call 
-  { 
-      my $phone=$_[0];​ 
-      my $trunk=$default_trunk;​ 
-      foreach my $i (keys %TRUNKS) { 
-          if ($phone=~/​^$i/​) { 
-              $trunk=$TRUNKS{$i};​ 
-          } 
-      } 
-      open F,">​$tmpdir/​call-$phone";​ 
-      print F <<​EOT;​ 
-  Channel: $trunk/​$phone 
-  Callerid: $caller 
-  MaxRetries: $max_retries 
-  RetryTime: $retry_pause 
-  WaitTime: 25 
-  Context: out-calls 
-  Extension: s 
-  Priority: 1 
-  Setvar: RECORD=$voice_file 
-  EOT 
-      close F; 
-      rename "​$tmpdir/​call-$phone","​$filedir/​call-$phone";​ 
-  } 
-  ​ 
-  ​ 
-  ​ 
-  ​ 
-  ​ 
-  ​ 
-=====ABillsS===== 
  
 |$conf{CALLCENTER_MENU}=1;​ | Включить меню для Call Center | |$conf{CALLCENTER_MENU}=1;​ | Включить меню для Call Center |