Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

спросил 2013-04-02 20:33:35 +0400

neiroman2k Gravatar neiroman2k

asterisk + kamailio

Настраивал связку * и kamailio по инструкции

правда с небольшим отступлением - kamailio и * находятся на разных серверах, соединены между собой через openvpn, таблица sipusers находится прямо в базе openser на kamailio и просто синхронизирована с базой *

адресация такая

10.10.2.2 - openvpn.*
10.10.2.10 - openvpn.kamailio
192.168.0.1 - внутренний адрес kamailio
192.168.0.50 - адрес sip-клиента

Воткнулся вот на чем пользователь вроде регистрируется на kamailio (появляется запись в openser.location), далее kamailio перекидывает регистрацию от своего имени на *

вот дамп с астериска при регистрации клиента

<--- SIP read from UDP:10.10.2.10:5060 --->
REGISTER sip:10.10.2.2:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.1;branch=z9hG4bKda92.9a1e2bc1.0
To: sip:user1@10.10.2.2
From: sip:user1@10.10.2.2;tag=533cb9e91f4b999cf76861cbb9ed54ed-49f0
CSeq: 10 REGISTER
Call-ID: 77ffdffc-5520@127.0.0.1
Content-Length: 0
User-Agent: kamailio (3.3.4 (i386/linux))
Contact: <sip:user1@10.10.2.10:5060>
Expires: 3600

<------------->
--- (10 headers 0 lines) ---
Sending to 10.10.2.10:5060 (no NAT)

<--- Transmitting (NAT) to 10.10.2.10:5060 --->
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.0.1;branch=z9hG4bKda92.9a1e2bc1.0;received=10.10.2.10;rport=5060
From: sip:user1@10.10.2.2;tag=533cb9e91f4b999cf76861cbb9ed54ed-49f0
To: sip:user1@10.10.2.2;tag=as14b5e56d
Call-ID: 77ffdffc-5520@127.0.0.1
CSeq: 10 REGISTER
Server: Virtel.net Node1
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="6922a08d"
Content-Length: 0


<------------>
Scheduling destruction of SIP dialog '77ffdffc-5520@127.0.0.1' in 32000 ms (Method: REGISTER)

с софтфона успешно делаем любые наборы, кроме себя любимого оказывается на * регистрация отсутствует

Хелп плз

asterisk + kamailio

Настраивал связку * и kamailio по инструкции

правда с небольшим отступлением - kamailio и * находятся на разных серверах, соединены между собой через openvpn, таблица sipusers находится прямо в базе openser на kamailio и просто синхронизирована с базой *

адресация такая

10.10.2.2 - openvpn.*
openvpn.asterisk
10.10.2.10 - openvpn.kamailio
192.168.0.1 - внутренний адрес kamailio
192.168.0.50 - адрес sip-клиента

Воткнулся вот на чем пользователь вроде регистрируется на kamailio (появляется запись в openser.location), далее kamailio перекидывает регистрацию от своего имени на *

вот дамп с астериска при регистрации клиента

<--- SIP read from UDP:10.10.2.10:5060 --->
REGISTER sip:10.10.2.2:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.1;branch=z9hG4bKda92.9a1e2bc1.0
To: sip:user1@10.10.2.2
From: sip:user1@10.10.2.2;tag=533cb9e91f4b999cf76861cbb9ed54ed-49f0
CSeq: 10 REGISTER
Call-ID: 77ffdffc-5520@127.0.0.1
Content-Length: 0
User-Agent: kamailio (3.3.4 (i386/linux))
Contact: <sip:user1@10.10.2.10:5060>
Expires: 3600

<------------->
--- (10 headers 0 lines) ---
Sending to 10.10.2.10:5060 (no NAT)

<--- Transmitting (NAT) to 10.10.2.10:5060 --->
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.0.1;branch=z9hG4bKda92.9a1e2bc1.0;received=10.10.2.10;rport=5060
From: sip:user1@10.10.2.2;tag=533cb9e91f4b999cf76861cbb9ed54ed-49f0
To: sip:user1@10.10.2.2;tag=as14b5e56d
Call-ID: 77ffdffc-5520@127.0.0.1
CSeq: 10 REGISTER
Server: Virtel.net Node1
Asterisk 1.8
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="6922a08d"
Content-Length: 0


<------------>
Scheduling destruction of SIP dialog '77ffdffc-5520@127.0.0.1' in 32000 ms (Method: REGISTER)

с софтфона успешно делаем любые наборы, кроме себя любимого оказывается любимого. Оказывается на * регистрация отсутствует

Хелп плз

asterisk + kamailio

Настраивал связку * и kamailio по инструкции

правда с небольшим отступлением - kamailio и * находятся на разных серверах, соединены между собой через openvpn, таблица sipusers находится прямо в базе openser на kamailio и просто синхронизирована с базой *

адресация такая

10.10.2.2 - openvpn.asterisk
10.10.2.10 - openvpn.kamailio
192.168.0.1 - внутренний адрес kamailio
192.168.0.50 - адрес sip-клиента

Воткнулся вот на чем пользователь регистрируется на kamailio (появляется запись в openser.location), далее kamailio перекидывает регистрацию от своего имени на *

вот дамп с астериска при регистрации клиента

<--- SIP read from UDP:10.10.2.10:5060 --->
REGISTER sip:10.10.2.2:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.1;branch=z9hG4bKda92.9a1e2bc1.0
To: sip:user1@10.10.2.2
From: sip:user1@10.10.2.2;tag=533cb9e91f4b999cf76861cbb9ed54ed-49f0
CSeq: 10 REGISTER
Call-ID: 77ffdffc-5520@127.0.0.1
Content-Length: 0
User-Agent: kamailio (3.3.4 (i386/linux))
Contact: <sip:user1@10.10.2.10:5060>
Expires: 3600

<------------->
--- (10 headers 0 lines) ---
Sending to 10.10.2.10:5060 (no NAT)

<--- Transmitting (NAT) to 10.10.2.10:5060 --->
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.0.1;branch=z9hG4bKda92.9a1e2bc1.0;received=10.10.2.10;rport=5060
From: sip:user1@10.10.2.2;tag=533cb9e91f4b999cf76861cbb9ed54ed-49f0
To: sip:user1@10.10.2.2;tag=as14b5e56d
Call-ID: 77ffdffc-5520@127.0.0.1
CSeq: 10 REGISTER
Server: Asterisk 1.8
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="6922a08d"
Content-Length: 0


<------------>
Scheduling destruction of SIP dialog '77ffdffc-5520@127.0.0.1' in 32000 ms (Method: REGISTER)

с софтфона успешно делаем любые наборы, кроме себя любимого. Оказывается на * регистрация отсутствует

Хелп плзРешение: надо поле secret выставить в null


Теперь другая беда

прошу еще помощи.

проблем с регистрацией пользователей из локалки (192.168.0.0/24) нет

tcpdump выдает нормальный диалог

00:57:14.849029 IP 10.10.2.10.6000 > 10.10.2.2.sip: SIP, length: 364
00:57:14.855616 IP 10.10.2.2.sip > 10.10.2.10.6000: SIP, length: 482

а вот при попытке зарегаться через внешний интерфейс

дамп в вот такой

01:00:53.754497 IP 10.10.20.x.6000 > 10.10.2.2.sip: SIP, length: 365
01:00:53.879495 IP 10.10.20.x.6000 > 10.10.2.2.sip: SIP, length: 367
01:00:57.629493 IP 10.10.20.x.6000 > 10.10.2.2.sip: SIP, length: 368
01:00:57.754497 IP 10.10.20.x.6000 > 10.10.2.2.sip: SIP, length: 365
01:00:57.879495 IP 10.10.20.x.6000 > 10.10.2.2.sip: SIP, length: 367

где 10.10.20.x - внешний ip kamailio т.е. kamailio переправляет пакеты в туннель указывая не свой туннельный ip, а свой внешний ip

при этом регистрация на kamailio проходит, а вот астериск такого финта уже не понимает и пытается вернуть ответ на 10.10.20.x.6000

asterisk + kamailio

Настраивал связку * и kamailio по инструкции

правда с небольшим отступлением - kamailio и * находятся на разных серверах, соединены между собой через openvpn, таблица sipusers находится прямо в базе openser на kamailio и просто синхронизирована с базой *

адресация такая

10.10.2.2 - openvpn.asterisk
10.10.2.10 - openvpn.kamailio
192.168.0.1 - внутренний адрес kamailio
192.168.0.50 - адрес sip-клиента

Воткнулся вот на чем пользователь регистрируется на kamailio (появляется запись в openser.location), далее kamailio перекидывает регистрацию от своего имени на *

вот дамп с астериска при регистрации клиента

<--- SIP read from UDP:10.10.2.10:5060 --->
REGISTER sip:10.10.2.2:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.1;branch=z9hG4bKda92.9a1e2bc1.0
To: sip:user1@10.10.2.2
From: sip:user1@10.10.2.2;tag=533cb9e91f4b999cf76861cbb9ed54ed-49f0
CSeq: 10 REGISTER
Call-ID: 77ffdffc-5520@127.0.0.1
Content-Length: 0
User-Agent: kamailio (3.3.4 (i386/linux))
Contact: <sip:user1@10.10.2.10:5060>
Expires: 3600

<------------->
--- (10 headers 0 lines) ---
Sending to 10.10.2.10:5060 (no NAT)

<--- Transmitting (NAT) to 10.10.2.10:5060 --->
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.0.1;branch=z9hG4bKda92.9a1e2bc1.0;received=10.10.2.10;rport=5060
From: sip:user1@10.10.2.2;tag=533cb9e91f4b999cf76861cbb9ed54ed-49f0
To: sip:user1@10.10.2.2;tag=as14b5e56d
Call-ID: 77ffdffc-5520@127.0.0.1
CSeq: 10 REGISTER
Server: Asterisk 1.8
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="6922a08d"
Content-Length: 0


<------------>
Scheduling destruction of SIP dialog '77ffdffc-5520@127.0.0.1' in 32000 ms (Method: REGISTER)

с софтфона успешно делаем любые наборы, кроме себя любимого. Оказывается на * регистрация отсутствует

Решение: надо поле secret выставить в null


Теперь другая беда

прошу еще помощи.

проблем с регистрацией пользователей из локалки (192.168.0.0/24) нет

tcpdump выдает нормальный диалог

00:57:14.849029 IP 10.10.2.10.6000 > 10.10.2.2.sip: SIP, length: 364
00:57:14.855616 IP 10.10.2.2.sip > 10.10.2.10.6000: SIP, length: 482

а вот при попытке зарегаться через внешний интерфейс

дамп в вот такой

01:00:53.754497 IP 10.10.20.x.6000 > 10.10.2.2.sip: SIP, length: 365
01:00:53.879495 IP 10.10.20.x.6000 > 10.10.2.2.sip: SIP, length: 367
01:00:57.629493 IP 10.10.20.x.6000 > 10.10.2.2.sip: SIP, length: 368
01:00:57.754497 IP 10.10.20.x.6000 > 10.10.2.2.sip: SIP, length: 365
01:00:57.879495 IP 10.10.20.x.6000 > 10.10.2.2.sip: SIP, length: 367

где 10.10.20.x - внешний ip kamailio т.е. kamailio переправляет пакеты в туннель указывая не свой туннельный ip, а свой внешний ip

при этом регистрация на kamailio проходит, а вот астериск такого финта уже не понимает и пытается вернуть ответ на 10.10.20.x.6000

Спасибо за подсказку. Решение: поднял rtpproxy В конфиге kamailio прописал

#!define WITH_NAT
mhomed=1
max_expiry=600

Раз уж все так замечательно получается - хочу повысить безопасность, а именно сейчас пользователи имею логины вида

userXXX..., где XXX числа

вопрос - можно-ли сделать, чтобы регистрация на kamailio происходила по логинам

aADasQEqw-userXXX

а в астериск уже пробрасывалась как userXXX

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.