AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Запись звонка в файл

Newbies/FAQ Forum 10 сообщений -
#1

Пытаюсь настроить запись звонков:
Код:
exten => _X.,1,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _X.,n,MixMonitor(/usr/local/www/hosts/test.xxx.ru/records/${STRFTIME(,,%G/%m/%d)}/${fname}.wav)
exten => _X.,n,Dial(SIP/gsm2/${EXTEN})

Такая конструкция даёт вот такой лог:
Код:
-- Executing [84712350410@office:1] Dial("SIP/203-00000011", "SIP/gsm2/84712350410") in new stack
-- Called gsm2/84712350410
-- SIP/gsm2-00000012 is making progress passing it to SIP/203-00000011
-- Got SIP response 503 "Service Unavailable" back from 192.168.10.100
-- SIP/gsm2-00000012 is circuit-busy
== Everyone is busy/congested at this time (1:0/1/0)
-- Executing [84712350410@office:2] MixMonitor("SIP/203-00000011", "/usr/local/www/hosts/test.xxx.ru/records/2011/04/21/.wav") in new stack
-- Executing [84712350410@office:3] Dial("SIP/203-00000011", "SIP/gsm2/84712350410") in new stack
-- Called gsm2/84712350410
== Begin MixMonitor Recording SIP/203-00000011
-- SIP/gsm2-00000013 is making progress passing it to SIP/203-00000011
-- Got SIP response 503 "Service Unavailable" back from 192.168.10.100
-- SIP/gsm2-00000013 is circuit-busy
== Everyone is busy/congested at this time (1:0/1/0)
-- Auto fallthrough, channel 'SIP/203-00000011' status is 'CONGESTION'
== MixMonitor close filestream
== End MixMonitor Recording SIP/203-00000011


Хотя по-идее должен быть файл с дайтой звонка, звонящим, и номером вызываемого абонента. Вместо этого пишет файл ".vaw". Т.е. всякий последний звонок перезаписывает предидущий. Что не так делаю? Помогите пожалуйста.
#2

ну а кавычки где при задании строковой переменной?
Код:
exten => _X.,1,Set(fname="${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN}")
#3

Суть не в кавычках. Set не вызывается. Почему-то вызывается Dial.
_________________
Asterisk 1.4.30 @ Ubuntu 9.04 + Cisco MC3810 + NEC NEAX 2000IPS + Polycom IP Phones
#4

а вообще-то да, не заметил
#5

А можно весь extensions.conf глянуть? Что-то подозрительно странное...
_________________
Внимание! Свет в конце тоннеля может быть светом фар приближающегося поезда!
Ubuntu 10.04/12.04 - Asterisk 1.8.11.0-rc2/1.8.14.1/1.8.17.0/10.10.0
#6

Скорее всего в одном контексте есть строчки

для всех:

Код:
exten => _X.,1,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _X.,n,MixMonitor(/usr/local/www/hosts/test.xxx.ru/records/${STRFTIME(,,%G/%m/%d)}/${fname}.wav)
exten => _X.,n,Dial(SIP/gsm2/${EXTEN})


и для боссов:

Код:
exten => _X./_не пишущиеся пиры,1,Dial(SIP/gsm2/${EXTEN})


чтобы работало, попробуйте сделать так. Для всех оставьте как есть, а для боссов:

Код:
exten => _X./_не пишущиеся пиры,1,NoOp()
exten => _X./_не пишущиеся пиры,n,NoOp()
exten => _X./_не пишущиеся пиры,n,Dial(SIP/gsm2/${EXTEN})
#7

Проще для боссов вообще отдельный контекст написать, чтобы не пересекались никогда.
_________________
Внимание! Свет в конце тоннеля может быть светом фар приближающегося поезда!
Ubuntu 10.04/12.04 - Asterisk 1.8.11.0-rc2/1.8.14.1/1.8.17.0/10.10.0
#8

dim, действиетльно запись назначена на контекст _X. и одновременно на внутренний номер. Сейчас попробую как вы посоветовали.
Кстати, можно ли выделенную жирным конструкцию
Цитата:
;--- USER_2 ---
exten => 202,1,Answer()
exten => 202,n,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => 202,n,MixMonitor(/usr/local/www/hosts/test.xxx.ru/records/${STRFTIME(,,%G/%m/%d)}/${fname}.wav)

exten => 202,n,Dial(SIP/202,50,trm)
;--- USER_3 ---
exten => 203,1,Answer()
exten => 203,n,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => 203,n,MixMonitor(/usr/local/www/hosts/test.xxx.ru/records/${STRFTIME(,,%G/%m/%d)}/${fname}.wav)

exten => 203,n,Dial(SIP/203,50,trm)

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

Вобще можно шаблон какой-нить создать в extensions.conf, наподобие того как создаются в квадратных скобках([]) в sip.conf, и использовать его для каждого внутреннего номера.
#9

А зачем такие сложности-то?
_20X, то_что_написано
_20X,n,Dial(SIP/${EXTEN},50,trm)
И, кстати, какой великий смысл делать ответ первой строкой? Зачем он Вам вообще нужен?

_________________
Внимание! Свет в конце тоннеля может быть светом фар приближающегося поезда!
Ubuntu 10.04/12.04 - Asterisk 1.8.11.0-rc2/1.8.14.1/1.8.17.0/10.10.0
#10

Без Answer() что-то не работало. То ли переключение, то ли с канала на канал не соединялось.

За подсказку спасибо. С _20X гораздо лучше.

В итоге вот так пишет всё:

Код:
;--- USERS ---
exten => _20X,1,Answer()
exten => _20X,n,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _20X,n,MixMonitor(/usr/local/www/hosts/test.xxx.ru/records/${STRFTIME(,,%G/%m/%d)}/${fname}.wav)
exten => _20X,n,Dial(SIP/${EXTEN},50,trm)