====== Описание конфигурационный файлов ====== [[astpanel:dialplan_miko_ajam|Обратно к основной инструкции...]] ===== AJAM / AMI ===== Эти настройки крайне важны. Необходимо настроить использование API Asterisk. \\ Подробное описание доступно на [[doc:1cajam:astcastomize_v6|странице]]. [general] enabled = yes port = 5038 bindaddr = 0.0.0.0 allowmultiplelogin = yes webenabled = yes httptimeout = 60 [1cami] ; имя пользователя AMI secret = PASSWORD1cami ; пароль пользователя AMI deny=0.0.0.0/0.0.0.0 permit=0.0.0.0/0.0.0.0 read = call,cdr,user write = call,originate,reporting ;;; Дополнительные опции для ASTERISK 11+ ;;; Начало ;;;; eventfilter=!Event: Newexten eventfilter=!Event: DeviceStateChange eventfilter=!Event: NewConnectedLine eventfilter=!Event: Newchannel eventfilter=!Event: SoftHangupRequest eventfilter=!Event: HangupRequest eventfilter=!Event: BridgeDestroy eventfilter=!Event: MusicOnHoldStop eventfilter=!Event: NewCallerid eventfilter=!Event: LocalBridge ;;; Дополнительные опции для ASTERISK 11+ ;;; Конец ;;;; [getvar1c] ; дополнительная "локальная" учетная запись ; Она используется в скрипте "/var/www/admin/1c/getvar/index.php" ; Если меняете логин и пароль - необходимо сменить их и в скрипте secret = dfsdfsdjfSSS33fksd deny=0.0.0.0/0.0.0.0 permit=127.0.0.1/255.255.255.255 read = call,cdr,user write = call,originate,reporting [general] enabled=yes enablestatic=yes bindaddr=0.0.0.0 bindport=8088 prefix=asterisk ===== Переадресации ===== Следующие опции обязательно должны быть назначены. Значения могут быть произвольными. [general] ; Необходимо настроить парковку: parkext => 700 parkpos => 701-720 context => parkedcalls parkinghints = yes [featuremap] blindxfer => ## ; Это лишь пример значения. Можно установить свое. disconnect => *0 ; Это лишь пример значения. Можно установить свое. ; ОБЯЗАТЕЛЬНО включите опцию "atxfer" atxfer => ** ; Это лишь пример значения. Можно установить свое. Обратите внимание!!! Пользователей необходимо отучить использовать кнопку **Transfer** (SIP Transfer) на телефонном аппарате. Asterisk плохо работает с таким звонками, в истории такие вызовы отображаются не корректно. \\ \\ **Следует использовать переадресацию средствами feature кодов.** ===== История звонков ===== [general] enable=yes ; ; Asterisk Channel Event Logging (CEL) ; [general] enable=yes apps=all events=BRIDGE_START,BRIDGE_END ; asterisk 13 ;events=BRIDGE_EXIT,BRIDGE_ENTER ; ; Asterisk Call Management CDR ; [general] enabled = yes [mappings] ; В AMI event CDR будем возвращать дополнительную информацию ; Имя файла записи разговора ${CDR(recordingfile)} - переменная dialplan, нужно ее определить recordingfile => recordingfile ; Идентификатор звонка ; Имя файла записи разговора ${CDR(linkedid)} - переменная dialplan, определена в Asterisk 1.8+ linkedid => linkedid ===== ODBC MySQL ===== ; настройка соединения [PT1C_asteriskcdrdb] enabled=>yes dsn=>MySQL-asteriskcdrdb pooling=>no limit=>10 pre-connect=>yes username=>root; имя пользователя базы данных password=>123 ; пароль пользователя базы данных [PT1C_Global] connection=PT1C_asteriskcdrdb table=PT1C_cdr alias recordingfile=>recordingfile alias start=>calldate [PT1C_cel] connection=PT1C_asteriskcdrdb loguniqueid=yes table=cel ===== SIP ===== [general] callcounter=yes callevents=yes ; call-limit - не рекомендуем использовать этот параметр. По возможности его следует заменить на busylevel. Обратите внимание на параметр **call-limit**, [[astpanel:ats:asterisk:auto_answer|см. документацию]]... ===== Extensions ===== [globals] ; Необходимо описать параметры подключения к базе данных MySQL AMPDBENGINE=mysql AMPDBNAME=asteriskcdrdb AMPDBHOST=127.0.0.1 AMPDBUSER=root AMPDBPASS=123 ; пароль пользователя базы данных MySQL ; Установите контекст для переадресаций. ; Панель телефонии будет его использовать при переводах. TRANSFER_CONTEXT=internal [internal] ; ОБЯЗАТЕЛЬНО включите контекст парковки в те контексты, ; которые используют SIP учетные записи телефонов сотрудников; include => parkedcalls [internal-hint] ; необходимо описать хинты для отслеживания состояния каналов exten => 231,hint,SIP/160-231 ;231 - добавочный номер; 160-231 - имя учетной записи SIP (sip.conf) exten => 232,hint,SIP/232 ;232 - добавочный номер; 232 - имя учетной записи SIP (sip.conf) [miko_ajam] ; ... пример контекста описан в файле ; "dialplan_miko_ajam/test_sample_configs/extensions.conf" [miko_ajam_fax_tx] ; ... пример контекста описан в файле ; "dialplan_miko_ajam/test_sample_configs/extensions.conf" ; Пример входящего контекста [SIP-PROVIDER-incoming] exten => _X!,1,NoOp(--- Incoming call ---) ; Для определения внешней линии (модуль статистики) same => n,Set(__FROM_DID=${EXTEN}); EXTEN - номер, на который звонит клиент same => n,Set(__FROM_CHAN=${CHANNEL}); Канал клиента same => n,Set(CDR(did)=${FROM_DID}) ; Для работы функции перехвата нужно вызвать UserEvent "Interception" same => n,UserEvent(Interception,CALLERID: ${CALLERID(num)},chan1c: ${CHANNEL}) ; далее произвольный dialplan для обработки входящего звонка [[astpanel:ats:asterisk:hints_table|Подробнее об отслеживании состояния каналов...]] ==== Запись разговоров ==== При настройке записи разговоров, в поле таблицы CDR "recordingfile" должно сохраняться имя файла записи разговора. Путь к файлу записи должен указываться относительно директории "**/var/spool/asterisk/monitor/**. В дальнейшем скрипт "**dialplan_miko_ajam/1c/download/index.php**" будет производить поиск записи именно в этой директории. Пример реализации записи разговоров: exten => 1000,n,Set(RecFile=${STRFTIME(${EPOCH},,%Y-%m/%d)}/in_${CDR(src)}_${STRFTIME(${EPOCH},,%Y-%m-%d-%H-%M-%S)}.gsm) exten => 1000,n,Set(CDR(recordingfile)=${RecFile}) exten => 1000,n,MixMonitor(${RecFile}) ==== Факсы ==== При отправке / получении факсимильных сообщений необходимо фиксировать эту информацию. ; при отправке exten => h,n,Set(CDR(recordingfile)=${faxfile}) exten => h,n,Set(CDR(userfield)=SendFAX) ; при получении exten => h,n,Set(CDR(recordingfile)=${faxfile}) exten => h,n,Set(CDR(userfield)=ReceiveFAX) Путь к файлу записи должен указываться относительно директории "**/var/spool/asterisk/fax/**. В дальнейшем скрипт "**dialplan_miko_ajam/1c/download/index.php**" будет производить поиск записи именно в этой директории. ==== Перехват на ответственного ==== Если необходима работы этой функции, следует выполнить рекомендации, описанные в [[astpanel:ats:asterisk:interception_v6|инструкциях]].\\ ==== Функция "Ответить на звонок" ==== [[astpanel:ats:asterisk:auto_answer|Инструкции по настройке]].\\ [[astpanel:enterprise:ordinary#funkcija_otvetit_na_zvonok|Упр. панель телефонии]].\\ [[astpanel:enterprise:managed#funkcija_otvetit_na_zvonok|Об. панель телефонии]].\\ ==== Переадресация на мобильный ==== На текущий момент функция может работать только с АТС Askozia 5 и более ранних версиях. \\ Для настройки функции в собственной сборке asterisk потребуются правки со стороны панели телефонии в 1С. Пример dialplan (extensions,conf) для внутреннего номера 104: [internal] exten => 104,1,Set(dstnum=${EXTEN}); exten => 104,n,Set(fw=${DB(CF/${dstnum})}) exten => 104,n,Set(dstcontext=internal) exten => 104,n,ExecIf($["${fw}x" != "x"]?Goto(${dstcontext},${fw},1) exten => 104,n,Dial(SIP/${EXTEN},20,Tte) exten => 104,n,Hangup exten => 74922293045,1,Dial(SIP/TEST-PROVIDER/${EXTEN},20,Tte) Теперь детальнее: ; Для того, чтобы поместить в базу данных Asterisk ; информацию о заменяющем номере можно выполнить команду: ; database put CF 104 74922293045 ; Команду можно выполнить в CLI консоли Asterisk ; Аналог этой команды выполняет панель телефонии для 1С при установке статуса "Отошел" / "На мобильном". ; Определяем номер, на который осуществляется вызов. Set(dstnum=${EXTEN}); Номер назначения, к примеру внутренний номер сотрудника. ; Получаем значение резервного номера из AstDB Set(fw=${DB(CF/${dstnum})}) ; Устанавливаем контекст назначания. В нем должен быть определен "fw" - резервный номер. Set(dstcontext=internal) ; Если полученное значение не пустое, то выполняем переадресацию в контекст назначения: ExecIf($["${fw}x" != "x"]?Goto(${dstcontext},${fw},1) ; Согласно текущему примеру, в контексте internal должен быть определен exten 74922293045. ; Проверка ; dialplan show 74922293045@internal ===== Парковка вызовов ===== **Обратите внимание**: номера парковки не должны пересекаться с существующими внутренними номерами (**extensions**). Для настройки ранних версий asterisk необходимо поправить файл /etc/asterisk/features.conf: [general] ; Необходимо настроить парковку: parkext => 700 ; Не актуально для asterisk13 parkpos => 701-720 ; Не актуально для asterisk13 context => parkedcalls ; Не актуально для asterisk13 parkinghints = yes ; Не актуально для asterisk13 Для asterisk13 опции были перенесены в файл /etc/asterisk/res_parking.conf [general] parkeddynamic = yes [default] context => parkedcalls parkedcallreparking = caller parkedcalltransfers = caller parkext => 700 findslot => next comebacktoorigin=no comebackcontext = parkedcallstimeout parkpos => 701-720 Опишем контекст, в котором будет описана логика возврата с парковки по таймауту. [internal] ; ОБЯЗАТЕЛЬНО включите контекст парковки в те контексты, ; которые используют SIP учетные записи телефонов сотрудников; include => parkedcalls [parkedcallstimeout] exten => s,1,NoOp(This is all that happens to parked calls if they time out.) same => n,Goto(internal,${PARKER:4},1) same => n,Hangup() Проверка. Выполняем команду в CLI asterisk "**parking show**": ~ # asterisk -rx 'parking show' Parking General Options ----------------------- Dynamic Parking : yes Parking Lot: default -------------------------------------------------------------------------- Parking Extension : 700 Parking Context : parkedcalls Parking Spaces : 701-720 Parking Time : 45 sec Comeback to Origin : no Comeback Context : parkedcallstimeout Comeback Dial Time : 30 sec MusicOnHold Class : Enabled : yes Dynamic : no [[astpanel:dialplan_miko_ajam|Обратно к основной инструкции...]] ===== Коментарии ===== ~~DISQUS~~