Hello all,
I am
trying to use Kamailio 5.0 with Asterisk (separate IP
addresses, both port 5060),
but
Asterisk doesn't register the SIP clients which comes through
Kamailio.
If I
register the same user directly to the Asterisk then it works!
1st REGISTER
is
also without Authorization (Digest name) but in the 2nd
REGISTER it exists
and
registration goes OK.
How to
use Kamailio with Asterisk in the way the SIP client is
registered on both of them?
Thank
you
Marko
SIP-CLIENT
DIRECTLY TO ASTERISK:
-----------------------------------------------------------
1 2017-04-01 15:20:48.331806 192.168.0.12 192.168.0.2
SIP 544 Request: REGISTER
sip:192.168.0.2 (1 binding) |
2 2017-04-01 15:20:48.332998 192.168.0.2 192.168.0.12
SIP 626 Status: 401 Unauthorized |
3 2017-04-01 15:20:48.333814 192.168.0.12 192.168.0.2
SIP 700 Request: REGISTER
sip:192.168.0.2 (1 binding) |
4 2017-04-01 15:20:48.335975 192.168.0.2 192.168.0.12
SIP 647 Status: 200 OK (1 binding) |
Frame
3: 700 bytes on wire (5600 bits), 700 bytes captured (5600
bits) on interface 0
Ethernet II, Src: AsrockIn_0a:0b:46 (70:85:c2:0a:0b:46), Dst:
Raspberr_a1:fd:f7 (b8:27:eb:a1:fd:f7)
Internet Protocol Version 4, Src: 192.168.0.12, Dst:
192.168.0.2
User Datagram Protocol, Src Port: 64369, Dst Port: 5060
Session Initiation Protocol (REGISTER)
Request-Line: REGISTER
sip:192.168.0.2 SIP/2.0
Message Header
Via: SIP/2.0/UDP
192.168.0.12:64369;rport;branch=z9hG4bKPj9f8759c0537b4834bb411358d0b0a2ff
Max-Forwards: 70
From: "33"
<sip:33@192.168.0.2>;tag=4c586be1fcf842359e7d429abcb0b213
To: "33"
<sip:33@192.168.0.2>
Contact:
<sip:74081936@192.168.0.12:64369>;+sip.instance="<urn:uuid:b408367e-d06b-4780-a9a0-291eb99ec83c>"
Call-ID: d3c240808c934b77a9bbcb8bd4c1bd8c
CSeq: 2 REGISTER
Expires: 600
Supported: gruu
User-Agent: Blink 3.0.0 (Windows)
Authorization: Digest username="33", realm="asterisk",
nonce="76ca37d8", uri=
"sip:192.168.0.2",
response="19fc1a634abc72c41dcb516470c34fc2", algorithm=MD5
Authentication Scheme: Digest
Username: "33"
Realm: "asterisk"
Nonce Value: "76ca37d8"
Authentication URI:
"sip:192.168.0.2"
Digest Authentication Response:
"19fc1a634abc72c41dcb516470c34fc2"
Algorithm: MD5
Content-Length: 0
SIP-CLIENT TO KAMAILIO WITH FORWARD TO ASTERISK:
----------------------------------------------------------------------------------------------
11 2017-04-01 15:21:06.806347 192.168.0.13
192.168.0.2 SIP 459 Request: REGISTER
sip:192.168.0.2:5060 (1 binding) |
12 2017-04-01 15:21:06.807514 192.168.0.2
192.168.0.13 SIP 608 Status: 401 Unauthorized |
13 2017-04-01 15:21:06.814819 192.168.0.13
192.168.0.2 SIP 456 Request: REGISTER
sip:192.168.0.2:5060 (remove 1 binding) |
14 2017-04-01 15:21:06.815712 192.168.0.2
192.168.0.13 SIP 608 Status: 401 Unauthorized |
15 2017-04-01 15:21:06.821125 192.168.0.13
192.168.0.2 SIP 459 Request: REGISTER
sip:192.168.0.2:5060 (1 binding) |
16 2017-04-01 15:21:06.821910 192.168.0.2
192.168.0.13 SIP 608 Status: 401 Unauthorized |
Frame 15: 459 bytes on wire (3672 bits), 459 bytes captured
(3672 bits) on interface 0
Ethernet II, Src: Micro-St_de:b2:3a (00:24:21:de:b2:3a), Dst:
Raspberr_a1:fd:f7 (b8:27:eb:a1:fd:f7)
Internet Protocol Version 4, Src: 192.168.0.13, Dst: 192.168.0.2
User Datagram Protocol, Src Port: 5060, Dst Port: 5060
Session Initiation Protocol (REGISTER)
Request-Line: REGISTER
sip:192.168.0.2:5060 SIP/2.0
Message Header
Via: SIP/2.0/UDP
192.168.0.13;branch=z9hG4bKd101.0ad599b6000000000000000000000000.0
To:
<sip:32@192.168.0.2>
SIP to address:
sip:32@192.168.0.2
From:
<sip:32@192.168.0.2>;tag=533cb9e91f4b999cf76861cbb9ed54ed-85c4
SIP from address:
sip:32@192.168.0.2
SIP from tag: 533cb9e91f4b999cf76861cbb9ed54ed-85c4
CSeq: 10 REGISTER
Call-ID:
41df282f10fdc7b6-2773@127.0.0.1
Max-Forwards: 70
Content-Length: 0
User-Agent: kamailio (5.0.0 (x86_64/linux))
Contact:
<sip:32@192.168.0.13:5060>
Contact URI:
sip:32@192.168.0.13:5060
Expires: 3600
kamailio.cfg:
--------------------
#!define WITH_DEBUG
#!define WITH_MYSQL
#!define WITH_AUTH
#!define WITH_USRLOCDB
#!define WITH_ASTERISK
...
#!ifdef WITH_ASTERISK
asterisk.bindip = "192.168.0.2" desc "Asterisk IP Address"
asterisk.bindport = "5060" desc "Asterisk Port"
kamailio.bindip = "192.168.0.13" desc "Kamailio IP Address"
kamailio.bindport = "5060" desc "Kamailio Port"
#!endif
...
# Forward REGISTER to Asterisk
route[REGFWD] {
if(!is_method("REGISTER"))
{
return;
}
$var(rip) = $sel(cfg_get.asterisk.bindip);
$uac_req(method)="REGISTER";
$uac_req(ruri)="sip:" + $var(rip) + ":" +
$sel(cfg_get.asterisk.bindport);
#$uac_req(ruri)="sip:" + $au + "@" + $var(rip) + ":" +
$sel(cfg_get.asterisk.bindport);
$uac_req(furi)="sip:" + $au + "@" + $var(rip);
$uac_req(turi)="sip:" + $au + "@" + $var(rip);
$uac_req(hdrs)="Contact: <sip:" + $au + "@"
+ $sel(cfg_get.kamailio.bindip)
+ ":" + $sel(cfg_get.kamailio.bindport) +
">\r\n";
if($sel(contact.expires) != $null)
$uac_req(hdrs)= $uac_req(hdrs) + "Expires: " +
$sel(contact.expires) + "\r\n";
else
$uac_req(hdrs)= $uac_req(hdrs) + "Expires: " +
$hdr(Expires) + "\r\n";
uac_req_send();
}