Откуда: SPB
Сообщений: 61
|
Звонки через SIP между двумя Asterisk
Коллеги, приветствую.
Имеется следующая схема:
IP-телефоны -> Asterisk1(192.168.2.40) -> SIP -> Asterisk2(192.168.2.103)
Логика работы следующая.
IP-телефоны зарегистрированы на Asterisk1. С телефона идет звонок на номер 6858, который с Asterisk1 с помощью Dial(SIP/asttest2/6858) переводится на Asterisk2. Там отрабатывает некое голосовое приложение, результатом работы которого является звонок на какой-то другой IP-телефон, зарегистрированнный на Asterisk1: Dial(SIP/asttest3/6500).
И вот этот обратный звонок не проходит. Звонки с аккаунтов, зарегистрированных на Asterisk2 аккаунтам зарегистрированным на Asterisk1 ходят без проблем. А вот такая петля не работает. Подскажите, пожалуйста, где затык?
Астериски друг на друге зарегистрированы, пиры заданы. Вот записи с Asterisk2:
register => asttest2:secret2@192.168.2.40
register => asttest3:secret3@192.168.2.40
[asttest2]
type=friend
username=asttest2
secret=secret2
host=192.168.2.40
disallow=all
allow=ulaw
allow=alaw
[asttest3]
type=friend
username=asttest3
secret=secret3
host=192.168.2.40
disallow=all
allow=ulaw
allow=alaw
Два канала между ними зарегистрировал на всякий случай, если звонить в тот же канал asttest2, через который пришел звонок, происходит тоже самое.
Т.е. вопрос следующий, можно ли звонок от клиента Asterisk1 на Asterisk2 перевести на другого клиента Asterisk1, но так, чтобы можно было обработать диал-статусы?
Логичным решение является использование Transfer вместо Dial, но он не позволяет обрабатывать диал-статусы и возвращать управление голосовому приложению на Asterisk2 в случает, например, если абонент занят.
При включенном sip debug при обратном звонке в логах имеем:
<------------->
--- (10 headers 0 lines) ---
-- Executing [ModeChoice@default:2] Dial("SIP/asttest2-00000020", "SIP/asttest3/6500") in new stack
== Using SIP RTP CoS mark 5
Audio is at 192.168.2.103 port 14124
Adding codec 0x4 (ulaw) to SDP
Adding codec 0x8 (alaw) to SDP
Adding non-codec 0x1 (telephone-event) to SDP
Reliably Transmitting (no NAT) to 192.168.2.40:5060:
INVITE sip:6500@192.168.2.40 SIP/2.0
Via: SIP/2.0/UDP 192.168.2.103:5060;branch=z9hG4bK0774dda7;rport
Max-Forwards: 70
From: "Softphone" <sip:6755@192.168.2.103>;tag=as459180db
To: <sip:6500@192.168.2.40>
Contact: <sip:6755@192.168.2.103>
Call-ID: 58741a1e75539edf2534c5305acb11ce@192.168.2.103
CSeq: 102 INVITE
User-Agent: Asterisk PBX 1.6.2.13
Date: Wed, 22 Dec 2010 14:02:18 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO
Supported: replaces, timer
Content-Type: application/sdp
Content-Length: 290
v=0
o=root 1297343692 1297343692 IN IP4 192.168.2.103
s=Asterisk PBX 1.6.2.13
c=IN IP4 192.168.2.103
t=0 0
m=audio 14124 RTP/AVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
a=ptime:20
a=sendrecv
---
-- Called asttest3/6500
<--- SIP read from UDP:192.168.2.40:5060 --->
SIP/2.0 407 Proxy Authentication Required
Via: SIP/2.0/UDP 192.168.2.103:5060;branch=z9hG4bK0774dda7;received=192.168.2.103;rport=5060
From: "Softphone" <sip:6755@192.168.2.103>;tag=as459180db
To: <sip:6500@192.168.2.40>;tag=as32a22793
Call-ID: 58741a1e75539edf2534c5305acb11ce@192.168.2.103
CSeq: 102 INVITE
User-Agent: PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Proxy-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="458d3b60"
Content-Length: 0
<------------->
--- (10 headers 0 lines) ---
Transmitting (no NAT) to 192.168.2.40:5060:
ACK sip:6500@192.168.2.40 SIP/2.0
Via: SIP/2.0/UDP 192.168.2.103:5060;branch=z9hG4bK0774dda7;rport
Max-Forwards: 70
From: "Softphone" <sip:6755@192.168.2.103>;tag=as459180db
To: <sip:6500@192.168.2.40>;tag=as32a22793
Contact: <sip:6755@192.168.2.103>
Call-ID: 58741a1e75539edf2534c5305acb11ce@192.168.2.103
CSeq: 102 ACK
User-Agent: Asterisk PBX 1.6.2.13
Content-Length: 0
---
Audio is at 192.168.2.103 port 14124
Adding codec 0x4 (ulaw) to SDP
Adding codec 0x8 (alaw) to SDP
Adding non-codec 0x1 (telephone-event) to SDP
Reliably Transmitting (no NAT) to 192.168.2.40:5060:
INVITE sip:6500@192.168.2.40 SIP/2.0
Via: SIP/2.0/UDP 192.168.2.103:5060;branch=z9hG4bK46a535ec;rport
Max-Forwards: 70
From: "Softphone" <sip:6755@192.168.2.103>;tag=as459180db
To: <sip:6500@192.168.2.40>
Contact: <sip:6755@192.168.2.103>
Call-ID: 58741a1e75539edf2534c5305acb11ce@192.168.2.103
CSeq: 103 INVITE
User-Agent: Asterisk PBX 1.6.2.13
Proxy-Authorization: Digest username="asttest3", realm="asterisk", algorithm=MD5, uri="sip:6500@192.168.2.40", nonce="458d3b60", response="02a1033219de8965f6fd4b494f67c7f6"
Date: Wed, 22 Dec 2010 14:02:18 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO
Supported: replaces, timer
Content-Type: application/sdp
Content-Length: 290
v=0
o=root 1297343692 1297343693 IN IP4 192.168.2.103
s=Asterisk PBX 1.6.2.13
c=IN IP4 192.168.2.103
t=0 0
m=audio 14124 RTP/AVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
a=ptime:20
a=sendrecv
---
<--- SIP read from UDP:192.168.2.40:5060 --->
SIP/2.0 403 Forbidden
Via: SIP/2.0/UDP 192.168.2.103:5060;branch=z9hG4bK46a535ec;received=192.168.2.103;rport=5060
From: "Softphone" <sip:6755@192.168.2.103>;tag=as459180db
To: <sip:6500@192.168.2.40>;tag=as32a22793
Call-ID: 58741a1e75539edf2534c5305acb11ce@192.168.2.103
CSeq: 103 INVITE
User-Agent: PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Content-Length: 0
<------------->
--- (9 headers 0 lines) ---
Transmitting (no NAT) to 192.168.2.40:5060:
ACK sip:6500@192.168.2.40 SIP/2.0
Via: SIP/2.0/UDP 192.168.2.103:5060;branch=z9hG4bK46a535ec;rport
Max-Forwards: 70
From: "Softphone" <sip:6755@192.168.2.103>;tag=as459180db
To: <sip:6500@192.168.2.40>;tag=as32a22793
Contact: <sip:6755@192.168.2.103>
Call-ID: 58741a1e75539edf2534c5305acb11ce@192.168.2.103
CSeq: 103 ACK
User-Agent: Asterisk PBX 1.6.2.13
Content-Length: 0
---
[Dec 22 17:02:18] WARNING[31301]: chan_sip.c:17929 handle_response_invite: Received response: "Forbidden" from '"Softphone" <sip:6755@192.168.2.103>;tag=as459180db'
-- SIP/asttest3-00000021 is circuit-busy
== Everyone is busy/congested at this time (1:0/1/0)
Насколько я понимаю, когда звонок идет обратно на Asterisk1 он не проходит авторизацию. Но вот почему это происходит?
И еще смущает в инвайте
From: "Softphone" <sip:6755@192.168.2.103>;tag=as459180db
ведь по идее вызывающий абонент это 6755@192.168.2.40
|