Страница 1 из 1

IAX2 и три Астериска

Добавлено: 14 июл 2020, 17:22
devset
Добрый день форумчане!
Прошу помощи надеюсь не откажете связался с IAX первый раз и не совсем понятно, что делать дальше в плане экстеншена, как вообще писать.
Получилось связать три астера вместе статус OK в консоли.
Схема такая:
Есть три города СПБ (свой сип транк) , Астрахань (повешена на Тверь звонит тоже через нее), Тверь (свой сип транк)
СПБ связывается с Астраханью и Тверью
Астрахань связывается с СПБ и Тверью
Тверь связывается с Астраханью и СПБ
iax.conf СПБ

Код: Выделить всё

[general]
disallow=all
allow=ulaw
allow=alaw
binaddr=0.0.0.0
delayreject=yes
jitterbufer=yes
autokill=yes

[guest]
type=user
context=no-guests
callerid="Guest IAX User"

[tver]
type=friend
host=10.XXXXXXXXXXX
encryption=yes
trunk=yes
username=XXXX
secret=XXXXXXXXXX
qualify=yes
forceencryption=yes
context=from-internal


[astr]
type=friend
host=10.XXXXXXXXXX
encryption=yes
trunk=yes
username=XXXXXX
secret=XXXXX
qualify=yes
forceencryption=yes
context=from-internal
Собственно по такой же аналогии выстроены конфиги Астрахани и Твери.

Re: IAX2 и три Астериска

Добавлено: 15 июл 2020, 10:11
ded
В чём вопрос то? Как вызывать абонентов в других городах?
Надеюсь, что у вас на всех трёх Астерисках разные диал-планы для внутренних номеров, например - СПБ = 1ХХ, Тверь = 2ХХ и Астрахань = 3ХХ. Тогда в Питере
exten => _2XX,1,Dial(IAX2/tver/${EXTEN},,t)
exten => _3XX,1,Dial(IAX2/astr/${EXTEN},,t)

Если вы допустили одинаковые диал-планы у всех трёх вида 1ХХ, то придётся использовать впереди префикс, четвёртую цифру.
exten => _21XX,1,Dial(IAX2/tver/${EXTEN:1},,t)
exten => _31XX,1,Dial(IAX2/astr/${EXTEN:1},,t)

Re: IAX2 и три Астериска

Добавлено: 15 июл 2020, 11:27
devset
Спасибо за ответ.
Да конечно разные.
Тверь 3901-3910
Астрахань 3920-40
СПБ 3950-3960
Тогда для СПБ
exten => _390X,1,Dial(IAX2/tver/${EXTEN},,t)
exten => _392X,1,Dial(IAX2/astr/${EXTEN},,t)

Для Твери
exten => _395X,1,Dial(IAX2/spb/${EXTEN},,t)
exten => _392X,1,Dial(IAX2/astr/${EXTEN},,t)

Для Астрахани
exten => _395X,1,Dial(IAX2/spb/${EXTEN},,t)
exten => _390X,1,Dial(IAX2/tver/${EXTEN},,t)

И вставляется все в [from-internal] в каждый из городов
Правильно?

Re: IAX2 и три Астериска

Добавлено: 16 июл 2020, 12:12
ded
Почти.
На номера 3910, 3940 и 3960 никто не сможет позвонить согласно вашим шаблонам.
Непонятно вообще зачем префикс 39, если вы умещаетесь в двузначную нумерацию.

Re: IAX2 и три Астериска

Добавлено: 04 авг 2020, 10:19
devset
Закрывайте тему решение:
[general]

[globals]

[default]

[from-internal]
include => from-external

exten => _39[56]X,1,NoOp(Call by XXXX from ${CALLERID} to ${EXTEN})
same => n,Dial(PJSIP/${EXTEN},60,Tt)
same => n,Hangup()

[from-external]
exten => XXXXXXXX,1,NoOp(Call by XXXXX from ${CALLERID} to ${EXTEN})
same => n,Answer()
same => n,Wait(1)
same => n,Set(TIMEOUT(digit)=3)
same => n,Background(greetings)
same => n,WaitExten(7)
same => n,Queue(queue01,t)
same => n,Hangup()

exten => _0[78]XXXX.,1,Dial(PJSIP/sipus_endpoint/sip:${EXTEN:1}@XXXXXXXXXXXX:XXXX)
same => n,Hangup()

exten => _39[56]X,1,NoOp(Call by XXXXX from ${CALLERID} to ${EXTEN})
same => n,Dial(PJSIP/${EXTEN},60,Tt)
same => n,Hangup()

exten => _39[234]X,1,NoOp(Call by XXXXXXX from ${CALLERID(all)} to ${EXTEN})
same => n,Dial(IAX2/XXX(IAX user)/${EXTEN},60,Tt)
same => n,Hangup()

exten => _39[01]X,1,NoOp(Call by XXXXXX from ${CALLERID(all)} to ${EXTEN})
same => n,Dial(IAX2/XXX(IAX user)/${EXTEN},60,Tt)
same => n,Hangup()

Ну собственно сам IAX
[general]
disallow=all
allow=ulaw
allow=gsm
allow=alaw
binaddr=0.0.0.0
delayreject=yes
jitterbufer=yes
autokill=yes

[guest]
type=user
context=no-guests
callerid="Guest IAX User"

[XXXX]
type=friend
host=XXXXXXXXX
encryption=yes
trunk=yes
username=XXXXX
secret=XXXXXXXXX
qualify=yes
forceencryption=yes
context=from-internal

[XXXX]
type=friend
host=XXXXXXXXXX
encryption=yes
trunk=yes
username=XXXX
secret=XXXXXXXX
qualify=yes
forceencryption=yes
context=from-internal