Геморой с переводом звонков
Откуда: Таганрог
Сообщений: 12
|
Геморой с переводом звонков
Добрый день.
Извините за такую избитую тему как перевод звонков.
НО я с этим гемороем разбираюсь уже 4 месяца!!!
Заранне прошу прощения за мои эмоции, если кто поможет или даст дельный совет помогу материально!!!!
Опишу проблему, приложу конфиги и дебаги кто сможет помогите!!!
Ситема: FreeBSD 5.3-RELEASE
Asterisk: asterisk-1.2.12 (стояла и 1.2.1 и 1.2.4)
Железо: Сип телефон FreeSet (00103), шлюз Asotel(00101,00102) и шлюзы AddPac
Работаю по СИПУ
Трансфер работает в одностороннем режиме.
Есть три телефона № 00101, 00102 , 00103
для простоты эксперимента все они находяться в одном контексте office.
Эксперемент №1 безусловный трансфер - трансфер без подтверждения
Звоню с 00101 на 00102, далее с 00102 делаю безусловный трансфер на 00103. После нажатия на *1 Астериск говорит введите номер для перевода я ввожу 00103#. ПОСЛЕ нажатия последней цифры номера 3 чегото происходит и я сного разговариваю с номером 00101.
В логах ничего нет!
ПРИЧЕМ: если в данном эксперименте делать трансфер не с номера 00102 на который я звоню а с ПОЗВОНИВШЕГО 00101,
то трансфер срабатывает !!!!!!!
Эксперемент №2 условный трансфер - трансфер с подтверждением
Звоню с 00101 на 00102, далее с 00102 делаю условный трансфер на 00103. После нажатия на *2 Астериск говорит введите номер для перевода я ввожу 00103#. ПОСЛЕ нажатия последней цифры номера 3 чегото происходит и я сного разговариваю с номером 00101.
В логах пишется следующее
WARNING[20855] res_features.c: Did not read data.
ПРИЧЕМ: если в данном эксперименте делать трансфер не с номера 00102 на который я звоню а с ПОЗВОНИВШЕГО 00101,
то трансфер срабатывает !!!!!!!
Вот такая петрушка.
Все логи ниже.
extensions.conf :zz
[general]
static=yes
writeprotect=no
autofallthrough=yes
[globals]
All => Sip/00101@XXX.XX.XX.22&Sip/00102@XXX.XX.XX.22&Sip/00103@XXX.XX.XX.22
Mik => Sip/00101@XXX.XX.XX.22
Nata => Sip/00102@XXX.XX.XX.22
Tatiana => Sip/00103@XXX.XX.XX.22
DYNAMIC_FEATURES => hangup#play#testfeature
DYNAMIC_FEATURES => automon
[macro-stdexten];
exten => s,1,Dial(${ARG2},10,tw)
exten => s,2,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,Dial(${All},15,tw)
exten => s-BUSY,1,Dial(${All},15,tw)
exten => _s-.,1,Goto(s-NOANSWER,1)
[office]
exten => _100,1, Dial(${All},15,tTwW)
exten => _101,1, Dial(${Mik},1500,tTwW)
exten => _102,1, Dial(${Nata},15,tTwW)
exten => _103,1, Dial(${Tatiana},15,tTwW)
exten => _[2457]XXXX,1, Dial(SIP/AddPac29/${EXTEN},100,WT)
exten => _[87]XXXXXXXXXX,1, Dial(SIP/Ser/${EXTEN},100,WT)
exten => _9,1,Set(GROUP=XXXXXX)
exten => _9,2,PickUp(${GROUP})
exten => _*.,1,Pickup(${EXTEN:1}) ;PickUp the extension
;exten => *8,1,PickUP()
include => parkedcalls
[outside]
exten => _XXXXXX,1,Macro(stdexten,XXXXXX,${Tatiana})
[default]
include => office
include => outside
include => parkedcalls
sip.conf :zz
[general]
context=outside
realm=XXX
bindport=5060
bindaddr=XXX.XX.XX.17
recordhistory=yes
disallow=all
allow=g723
allow=g729
allow=gsm
allow=alaw
allow=ulaw
useragent=XXX PBX
canreinvite=no
qualify=no
nat=no
dtmfmode=rfc2833
autocreatepeer=yes
subscribecontext = default
notifyringing = no
sipdebug=no
[00101]
type=friend
host=dynamic
canreinvite=no
context=office
callerid="Mik" <101>
dtmfmode=rfc2833
callgroup=1
pickupgroup=1
;cancallforward=yes
disallow=all
allow=alaw
allow=ulaw
allow=g723
allow=g729
[00102]
type=friend
host=dynamic
canreinvite=no
context=office
callerid="Nata" <102>
dtmfmode=rfc2833
callgroup=1
pickupgroup=1
disallow=all
allow=alaw
allow=ulaw
allow=g723
allow=g729
threewaycalling=yes
transfer=yes
cancallforward=yes
[00103]
type=friend
host=dynamic
dtmfmode=rfc2833
callerid="Tatiana" <103>
canreinvite=no
context=office
callgroup=1
pickupgroup=1
disallow=all
allow=g723
[Ser]
type=friend
host=XXX.XX.XX.2
context=outside
canreinvite=no
dtmfmode=rfc2833
callgroup=1
pickupgroup=1
disallow=all
allow=g723
allow=g729
[AddPac29]
type=friend
host=XXX.XX.XX.29
context=office
canreinvite=no
dtmfmode=rfc2833
callgroup=1
pickupgroup=1
disallow=all
allow=alaw
allow=ulaw
allow=g723
allow=g729
features.conf
[general]
parkext => 700
parkpos => 701-720
context => parkedcalls
parkingtime => 600
transferdigittimeout => 10
courtesytone = beep
xfersound = beep
xferfailsound = beeperr
pickupexten = *8
[featuremap]
blindxfer => *1
disconnect => *0
automon => *3
atxfer => *2
C Уважением Виталий.
|
Откуда: Таганрог
Сообщений: 12
|
Re: Геморой с переводом звонков
Добрый день.
Извините за такую избитую тему как перевод звонков.
НО я с этим гемороем разбираюсь уже 4 месяца!!!
Заранне прошу прощения за мои эмоции, если кто поможет или даст дельный совет помогу материально!!!!
Опишу проблему, приложу конфиги и дебаги кто сможет помогите!!!
Ситема: FreeBSD 5.3-RELEASE
Asterisk: asterisk-1.2.12 (стояла и 1.2.1 и 1.2.4)
Железо: Сип телефон FreeSet (00103), шлюз Asotel(00101,00102) и шлюзы AddPac
Трансфер работает в одностороннем режиме.
Есть три телефона № 00101, 00102 , 00103
для простоты эксперимента все они находяться в одном контексте office.
Эксперемент №1 безусловный трансфер - трансфер без подтверждения
Звоню с 00101 на 00102, далее с 00102 делаю безусловный трансфер на 00103. После нажатия на *1 Астериск говорит
введите номер для перевода я ввожу 00103#. ПОСЛЕ нажатия последней цифры номера 3 чегото происходит и я сного
разговариваю с номером 00101.
В логах ничего нет!
ПРИЧЕМ: если в данном эксперименте делать трансфер не с номера 00102 на который я звоню а с ПОЗВОНИВШЕГО 00101,
то трансфер срабатывает !!!!!!!
Эксперемент №2 условный трансфер - трансфер с подтверждением
Звоню с 00101 на 00102, далее с 00102 делаю условный трансфер на 00103. После нажатия на *2 Астериск говорит введите
номер для перевода я ввожу 00103#. ПОСЛЕ нажатия последней цифры номера 3 чегото происходит и я сного
разговариваю с номером 00101.
В логах пишется следующее
WARNING[20855] res_features.c: Did not read data.
ПРИЧЕМ: если в данном эксперименте делать трансфер не с номера 00102 на который я звоню а с ПОЗВОНИВШЕГО 00101,
то трансфер срабатывает !!!!!!!
Вот такая петрушка.
Все логи ниже.
extensions.conf :zz
[general]
static=yes
writeprotect=no
autofallthrough=yes
[globals]
All => Sip/00101@XXX.XX.XX.22&Sip/00102@XXX.XX.XX.22&Sip/00103@XXX.XX.XX.22
Mik => Sip/00101@XXX.XX.XX.22
Nata => Sip/00102@XXX.XX.XX.22
Tatiana => Sip/00103@XXX.XX.XX.22
DYNAMIC_FEATURES => hangup#play#testfeature
DYNAMIC_FEATURES => automon
[macro-stdexten];
exten => s,1,Dial(${ARG2},10,tw)
exten => s,2,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,Dial(${All},15,tw)
exten => s-BUSY,1,Dial(${All},15,tw)
exten => _s-.,1,Goto(s-NOANSWER,1)
[office]
exten => _100,1, Dial(${All},15,tTwW)
exten => _101,1, Dial(${Mik},1500,tTwW)
exten => _102,1, Dial(${Nata},15,tTwW)
exten => _103,1, Dial(${Tatiana},15,tTwW)
exten => _[2457]XXXX,1, Dial(SIP/AddPac29/${EXTEN},100,WT)
exten => _[87]XXXXXXXXXX,1, Dial(SIP/Ser/${EXTEN},100,WT)
exten => _9,1,Set(GROUP=XXXXXX)
exten => _9,2,PickUp(${GROUP})
exten => _*.,1,Pickup(${EXTEN:1}) ;PickUp the extension
include => parkedcalls
[outside]
exten => _XXXXXX,1,Macro(stdexten,XXXXXX,${Tatiana})
[default]
include => office
include => outside
include => parkedcalls
sip.conf :zz
[general]
context=outside
realm=XXX
bindport=5060
bindaddr=XXX.XX.XX.17
recordhistory=yes
disallow=all
allow=g723
allow=g729
allow=gsm
allow=alaw
allow=ulaw
useragent=XXX PBX
canreinvite=no
qualify=no
nat=no
dtmfmode=rfc2833
autocreatepeer=yes
subscribecontext = default
notifyringing = no
sipdebug=no
[00101]
type=friend
host=dynamic
canreinvite=no
context=office
callerid="Mik" <101>
dtmfmode=rfc2833
callgroup=1
pickupgroup=1
;cancallforward=yes
disallow=all
allow=alaw
allow=ulaw
allow=g723
allow=g729
[00102]
type=friend
host=dynamic
canreinvite=no
context=office
callerid="Nata" <102>
dtmfmode=rfc2833
callgroup=1
pickupgroup=1
disallow=all
allow=alaw
allow=ulaw
allow=g723
allow=g729
threewaycalling=yes
transfer=yes
cancallforward=yes
[00103]
type=friend
host=dynamic
dtmfmode=rfc2833
callerid="Tatiana" <103>
canreinvite=no
context=office
callgroup=1
pickupgroup=1
disallow=all
allow=g723
[Ser]
type=friend
host=XXX.XX.XX.2
context=outside
canreinvite=no
dtmfmode=rfc2833
callgroup=1
pickupgroup=1
disallow=all
allow=g723
allow=g729
[AddPac29]
type=friend
host=XXX.XX.XX.29
context=office
canreinvite=no
dtmfmode=rfc2833
callgroup=1
pickupgroup=1
disallow=all
allow=alaw
allow=ulaw
allow=g723
allow=g729
features.conf
[general]
parkext => 700
parkpos => 701-720
context => parkedcalls
parkingtime => 600
transferdigittimeout => 10
courtesytone = beep
xfersound = beep
xferfailsound = beeperr
pickupexten = *8
[featuremap]
blindxfer => *1
disconnect => *0
automon => *3
atxfer => *2
C Уважением Виталий.
|
Сообщений: 1530
|
Re: Геморой с переводом звонков
Первое, что проверить -- dtmfmode и в шлюзах и в asterisk'е.
Второе -- 'T' и 't'. Их главное неперепутать. Может для начала везде указать и T и t.
У меня с transfer'ом все в порядке.
Сейчас в том числе возврат звонка обратно, если абонент занят тоже сделал -- все довольны.
|
Откуда: Москва
Сообщений: 3421
|
Re: Геморой с переводом звонков
tma, не хочешь howto написать?
|
Сообщений: 1530
|
Re: Геморой с переводом звонков
Плохой из меня писатель. ;(
Я тут воюю с panasonic'ами своими. Если с Linksys PAP2 я их вроде бы заставил работаь, так с D-Link DVG-2004S они нивкакую не работают. ;(
Эти D-Link'и ужасно тупые... ;( В результате проходят только 0,5,6 и 9 ;)
Единственный способ лечения -- замена телефонов на != panasonic.
|
Откуда: Таганрог
Сообщений: 12
|
Re: Геморой с переводом звонков
tma спасибо за ответы.
1) смотрите внимательно конфиги!! ТАМ и t и T стоят.
2)dtmfmode у меня везде dtmfmode=rfc2833
3) внимательно посмотрите на эксперементы!!!
Если не сложно опишите что у вас за система, что за версия астериска и если можно конфиги *.
Тут ответ на вопрос мне кажется гораздо сложнее, нежели "а почему у вас машина не заводиться
ааааа вы наверное ключи в зажигание не вставили " :)
Раскажите как всетаки работает "возврат звонка обратно"??
С уважением Виталий
|
Сообщений: 1530
|
Re: Геморой с переводом звонков
Да, я видел и T, и t.
Я же написал -- обратить внимание на то, чтобы стояли соответствующие флаги!
[macro-stdexten]
exten => s,1,Dial(${ARG2},10,tw) ; тут только 't'!
... skip ...
exten => _100,1, Dial(${All},15,tTwW); здесь ненужно писать '_'.
exten => _9,1,Set(GROUP=XXXXXX); здесь тоже '_' ненужно.
exten => _XXXXXX,1,Macro(stdexten,XXXXXX,${Tatiana}) ; вот этот звонок уйдет только с 't'.
Если Вы приведете лог звонка, чтобы был виден Dial с опциями, то будет проще разобраться.
Так нужно пытаться понять Вашу логику dialplan'а, а у всех и своих дел погорло...
|
Сообщений: 1530
|
Re: Геморой с переводом звонков
transfer в случае неответа я реализовывал пользуясь подсказкой:
http://www.asterisk-support.ru/forums/configuration/226694982345
Только у меня звонки поступают в очередь и возвращаются обратно в очередь, т.е. выяснять обратный номер ненужно -- он всегда один.
Точнее с этим есть проблемы -- в случае с очередью, сведения о том, кто перевел звонки, не понятно где хранится... ;(
|
Откуда: moskow
Сообщений: 26
|
Re: Геморой с переводом звонков
tma: Плохой из меня писатель. ;(
Я тут воюю с panasonic'ами своими. Если с Linksys PAP2 я их вроде бы заставил работаь, так с D-Link DVG-2004S они нивкакую не работают. ;(
Эти D-Link'и ужасно тупые... ;( В результате проходят только 0,5,6 и 9 ;)
Единственный способ лечения -- замена телефонов на != panasonic.
Насчет телефонов панасоников, думаю тут есть два варианта (я в свое время с ними тоже намучался) так вот, либо длинки глухие, либо панасоники громко орать неумеют.. точнее их на шопот ставят производители )))
вобщем лечитцо это подкручиванием резисторика снизу панасоника, там есть 3 регулятора, помоему самый нижний, их назначения как раз на громкость и чувствительность динамика, микрофона и дтмфа.
|
Откуда: moskow
Сообщений: 26
|
Re: Геморой с переводом звонков
с переводом тоже проблема, при вводе комбинации перевода, включается холд, а после набора первой цифры возвращаемся в разговор, в логе features.c: Did not read data.
звонок идет с пира на городской номер, а там чел должен его перевести куда потребуется
sip.conf
[general]
allowoverlap=no ; Disable overlap dialing support. (Default is yes)
bindport=5060 ; UDP Port to bind to (SIP standard port is 5060)
bindaddr=0.0.0.0 ; IP address to bind to (0.0.0.0 binds to all)
srvlookup=no ; Enable DNS SRV lookups on outbound calls
rtcachefriends=yes ;кеширование
relaxdtmf=yes ; Relax dtmf handling
dtmfmode = rfc2833
subscribecontext=contr
notifybusy=yes
usereqphone = yes
allowsubscribe=yes
notifyringing=yes
notifyhold=yes
useclientcode=yes
limitonpeers=yes
allowguest = no
subscribecontext=contr
mohinterpret=default
mohsuggest=default
[xxx]
type = friend
username=xxx
secret=xxx
fromuser = xxx
fromdomain=xxx
host = xxx
port = 5060
nat=yes
canreinvite = no
insecure=invite,port
qualify = yes
context = ext
disallow=all
allow = alaw
extensions.conf
[general]
static=yes
writeprotect=no
[ext]
exten => s,1,Dial(DAHDI/r1/xxxxxxx,360,rtT)
exten => X.,1,Dial(DAHDI/r1/${EXTEN},360,rtT)
features.conf
[general]
parkext => 700 ; What extension to dial to park
parkpos => 701-720 ; What extensions to park calls on. These needs to be
context => parkedcalls ; Which context parked calls are in
parkingtime => 120 ; Number of seconds a call can be parked for
parkedmusicclass=default ; This is the MOH class to use for the parked channel
transferdigittimeout => 999999999 ; Number of seconds to wait between digits when transferring a call
pickupexten = *8 ; Configure the pickup extension. (default is *8)
featuredigittimeout = 999999999 ; Max time (ms) between digits for
atxfernoanswertimeout = 999999999 ; Timeout for answer on attended transfer default is 15 seconds.
[featuremap]
blindxfer => *4 ; Blind transfer (default is #)
disconnect => *3 ; Disconnect (default is *)
automon => *2 ; One Touch Record a.k.a. Touch Monitor
atxfer => *# ; Attended transfer
parkcall => *1 ; Park call (one step parking)
|
|