302 Moved Temporarily
Asterisk игнорирует 302 "Moved Temporarily".
Откуда: Москва
Сообщений: 24
|
302 Moved Temporarily
Здравствуйте!
Asterisk зареген на неком устройстве (SIP Registrar/Redirect Server).
С Астериска совершает исходящий вызов в сторону данного сервера. Сервер, возвращает Астериску сообщение 302 "Moved Temporarily" и в поле contact указывает на какой IP слать новый INVITE. Астериск игнорирует данное сообщение, и отправляет CANCEL.
Можно изменить алгоритм работы, что бы Астериск отправлял INVITE но новый IP?
|
Откуда: NiNo
Сообщений: 112
|
Re: 302 Moved Temporarily
sip.conf => promiscredir=yes
|
Откуда: Москва
Сообщений: 24
|
Re: 302 Moved Temporarily
sip.conf => promiscredir=yes
Да, это я пробовал... не помогает.
Вот, что происходит.
Исходящая связь осуществляется с софт-фона зарегеного на астериске.
Набирается номер 5004.
Выдается сообщение:
[May 12 23:45:13] WARNING[746]: chan_sip.c:3094 create_addr: No such host: 5004
[May 12 23:45:13] NOTICE[746]: app_dial.c:535 wait_for_answer: Unable to create local channel for call forward to 'SIP/5004' (cause = 20)
Трассировка:
Коменты:
IP
10.21.0.50 - софт клиент с которого я звоню
10.21.0.114 - Asterisk
10.21.2.203 (nrs.voip.telecom.lan) - тот самый редирект сервер
10.21.2.200 - тот адрес (sip gateway) куда должен отсылаться новый INVITE после получения сообщения 302.
конфиги ниже, после трейса
<--- SIP read from 10.21.0.50:5060 --->
INVITE sip:5004@10.21.0.114 SIP/2.0
Via: SIP/2.0/UDP 10.21.0.50;branch=z9hG4bK0501d7af0000003e4beb060d00000e2300000026;rport
From: "Andrey" <sip:1000@10.21.0.114>;tag=6a88187abe2
To: <sip:5004@10.21.0.114>
Contact: <sip:1000@10.21.0.50>
Call-ID: 6C83E17AE83D4EB2BD2F5ACA9DC4F6110x0501d7af
CSeq: 2 INVITE
Max-Forwards: 70
User-Agent: SJphone/1.65.377a (SJ Labs)
Content-Length: 241
Content-Type: application/sdp
Supported: replaces,norefersub,timer
Proxy-Authorization: Digest username="1000",realm="telecom.lan",nonce="4cbd58f4",uri="sip:5004@10.21.0.114",response="f4e8ebd1526c099a1b7beef404531bcf",algorithm=MD5
v=0
o=- 3482682507 3482682508 IN IP4 10.21.0.50
s=SJphone
c=IN IP4 10.21.0.50
t=0 0
m=audio 49158 RTP/AVP 8 101
c=IN IP4 10.21.0.50
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=setup:active
a=sendrecv
-----
Audio is at 10.21.0.114 port 11048
Adding codec 0x8 (alaw) to SDP
Adding non-codec 0x1 (telephone-event) to SDP
Reliably Transmitting (no NAT) to 10.21.2.203:5060:
INVITE sip:5004@nrs.voip.telecom.lan SIP/2.0
Via: SIP/2.0/UDP 10.21.0.114:5060;branch=z9hG4bK0b04798a;rport
From: "Andrey-SIP" <sip:1000@nrs.voip.telecom.lan>;tag=as27854cd5
To: <sip:5004@nrs.voip.telecom.lan>
Contact: <sip:1000@10.21.0.114>
Call-ID: 4547ee7265e5c5b75104779e55785d16@nrs.voip.telecom.lan
CSeq: 103 INVITE
User-Agent: Asterisk PBX
Max-Forwards: 70
Proxy-Authorization: Digest username="asterisk", realm="nrs.voip.telecom.lan", algorithm=MD5, uri="sip:5004@nrs.voip.telecom.lan", nonce="8cf4b8b23c3a9b59fdb5a2f04f026b7e", response="9cbaf4cbd8f53e417df1bb7fc5a6e78b", opaque="71d30317c00e3421b1f4258eff98f817", qop=auth, cnonce="5dc952d9", nc=00000001
Date: Wed, 12 May 2010 23:48:26 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO
Supported: replaces
Content-Type: application/sdp
Content-Length: 234
v=0
o=root 754 755 IN IP4 10.21.0.114
s=session
c=IN IP4 10.21.0.114
t=0 0
m=audio 11048 RTP/AVP 8 101
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
a=ptime:20
a=sendrecv
---
asterisk*CLI>
<--- SIP read from 10.21.2.203:5060 --->
SIP/2.0 302 Moved Temporarily
Via: SIP/2.0/UDP 10.21.0.114:5060;branch=z9hG4bK0b04798a;rport;received=10.21.0.114
From: "Andrey-SIP" <sip:1000@nrs.voip.telecom.lan>;tag=as27854cd5
To: <sip:5004@nrs.voip.telecom.lan>;tag=37765
Call-ID: 4547ee7265e5c5b75104779e55785d16@nrs.voip.telecom.lan
CSeq: 103 INVITE
Contact: <sip:5004;phone-context=cdp.udp@nrs.voip.telecom.lan:5060;maddr=10.21.2.200;transport=udp;x-nt-redirect=redirect-server>
Content-Length: 0
<------------->
--- (8 headers 0 lines) ---
Transmitting (no NAT) to 10.21.2.203:5060:
ACK sip:5004@nrs.voip.telecom.lan SIP/2.0
Via: SIP/2.0/UDP 10.21.0.114:5060;branch=z9hG4bK0b04798a;rport
From: "Andrey-SIP" <sip:1000@nrs.voip.telecom.lan>;tag=as27854cd5
To: <sip:5004@nrs.voip.telecom.lan>;tag=37765
Contact: <sip:1000@10.21.0.114>
Call-ID: 4547ee7265e5c5b75104779e55785d16@nrs.voip.telecom.lan
CSeq: 103 ACK
User-Agent: Asterisk PBX
Max-Forwards: 70
Content-Length: 0
---
[May 12 23:48:26] WARNING[779]: chan_sip.c:3094 create_addr: No such host: 5004
Really destroying SIP dialog '4ffe4fa7659474a26ba57b70488de014@10.21.0.114' Method: INVITE
[May 12 23:48:26] NOTICE[779]: app_dial.c:535 wait_for_answer: Unable to create local channel for call forward to 'SIP/5004' (cause = 20)
asterisk*CLI>
<--- Reliably Transmitting (NAT) to 10.21.0.50:5060 --->
SIP/2.0 503 Service Unavailable
Via: SIP/2.0/UDP 10.21.0.50;branch=z9hG4bK0501d7af0000003e4beb060d00000e2300000026;received=10.21.0.50;rport=5060
From: "Andrey" <sip:1000@10.21.0.114>;tag=6a88187abe2
To: <sip:5004@10.21.0.114>;tag=as64f70c20
Call-ID: 6C83E17AE83D4EB2BD2F5ACA9DC4F6110x0501d7af
CSeq: 2 INVITE
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO
Supported: replaces
Content-Length: 0
<------------>
Really destroying SIP dialog '4547ee7265e5c5b75104779e55785d16@nrs.voip.telecom.lan' Method: INVITE
asterisk*CLI>
<--- SIP read from 10.21.0.50:5060 --->
ACK sip:5004@10.21.0.114 SIP/2.0
Via: SIP/2.0/UDP 10.21.0.50;branch=z9hG4bK0501d7af0000003e4beb060d00000e2300000026;rport
From: "Andrey" <sip:1000@10.21.0.114>;tag=6a88187abe2
To: <sip:5004@10.21.0.114>;tag=as64f70c20
Call-ID: 6C83E17AE83D4EB2BD2F5ACA9DC4F6110x0501d7af
CSeq: 2 ACK
Max-Forwards: 70
User-Agent: SJphone/1.65.377a (SJ Labs)
Content-Length: 0
Proxy-Authorization: Digest username="1000",realm="telecom.lan",nonce="4cbd58f4",uri="sip:5004@10.21.0.114",response="f4e8ebd1526c099a1b7beef404531bcf",algorithm=MD5
конфиги:
------ sip.conf
[general]
context=default
allowoverlap=no
realm=telecom.lan
bindport=5060
bindaddr=0.0.0.0
promiscredir=yes
[1000]
type=friend
context=default
username=1000
secret=pass
callerid=Andrey-SIP <1000>
host=dynamic
defaultip=10.21.0.1
nat=no
canreinvite=yes
dtmfmode=info
outgoinglimit=1
incominglimit=2
disallow=all
allow=alaw
amaflags=default
accountcode=company123
[toCS1000E]
type = friend
username= asterisk
secret=pass
host = nrs.voip.telecom.lan
fromdomain=nrs.voip.telecom.lan
context = default
canreinvite=yes
insecure=very
nat=no
disallow=all
allow=alaw
----- extensions.conf
[general]
priorityjumping=yes
[macro-normal]
exten => s,1,Dial(${ARG2})
[default]
exten => _1XXX,1,Macro(normal|${EXTEN}|SIP/${EXTEN})
exten => _5XXX,1,Dial(SIP/toCS1000E/${EXTEN})
|
Откуда: NiNo
Сообщений: 112
|
Re: 302 Moved Temporarily
...есть подозрение,что не нравится ему `;phone-context=cdp.udp` в Contact...
|
Сообщений: 6521
|
Re: 302 Moved Temporarily
Видимо потому, что звонок делается через макрос
exten => s,1,Dial(${ARG2})
Таким образом ARG2 принимает значение 'SIP/5004' и Dial идёт на несуществующий хост call forward to 'SIP/5004'
Такого нет, убедится можно по sip show peers.
Насколько видно - этот экстен находится на 5004@nrs.voip.telecom.lan
то есть форвардить надо по формуле Технология/пир/экстен
то есть Dial(SIP/toCS1000E/${EXTEN})
Без макроса!
|
Откуда: Москва
Сообщений: 24
|
Re: 302 Moved Temporarily
ded: Видимо потому, что звонок делается через макрос
exten => s,1,Dial(${ARG2})
Таким образом ARG2 принимает значение 'SIP/5004' и Dial идёт на несуществующий хост call forward to 'SIP/5004'
Такого нет, убедится можно по sip show peers.
Насколько видно - этот экстен находится на 5004@nrs.voip.telecom.lan
то есть форвардить надо по формуле Технология/пир/экстен
то есть Dial(SIP/toCS1000E/${EXTEN})
Без макроса!
Я еще не очень хорошо разбираюсь в маршрутизации, но как я понял, макрос я прописал, для вызовов внутри самого астериска (там нумерация 1xxx), а для всего, что начинается на 5xxx идет без макроса exten => _5XXX,1,Dial(SIP/toCS1000E/${EXTEN})
или я не до понял сути?
|
Сообщений: 6521
|
Re: 302 Moved Temporarily
Для конструктивного диалога нужно отказаться от оверквотинга.
Присягнуть на Конституции и расписаться кровью. Готовы?
Попробуйте в тестовых целях временно отказаться от макроса.
exten => _1XXX,1,Dial(SIP/${EXTEN})
exten => _5XXX,1,Dial(SIP/toCS1000E/${EXTEN})
|
Откуда: Москва
Сообщений: 24
|
Re: 302 Moved Temporarily
К сожалению не помогло:
вот конфиг:
[ Context 'default' created by 'pbx_config' ]
'_1XXX' => 1. Dial(SIP/${EXTEN}) [pbx_config]
'_5XXX' => 1. Dial(SIP/toCS1000E/${EXTEN}) [pbx_config]
Результат тот же:
[May 13 01:08:01] WARNING[884]: chan_sip.c:3094 create_addr: No such host: 5004
[May 13 01:08:01] NOTICE[884]: app_dial.c:535 wait_for_answer: Unable to create local channel for call forward to 'SIP/5004' (cause = 20)
|
Сообщений: 6521
|
Re: 302 Moved Temporarily
По этому выводу выглядит так, как будто выполняется другой кусок диал-плана.
Покажите вывод
sip show peers
и кусок вывода с консоли при наборе 5004 чуть выше этих строк, перед WARNING, где исполняется команда Dial.
[toCS1000E]
type = friend
username= asterisk
secret=pass
host = nrs.voip.telecom.lan
fromdomain=nrs.voip.telecom.lan
context = default
canreinvite=no а вот так?
nrs.voip.telecom.lan резольвится в ИП адрес?
|
Откуда: Москва
Сообщений: 24
|
Re: 302 Moved Temporarily
ded:
Покажите вывод
sip show peers
asterisk*CLI> sip show peers
Name/username Host Dyn Nat ACL Port Status
toCS1000E/asterisk 10.21.2.203 5060 Unmonitored
1000/1000 10.21.0.50 D 5060 Unmonitored
2 sip peers [Monitored: 0 online, 0 offline Unmonitored: 2 online, 0 offline]
ded:
и кусок вывода с консоли при наборе 5004 чуть выше этих строк, перед WARNING, где исполняется команда Dial.
До Warning ни чего нет. Может нужно включить какой то debug режим?
ded:
canreinvite=no а вот так?
Не помогло.
ded:
nrs.voip.telecom.lan резольвится в ИП адрес?
Да, fqdn реальный, присутствует в DNS и ресолвится.
root@asterisk:/etc/asterisk# dig any nrs.voip.telecom.lan
......
;; ANSWER SECTION:
nrs.voip.telecom.lan. 172800 IN A 10.21.2.203
|
|