Внимание!
Эта wiki об устаревших версиях
Документация к актуальной версии интеграции 1С и телефонии доступна по ссылке

Инструменты пользователя

Инструменты сайта


astpanel:dialplan_miko_ajam:configs

Это старая версия документа!


Описание конфигурационный файлов

AJAM / AMI

Эти настройки крайне важны. Необходимо настроить использование API Asterisk.
Подробное описание доступно на странице.

manager.conf
 
[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
http.conf
 
[general]
enabled=yes
enablestatic=yes
bindaddr=0.0.0.0
bindport=8088
prefix=asterisk

Переадресации

Следующие опции обязательно должны быть назначены. Значения могут быть произвольными.
features.conf
 
[general]
; Необходимо настроить парковку:
parkext => 700                  
parkpos => 701-720               
context => parkedcalls          
parkinghints = yes              

[featuremap]                    

blindxfer => ##  ; Это лишь пример значения. Можно установить свое.              
disconnect => *0 ; Это лишь пример значения. Можно установить свое. 
; ОБЯЗАТЕЛЬНО включите опцию "atxfer"            
atxfer => **     ; Это лишь пример значения. Можно установить свое.               
Обратите внимание!!! Пользователей необходимо отучить использовать кнопку Transfer (SIP Transfer) на телефонном аппарате. Asterisk плохо работает с таким звонками, в истории такие вызовы отображаются не корректно.

Следует использовать переадресацию средствами feature кодов.

История звонков

cdr.conf
 
[general]
enable=yes
cel.conf
 
;
; Asterisk Channel Event Logging (CEL)
;
[general]

enable=yes
apps=all
events=BRIDGE_START,BRIDGE_END
; asterisk 13
;events=BRIDGE_EXIT,BRIDGE_ENTER
cdr_manager.conf
 
;
; 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

res_odbc.conf
 
; настройка соединения 
[PT1C_asteriskcdrdb]
enabled=>yes
dsn=>MySQL-asteriskcdrdb
pooling=>no
limit=>10
pre-connect=>yes
username=>root; имя пользователя базы данных
password=>123 ; пароль пользователя базы данных
cdr_adaptive_odbc.conf
 
[PT1C_Global]
connection=PT1C_asteriskcdrdb
table=PT1C_cdr
alias recordingfile=>recordingfile
alias start=>calldate
cel_odbc.conf
 
[PT1C_cel]
connection=PT1C_asteriskcdrdb
loguniqueid=yes
table=cel

SIP

sip.conf
 
[general]
callcounter=yes
callevents=yes

; call-limit - не рекомендуем использовать этот параметр. По возможности его следует заменить на busylevel. 

Обратите внимание на параметр call-limit, см. документацию

Extensions

extensions.conf
 
[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 для обработки входящего звонка

Подробнее об отслеживании состояния каналов...

Запись разговоров

При настройке записи разговоров, в поле таблицы 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» будет производить поиск записи именно в этой директории.

Перехват на ответственного

Если необходима работы этой функции, следует выполнить рекомендации, описанные в инструкциях.

Обратно к основной инструкции...

Переадресация на мобильный

; Для того, чтобы поместить в базу данных 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

Коментарии

astpanel/dialplan_miko_ajam/configs.1542284012.txt.gz · Последние изменения: 2018/11/15 12:13 — apor