Привет!
Столкнулся с задачкой, вот ломаю логову решаю.
Есть Asterisk 1.8, телефонная станция tde600 и дружат они по SIP транку. Звонки туда обратно летают без проблем.
Есть номер 1332 принадлежащий tde, есть 6555 и 1788 принадлежащий Астериску. Если с 1332 сделать переадресацию на 1788, затем с 6555 набрать 1332, то вызов оборвется.
Астериск ругнется:
WARNING[30296]: chan_sip.c:14398 check_auth: username mismatch, have <6555>, digest has <SIP_MSK>
NOTICE[30296]: chan_sip.c:22521 handle_request_invite: Failed to authenticate device sip:6555@172.20.128.253;tag=26527
А все потому, что станция tde в хедер From: подставляет данные звонящего:
From: sip:6555@172.20.128.253;tag=26527
На что астериск говорит:
Found peer '6555' for '6555' from 172.20.128.251:35060
Затем заставляет пройти авторизацию и дает отбой:
SIP/2.0 401 Unauthorized
SIP/2.0 403 Forbidden
Выходит так, как будто tde пытается совершить вызов с sip аккаунта 6555, где установлен пароль, который она само собой не знает.
Транк:
[SIP_MSK]
context = tde600-in
host = 172.20.128.251
port = 35060
type = friend
disallow = all
allow = alaw
allow = ulaw
allow = g729
allow = gsm
dtmfmode = rfc2833
pickupgroup = 1
Callgroup = 1
canreinvite = yes
qualify = yes
nat = no
insecure = port,invite
Как решить данную проблему?
Update, добавил параметры sip:
[6555]
callerid = "Admin" <6555>
type = friend
context = phones
host = dynamic
deny = 0.0.0.0/0.0.0.0
permit = 172.20.0.0/255.252.0.0
permit = 192.168.62.0/255.255.255.0
permit = 192.168.53.0/255.255.255.0
pickupgroup = 1
callgroup = 1
canreinvite = no
language = ru
qualify = yes
nat = yes
secret = 7986
transport = udp
dtmfmode = rfc2833
cc_agent_policy=generic
cc_monitor_policy=generic
Дебаг: скачать
Задан: 2015-04-23 10:03:10 +0400
Просмотрен: 280 раз
Обновлен: Apr 27 '15
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Если требуется авторизации , то где имя пользователя и пароль?
zzuz ( 2015-04-23 11:19:17 +0400 )редактироватьОн пытается под 6555 авторизоваться, там пароль установлен. Failed to authenticate device sip:6555@172.20.128.253
dad495 ( 2015-04-23 13:18:02 +0400 )редактироватьВ вопросе нет пира с указанной авторизацией.
zzuz ( 2015-04-23 13:20:34 +0400 )редактироватьДобавил sip параметры пира. У 1788 тоже самое.
dad495 ( 2015-04-23 14:10:12 +0400 )редактироватьу 6555 есть пароль , но где имя пользователя?
zzuz ( 2015-04-23 15:27:50 +0400 )редактировать6555 это сип учетка для устройства, 6555 сответственно и есть логин.
dad495 ( 2015-04-23 16:17:13 +0400 )редактироватьназвание пира != имя пользователя .
zzuz ( 2015-04-23 18:47:11 +0400 )редактироватьа у вас между астериском и tde600 сколько sip каналов?
zavulon ( 2015-04-23 20:11:26 +0400 )редактировать32 канала, расширяли лицензиями. zzuz, поясните пожалуйста к чему мысль ваша ведет?
dad495 ( 2015-04-24 12:10:16 +0400 )редактироватьМоя мысль ведет к тому , что для 6555 нет директивы username .
zzuz ( 2015-04-24 13:47:30 +0400 )редактироватьЯ всегда думал что username нужно только чтобы в INVITE вместо имени сип учетки прописывать параметр из username. В моем случае что это даст, не подскажите?
dad495 ( 2015-04-24 14:47:05 +0400 )редактироватьПодскажу . http://www.voip-info.org/wiki/view/Asterisk+config+sip.conf .
zzuz ( 2015-04-24 14:57:04 +0400 )редактироватьvoip-info читаю как библию. Прежде чем задать вопрос я естественно пытался сам решить. Username пробовал использовать, прописывал имя учетки sip, пробовал имя транка SIP MSK. Все равно не работает. Только fromuser = SIP MSK работает, но tde номер определяет как SIP_MSK. Это не подходит.
dad495 ( 2015-04-24 18:02:51 +0400 )редактироватьЕсли читаете , то должны понимать , как перевести строку
zzuz ( 2015-04-24 19:03:16 +0400 )редактироватьWARNING[30296]: chan_sip.c:14398 check_auth: username mismatch, have <6555>, digest has <SIP_MSK>
Итак, я решил проблему! А нехватало параметра в sip.conf general matchauthusername = yes, который говорит астериску использовать для авторизации username из строки авторизации вместо поля From:, а там как раз tde передает username=SIP_MSK, авторизация проходит а вместе с ней и переадресация. Всем спасибо за внимание. Надеюсь кому-нибудь поможет.
dad495 ( 2015-04-28 11:15:30 +0400 )редактировать