Hi all,
I'm sure I must be doing something very stupid! I'm using fix_nated_contact and then t_relay(). The INVITE is being sent with a rewriten contact field, but if the UA issues a CANCEL the private IP address is sent in the contact field and is not rewritten.
What basic mistake have I made?!
A cut down version of my ser.cfg is:
record_route(); # loose-route processing if (loose_route()) { t_relay(); break; };
fix_nated_contact();
force_rport();
if (method=="INVITE") { fix_nated_sdp("1"); force_rtp_proxy(); /* set up reply processing */ t_on_reply("1"); setflag(6);
};
rewritehostport("213.xxx.xxx.xxx:5060");
if (!t_relay()) { sl_reply_error(); };
# all incoming replies for t_onrepli-ed transactions enter here
onreply_route[1] {
fix_nated_contact();
if (status=~"[12][0-9][0-9]") force_rtp_proxy(); }
Contacts are used to advertised wherebouts for subsequent in-dialog requests coming back to your UAC. For that reason, I don't entirely understand why the UAC includes Contact in CANCEL at all -- all in all CANCEL is used to discontinued estabslishment of a dialog. Anyhow, it should not matter the Contact content is invalid since there is no use for the header field in this case at all.
-jiri
At 11:16 AM 7/18/2004, Linus Surguy wrote:
Hi all,
I'm sure I must be doing something very stupid! I'm using fix_nated_contact and then t_relay(). The INVITE is being sent with a rewriten contact field, but if the UA issues a CANCEL the private IP address is sent in the contact field and is not rewritten.
What basic mistake have I made?!
A cut down version of my ser.cfg is:
record_route(); # loose-route processing if (loose_route()) { t_relay(); break; }; fix_nated_contact(); force_rport(); if (method=="INVITE") { fix_nated_sdp("1"); force_rtp_proxy(); /* set up reply processing */ t_on_reply("1"); setflag(6); }; rewritehostport("213.xxx.xxx.xxx:5060"); if (!t_relay()) { sl_reply_error(); };
# all incoming replies for t_onrepli-ed transactions enter here
onreply_route[1] {
fix_nated_contact(); if (status=~"[12][0-9][0-9]") force_rtp_proxy();
}
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
-- Jiri Kuthan http://iptel.org/~jiri/
Contacts are used to advertised wherebouts for subsequent in-dialog requests coming back to your UAC. For that reason, I don't entirely understand why the UAC includes Contact in CANCEL at all -- all in all CANCEL is used to discontinued estabslishment of a dialog. Anyhow, it should not matter the Contact content is invalid since there is no use for the header field in this case at all.
Maybe I've misinterpreted my fault then, the problem I've got exhibits itself when the call is forwarded to an AS5300, the INVITE goes through fine and the call is placed, but the CANCEL (UA->SER->AS5300) is responded to with '481 call leg / transaction does not exist' and the call is not canceled.
I had made the assumption that it was the contact header that was at fault here as that was the obvious difference.
Linus
Contacts are used to advertised wherebouts for subsequent in-dialog requests coming back to your UAC. For that reason, I don't entirely understand why the UAC includes Contact in CANCEL at all -- all in all CANCEL is used to discontinued estabslishment of a dialog. Anyhow, it should not matter the Contact content is invalid since there is no use for the header field in this case at all.
Sorry, just realised that in a half-awake state I typed rubbish. I meant that the 'call-id' was not rewritten - don't know why I mentioned contact! (In the INVITE to the Cisco it is blah@213.x.x.x and in the CANCEL to Cisco it is blah@10.x.x.x
Linus
On Jul 18, 2004 at 11:22, Linus Surguy linus@magrathea-telecom.co.uk wrote:
Contacts are used to advertised wherebouts for subsequent in-dialog requests coming back to your UAC. For that reason, I don't entirely understand why the UAC includes Contact in CANCEL at all -- all in all CANCEL is used to discontinued estabslishment of a dialog. Anyhow, it should not matter the Contact content is invalid since there is no use for the header field in this case at all.
Sorry, just realised that in a half-awake state I typed rubbish. I meant that the 'call-id' was not rewritten - don't know why I mentioned contact! (In the INVITE to the Cisco it is blah@213.x.x.x and in the CANCEL to Cisco it is blah@10.x.x.x
Then it's even stranger. ser/nathelper doesn't re-write the callid. Maybe you have a nat box on the way, which is trying to be smart and fix sip messages.
Andrei
On Jul 18, 2004 at 11:22, Linus Surguy linus@magrathea-telecom.co.uk
wrote:
Contacts are used to advertised wherebouts for subsequent in-dialog requests coming back to your UAC. For that reason, I don't entirely understand why the UAC includes Contact in CANCEL at all -- all in all CANCEL is used to discontinued estabslishment of a dialog. Anyhow, it should not matter the Contact content is invalid since there is no use for the header field in this case at all.
Sorry, just realised that in a half-awake state I typed rubbish. I meant that the 'call-id' was not rewritten - don't know why I mentioned
contact!
(In the INVITE to the Cisco it is blah@213.x.x.x and in the CANCEL to
Cisco
it is blah@10.x.x.x
Then it's even stranger. ser/nathelper doesn't re-write the callid. Maybe you have a nat box on the way, which is trying to be smart and fix sip messages.
Oh great! This means that this is another broken 'feature' in the Draytek Vigor 2600 ADSL router.
Linus
* Linus Surguy linus@magrathea-telecom.co.uk [040718 19:01]:
On Jul 18, 2004 at 11:22, Linus Surguy linus@magrathea-telecom.co.uk
wrote:
Contacts are used to advertised wherebouts for subsequent in-dialog requests coming back to your UAC. For that reason, I don't entirely understand why the UAC includes Contact in CANCEL at all -- all in all CANCEL is used to discontinued estabslishment of a dialog. Anyhow, it should not matter the Contact content is invalid since there is no use for the header field in this case at all.
Sorry, just realised that in a half-awake state I typed rubbish. I meant that the 'call-id' was not rewritten - don't know why I mentioned
contact!
(In the INVITE to the Cisco it is blah@213.x.x.x and in the CANCEL to
Cisco
it is blah@10.x.x.x
Then it's even stranger. ser/nathelper doesn't re-write the callid. Maybe you have a nat box on the way, which is trying to be smart and fix sip messages.
Oh great! This means that this is another broken 'feature' in the Draytek Vigor 2600 ADSL router.
Hey, if you have problems with the draytek router, I know the norwegian importer quite well, Give me a full report, and I'll send him it
- Atle