LINUX.ORG.RU
ФорумAdmin

Asterisk перевод звонков на внешний номер

 


0

2

Подскажите пожалуйста в чём у меня дело. Звонки в сеть попадают корректно, звонки из сети выходят корректно. Не получается перевести звонок, на внешний номер «89130000000». При этом если позвонить с внутреннего номера «1XX» и перевести на «89130000000» всё срабатывает отлично.

extensions.conf


[general]
static=yes
writeprotect=no
clearglobalvars=no

[globals]
CONSOLE=Console/dsp ; Console interface for demo
OUTAVANTEL=SIP/avantel/

TRUNKMSD=1 ; MSD digits to strip (usually 1 or 0)


[in-avantel] ;принимаю звонок
exten => 3822900000,1,Answer()
same => n,macro(chCID) ; применяю макросы по формированию номера, без него звонок не приходит
same => n,Goto(Local_SIP,111,1)

[Local_SIP]
exten => _11[01],1,Answer()
same => n,Dial(SIP/${EXTEN},5,tT) ;жду 5 секунд
same => n,Macro(dial_avantel_callerid,89130000000) ;и перенаправляю звонок
exten => _1XX,1,Dial(SIP/${EXTEN},160,tT)


[macro-dial_avantel_callerid]

exten => s,1,NoOp()
exten => s,n,Set(CID=${IF($[«${ExtCID:0:4}» = «3822»]?${ExtCID}:3822900270)})
exten => s,n,set(CALLERID(all)=«${CID} <${CID}>»)
exten => s,n,Dial(${OUTAVANTEL}${ARG1},180,tT)
exten => s,n,Gotoif($[${DIALSTATUS} = BUSY]?end:last)
exten => s,n(end),Hangup
exten => s,n(last),NoOp()

[macro-chCID]
exten => s,1,set(CID=${CALLERID(num)})
exten => s,n,set(CID=8${CID})
exten => s,n,Set(CID=${IF($[«${CID:0:5}» = «83822»]?${CID:5}:${CID})})
exten => s,n,set(CALLERID(all)=«${CID} <${CID}>»)

подключаюсь к провайдеру так



[avantel]
type=peer
qualify=180
port=5060
host=93.91.169.130
username=900000
insecure=port
;nat=yes
dtmfmode=rfc2833
canreinvite=no
call-limit=3
context=in-avantel
subscribecontext=common
;t38pt_udptl=yes
disallow=all
;allow=ulaw
allow=alaw


При этом если позвонить с внутреннего номера «1XX» и перевести на «89130000000» всё срабатывает отлично.

А когда не работает ?
И что в логах?
Может ограничение от провайдера.

Vasily22 ()
Ответ на: комментарий от Vasily22

Не срабатывает когда звонят с сотового телефона на атс, а атс пытается перевести на «89130000000». Мне кажется проблема в [macro-chCID]. Только где именно пока не пойму. В логах в этот момент

[2015-05-28 11:48:16] WARNING[22691] chan_sip.c: Retransmission timeout reached on transmission 6973776f41d6e9311993d68521d20a07@109.124.49.154:5060 for seqno 102 (Critical Request) — See
https://wiki.asterisk.org/wiki/display/AST/SIP Retransmissions
Packet timed out after 6401ms with no response
[2015-05-28 11:48:16] WARNING[22691] chan_sip.c: Hanging up call 6973776f41d6e9311993d68521d20a07@109.124.49.154:5060 - no reply to our critical packet (see https://wiki.asterisk.org/wiki/display/AST/SIP Retransmissions).

Навряд ли провайдер вводил бы такие ограничения...

MuTbKa ()
Ответ на: комментарий от MuTbKa

Мои провайдеры как правило дают ограничение на линию, в логах вижу: Call to peer 'бла-бла-бла' rejected due to usage limit of 1
В таком случае обратно звонку уйти негде.
А может callerid провайдеру не нравится, типа прилетает от локального юзера ?
«fromdomain» и «fromuser» для провайдера не увидел.
Вруби «sip set debug peer» или «tcpdump -i eth_my -vn -s0»
и все увидишь.

Vasily22 ()
Ответ на: комментарий от Vasily22

Нашёл я причину моих бед, я вообще не понимаю как у меня звонил телефон, если в макросе «dial_avantel_callerid» стоял чужой телефон, чего то странное старый программист намудрил, а я воспользовался золотым правилом сис. админа - «Работает, не трогай».

exten => s,n,Set(CID=${IF($[«${ExtCID:0:4}» = «3822»]?${ExtCID}:3822900270)})

Поставил за место 3822900270 свой номер, и всё заработало)))

MuTbKa ()
Ответ на: комментарий от Vasily22

По дампу -«tcpdump -w - -p -n -s 0 udp > /dump.pcap» кстати увидел что звонки пытаются уйти с этого левого номера

MuTbKa ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.