т.е есть ли возможность системе указывать при одном диапазоне IP - шников тыкать на выход через одну сеть, а при другом диапазоне тыкаться в другую сеть?
Вопрос может и нубский но оч нужный, не стал плодить темы ибо по сути тема подходит. Имеются 2 шнурка приходящие в сервер:
eth0 - внутреняя сеть (172.16.х.х)
eth1 - в нём втыкается кабель от провайдера который по этому шнурку дал номер телефона и 3 линии, при этом все звонки должны четко уходить на определенный ip (сеть 172.16.2хх.х)
и так, долго настраивал чтобы сервер был доступен из внутреней сети и мог пинговать гейт провайдера, прописывал статик роуты (ip на который нужно посылать звонки не пингуется, трейс и пинг ниже)
# ping 172.16.217.xx
PING 172.16.217.xx (172.16.217.xx) 56(84) bytes of data.
From 172.16.208.xx icmp_seq=3 Destination Host Unreachable
From 172.16.208.xx icmp_seq=4 Destination Host Unreachable
From 172.16.208.xx icmp_seq=6 Destination Host Unreachable
From 172.16.208.xx icmp_seq=7 Destination Host Unreachable
где 172.16.208.xx ip интерфейса eth1
traceroute 172.16.217.xx
traceroute to 172.16.217.xx (172.16.217.xx), 30 hops max, 60 byte packets
1 172.16.208.xx (172.16.208.xx) 1352.713 ms !H 1352.703 ms !H 1352.690 ms !H
на самом астериске настроен транк и подключен 1-ин sip soft клиент
USER Details:
host=172.16.217.xx
allow=alaw&gsm&ulaw&g729
type=friend
context=from-trunk
звонок проходит и попадает в нужный транк, следуя правилам, но затем пишет ошибка 480... вот пример лога:
CLI>
-- Registered SIP '2001' at 172.16.20.13:48243
-- Registered SIP '2001' at 172.16.20.13:38824
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Executing [079269874562@from-internal:1] Macro("SIP/2001-00000025", "user-callerid,LIMIT,") in new stack
-- Executing [s@macro-user-callerid:1] Set("SIP/2001-00000025", "TOUCH_MONITOR=1368524602.37") in new stack
-- Executing [s@macro-user-callerid:2] Set("SIP/2001-00000025", "AMPUSER=2001") in new stack
-- Executing [s@macro-user-callerid:3] GotoIf("SIP/2001-00000025", "0?report") in new stack
-- Executing [s@macro-user-callerid:4] ExecIf("SIP/2001-00000025", "1?Set(REALCALLERIDNUM=2001)") in new stack
-- Executing [s@macro-user-callerid:5] Set("SIP/2001-00000025", "AMPUSER=2001") in new stack
-- Executing [s@macro-user-callerid:6] Set("SIP/2001-00000025", "AMPUSERCIDNAME=Alexander") in new stack
-- Executing [s@macro-user-callerid:7] GotoIf("SIP/2001-00000025", "0?report") in new stack
-- Executing [s@macro-user-callerid:8] Set("SIP/2001-00000025", "AMPUSERCID=2001") in new stack
-- Executing [s@macro-user-callerid:9] Set("SIP/2001-00000025", "__DIAL_OPTIONS=Ttr") in new stack
-- Executing [s@macro-user-callerid:10] Set("SIP/2001-00000025", "CALLERID(all)="Alexander" <2001>") in new stack
-- Executing [s@macro-user-callerid:11] GotoIf("SIP/2001-00000025", "0?limit") in new stack
-- Executing [s@macro-user-callerid:12] ExecIf("SIP/2001-00000025", "1?Set(GROUP(concurrency_limit)=2001)") in new stack
-- Executing [s@macro-user-callerid:13] GotoIf("SIP/2001-00000025", "1?continue") in new stack
-- Goto (macro-user-callerid,s,26)
-- Executing [s@macro-user-callerid:26] Set("SIP/2001-00000025", "CALLERID(number)=2001") in new stack
-- Executing [s@macro-user-callerid:27] Set("SIP/2001-00000025", "CALLERID(name)=Alexander") in new stack
-- Executing [s@macro-user-callerid:28] Set("SIP/2001-00000025", "CDR(cnum)=2001") in new stack
-- Executing [s@macro-user-callerid:29] Set("SIP/2001-00000025", "CDR(cnam)=Alexander") in new stack
-- Executing [s@macro-user-callerid:30] Set("SIP/2001-00000025", "CHANNEL(language)=en") in new stack
-- Executing [079269874562@from-internal:2] Set("SIP/2001-00000025", "MOHCLASS=default") in new stack
-- Executing [079269874562@from-internal:3] Set("SIP/2001-00000025", "_NODEST=") in new stack
-- Executing [079269874562@from-internal:4] Gosub("SIP/2001-00000025", "sub-record-check,s,1(out,079269874562,)") in new stack
-- Executing [s@sub-record-check:1] Set("SIP/2001-00000025", "REC_POLICY_MODE_SAVE=") in new stack
-- Executing [s@sub-record-check:2] GotoIf("SIP/2001-00000025", "1?check") in new stack
-- Goto (sub-record-check,s,7)
-- Executing [s@sub-record-check:7] Set("SIP/2001-00000025", "__MON_FMT=wav") in new stack
-- Executing [s@sub-record-check:8] GotoIf("SIP/2001-00000025", "1?next") in new stack
-- Goto (sub-record-check,s,11)
-- Executing [s@sub-record-check:11] ExecIf("SIP/2001-00000025", "0?Return()") in new stack
-- Executing [s@sub-record-check:12] ExecIf("SIP/2001-00000025", "0?Set(__REC_POLICY_MODE=)") in new stack
-- Executing [s@sub-record-check:13] GotoIf("SIP/2001-00000025", "0?out,1") in new stack
-- Executing [s@sub-record-check:14] Set("SIP/2001-00000025", "__REC_STATUS=INITIALIZED") in new stack
-- Executing [s@sub-record-check:15] Set("SIP/2001-00000025", "NOW=1368524602") in new stack
-- Executing [s@sub-record-check:16] Set("SIP/2001-00000025", "__DAY=14") in new stack
-- Executing [s@sub-record-check:17] Set("SIP/2001-00000025", "__MONTH=05") in new stack
-- Executing [s@sub-record-check:18] Set("SIP/2001-00000025", "__YEAR=2013") in new stack
-- Executing [s@sub-record-check:19] Set("SIP/2001-00000025", "__TIMESTR=20130514-134322") in new stack
-- Executing [s@sub-record-check:20] Set("SIP/2001-00000025", "__FROMEXTEN=2001") in new stack
-- Executing [s@sub-record-check:21] Set("SIP/2001-00000025", "__CALLFILENAME=out-079269874562-2001-20130514-134322-1368524602.37") in new stack
-- Executing [s@sub-record-check:22] Goto("SIP/2001-00000025", "out,1") in new stack
-- Goto (sub-record-check,out,1)
-- Executing [out@sub-record-check:1] ExecIf("SIP/2001-00000025", "1?Set(__REC_POLICY_MODE=always)") in new stack
-- Executing [out@sub-record-check:2] GosubIf("SIP/2001-00000025", "1?record,1(exten,079269874562,2001)") in new stack
-- Executing [record@sub-record-check:1] Set("SIP/2001-00000025", "AUDIOHOOK_INHERIT(MixMonitor)=yes") in new stack
-- Executing [record@sub-record-check:2] MixMonitor("SIP/2001-00000025", "2013/05/14/out-079269874562-2001-20130514-134322-1368524602.37.wav,,") in new stack
== Begin MixMonitor Recording SIP/2001-00000025
-- Executing [record@sub-record-check:3] Set("SIP/2001-00000025", "__REC_STATUS=RECORDING") in new stack
-- Executing [record@sub-record-check:4] Set("SIP/2001-00000025", "CDR(recordingfile)=out-079269874562-2001-20130514-134322-1368524602.37.wav") in new stack
-- Executing [record@sub-record-check:5] Return("SIP/2001-00000025", "") in new stack
-- Executing [out@sub-record-check:3] Return("SIP/2001-00000025", "") in new stack
-- Executing [079269874562@from-internal:5] Macro("SIP/2001-00000025", "dialout-trunk,2,79269874562,,off") in new stack
-- Executing [s@macro-dialout-trunk:1] Set("SIP/2001-00000025", "DIAL_TRUNK=2") in new stack
-- Executing [s@macro-dialout-trunk:2] GosubIf("SIP/2001-00000025", "0?sub-pincheck,s,1()") in new stack
-- Executing [s@macro-dialout-trunk:3] GotoIf("SIP/2001-00000025", "0?disabletrunk,1") in new stack
-- Executing [s@macro-dialout-trunk:4] Set("SIP/2001-00000025", "DIAL_NUMBER=79269874562") in new stack
-- Executing [s@macro-dialout-trunk:5] Set("SIP/2001-00000025", "DIAL_TRUNK_OPTIONS=Ttr") in new stack
-- Executing [s@macro-dialout-trunk:6] Set("SIP/2001-00000025", "OUTBOUND_GROUP=OUT_2") in new stack
-- Executing [s@macro-dialout-trunk:7] GotoIf("SIP/2001-00000025", "0?nomax") in new stack
-- Executing [s@macro-dialout-trunk:8] GotoIf("SIP/2001-00000025", "0?chanfull") in new stack
-- Executing [s@macro-dialout-trunk:9] GotoIf("SIP/2001-00000025", "0?skipoutcid") in new stack
-- Executing [s@macro-dialout-trunk:10] Set("SIP/2001-00000025", "DIAL_TRUNK_OPTIONS=Tt") in new stack
-- Executing [s@macro-dialout-trunk:11] Macro("SIP/2001-00000025", "outbound-callerid,2") in new stack
-- Executing [s@macro-outbound-callerid:1] ExecIf("SIP/2001-00000025", "0?Set(CALLERPRES()=)") in new stack
-- Executing [s@macro-outbound-callerid:2] ExecIf("SIP/2001-00000025", "0?Set(REALCALLERIDNUM=2001)") in new stack
-- Executing [s@macro-outbound-callerid:3] GotoIf("SIP/2001-00000025", "1?normcid") in new stack
-- Goto (macro-outbound-callerid,s,6)
-- Executing [s@macro-outbound-callerid:6] Set("SIP/2001-00000025", "USEROUTCID=2001") in new stack
-- Executing [s@macro-outbound-callerid:7] Set("SIP/2001-00000025", "EMERGENCYCID=") in new stack
-- Executing [s@macro-outbound-callerid:8] Set("SIP/2001-00000025", "TRUNKOUTCID=4956209448") in new stack
-- Executing [s@macro-outbound-callerid:9] GotoIf("SIP/2001-00000025", "1?trunkcid") in new stack
-- Goto (macro-outbound-callerid,s,14)
-- Executing [s@macro-outbound-callerid:14] ExecIf("SIP/2001-00000025", "1?Set(CALLERID(all)=4956209448)") in new stack
-- Executing [s@macro-outbound-callerid:15] ExecIf("SIP/2001-00000025", "1?Set(CALLERID(all)=2001)") in new stack
-- Executing [s@macro-outbound-callerid:16] ExecIf("SIP/2001-00000025", "0?Set(CALLERID(all)=)") in new stack
-- Executing [s@macro-outbound-callerid:17] ExecIf("SIP/2001-00000025", "0?Set(CALLERPRES()=prohib_passed_screen)") in new stack
-- Executing [s@macro-outbound-callerid:18] Set("SIP/2001-00000025", "CDR(outbound_cnum)=2001") in new stack
-- Executing [s@macro-outbound-callerid:19] Set("SIP/2001-00000025", "CDR(outbound_cnam)=") in new stack
-- Executing [s@macro-dialout-trunk:12] GosubIf("SIP/2001-00000025", "0?sub-flp-2,s,1()") in new stack
-- Executing [s@macro-dialout-trunk:13] Set("SIP/2001-00000025", "OUTNUM=79269874562") in new stack
-- Executing [s@macro-dialout-trunk:14] Set("SIP/2001-00000025", "custom=SIP/orandge") in new stack
-- Executing [s@macro-dialout-trunk:15] ExecIf("SIP/2001-00000025", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default)Tt)") in new stack
-- Executing [s@macro-dialout-trunk:16] ExecIf("SIP/2001-00000025", "0?Set(DIAL_TRUNK_OPTIONS=TtM(confirm))") in new stack
-- Executing [s@macro-dialout-trunk:17] Macro("SIP/2001-00000025", "dialout-trunk-predial-hook,") in new stack
-- Executing [s@macro-dialout-trunk-predial-hook:1] MacroExit("SIP/2001-00000025", "") in new stack
-- Executing [s@macro-dialout-trunk:18] GotoIf("SIP/2001-00000025", "0?bypass,1") in new stack
-- Executing [s@macro-dialout-trunk:19] ExecIf("SIP/2001-00000025", "1?Set(CONNECTEDLINE(num,i)=79269874562)") in new stack
-- Executing [s@macro-dialout-trunk:20] ExecIf("SIP/2001-00000025", "1?Set(CONNECTEDLINE(name,i)=CID:2001)") in new stack
-- Executing [s@macro-dialout-trunk:21] GotoIf("SIP/2001-00000025", "0?customtrunk") in new stack
-- Executing [s@macro-dialout-trunk:22] Dial("SIP/2001-00000025", "SIP/orandge/79269874562,300,Tt") in new stack
[2013-05-14 13:43:22] WARNING[14911][C-0000001b]: app_dial.c:2437 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Subscriber absent)
== Everyone is busy/congested at this time (1:0/0/1)
-- Executing [s@macro-dialout-trunk:23] NoOp("SIP/2001-00000025", "Dial failed for some reason with DIALSTATUS = CHANUNAVAIL and HANGUPCAUSE = 20") in new stack
-- Executing [s@macro-dialout-trunk:24] GotoIf("SIP/2001-00000025", "0?continue,1:s-CHANUNAVAIL,1") in new stack
-- Goto (macro-dialout-trunk,s-CHANUNAVAIL,1)
-- Executing [s-CHANUNAVAIL@macro-dialout-trunk:1] Set("SIP/2001-00000025", "RC=20") in new stack
-- Executing [s-CHANUNAVAIL@macro-dialout-trunk:2] Goto("SIP/2001-00000025", "20,1") in new stack
-- Goto (macro-dialout-trunk,20,1)
-- Executing [20@macro-dialout-trunk:1] Goto("SIP/2001-00000025", "continue,1") in new stack
-- Goto (macro-dialout-trunk,continue,1)
-- Executing [continue@macro-dialout-trunk:1] NoOp("SIP/2001-00000025", "TRUNK Dial failed due to CHANUNAVAIL HANGUPCAUSE: 20 - failing through to other trunks") in new stack
-- Executing [continue@macro-dialout-trunk:2] Set("SIP/2001-00000025", "CALLERID(number)=2001") in new stack
-- Executing [079269874562@from-internal:6] Macro("SIP/2001-00000025", "outisbusy,") in new stack
-- Executing [s@macro-outisbusy:1] Progress("SIP/2001-00000025", "") in new stack
-- Executing [s@macro-outisbusy:2] Playback("SIP/2001-00000025", "all-circuits-busy-now,noanswer") in new stack
-- <SIP/2001-00000025> Playing 'all-circuits-busy-now.gsm' (language 'en')
-- Executing [s@macro-outisbusy:3] Playback("SIP/2001-00000025", "pls-try-call-later,noanswer") in new stack
-- <SIP/2001-00000025> Playing 'pls-try-call-later.gsm' (language 'en')
-- Executing [s@macro-outisbusy:4] Macro("SIP/2001-00000025", "hangupcall") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("SIP/2001-00000025", "1?theend") in new stack
-- Goto (macro-hangupcall,s,3)
-- Executing [s@macro-hangupcall:3] ExecIf("SIP/2001-00000025", "0?Set(CDR(recordingfile)=)") in new stack
-- Executing [s@macro-hangupcall:4] Hangup("SIP/2001-00000025", "") in new stack
== Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'SIP/2001-00000025' in macro 'hangupcall'
== Spawn extension (macro-outisbusy, s, 4) exited non-zero on 'SIP/2001-00000025' in macro 'outisbusy'
== Spawn extension (from-internal, 079269874562, 6) exited non-zero on 'SIP/2001-00000025'
-- Executing [h@from-internal:1] Hangup("SIP/2001-00000025", "") in new stack
== Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/2001-00000025'
== MixMonitor close filestream (mixed)
== End MixMonitor Recording SIP/2001-00000025
P.S. используется Asterisk Now
P.S.S. Надеюсь для настоящих профи не составит труда помочь, я просто даж и не знаю кто уже проверить или как.....
Unable to create channel of type 'SIP' - вот вам ответ.
У вас нет SIP пира, на который ссылаетесь. И это можно увидеть командой
sip show peers.
P.S.
fromuser=172.16.208.хх
host=172.16.217.хх
Это - детская паранойя.
Хуже - только 192.168.ХХХ.ХХХ
Нет нужды объяснять, что 172.16. - это внутренние адреса? От кого скрываемся? Злые хакеры будут ддосить сразу по этим ИП?
awsswa, всё можно растолкать вообще без роутинга. Но если
PING 172.16.217.xx (172.16.217.xx) 56(84) bytes of data.
From 172.16.208.xx icmp_seq=3 Destination Host Unreachable
то как чел пытается там звонки направить?
хм, получается что он попросту не подцепился к оператору, спасибо, будем ковырять.
ded может вы конечно и гуру, но не стоит считать других за идиотов, сип пир есть и он отражается , другое дело что он недоступен.
CLI> sip show peers
Name/username Host Dyn Forcerport ACL Port Status Description
2001/2001 172.16.20.13 D A 48243 OK (1 ms)
from-trunk 172.16.217.149 a 5060 Unmonitored
orandge 172.16.217.149 5060 UNREACHABLE
Ну паранойя не паранойя, скорее привычка, ну или если хотите, просто потому что
а будет вам известно ping далеко не всегда будет проходить, его можно спокойно запретить. (даже при настройке напрямую, подключив шнур к ноуту и задав все параметры ip назначения не пинговался)
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.208.228 0.0.0.0 255.255.255.252 U 0 0 0 eth1
172.16.208.0 172.16.208.230 255.255.255.0 UG 0 0 0 eth1
172.16.208.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
172.16.17.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
172.16.217.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1
0.0.0.0 172.16.17.1 0.0.0.0 UG 0 0 0 eth0
нигде ничего не зацеплено, шнурок напрямую от провайдера приходит и втыкается в eth1.
З.Ы. ded, спасибо пойду узнавать у провайдера ...
З.Ы.Ы. Может параметры транка не те ? или с этими должно работать ?
1) Я не гуру
2) Использовать такое имя для транка - from-trunk в Астериске, где freePBX - более чем странно. Обзовите его хоть provider!
3) nmap 172.16.217.149 -P0 даст полную картину мира. И tcpdump host 172.16.217.149 - тоже.
4) Думаю, что Вы что-то неверно поняли от провайдера по адресации, маске, и пр.
== Begin MixMonitor Recording SIP/2001-00000031
-- Executing [s@macro-dialout-trunk:22] Dial("SIP/2001-00000031", "SIP/orandge/79268526172,300,Tt") in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Called SIP/orandge/79268526172
[2013-05-14 15:06:02] WARNING[27472]: chan_sip.c:4169 retrans_pkt: Retransmission timeout reached on transmission 5c9135c7227af222319ef2df6648de1f@172.16.208.229:5060 for seqno 102 (Critical Request) -- See https://wiki.asterisk.org/wiki/display/ ... nsmissions
Packet timed out after 31999ms with no response
[2013-05-14 15:06:02] WARNING[27472]: chan_sip.c:4198 retrans_pkt: Hanging up call 5c9135c7227af222319ef2df6648de1f@172.16.208.229:5060 - no reply to our critical packet (see https://wiki.asterisk.org/wiki/display/ ... nsmissions).
== Everyone is busy/congested at this time (1:0/0/1)
-- Executing [s@macro-dialout-trunk:23] NoOp("SIP/2001-00000031", "Dial failed for some reason with DIALSTATUS = CHANUNAVAIL and HANGUPCAUSE = 18") in new stack
-- Executing [s@macro-dialout-trunk:24] GotoIf("SIP/2001-00000031", "0?continue,1:s-CHANUNAVAIL,1") in new stack
-- Goto (macro-dialout-trunk,s-CHANUNAVAIL,1)
-- Executing [s-CHANUNAVAIL@macro-dialout-trunk:1] Set("SIP/2001-00000031", "RC=18") in new stack
-- Executing [s-CHANUNAVAIL@macro-dialout-trunk:2] Goto("SIP/2001-00000031", "18,1") in new stack
-- Goto (macro-dialout-trunk,18,1)
-- Executing [18@macro-dialout-trunk:1] Goto("SIP/2001-00000031", "s-NOANSWER,1") in new stack
-- Goto (macro-dialout-trunk,s-NOANSWER,1)
-- Executing [s-NOANSWER@macro-dialout-trunk:1] NoOp("SIP/2001-00000031", "Dial failed due to trunk reporting NOANSWER - giving up") in new stack
-- Executing [s-NOANSWER@macro-dialout-trunk:2] Progress("SIP/2001-00000031", "") in new stack
-- Executing [s-NOANSWER@macro-dialout-trunk:3] Playback("SIP/2001-00000031", "number-not-answering,noanswer") in new stack
-- <SIP/2001-00000031> Playing 'number-not-answering.gsm' (language 'en')
-- Executing [s-NOANSWER@macro-dialout-trunk:4] Congestion("SIP/2001-00000031", "20") in new stack
[2013-05-14 15:06:04] WARNING[15155][C-00000022]: channel.c:4816 ast_prod: Prodding channel 'SIP/2001-00000031' failed
== Spawn extension (macro-dialout-trunk, s-NOANSWER, 4) exited non-zero on 'SIP/2001-00000031' in macro 'dialout-trunk'
== Spawn extension (from-internal, 079268526172, 5) exited non-zero on 'SIP/2001-00000031'
-- Executing [h@from-internal:1] Hangup("SIP/2001-00000031", "") in new stack
== Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/2001-00000031'
== MixMonitor close filestream (mixed)
== End MixMonitor Recording SIP/2001-00000031
Я прально понимаю что звонок отваливается по таймауту и терь нужно идти пинать эквант ?
ip route list
172.16.208.228/30 dev eth1 proto kernel scope link src 172.16.208.229
172.16.208.0/24 via 172.16.208.230 dev eth1
172.16.208.0/24 dev eth1 scope link
172.16.17.0/24 dev eth0 proto kernel scope link src 172.16.17.20
172.16.217.0/24 dev eth1 scope link
169.254.0.0/16 dev eth0 scope link metric 1002
169.254.0.0/16 dev eth1 scope link metric 1003
default via 172.16.17.1 dev eth0