Unauthorized 401
| Код: |
| mysql> select * from load_balancer; +----+----------+-------------------+-----------+-------------+ | id | group_id | dst_uri | resources | description | +----+----------+-------------------+-----------+-------------+ | 10 | 1 |sip:zzz.zzz.zzz.zzz | transc=5 | | +----+----------+-------------------+-----------+-------------+ |
При звонке непонятно почему отсылается такое сообщение:
| Код: |
| SIP/2.0 401 Unauthorized Via: SIP/2.0/UDP yyy.yyy.yyy.yyy:3417;received=yyy.yyy.yyy.yyy;branch=z9hG4bK-d8754z-9d3eef70b10edd2c-1---d8754z-;rport=3417 From: "3CX VoIP Phone";tag=5240596a To: ;tag=as68219ad8 Call-ID: MzFmZjI4M2I2ODAyNzBiODI1ZmRiN2I2ZDZkYTA5ZTI. CSeq: 1 INVITE User-Agent: Twinkle Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces, timer WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="74f88fa6" Content-Length: 0 |
А при второй попытке уже нормально:
| Код: |
| SIP/2.0 183 Session Progress Via: SIP/2.0/UDP yyy.yyy.yyy.yyy:3417;received=yyy.yyy.yyy.yyy;branch=z9hG4bK-d8754z-0026e105847d1d4f-1---d8754z-;rport=3417 Record-Route: From: "3CX VoIP Phone";tag=5240596a To: ;tag=as7d4b8155 Call-ID: MzFmZjI4M2I2ODAyNzBiODI1ZmRiN2I2ZDZkYTA5ZTI. CSeq: 2 INVITE User-Agent: Twinkle Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces, timer Contact: Content-Type: application/sdp Content-Length: 286 |
Причем, если добавить в таблицу load_balancer еще один астериск, то Opensips попробует по одной попытке на каждый их них и выдаст сообщение, эквивалентное первому. Никто не сталкивался с этим? На всякий случай лог и конфиг в аттаче.
| Код: |
| SIP/2.0 401 Unauthorized |
посылает астериск. При повторном инвайте на тот же астериск, звонок проходит. А вот если в таблицу добавить еще один астериск, то опенсипс посылает первый и третий инвайты на первый астериск, а второй инвайт на второй астериск и звонок не проходит. Как сделать так, чтобы при получении сообщения Unauthorized, опенсипс повторял звонок на тот же астериск?
Added after 1 hours 6 minutes:
Если упростить вопрос, то мне нужно знать в какой переменной хранится статус ответа? И как сделать повторный инвайт только с помощью опенсипса, не отправляя ответ клиенту?
Сказать ему, чтоб не требовал авторизацию с этого пира, по его IP.
_________________
ys
http://voip.rus.net/
вот sip debug на asteriske
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP [serhost];branch=z9hG4bK1ce47d96a9964a7f;received=serhost
Via: SIP/2.0/UDP [serhost];branch=z9hG4bK1ce47d96a9964a7f
Via: SIP/2.0/UDP [serhost];branch=z9hG4bK1ce47d96a9964a7f
Via: SIP/2.0/UDP [ip телефона]:5060;received=80.250.160.161;received=80.250.160.161;received=80.250.160.161;branch=z9hG4bK1ce47d96a9964a7f
From: "------" ;tag=d5ae7445ea3dc6b6
To: ;tag=as0f6d5d6c
Call-ID: 9469f7323832b9e4@ip телефона
CSeq: 13124 REGISTER
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Supported: replaces
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="4f058752"
Content-Length: 0
Система такая: запрос поступает на сервер openser (если запрос о регистрации, то мы сначала производим аутентификацию пользователя, а потом посылаем его на астериск для дальнейшей регистрации, все остальные запросы прямиком идут на астор без авторизации), то есть openser работает в stateless режиме и только авторизует пользователей.
При чем как только мы запускаем опенсер или подключаем телефон к сети, первый, иногда и второй звонок не осуществляется (тут скорее всего не от количетсва звонков зависит, а от времени). Вопрос в том почему так происходит. Ибо потом звонки осуществляются.
В конфиге астера прописано:
[openser]
type=peer
context=default
host=openserhost
Подскажите, пожалуйста что не так.