URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 91246
[ Назад ]

Исходное сообщение
"Trixbox: входящие звонки без 'allow anonymous SIP calls' - как?"

Отправлено aaaa , 24-Мрт-11 20:49 
В качестве транка юзаем SIP-proxy, подключаемся как экстеншен... Если включить в General "Allow Anonymous Inbound SIP Calls", входящие замечательно ловятся и направляются через Inbound Route. Если выключить эту опцию (а её очень хочется выключить по понятным причинам), при попытке позвонить на наши номера в трубке слышно астерисковскую говорилку, что "number is not in service". Как побороть? Интересует два варианта - чтобы проходили входящие звонки на любые номера но только с IP прописанного транка, или только прописанный номер только с прописанного IP. Всё без задействования внешнего фаервола, разумеется :)

Настройки SIP-транка судя по гуглу самые обычные:

Outbound Caller ID: номер
Dial Rules: |.
Trunk Name: Trunk-номер

PEER Details:

username=номер
type=peer
secret=пароль
nat=yes
insecure=very
host=1.2.3.4
fromuser=номер
fromdomain=1.2.3.4
dtmfmode=rfc2833
disallow=all
allow=alaw

USER Context: номер
USER Details:
type=user
secret=пароль
insecure=very
context=context-internal

Без "Allow Anonymous Inbound SIP Calls" при входящем звонке в лог пишется следующее:


[Mar 24 20:45:40] VERBOSE[3606] logger.c:     -- Executing [номер@from-sip-external:1] NoOp("SIP/Trunk-номер-00000010", "Received incoming SIP connection from unknown peer to номер") in new stack
[Mar 24 20:45:40] VERBOSE[3606] logger.c:     -- Executing [номер@from-sip-external:2] Set("SIP/Trunk-номер-00000010", "DID=номер") in new stack
[Mar 24 20:45:40] VERBOSE[3606] logger.c:     -- Executing [номер@from-sip-external:3] Goto("SIP/Trunk-номер-00000010", "s,1") in new stack
[Mar 24 20:45:40] VERBOSE[3606] logger.c:     -- Goto (from-sip-external,s,1)
[Mar 24 20:45:40] VERBOSE[3606] logger.c:     -- Executing [s@from-sip-external:1] GotoIf("SIP/Trunk-номер-00000010", "0?from-trunk,номер,1") in new stack
[Mar 24 20:45:40] VERBOSE[3606] logger.c:     -- Executing [s@from-sip-external:2] Set("SIP/Trunk-номер-00000010", "TIMEOUT(absolute)=15") in new stack
[Mar 24 20:45:40] VERBOSE[3606] logger.c: Channel will hangup at 2011-03-24 20:45:55.000 MSK.
[Mar 24 20:45:40] VERBOSE[3606] logger.c:     -- Executing [s@from-sip-external:3] Answer("SIP/Trunk-номер-00000010", "") in new stack
[Mar 24 20:45:40] VERBOSE[3606] logger.c:     -- Executing [s@from-sip-external:4] Wait("SIP/Trunk-номер-00000010", "2") in new stack
[Mar 24 20:45:42] VERBOSE[3606] logger.c:     -- Executing [s@from-sip-external:5] Playback("SIP/Trunk-номер-00000010", "ss-noservice") in new stack
[Mar 24 20:45:42] VERBOSE[3606] logger.c:     -- <SIP/Trunk-номер-00000010> Playing 'ss-noservice.gsm' (language 'en')
[Mar 24 20:45:47] VERBOSE[3606] logger.c:     -- Executing [s@from-sip-external:6] PlayTones("SIP/Trunk-номер-00000010", "congestion") in new stack
[Mar 24 20:45:47] VERBOSE[3606] logger.c:     -- Executing [s@from-sip-external:7] Congestion("SIP/Trunk-номер-00000010", "5") in new stack
[Mar 24 20:45:49] VERBOSE[3606] logger.c:   == Spawn extension (from-sip-external, s, 7) exited non-zero on 'SIP/Trunk-номер-00000010'
[Mar 24 20:45:49] VERBOSE[3606] logger.c:     -- Executing [h@from-sip-external:1] NoOp("SIP/Trunk-номер-00000010", "Hangup") in new stack
[Mar 24 20:45:49] VERBOSE[3606] logger.c:     -- Executing [h@from-sip-external:2] Set("SIP/Trunk-номер-00000010", "DID=s") in new stack
[Mar 24 20:45:49] VERBOSE[3606] logger.c:     -- Executing [h@from-sip-external:3] Goto("SIP/Trunk-номер-00000010", "s,1") in new stack
[Mar 24 20:45:49] VERBOSE[3606] logger.c:     -- Goto (from-sip-external,s,1)
[Mar 24 20:45:49] VERBOSE[3606] logger.c:     -- Executing [s@from-sip-external:1] GotoIf("SIP/Trunk-номер-00000010", "0?from-trunk,s,1") in new stack
[Mar 24 20:45:49] VERBOSE[3606] logger.c:     -- Executing [s@from-sip-external:2] Set("SIP/Trunk-номер-00000010", "TIMEOUT(absolute)=15") in new stack
[Mar 24 20:45:49] VERBOSE[3606] logger.c: Channel will hangup at 2011-03-24 20:46:04.000 MSK.
[Mar 24 20:45:49] VERBOSE[3606] logger.c:     -- Executing [s@from-sip-external:3] Answer("SIP/Trunk-номер-00000010", "") in new stack
[Mar 24 20:45:49] VERBOSE[3606] logger.c:   == Spawn extension (from-sip-external, s, 3) exited non-zero on 'SIP/Trunk-номер-00000010'


В остальном этот наш транк-экстеншен замечательно регистрируется на вышестоящем прокси, исходящие звонки без проблем идут...


Содержание

Сообщения в этом обсуждении
"Trixbox: входящие звонки без 'allow anonymous SIP calls' - как?"
Отправлено shadow_alone , 24-Мрт-11 21:31 
почему
context=context-internal
?

контекст должен быть типа
from-pstn , не знаю как в триксбокс, но подозреваю, что звонок вместо того что обрабатываться как входящий, обрабатывается через контекст для внутренних екстеншнов.

поменяйте context.


"Trixbox: входящие звонки без 'allow anonymous SIP calls' - как?"
Отправлено aaaa , 24-Мрт-11 21:37 
> контекст должен быть типа
> from-pstn , не знаю как в триксбокс, но подозреваю, что звонок вместо
> того что обрабатываться как входящий, обрабатывается через контекст для внутренних екстеншнов.

Пробовали from-trunk, from-pstn - тоже самое...

Да, в USER Context чего должно быть по логике, номер?


"Trixbox: входящие звонки без 'allow anonymous SIP calls' - как?"
Отправлено shadow_alone , 24-Мрт-11 21:39 
> Пробовали from-trunk, from-pstn - тоже самое...

Что значит пробывал? у тя такие контексты вообще есть?
почитай доки по триксбокс, или посмотри конфиги, найди какой контекст отвечает за входящие, и поставь его.

> Да, в USER Context чего должно быть по логике, номер?

По логике должен быть контекст,который обрабатывает входящие.

Или сам напиши контекст в конфигах и используй его.

Судя по твоим вопросам, ты понятия не имеешь что и как обрабатывается, советую сначала изучить доки,а потом уже использовать ПО.


"Trixbox: входящие звонки без 'allow anonymous SIP calls' - как?"
Отправлено aaaa , 24-Мрт-11 22:06 
Всё довольно просто решилось:

PEER Details:
username=номер
type=peer
secret=пароль
nat=yes
insecure=very
host=IP
fromuser=номер
fromdomain=IP
dtmfmode=rfc2833
disallow=all
allow=alaw
context=from-trunk

USER Context: номер

USER Detail:
username=номер
type=peer
secret=пароль
qualify=yes
nat=yes
insecure=very
context=from-trunk
canreinvite=yes
host=IP