I am having problems with a NAT device. I have an asterisk server that is hosted on a
public IP and when I connect my Snom phones to it directly audio passes correctly both
ways. When I introduce Kamailio 1.3 into the mix I get one way audio.
I have fixed the SDP and contacts etc and everything appears to be ok with the sip packet.
I would be very grateful for any ideas what the problem could be.
Outgoing calls from Kamailio -> asterisk -> PSTN work fine.
Thank you for your help in advance, it is much appreciated.
=================== config =======================
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
exit;
};
if (msg:len >= 2048 ) {
sl_send_reply("513", "Message too big");
exit;
};
# NAT detection
force_rport();
if(nat_uac_test("3"))
{
fix_nated_contact();
}
if (!method=="REGISTER")
{
record_route();
}
if (loose_route()) {
append_hf("P-hint: rr-enforced\r\n");
route(1);
};
if (!uri==myself) {
append_hf("P-hint: outbound\r\n");
route(1);
};
if (uri==myself) {
if (method=="REGISTER")
{
if (!www_authorize("", "subscriber")) {
www_challenge("", "0");
exit;
};
if (isflagset(5))
{
# set branch flag -- when someone will call this user
# the INVITE will have branch flag 6 set after lookup("location")
setbflag(6);
};
fix_nated_contact();
fix_nated_register();
consume_credentials();
save("location");
exit;
};
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
exit;
};
append_hf("P-hint: usrloc applied\r\n");
};
if(method=="MESSAGE")
{
if (!lookup("location"))
{
sl_send_reply("404", "User Offline");
exit;
}
route(4);
}
if (method=="REGISTER")
{
save("location");
}
route(1);
}
route[1] {
if (subst_uri('/(sip:.*);nat=yes/\1/')){
setbflag(6);
};
if (isflagset(5)||isbflagset(6)) {
route(3);
}
t_on_reply("1");
if (!t_relay()) {
sl_reply_error();
};
exit;
}
route[3] {
if (is_method("BYE"))
{
unforce_rtp_proxy();
}
else if (is_method("INVITE"))
{
fix_nated_sdp("3");
};
if (isflagset(5))
{
search_append('Contact:.*sip:[^>[:cntrl:]]*', ';nat=yes');
}
t_on_reply("1");
}
route[4]
{
if (!t_relay())
{
sl_reply_error();
};
exit;
}
failure_route[2] {
if (isbflagset(6) || isflagset(5))
{
unforce_rtp_proxy();
}
}
onreply_route[1]
{
fix_nated_contact();
if (((isflagset(5) || isbflagset(6)) && status=~"(183)|(2[0-9][0-9])")
|| is_method("INVITE"))
{
fix_nated_sdp("2");
force_rport();
}
search_append('Contact:.*sip:[^>[:cntrl:]]*', ';nat=yes');
}
==================== SIP PACKETS ===========================
INVITE sip:10001*202@**** IP ****;line=e25l7qyi SIP/2.0Record-Route: <sip:*** IP
***;lr=on;ftag=as0a2e0c2e>Via: SIP/2.0/UDP *** IP ***;branch=z9hG4bKb0a1.cf08f082.0v:
SIP/2.0/UDP *** IP ***:5060;branch=z9hG4bK2bc03835;rport=5060f: "Name"
<sip:*** DOMAIN ***>;tag=as0a2e0c2et: <sip:10001*202@** DOMAIN **>m:
<sip:number@**IP**>i: 74391cce38d7c7f7549c863a651b8f81@*** DOMAIN ****CSeq: 102
INVITEUser-Agent: asterisk
Max-Forwards: 69Date: Thu, 31 Jul 2008 11:38:39 GMTAllow: INVITE, ACK, CANCEL, OPTIONS,
BYE, REFER, SUBSCRIBE, NOTIFYk: replacesc: application/sdpl: 422P-hint: usrloc
appliedv=0o=root 5390 5390 IN IP4 194.xxx.xxx.xxx
s=sessionc=IN IP4 194.xxx.xxx.xxxb=CT:384t=0 0m=audio 12558 RTP/AVP 0 8 3 101a=rtpmap:0
PCMU/8000a=rtpmap:8 PCMA/8000a=rtpmap:3 GSM/8000a=rtpmap:101
telephone-event/8000a=fmtp:101 0-16a=silenceSupp:off - - - -a=ptime:20a=sendrecvm=video
17918 RTP/AVP 34 103 99a=rtpmap:34 H263/90000a=rtpmap:103 h263-1998/90000a=rtpmap:99
H264/90000a=sendrecv
////////////// PHONE REPLY ////////////////////
SIP/2.0 200 OkVia: SIP/2.0/UDP **** IP
****:5060;branch=z9hG4bK19d7ec13;rport=5060Record-Route: <sip:*** IP
***;lr=on;ftag=as486f79a5>From: "*** NUMBER *****" <sip:*** DOMAIN
*****>;tag=as486f79a5To: <sip:10001*202@*** DOMAIN *****>;tag=jgdy33ee6nCall-ID:
*** ID ***
CSeq: 102 INVITEContact: <sip:*** DOMAIN
****:54686;line=e25l7qyi;nat=yes>;reg-id=1User-Agent: snom370/7.3.7Allow: INVITE, ACK,
CANCEL, BYE, REFER, OPTIONS, NOTIFY, SUBSCRIBE, PRACK, MESSAGE, INFOAllow-Events: talk,
hold, refer, call-infoSupported: timer, replaces, from-changeContent-Type:
application/sdpContent-Length: 508
v=0o=root 1569142945 1569142946 IN IP4 192.168.1.20s=callc=IN IP4 ** EXTERNAL IP ***
t=0 0m=audio 10014 RTP/AVP 0 8 3 101a=rtpmap:0 pcmu/8000a=rtpmap:8 pcma/8000a=rtpmap:3
gsm/8000a=rtpmap:101 telephone-event/8000a=fmtp:101 0-16a=ptime:20a=alt:1 0.9 : user
9kksj== 192.168.1.20 10014a=sendrecvm=video 0 RTP/AVP 34 103 99a=rtpmap:34
H263/90000a=rtpmap:103 h263-1998/90000a=rtpmap:99 H264/90000a=alt:1 0.9 : user 9kksj==
192.168.1.20 10014a=sendrecva=oldmediaip:192.168.1.20
_________________________________________________________________
Find the best and worst places on the planet
http://clk.atdmt.com/UKM/go/101719807/direct/01/