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

Настройка звонков через goip4

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

Добрый день!
Имеется:
PBX - elastix 2.0.0;
Asterisk 1.6.2.13;
GSM Gate - GOIP 4 c прошивкой версии: GS-4.01-34;
Таже заведены 2 шлюза gudwin, через которые идёт основной поток звонок;
Несколько транков;

Задача настроить исходящие вызовы через шлюз goip4 ( в шлюз вставлено 4 карточки) при дополнительном наборе префикс 220 чтобы звонки шли через данный шлюз по очереди через каждую сим-карту);

sip_additional.conf

[GSMVOIP991]
type=friend
host=192.168.ХХХ.ХХХ - ; адрес шлюза
username=991
secret=ХХХХХХ
context=vdp-inbound
disallow=all
allow=ulaw&alaw
qualify=yes
insecure=port,invite
nat=no

[991]
type=friend
host=dynamic
secret=ХХХХХХ
context=vdp-inbound

[GSMVOIP902]
type=friend
host=192.168.ХХХ.ХХХ
username=992
secret=ХХХХХХ
context=vdp-inbound
disallow=all
allow=ulaw&alaw
qualify=yes
insecure=port,invite
nat=no

[992]
type=friend
host=dynamic
secret=ХХХХХХХХ
context=vdp-inbound

[GSMVOIP903]
type=friend
host=192.168.ХХХ.ХХХ
username=993
secret=ХХХХХХ
context=vdp-inbound
disallow=all
allow=ulaw&alaw
qualify=yes
insecure=port,invite
nat=no


[993]
type=friend
secret=ХХХХХХ
host=dynamic
context=vdp-inbound

[GSMVOIP904]
type=friend
host=192.168.ХХХ.ХХХ
username=994
secret=ХХХХХХ
context=vdp-inbound
disallow=all
allow=ulaw&alaw
qualify=yes
insecure=port,invite
nat=no

[994]
type=friend
secret=ХХХХХХ
host=dynamic
context=vdp-inbound

[outbound-rezina]
exten => _.,1,Answer()
exten => _.,2,Wait(1)
exten => _.,3,Set(fname=${UNIQUEID})
exten => _.,4,MixMonitor(/var/spool/asterisk/monitor/${STRFTIME(,,%G%m%d)}/${fname}.wav)
exten => _XXX,5,Dial(SIP/${EXTEN})
exten => _XXX,6,Goto(lbl_vdp-outbound_3)

;exten => _21XXXXXXXXXX,5,Dial(SIP/gudwin1/991${EXTEN:2})
;exten => _22XXXXXXXXXX,5,Dial(SIP/gudwin1/992${EXTEN:2})
;exten => _23XXXXXXXXXX,5,Dial(SIP/gudwin1/993${EXTEN:2})
;exten => _24XXXXXXXXXX,5,Dial(SIP/gudwin1/994${EXTEN:2})

exten => _0668656055,5,Dial(SIP/GSMVOIP991/801${EXTEN})
exten => _7XXXXXXXXXX,5,Dial(SIP/79629313810/${EXTEN})
exten => _044XXXXXXX,5,Goto(trunks)
exten => _044XXXXXX,5,Goto(trunks)
exten => _XXXXXXX,5,Goto(trunks)
exten => _XXXXXX,5,Goto(trunks)
exten => _0800X.,5,Goto(trunks)


exten => _0157XXXXXXXXXX,5,Goto(moscow)
exten => _01537XXXXXXXXXX,5,Goto(moscow)

exten => _X.,5(moscow),Set(SES=0)
exten => _X.,6,Set(GMIN=1)
exten => _X.,7,Set(GMAX=4)
exten => _X.,n,Set(GSMGMIN=1)
exten => _X.,n,Set(GSMGMAX=2)
exten => _X.,n,Set(GSMGATE=${RAND(${GSMGMIN},${GSMGMAX})})
exten => _X.,n,Set(GATE=${RAND(${GMIN},${GMAX})})

exten => _X.,n,GotoIf($["${GSMGATE}" = "1"]?lbl_vdp-outbound_0:lbl_vdp-outbound_12)

exten => _X.,n(lbl_vdp-outbound_0),GotoIf($["${SES}" = "4"]?:lbl_vdp-outbound_2)
exten => _X.,n,Set(SES=0)
exten => _X.,n,Goto(lbl_vdp-outbound_12)

exten => _X.,n(lbl_vdp-outbound_2),Dial(SIP/gudwin1/99${GATE}${EXTEN})
exten => _X.,n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?lbl_vdp-outbound_4:)
exten => _X.,n,GotoIf($["${DIALSTATUS}" = "CONGESTION"]?lbl_vdp-outbound_4:)
exten => _X.,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?lbl_vdp-outbound_4:)
exten => _X.,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?lbl_vdp-outbound_4:)
exten => _X.,n,GotoIf($["${DIALSTATUS}" = "CANCEL"]?lbl_vdp-outbound_4:)
exten => _X.,n,GotoIf($["${DIALSTATUS}" = "DONTCALL"]?lbl_vdp-outbound_4:)
exten => _X.,n,GotoIf($["${DIALSTATUS}" = "TORTURE"]?lbl_vdp-outbound_4:)
exten => _X.,n,Goto(lbl_vdp-outbound_3)
exten => _X.,n(lbl_vdp-outbound_4),GotoIf($["${GATE}" = "4"]?:lbl_vdp-outbound_7)
exten => _X.,n,Set(GATE=1)
exten => _X.,n(lbl_vdp-outbound_6),Set(SES=$[(${SES}+1)])
exten => _X.,n,Goto(lbl_vdp-outbound_0)
exten => _X.,n(lbl_vdp-outbound_5),GotoIf($["${GATE}" < "4"]?:lbl_vdp-outbound_4)
exten => _X.,n,Set(GATE=$[${GATE} + 1])
exten => _X.,n,Goto(lbl_vdp-outbound_6)

exten => _X.,n(lbl_vdp-outbound_12),GotoIf($["${SES}" = "4"]?:lbl_vdp-outbound_7)
exten => _X.,n,Set(SES=0)
exten => _X.,n,Goto(lbl_vdp-outbound_0)
exten => _X.,n(lbl_vdp-outbound_7),Dial(SIP/gudwin2/98${GATE}${EXTEN})
exten => _X.,n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?lbl_vdp-outbound_9:)
exten => _X.,n,GotoIf($["${DIALSTATUS}" = "CONGESTION"]?lbl_vdp-outbound_9:)
exten => _X.,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?lbl_vdp-outbound_9:)
exten => _X.,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?lbl_vdp-outbound_9:)
exten => _X.,n,GotoIf($["${DIALSTATUS}" = "CANCEL"]?lbl_vdp-outbound_9:)
exten => _X.,n,GotoIf($["${DIALSTATUS}" = "DONTCALL"]?lbl_vdp-outbound_9:)
exten => _X.,n,GotoIf($["${DIALSTATUS}" = "TORTURE"]?lbl_vdp-outbound_9:)
exten => _X.,n,Goto(lbl_vdp-outbound_3)
exten => _X.,n(lbl_vdp-outbound_9),GotoIf($["${GATE}" = "4"]?:lbl_vdp-outbound_10)
exten => _X.,n,Set(GATE=1)
exten => _X.,n(lbl_vdp-outbound_11),Set(SES=$[(${SES}+1)])
exten => _X.,n,Goto(lbl_vdp-outbound_0)
exten => _X.,n(lbl_vdp-outbound_10),GotoIf($["${GATE}" < "4"]?:lbl_vdp-outbound_9)
exten => _X.,n,Set(GATE=$[${GATE} + 1])
exten => _X.,n,Goto(lbl_vdp-outbound_11)

exten => _.,n(lbl_vdp-outbound_3),Hangup()


Шлюз зарегестрировался:

991/991 192.168.10.14 D 5060 Unmonitored
992/992 192.168.10.14 D 5060 Unmonitored
993/993 192.168.10.14 D 5060 Unmonitored
994/994 (Unspecified) D 0 Unmonitored
GSMVOIP902/992 192.168.10.14 5060 OK (13 ms)
GSMVOIP903/993 192.168.10.14 5060 OK (13 ms)
GSMVOIP991/991 192.168.10.14 5060 OK (13 ms)

При исходящем астериск пишет следующее:
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Executing [066Х2332ХХ@from-internal:1] Answer("SIP/630-00010a4e", "") in new stack
-- Executing [066Х2332ХХ@from-internal:2] Wait("SIP/630-00010a4e", "1") in new stack
-- Executing [066Х2332ХХ@from-internal:3] Set("SIP/630-00010a4e", "fname=1343897769.68186") in new stack
-- Executing [066Х2332ХХ@from-internal:4] MixMonitor("SIP/630-00010a4e", "/var/spool/asterisk/monitor/20120802/1343897769.68186.wav") in new stack
-- Executing [066Х2332ХХ@from-internal:5] Dial("SIP/630-00010a4e", "SIP/GSMVOIP991/8010668656055") in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Couldn't call GSMVOIP991/8010668656055
== Everyone is busy/congested at this time (0:0/0/0)
-- Executing [066Х2332ХХ@from-internal:6] Set("SIP/630-00010a4e", "GMIN=1") in new stack
-- Executing [066Х2332ХХ@from-internal:7] Set("SIP/630-00010a4e", "GMAX=4") in new stack
-- Executing [066Х2332ХХ@from-internal:8] Set("SIP/630-00010a4e", "GSMGMIN=1") in new stack
-- Executing [066Х2332ХХ@from-internal:9] Set("SIP/630-00010a4e", "GSMGMAX=2") in new stack
-- Executing [066Х2332ХХ@from-internal:10] Set("SIP/630-00010a4e", "GSMGATE=1") in new stack
-- Executing [066Х2332ХХ@from-internal:11] Set("SIP/630-00010a4e", "GATE=3") in new stack
-- Executing [066Х2332ХХ@from-internal:12] GotoIf("SIP/630-00010a4e", "1?lbl_vdp-outbound_0:lbl_vdp-outbound_12") in new stack
-- Goto (from-internal,066Х2332ХХ,13)
-- Executing [066Х2332ХХ@from-internal:13] GotoIf("SIP/630-00010a4e", "0?:lbl_vdp-outbound_2") in new stack
-- Goto (from-internal,066Х2332ХХ,16)
-- Executing [066Х2332ХХ@from-internal:16] Dial("SIP/630-00010a4e", "SIP/gudwin1/066Х2332ХХ") in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Called gudwin1/993066Х2332ХХ
== Begin MixMonitor Recording SIP/630-00010a4e
== Spawn extension (from-internal, 0668656055, 16) exited non-zero on 'SIP/630-00010a4e'
-- Executing [h@from-internal:1] Macro("SIP/630-00010a4e", "hangupcall") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("SIP/630-00010a4e", "1?noautomon") in new stack
-- Goto (macro-hangupcall,s,3)
-- Executing [s@macro-hangupcall:3] NoOp("SIP/630-00010a4e", "TOUCH_MONITOR_OUTPUT=") in new stack
-- Executing [s@macro-hangupcall:4] GotoIf("SIP/630-00010a4e", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,7)
-- Executing [s@macro-hangupcall:7] GotoIf("SIP/630-00010a4e", "1?skipblkvm") in new stack
-- Goto (macro-hangupcall,s,10)
-- Executing [s@macro-hangupcall:10] GotoIf("SIP/630-00010a4e", "1?theend") in new stack
-- Goto (macro-hangupcall,s,12)
-- Executing [s@macro-hangupcall:12] Hangup("SIP/630-00010a4e", "") in new stack
== Spawn extension (macro-hangupcall, s, 12) exited non-zero on 'SIP/630-00010a4e' in macro 'hangupcall'
== Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/630-00010a4e'
== MixMonitor close filestream

Возможно кто либо увидит опытным глазом и подскажет решение. Заранее спасибо. По надобности могу предоставить настройки шлюза