Тема: Нужен специалист: Panasonic KX-TDA200 & Asterisk
Добрый день!
Имеется АТС Panasonic KX-TDA200 с установленной KX-TDA0188 (E1/R2) и Asterisk 1.6.2/DAHDI 2.3.0 с TE122P. Требуется организовать следующее: все входящие с города на Panasonic переадресуются на Asterisk, там включается запись разговора и отправляется назад на TDA200. Грубо говоря, надо не изменяя работу АТС организовать запись звонков Asterisk’ом.
Поддержку R2 к Asterisk’у прикрутили.
Звонки с Asterisk’а на Panasonic, вроде бы, организовали. Проверить смогу только завтра. Если все в порядке - изменю пост.
Входящие звонки с Panasonic’а Asterisk видит, но никак не реагирует. В консоль сыплется:
New MFC/R2 call detected on chan 31.
New MFC/R2 call detected on chan 30.
MFC/R2 call disconnected on channel 31
MFC/R2 call end on channel 31
New MFC/R2 call detected on chan 31.
MFC/R2 call disconnected on channel 30
MFC/R2 call end on channel 30
New MFC/R2 call detected on chan 30.
MFC/R2 call disconnected on channel 31
MFC/R2 call end on channel 31
MFC/R2 call disconnected on channel 30
MFC/R2 call end on channel 30
Ищется специалист, способный организовать все это дело как надо (ну или лишь бы работало).
Удаленный доступ к обеим АТСкам имеется (ssh, rdp).
Москва
e-mail: a.petrachuk@gmail.com
phone: 8-985-771-2072
icq: 5163112
jabber: alexey@cassilis.net
Хи-хи 😊 .. я это уже читал :coolsmile: ... но пока подожду, когда наступит отпуск..
Об этом сейчас много где пишут. :-D
Скорей бы уже отпуск... Возьметесь?
У меня организованна запись разговоров на Asterisk, во только все входящие и исходящие звонки у меня по IP на Астериск.
Дело, вроде как и не в записи, а в “подружить две железки”... 😊
ты бы для начала хоть что-нибудь бы выложил.. а то кекс его знает, что у тебя где наколдовано.
Где же Вы взяли плату для панаса под R2, сигнализация в России запрещенная вроде как.
Не знаю как панас, а вот астериск настраивавших под R2 в России вероятно можно будет посчитать на пальцах одной руки.
проще было бы в разрыв между панасом и астериском циску воткнуть с потоком, было бы проще и надежней решение, а главное со стороны астериска было бы проще настроить
ты бы для начала хоть что-нибудь бы выложил.. а то кекс его знает, что у тебя где наколдовано.
chan_dahdi.conf
[trunkgroups]
[channels]
; MFC/R2 signalling
signalling=mfcr2
mfthreshold=0
mfcr2_mfback_timeout=500
; MFC/R2 variant. This depends on the OpenR2 supported variants
; A list of values can be obtained with the command r2test -l
; common values are:
; mx (Mexico)
; br (Brazil)
; ar (Argentina)
; itu (per ITU spec)
mfcr2_variant=itu
; whether or not to get the ANI before getting DNIS.
; some telcos require ANI first some others do not care
; if this go wrong, change this value
; mfcr2_get_ani_first=no
; Max amount of ANI to ask for
; mfcr2_max_ani=10
; Max amount of DNIS to ask for
; mfcr2_max_dnis=4
; Caller Category to send
; national_subscriber
; national_priority_subscriber
; international_subscriber
; international_priority_subscriber
; collect_call
; usually national_subscriber works just fine
; you can change this setting from the dialplan
; by setting the variable MFCR2_CATEGORY
; (remember to set _MFCR2_CATEGORY from originating channels)
; MFCR2_CATEGORY will also be a variable available
; on incoming calls set to the value received from
; the far end
; mfcr2_category=national_subscriber
; Call logging is stored at the Asterisk
; logging directory specified in asterisk.conf
; plus mfcr2/<whatever you put here>
; if you specify 'span1' here and asterisk.conf has
; as logging directory /var/log/asterisk then the full
; path to your MFC/R2 call logs will be /var/log/asterisk/mfcr2/span1
; (the directory will be automatically created if not present already)
; remember to set mfcr2_call_files=yes
mfcr2_logdir=/var/log/asterisk/mfcr2
; whether or not to drop call files into mfcr2_logdir
; mfcr2_call_files=yes|no
; MFC/R2 valid logging values are: all,error,warning,debug,notice,cas,mf,stack,nothing
; error,warning,debug and notice are self-descriptive
; 'cas' is for logging ABCD CAS tx and rx
; 'mf' is for logging of the Multi Frequency tones
; 'stack' is for very verbose output of the channel and context call stack, only useful
; if you are debugging a crash or want to learn how the library works. The stack logging
; will be only enabled if the openr2 library was compiled with -DOR2_TRACE_STACKS
; You can mix up values, like: loglevel=error,debug,mf to log just error, debug and
; multi frequency messages
; 'all' is a special value to log all the activity
; 'nothing' is a clean-up value, in case you want to not log any activity for
; a channel or group of channels
; BE AWARE that the level of output logged will ALSO depend on
; the value you have in logger.conf, if you disable output in logger.conf
; then it does not matter you specify 'all' here, nothing will be logged
; so logger.conf has the last word on what is going to be logged
; mfcr2_logging=all
; MFC/R2 value in milliseconds for the MF timeout. Any negative value
; means 'default', smaller values than 500ms are not recommended
; and can cause malfunctioning. If you experience protocol error
; due to MF timeout try incrementing this value in 500ms steps
;mfcr2_mfback_timeout=-1
; MFC/R2 value in milliseconds for the metering pulse timeout.
; Metering pulses are sent by some telcos for some R2 variants
; during a call presumably for billing purposes to indicate costs,
; however this pulses use the same signal that is used to indicate
; call hangup, therefore a timeout is sometimes required to distinguish
; between a *real* hangup and a billing pulse that should not
; last more than 500ms, If you experience call drops after some
; minutes of being stablished try setting a value of some ms here,
; values greater than 500ms are not recommended.
; BE AWARE that choosing the proper protocol mfcr2_variant parameter
; implicitly sets a good recommended value for this timer, use this
; parameter only when you *really* want to override the default, otherwise
; just comment out this value or put a -1
; Any negative value means 'default'.
; mfcr2_metering_pulse_timeout=-1
; Brazil uses a special calling party category for collect calls (llamadas por cobrar)
; instead of using the operator (as in Mexico). The R2 spec in Brazil says a special GB tone
; should be used to reject collect calls. If you want to ALLOW collect calls specify 'yes',
; if you want to BLOCK collect calls then say 'no'. Default is to block collect calls.
; (see also 'mfcr2_double_answer')
; mfcr2_allow_collect_calls=no
; This feature is related but independent of mfcr2_allow_collect_calls
; Some PBX's require a double-answer process to block collect calls, if
; you ever have problems blocking collect calls using Group B signals (mfcr2_allow_collect_calls=no)
; then you may want to try with mfcr2_double_answer=yes, this will cause that every answer signal
; is changed by answer->clear back->answer (sort of a flash)
; (see also 'mfcr2_allow_collect_calls')
; mfcr2_double_answer=no
; This feature allows to skip the use of Group B/II signals and go directly
; to the accepted state for incoming calls
; mfcr2_immediate_accept=no
; WARNING: advanced users only! I really mean it
; this parameter is commented by default because
; YOU DON'T NEED IT UNLESS YOU REALLY GROK MFC/R2
; READ COMMENTS on doc/r2proto.conf in openr2 package
; for more info
; mfcr2_advanced_protocol_file=/path/to/r2proto.conf
; Brazil use a special signal to force the release of the line (hangup) from the
; backward perspective. When mfcr2_forced_release=no, the normal clear back signal
; will be sent on hangup, which is OK for all mfcr2 variants I know of, except for
; Brazilian variant, where the central will leave the line up for several seconds (30, 60)
; which sometimes is not what people really want. When mfcr2_forced_release=yes, a different
; signal will be sent to hangup the call indicating that the line should be released immediately
; mfcr2_forced_release=no
; Whether or not report to the other end 'accept call with charge'
; This setting has no effect with most telecos, usually is safe
; leave the default (yes), but once in a while when interconnecting with
; old PBXs this may be useful.
; Concretely this affects the Group B signal used to accept calls
; mfcr2_charge_calls=yes
; Span 1: WCT1/0 "Wildcard TE122 Card 0" (MASTER) HDB3/
;group=1
;context=incoming
;signalling=mfcr2
;channel => 1-15,17-31
;group=2
;context=incomingr2
;signalling=mfcr2
;channel => 17-31
resetinterval=never
context=inc
group=1
echocancel=yes
signalling=mfcr2
mfcr2_get_ani_first=no
mfcr2_max_ani=10
mfcr2_max_dnis=4
mfcr2_category=national_subscriber
mfcr2_mfback_timeout=-1
mfcr2_metering_pulse_timeout=-1
channel => 1-15,17-31
extensions.conf
[globals]
OUTTRUNK=DAHDI/1
;INBTRUNK=DAHDI/1/84997456546
INBTRUNK=DAHDI/g1
[general]
autofallthrough=yes
[default]
exten => s,1,Verbose(1,Unrouted call handler)
exten => s,n,Answer()
exten => s,n,Wait(1)
exten => s,n,Playback(tt-weasels)
exten => s,n,Hangup()
[inc]
; Входящие вызовы, направляются в этот контекст из chan_dahdi.conf и
; SIP-провайдеров
; Заворачиваем всех на 777
exten => 701,1,Answer()
exten => 701,n,Monitor(wav,/home/nordis/calls/${STRFTIME(${EPOCH},GMT+3,%C%y%m%d%H%M)}-${CALLERID(ani)},mb)
exten => 701,n,Dial(DAHDI/2,,r)
exten => 701,n,Hangup()
exten => s,1,Answer()
exten => s,n,Monitor(wav,/home/nordis/calls/${STRFTIME(${EPOCH},GMT+3,%C%y%m%d%H%M)}-${CALLERID(ani)},mb)
exten => s,n,Dial(${OUTTRUNK},,r)
exten => s,n,Hangup()
exten => i,1,Answer()
exten => i,n,Monitor(wav,/home/nordis/calls/${STRFTIME(${EPOCH},GMT+3,%C%y%m%d%H%M)}-${CALLERID(ani)},mb)
exten => i,n,Dial(${OUTTRUNK},,r)
exten => i,n,Hangup()
exten => t,1,Answer()
exten => t,n,Monitor(wav,/home/nordis/calls/${STRFTIME(${EPOCH},GMT+3,%C%y%m%d%H%M)}-${CALLERID(ani)},mb)
exten => t,n,Dial(${OUTTRUNK},,r)
exten => t,n,Hangup()
[outgoing]
; Заворачиваем всех на 777
exten => _X.,1,Answer()
exten => _X.,n,Monitor(wav,/home/nordis/calls/${STRFTIME(${EPOCH},GMT+3,%C%y%m%d%H%M)}-${CALLERID(ani)},mb)
exten => _X.,n,Dial(${INBTRUNK},,r)
exten => _X.,n,Hangup()
exten => s,1,Answer()
exten => s,n,Monitor(wav,/home/nordis/calls/${STRFTIME(${EPOCH},GMT+3,%C%y%m%d%H%M)}-${CALLERID(ani)},mb)
exten => s,n,Dial(${INBTRUNK},,r)
exten => s,n,Hangup()
exten => i,1,Answer()
exten => i,n,Monitor(wav,/home/nordis/calls/${STRFTIME(${EPOCH},GMT+3,%C%y%m%d%H%M)}-${CALLERID(ani)},mb)
exten => i,n,Dial(${INBTRUNK},,r)
exten => i,n,Hangup()
exten => t,1,Answer()
exten => t,n,Monitor(wav,/home/nordis/calls/${STRFTIME(${EPOCH},GMT+3,%C%y%m%d%H%M)}-${CALLERID(ani)},mb)
exten => t,n,Dial(${INBTRUNK},,r)
exten => t,n,Hangup()
[internal]
; Для тестирования
;exten => 701,1,Verbose(1,Extension 701)
;exten => 701,n,Dial(SIP/701,,r)
;exten => 701,n,Hangup()
exten => 702,1,Verbose(1,Extension 702)
exten => 702,n,Dial(SIP/702,,r)
exten => 702,n,Hangup()
exten => 703,1,Verbose(1,Extension 703)
exten => 703,n,Dial(IAX2/703,,r)
exten => 703,n,Hangup()
exten => 704,1,Verbose(1,Extension 704)
exten => 704,n,Dial(IAX2/704,,r)
exten => 704,n,Hangup()
[phones]
include => internal
include => outgoing
; -------------------------------------------------------------------------------------------
;[incomingr2]
;exten => _X.,1,GoTo(incomingr2,s,1)
;exten => s,1,NoOp(Incomming Call)
;same => n,NoOp(Num: ${CALLERID(num)})
;same => n,NoOp(Name: ${CALLERID(name)})
;same => n,Answer
;same => n,MusicOnHold
;[office]
;exten => 10,1,NoOp
;same => n,Answer
;same => n,MusicOnHold
system.conf
span=1,1,0,cas,hdb3
cas=1-15:1101
dchan=16
cas=17-31:1101
loadzone = ru
defaultzone = ru
пытались поднять E&M….. не получилось, возможно на Asterisk не хватило библиотек... но по QSIG конечно же получилось