Hi, I was just wondering if the check_route_param("") works on record_route_preset Routes?
It never hits when my Route: are, f.ex like xxx.xxx.xxx.xxx:<port>;nat=yes
Is this true?
br hw
Hi Helge,
doesn't matter how you added the RR hdr - via record_route(), record_route_preset() or append_hf(). When you receive a sequential request, check_route_param("") will check the params of the corresponding Route hdr. Maybe it is a reg exp problem or the Route does not contain the param you are looking for...
regards, bogdan
Helge Waastad wrote:
Hi, I was just wondering if the check_route_param("") works on record_route_preset Routes?
It never hits when my Route: are, f.ex like xxx.xxx.xxx.xxx:<port>;nat=yes
Is this true?
br hw
Hi, I'm checking for a Re-Invite (Hold)
The Invite from the UA is like this:
SIP MESSAGE 1 10.46.11.132:5060() -> xxx.xxx.xxx.xxx:5060() UDP Frame 1 28/Sep/06 10:45:38.0422 TimeFromPreviousSipFrame=0.0000 TimeFromStart=0.0000 INVITE sip:67512388@10.46.11.101:5060;user=phone SIP/2.0 Via: SIP/2.0/UDP 10.46.11.132;branch=z9hG4bKeb3ee7f3572b7f4b Route:sip:xxx.xxx.xxx.xxx;lr=on;ftag=9f2aeb7dd809d46d;nat=yes;did=3c4.85d80b74 Route:sip:yyy.yyy.yyy.yyy;lr=on;ftag=9f2aeb7dd809d46d;nat=yes
I do a check_route_param("nat=yes")
Should not this work?
from the doc it says check_route_param: The function checks if the URI parameters of the local Route header (coresponding to the local server)
I'm also calling the function after loose_route()
br hw
tor, 28,.09.2006 kl. 11.35 +0300, skrev Bogdan-Andrei Iancu:
Hi Helge,
doesn't matter how you added the RR hdr - via record_route(), record_route_preset() or append_hf(). When you receive a sequential request, check_route_param("") will check the params of the corresponding Route hdr. Maybe it is a reg exp problem or the Route does not contain the param you are looking for...
regards, bogdan
Helge Waastad wrote:
Hi, I was just wondering if the check_route_param("") works on record_route_preset Routes?
It never hits when my Route: are, f.ex like xxx.xxx.xxx.xxx:<port>;nat=yes
Is this true?
br hw
Helge,
what openser version are you using?
try to run in debug and look for: DEBUG:rr:check_route_param: params are <.......>
regards, bogdan
Helge Waastad wrote:
Hi, I'm checking for a Re-Invite (Hold)
The Invite from the UA is like this:
SIP MESSAGE 1 10.46.11.132:5060() -> xxx.xxx.xxx.xxx:5060() UDP Frame 1 28/Sep/06 10:45:38.0422 TimeFromPreviousSipFrame=0.0000 TimeFromStart=0.0000 INVITE sip:67512388@10.46.11.101:5060;user=phone SIP/2.0 Via: SIP/2.0/UDP 10.46.11.132;branch=z9hG4bKeb3ee7f3572b7f4b Route:sip:xxx.xxx.xxx.xxx;lr=on;ftag=9f2aeb7dd809d46d;nat=yes;did=3c4.85d80b74 Route:sip:yyy.yyy.yyy.yyy;lr=on;ftag=9f2aeb7dd809d46d;nat=yes
I do a check_route_param("nat=yes")
Should not this work?
from the doc it says check_route_param: The function checks if the URI parameters of the local Route header (coresponding to the local server)
I'm also calling the function after loose_route()
br hw
tor, 28,.09.2006 kl. 11.35 +0300, skrev Bogdan-Andrei Iancu:
Hi Helge,
doesn't matter how you added the RR hdr - via record_route(), record_route_preset() or append_hf(). When you receive a sequential request, check_route_param("") will check the params of the corresponding Route hdr. Maybe it is a reg exp problem or the Route does not contain the param you are looking for...
regards, bogdan
Helge Waastad wrote:
Hi, I was just wondering if the check_route_param("") works on record_route_preset Routes?
It never hits when my Route: are, f.ex like xxx.xxx.xxx.xxx:<port>;nat=yes
Is this true?
br hw
Hi, thats what's strange.... I have run debug=7 and the only thing I see is:
find_cmd_export_t: found <check_route_param>(1) in module rr [/usr/lib/openser/modules/]
I'm running 1.1.0
I'm doing: if (loose_route()){ check_route_param("nat=yes") }
tor, 28,.09.2006 kl. 13.06 +0300, skrev Bogdan-Andrei Iancu:
Helge,
what openser version are you using?
try to run in debug and look for: DEBUG:rr:check_route_param: params are <.......>
regards, bogdan
Helge Waastad wrote:
Hi, I'm checking for a Re-Invite (Hold)
The Invite from the UA is like this:
SIP MESSAGE 1 10.46.11.132:5060() -> xxx.xxx.xxx.xxx:5060() UDP Frame 1 28/Sep/06 10:45:38.0422 TimeFromPreviousSipFrame=0.0000 TimeFromStart=0.0000 INVITE sip:67512388@10.46.11.101:5060;user=phone SIP/2.0 Via: SIP/2.0/UDP 10.46.11.132;branch=z9hG4bKeb3ee7f3572b7f4b Route:sip:xxx.xxx.xxx.xxx;lr=on;ftag=9f2aeb7dd809d46d;nat=yes;did=3c4.85d80b74 Route:sip:yyy.yyy.yyy.yyy;lr=on;ftag=9f2aeb7dd809d46d;nat=yes
I do a check_route_param("nat=yes")
Should not this work?
from the doc it says check_route_param: The function checks if the URI parameters of the local Route header (coresponding to the local server)
I'm also calling the function after loose_route()
br hw
tor, 28,.09.2006 kl. 11.35 +0300, skrev Bogdan-Andrei Iancu:
Hi Helge,
doesn't matter how you added the RR hdr - via record_route(), record_route_preset() or append_hf(). When you receive a sequential request, check_route_param("") will check the params of the corresponding Route hdr. Maybe it is a reg exp problem or the Route does not contain the param you are looking for...
regards, bogdan
Helge Waastad wrote:
Hi, I was just wondering if the check_route_param("") works on record_route_preset Routes?
It never hits when my Route: are, f.ex like xxx.xxx.xxx.xxx:<port>;nat=yes
Is this true?
br hw
I have no problems with 1.0.0:
in loose_route: if (check_route_param("nat=both")) { xlog("L_INFO","$ci NAT traversal for requester and responder\n"); .... t_relay();
In main route block I have add_rr_param(";nat=both"); ... record_route(); t_relay();
regards klaus
Helge Waastad wrote:
Hi, thats what's strange.... I have run debug=7 and the only thing I see is:
find_cmd_export_t: found <check_route_param>(1) in module rr [/usr/lib/openser/modules/]
I'm running 1.1.0
I'm doing: if (loose_route()){ check_route_param("nat=yes") }
tor, 28,.09.2006 kl. 13.06 +0300, skrev Bogdan-Andrei Iancu:
Helge,
what openser version are you using?
try to run in debug and look for: DEBUG:rr:check_route_param: params are <.......>
regards, bogdan
Helge Waastad wrote:
Hi, I'm checking for a Re-Invite (Hold)
The Invite from the UA is like this:
SIP MESSAGE 1 10.46.11.132:5060() -> xxx.xxx.xxx.xxx:5060() UDP Frame 1 28/Sep/06 10:45:38.0422 TimeFromPreviousSipFrame=0.0000 TimeFromStart=0.0000 INVITE sip:67512388@10.46.11.101:5060;user=phone SIP/2.0 Via: SIP/2.0/UDP 10.46.11.132;branch=z9hG4bKeb3ee7f3572b7f4b Route:sip:xxx.xxx.xxx.xxx;lr=on;ftag=9f2aeb7dd809d46d;nat=yes;did=3c4.85d80b74 Route:sip:yyy.yyy.yyy.yyy;lr=on;ftag=9f2aeb7dd809d46d;nat=yes
I do a check_route_param("nat=yes")
Should not this work?
from the doc it says check_route_param: The function checks if the URI parameters of the local Route header (coresponding to the local server)
I'm also calling the function after loose_route()
br hw
tor, 28,.09.2006 kl. 11.35 +0300, skrev Bogdan-Andrei Iancu:
Hi Helge,
doesn't matter how you added the RR hdr - via record_route(), record_route_preset() or append_hf(). When you receive a sequential request, check_route_param("") will check the params of the corresponding Route hdr. Maybe it is a reg exp problem or the Route does not contain the param you are looking for...
regards, bogdan
Helge Waastad wrote:
Hi, I was just wondering if the check_route_param("") works on record_route_preset Routes?
It never hits when my Route: are, f.ex like xxx.xxx.xxx.xxx:<port>;nat=yes
Is this true?
br hw
Hi Klaus, thnx for your reply. Can you show me how your RR's and Route are looking like? (In INVITE and 200 reply from UA)
It might be that I have a UA problem and the formatting of my sip messages are wrong.
br hw
tor, 28,.09.2006 kl. 13.31 +0200, skrev Klaus Darilion:
I have no problems with 1.0.0:
in loose_route: if (check_route_param("nat=both")) { xlog("L_INFO","$ci NAT traversal for requester and responder\n"); .... t_relay();
In main route block I have add_rr_param(";nat=both"); ... record_route(); t_relay();
regards klaus
Helge Waastad wrote:
Hi, thats what's strange.... I have run debug=7 and the only thing I see is:
find_cmd_export_t: found <check_route_param>(1) in module rr [/usr/lib/openser/modules/]
I'm running 1.1.0
I'm doing: if (loose_route()){ check_route_param("nat=yes") }
tor, 28,.09.2006 kl. 13.06 +0300, skrev Bogdan-Andrei Iancu:
Helge,
what openser version are you using?
try to run in debug and look for: DEBUG:rr:check_route_param: params are <.......>
regards, bogdan
Helge Waastad wrote:
Hi, I'm checking for a Re-Invite (Hold)
The Invite from the UA is like this:
SIP MESSAGE 1 10.46.11.132:5060() -> xxx.xxx.xxx.xxx:5060() UDP Frame 1 28/Sep/06 10:45:38.0422 TimeFromPreviousSipFrame=0.0000 TimeFromStart=0.0000 INVITE sip:67512388@10.46.11.101:5060;user=phone SIP/2.0 Via: SIP/2.0/UDP 10.46.11.132;branch=z9hG4bKeb3ee7f3572b7f4b Route:sip:xxx.xxx.xxx.xxx;lr=on;ftag=9f2aeb7dd809d46d;nat=yes;did=3c4.85d80b74 Route:sip:yyy.yyy.yyy.yyy;lr=on;ftag=9f2aeb7dd809d46d;nat=yes
I do a check_route_param("nat=yes")
Should not this work?
from the doc it says check_route_param: The function checks if the URI parameters of the local Route header (coresponding to the local server)
I'm also calling the function after loose_route()
br hw
tor, 28,.09.2006 kl. 11.35 +0300, skrev Bogdan-Andrei Iancu:
Hi Helge,
doesn't matter how you added the RR hdr - via record_route(), record_route_preset() or append_hf(). When you receive a sequential request, check_route_param("") will check the params of the corresponding Route hdr. Maybe it is a reg exp problem or the Route does not contain the param you are looking for...
regards, bogdan
Helge Waastad wrote:
Hi, I was just wondering if the check_route_param("") works on record_route_preset Routes?
It never hits when my Route: are, f.ex like xxx.xxx.xxx.xxx:<port>;nat=yes
Is this true?
br hw
ngrep trace is attached.
regards klaus
Helge Waastad wrote:
Hi Klaus, thnx for your reply. Can you show me how your RR's and Route are looking like? (In INVITE and 200 reply from UA)
It might be that I have a UA problem and the formatting of my sip messages are wrong.
br hw
tor, 28,.09.2006 kl. 13.31 +0200, skrev Klaus Darilion:
I have no problems with 1.0.0:
in loose_route: if (check_route_param("nat=both")) { xlog("L_INFO","$ci NAT traversal for requester and responder\n"); .... t_relay();
In main route block I have add_rr_param(";nat=both"); ... record_route(); t_relay();
regards klaus
Helge Waastad wrote:
Hi, thats what's strange.... I have run debug=7 and the only thing I see is:
find_cmd_export_t: found <check_route_param>(1) in module rr [/usr/lib/openser/modules/]
I'm running 1.1.0
I'm doing: if (loose_route()){ check_route_param("nat=yes") }
tor, 28,.09.2006 kl. 13.06 +0300, skrev Bogdan-Andrei Iancu:
Helge,
what openser version are you using?
try to run in debug and look for: DEBUG:rr:check_route_param: params are <.......>
regards, bogdan
Helge Waastad wrote:
Hi, I'm checking for a Re-Invite (Hold)
The Invite from the UA is like this:
SIP MESSAGE 1 10.46.11.132:5060() -> xxx.xxx.xxx.xxx:5060() UDP Frame 1 28/Sep/06 10:45:38.0422 TimeFromPreviousSipFrame=0.0000 TimeFromStart=0.0000 INVITE sip:67512388@10.46.11.101:5060;user=phone SIP/2.0 Via: SIP/2.0/UDP 10.46.11.132;branch=z9hG4bKeb3ee7f3572b7f4b
Route:sip:xxx.xxx.xxx.xxx;lr=on;ftag=9f2aeb7dd809d46d;nat=yes;did=3c4.85d80b74
Route:sip:yyy.yyy.yyy.yyy;lr=on;ftag=9f2aeb7dd809d46d;nat=yes
I do a check_route_param("nat=yes")
Should not this work?
from the doc it says check_route_param: The function checks if the URI parameters of the local Route header (coresponding to the local server)
I'm also calling the function after loose_route()
br hw
tor, 28,.09.2006 kl. 11.35 +0300, skrev Bogdan-Andrei Iancu:
Hi Helge,
doesn't matter how you added the RR hdr - via record_route(), record_route_preset() or append_hf(). When you receive a sequential request, check_route_param("") will check the params of the corresponding Route hdr. Maybe it is a reg exp problem or the Route does not contain the
param
you are looking for...
regards, bogdan
Helge Waastad wrote:
> Hi, > I was just wondering if the check_route_param("") works on > record_route_preset Routes? > > It never hits when my Route: are, f.ex like > xxx.xxx.xxx.xxx:<port>;nat=yes > > Is this true? > > br hw > > > > >
-- Helge Waastad Senior Engineer Systemavdelingen Smartnet
INITIAL INVITE (Record-Route: nat=both); proxy in + proxy out
U +0.005291 xxx.xxx.33.3:10230 -> xxx.xxx.32.160:5060 INVITE sip:klaus@foobar.at SIP/2.0. Via: SIP/2.0/UDP 10.10.0.50:10230;branch=z9hG4bK-d87543-a40dea23063fb26f-1--d87543-;rport. Max-Forwards: 70. Contact: sip:klaus@10.10.0.50:10230;transport=udp. To: "klaus@foobar.at"sip:klaus@foobar.at. From: "Klaus Darilion"sip:klaus@foobar.at;tag=a526466a. Call-ID: NWEzN2M1Y2Y5ZjliNjY4YzQxOGIyODY1M2QyYzFlMTY.. CSeq: 2 INVITE. Session-Expires: 300. Min-SE: 90. Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO. Content-Type: application/sdp. Supported: timer. User-Agent: eyeBeam release 1005x stamp 33567. Content-Length: 415. . v=0. o=- 3 2 IN IP4 10.10.0.50. s=CounterPath eyeBeam 1.5. c=IN IP4 10.10.0.50. t=0 0. m=audio 42194 RTP/AVP 107 100 106 6 0 105 8 18 3 5 101. a=fmtp:18 annexb=yes. a=fmtp:101 0-15. a=rtpmap:107 BV32/16000. a=rtpmap:100 SPEEX/16000. a=rtpmap:106 SPEEX-FEC/16000. a=rtpmap:105 SPEEX-FEC/8000. a=rtpmap:18 G729/8000. a=rtpmap:101 telephone-event/8000. a=sendrecv. a=x-rtp-session-id:A30E51DFA4FA4695865475781CEFBE6B.
U +0.000121 xxx.xxx.32.160:5060 -> xxx.xxx.33.21:5060 INVITE sip:klaus@xxx.xxx.33.21:5060 SIP/2.0. Record-Route: sip:xxx.xxx.32.160;ftag=a526466a;nat=both;lr=on. Via: SIP/2.0/UDP xxx.xxx.32.160;branch=z9hG4bK7f4f.b1f80e07.0. Via: SIP/2.0/UDP 10.10.0.50:10230;received=xxx.xxx.33.3;branch=z9hG4bK-d87543-a40dea23063fb26f-1--d87543-;rport=10230. Max-Forwards: 69. Contact: sip:klaus@xxx.xxx.33.3:10230;transport=udp. To: "klaus@foobar.at"sip:klaus@foobar.at. From: "Klaus Darilion"sip:klaus@foobar.at;tag=a526466a. Call-ID: NWEzN2M1Y2Y5ZjliNjY4YzQxOGIyODY1M2QyYzFlMTY.. CSeq: 2 INVITE. Session-Expires: 300. Min-SE: 90. Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO. Content-Type: application/sdp. Supported: timer. User-Agent: eyeBeam release 1005x stamp 33567. Content-Length: 417. P-Behind-NAT: Yes. . v=0. o=- 3 2 IN IP4 10.10.0.50. s=CounterPath eyeBeam 1.5. c=IN IP4 xxx.xxx.32.83. t=0 0. m=audio 37260 RTP/AVP 107 100 106 6 0 105 8 18 3 5 101. a=fmtp:18 annexb=yes. a=fmtp:101 0-15. a=rtpmap:107 BV32/16000. a=rtpmap:100 SPEEX/16000. a=rtpmap:106 SPEEX-FEC/16000. a=rtpmap:105 SPEEX-FEC/8000. a=rtpmap:18 G729/8000. a=rtpmap:101 telephone-event/8000. a=sendrecv. a=x-rtp-session-id:A30E51DFA4FA4695865475781CEFBE6B.
in-dialog INVITE (Route: nat=both); proxy in + proxy out
U +3.650048 xxx.xxx.33.3:10230 -> xxx.xxx.32.160:5060 INVITE sip:klaus@xxx.xxx.33.21:5060 SIP/2.0. Via: SIP/2.0/UDP 10.10.0.50:10230;branch=z9hG4bK-d87543-74593a080021c629-1--d87543-;rport. Max-Forwards: 70. Route: sip:xxx.xxx.32.160;lr;ftag=a526466a;nat=both. Contact: sip:klaus@10.10.0.50:10230;transport=udp. To: "klaus@foobar.at"sip:klaus@foobar.at;tag=000cce3a7bf807773a0823e3-3eeb86a8. From: "Klaus Darilion"sip:klaus@foobar.at;tag=a526466a. Call-ID: NWEzN2M1Y2Y5ZjliNjY4YzQxOGIyODY1M2QyYzFlMTY.. CSeq: 3 INVITE. Session-Expires: 300;refresher=uac. Min-SE: 90. Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO. Content-Type: application/sdp. Proxy-Authorization: Digest username="klaus",realm="foobar.at",nonce="451cc9ef64fcbbc7b581d5025e79deb625f98bc5",uri="sip:klaus@xxx.xxx.33.21:5060",response="231e5404181253c7b1180278cc764537",algorithm=MD5. Supported: timer. User-Agent: eyeBeam release 1005x stamp 33567. Content-Length: 230. . v=0. o=- 3 3 IN IP4 10.10.0.50. s=CounterPath eyeBeam 1.5. c=IN IP4 0.0.0.0. t=0 0. m=audio 42194 RTP/AVP 8 101. a=fmtp:101 0-15. a=rtpmap:101 telephone-event/8000. a=sendonly. a=x-rtp-session-id:A30E51DFA4FA4695865475781CEFBE6B.
U +0.000118 xxx.xxx.32.160:5060 -> xxx.xxx.33.21:5060 INVITE sip:klaus@xxx.xxx.33.21:5060 SIP/2.0. Via: SIP/2.0/UDP xxx.xxx.32.160;branch=z9hG4bK8f4f.80597de7.0. Via: SIP/2.0/UDP 10.10.0.50:10230;received=xxx.xxx.33.3;branch=z9hG4bK-d87543-74593a080021c629-1--d87543-;rport=10230. Max-Forwards: 69. Contact: sip:klaus@xxx.xxx.33.3:10230;transport=udp. To: "klaus@foobar.at"sip:klaus@foobar.at;tag=000cce3a7bf807773a0823e3-3eeb86a8. From: "Klaus Darilion"sip:klaus@foobar.at;tag=a526466a. Call-ID: NWEzN2M1Y2Y5ZjliNjY4YzQxOGIyODY1M2QyYzFlMTY.. CSeq: 3 INVITE. Session-Expires: 300;refresher=uac. Min-SE: 90. Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO. Content-Type: application/sdp. Supported: timer. User-Agent: eyeBeam release 1005x stamp 33567. Content-Length: 230. P-Behind-NAT: Yes. . v=0. o=- 3 3 IN IP4 10.10.0.50. s=CounterPath eyeBeam 1.5. c=IN IP4 0.0.0.0. t=0 0. m=audio 37260 RTP/AVP 8 101. a=fmtp:101 0-15. a=rtpmap:101 telephone-event/8000. a=sendonly. a=x-rtp-session-id:A30E51DFA4FA4695865475781CEFBE6B.
Hi, and thnx again Klaus.
From what I see, I have the same format of the Route header.
Bogdan, please tell me if there are any other way of debugging this issue.
I have tried to have a look at the loose.c but I'm afraid I'm not really a c-programmer so it's all greek to me ;-)
br hw
fre, 29,.09.2006 kl. 09.25 +0200, skrev Klaus Darilion:
ngrep trace is attached.
regards klaus
Helge Waastad wrote:
Hi Klaus, thnx for your reply. Can you show me how your RR's and Route are looking like? (In INVITE and 200 reply from UA)
It might be that I have a UA problem and the formatting of my sip messages are wrong.
br hw
tor, 28,.09.2006 kl. 13.31 +0200, skrev Klaus Darilion:
I have no problems with 1.0.0:
in loose_route: if (check_route_param("nat=both")) { xlog("L_INFO","$ci NAT traversal for requester and responder\n"); .... t_relay();
In main route block I have add_rr_param(";nat=both"); ... record_route(); t_relay();
regards klaus
Helge Waastad wrote:
Hi, thats what's strange.... I have run debug=7 and the only thing I see is:
find_cmd_export_t: found <check_route_param>(1) in module rr [/usr/lib/openser/modules/]
I'm running 1.1.0
I'm doing: if (loose_route()){ check_route_param("nat=yes") }
tor, 28,.09.2006 kl. 13.06 +0300, skrev Bogdan-Andrei Iancu:
Helge,
what openser version are you using?
try to run in debug and look for: DEBUG:rr:check_route_param: params are <.......>
regards, bogdan
Helge Waastad wrote:
Hi, I'm checking for a Re-Invite (Hold)
The Invite from the UA is like this:
SIP MESSAGE 1 10.46.11.132:5060() -> xxx.xxx.xxx.xxx:5060() UDP Frame 1 28/Sep/06 10:45:38.0422 TimeFromPreviousSipFrame=0.0000 TimeFromStart=0.0000 INVITE sip:67512388@10.46.11.101:5060;user=phone SIP/2.0 Via: SIP/2.0/UDP 10.46.11.132;branch=z9hG4bKeb3ee7f3572b7f4b
Route:sip:xxx.xxx.xxx.xxx;lr=on;ftag=9f2aeb7dd809d46d;nat=yes;did=3c4.85d80b74
Route:sip:yyy.yyy.yyy.yyy;lr=on;ftag=9f2aeb7dd809d46d;nat=yes
I do a check_route_param("nat=yes")
Should not this work?
from the doc it says check_route_param: The function checks if the URI parameters of the local Route header (coresponding to the local server)
I'm also calling the function after loose_route()
br hw
tor, 28,.09.2006 kl. 11.35 +0300, skrev Bogdan-Andrei Iancu:
> Hi Helge, > > doesn't matter how you added the RR hdr - via record_route(), > record_route_preset() or append_hf(). When you receive a sequential > request, check_route_param("") will check the params of the > corresponding Route hdr. > Maybe it is a reg exp problem or the Route does not contain the
param
> you are looking for... > > regards, > bogdan > > > Helge Waastad wrote: > > > >> Hi, >> I was just wondering if the check_route_param("") works on >> record_route_preset Routes? >> >> It never hits when my Route: are, f.ex like >> xxx.xxx.xxx.xxx:<port>;nat=yes >> >> Is this true? >> >> br hw >> >> >> >> >>
-- Helge Waastad Senior Engineer Systemavdelingen Smartnet
vanlig tekstdokument-vedlegg (route-param.txt) INITIAL INVITE (Record-Route: nat=both); proxy in + proxy out
U +0.005291 xxx.xxx.33.3:10230 -> xxx.xxx.32.160:5060 INVITE sip:klaus@foobar.at SIP/2.0. Via: SIP/2.0/UDP 10.10.0.50:10230;branch=z9hG4bK-d87543-a40dea23063fb26f-1--d87543-;rport. Max-Forwards: 70. Contact: sip:klaus@10.10.0.50:10230;transport=udp. To: "klaus@foobar.at"sip:klaus@foobar.at. From: "Klaus Darilion"sip:klaus@foobar.at;tag=a526466a. Call-ID: NWEzN2M1Y2Y5ZjliNjY4YzQxOGIyODY1M2QyYzFlMTY.. CSeq: 2 INVITE. Session-Expires: 300. Min-SE: 90. Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO. Content-Type: application/sdp. Supported: timer. User-Agent: eyeBeam release 1005x stamp 33567. Content-Length: 415. . v=0. o=- 3 2 IN IP4 10.10.0.50. s=CounterPath eyeBeam 1.5. c=IN IP4 10.10.0.50. t=0 0. m=audio 42194 RTP/AVP 107 100 106 6 0 105 8 18 3 5 101. a=fmtp:18 annexb=yes. a=fmtp:101 0-15. a=rtpmap:107 BV32/16000. a=rtpmap:100 SPEEX/16000. a=rtpmap:106 SPEEX-FEC/16000. a=rtpmap:105 SPEEX-FEC/8000. a=rtpmap:18 G729/8000. a=rtpmap:101 telephone-event/8000. a=sendrecv. a=x-rtp-session-id:A30E51DFA4FA4695865475781CEFBE6B.
U +0.000121 xxx.xxx.32.160:5060 -> xxx.xxx.33.21:5060 INVITE sip:klaus@xxx.xxx.33.21:5060 SIP/2.0. Record-Route: sip:xxx.xxx.32.160;ftag=a526466a;nat=both;lr=on. Via: SIP/2.0/UDP xxx.xxx.32.160;branch=z9hG4bK7f4f.b1f80e07.0. Via: SIP/2.0/UDP 10.10.0.50:10230;received=xxx.xxx.33.3;branch=z9hG4bK-d87543-a40dea23063fb26f-1--d87543-;rport=10230. Max-Forwards: 69. Contact: sip:klaus@xxx.xxx.33.3:10230;transport=udp. To: "klaus@foobar.at"sip:klaus@foobar.at. From: "Klaus Darilion"sip:klaus@foobar.at;tag=a526466a. Call-ID: NWEzN2M1Y2Y5ZjliNjY4YzQxOGIyODY1M2QyYzFlMTY.. CSeq: 2 INVITE. Session-Expires: 300. Min-SE: 90. Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO. Content-Type: application/sdp. Supported: timer. User-Agent: eyeBeam release 1005x stamp 33567. Content-Length: 417. P-Behind-NAT: Yes. . v=0. o=- 3 2 IN IP4 10.10.0.50. s=CounterPath eyeBeam 1.5. c=IN IP4 xxx.xxx.32.83. t=0 0. m=audio 37260 RTP/AVP 107 100 106 6 0 105 8 18 3 5 101. a=fmtp:18 annexb=yes. a=fmtp:101 0-15. a=rtpmap:107 BV32/16000. a=rtpmap:100 SPEEX/16000. a=rtpmap:106 SPEEX-FEC/16000. a=rtpmap:105 SPEEX-FEC/8000. a=rtpmap:18 G729/8000. a=rtpmap:101 telephone-event/8000. a=sendrecv. a=x-rtp-session-id:A30E51DFA4FA4695865475781CEFBE6B.
in-dialog INVITE (Route: nat=both); proxy in + proxy out
U +3.650048 xxx.xxx.33.3:10230 -> xxx.xxx.32.160:5060 INVITE sip:klaus@xxx.xxx.33.21:5060 SIP/2.0. Via: SIP/2.0/UDP 10.10.0.50:10230;branch=z9hG4bK-d87543-74593a080021c629-1--d87543-;rport. Max-Forwards: 70. Route: sip:xxx.xxx.32.160;lr;ftag=a526466a;nat=both. Contact: sip:klaus@10.10.0.50:10230;transport=udp. To: "klaus@foobar.at"sip:klaus@foobar.at;tag=000cce3a7bf807773a0823e3-3eeb86a8. From: "Klaus Darilion"sip:klaus@foobar.at;tag=a526466a. Call-ID: NWEzN2M1Y2Y5ZjliNjY4YzQxOGIyODY1M2QyYzFlMTY.. CSeq: 3 INVITE. Session-Expires: 300;refresher=uac. Min-SE: 90. Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO. Content-Type: application/sdp. Proxy-Authorization: Digest username="klaus",realm="foobar.at",nonce="451cc9ef64fcbbc7b581d5025e79deb625f98bc5",uri="sip:klaus@xxx.xxx.33.21:5060",response="231e5404181253c7b1180278cc764537",algorithm=MD5. Supported: timer. User-Agent: eyeBeam release 1005x stamp 33567. Content-Length: 230. . v=0. o=- 3 3 IN IP4 10.10.0.50. s=CounterPath eyeBeam 1.5. c=IN IP4 0.0.0.0. t=0 0. m=audio 42194 RTP/AVP 8 101. a=fmtp:101 0-15. a=rtpmap:101 telephone-event/8000. a=sendonly. a=x-rtp-session-id:A30E51DFA4FA4695865475781CEFBE6B.
U +0.000118 xxx.xxx.32.160:5060 -> xxx.xxx.33.21:5060 INVITE sip:klaus@xxx.xxx.33.21:5060 SIP/2.0. Via: SIP/2.0/UDP xxx.xxx.32.160;branch=z9hG4bK8f4f.80597de7.0. Via: SIP/2.0/UDP 10.10.0.50:10230;received=xxx.xxx.33.3;branch=z9hG4bK-d87543-74593a080021c629-1--d87543-;rport=10230. Max-Forwards: 69. Contact: sip:klaus@xxx.xxx.33.3:10230;transport=udp. To: "klaus@foobar.at"sip:klaus@foobar.at;tag=000cce3a7bf807773a0823e3-3eeb86a8. From: "Klaus Darilion"sip:klaus@foobar.at;tag=a526466a. Call-ID: NWEzN2M1Y2Y5ZjliNjY4YzQxOGIyODY1M2QyYzFlMTY.. CSeq: 3 INVITE. Session-Expires: 300;refresher=uac. Min-SE: 90. Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO. Content-Type: application/sdp. Supported: timer. User-Agent: eyeBeam release 1005x stamp 33567. Content-Length: 230. P-Behind-NAT: Yes. . v=0. o=- 3 3 IN IP4 10.10.0.50. s=CounterPath eyeBeam 1.5. c=IN IP4 0.0.0.0. t=0 0. m=audio 37260 RTP/AVP 8 101. a=fmtp:101 0-15. a=rtpmap:101 telephone-event/8000. a=sendonly. a=x-rtp-session-id:A30E51DFA4FA4695865475781CEFBE6B.
Hi Helge,
pls send me again a trace of the call and the debug output (privately) - the last I got were not from the same call.....
regards, bogdan
Helge Waastad wrote:
Hi, and thnx again Klaus.
From what I see, I have the same format of the Route header.
Bogdan, please tell me if there are any other way of debugging this issue.
I have tried to have a look at the loose.c but I'm afraid I'm not really a c-programmer so it's all greek to me ;-)
br hw
Hi,
for people following this thread: indeed there was a small bug - as there is no way to constrain a callback function to change the pointer and len of the received parameter string, the internal (to RR module) values of the Route params may be altered by callbacks.
For example, the "path" module does this, so all later call of check_route_param () will fail. The fix was to pass to the callback a copy (instead of the originals) in order to protect the internal values.
Many thanks to Helge for the help to debug this.
regards, bogdan
Bogdan-Andrei Iancu wrote:
Hi Helge,
pls send me again a trace of the call and the debug output (privately)
- the last I got were not from the same call.....
regards, bogdan
Helge Waastad wrote:
Hi, and thnx again Klaus.
From what I see, I have the same format of the Route header.
Bogdan, please tell me if there are any other way of debugging this issue.
I have tried to have a look at the loose.c but I'm afraid I'm not really a c-programmer so it's all greek to me ;-)
br hw
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users
Hi
I did some debugs, and it seems that the check_route_param is exiting in this check beneath. Thats why I do not get any debug messages from openser.....
/* check if params are present */ if ( !routed_params.s || !routed_params.len ) return -1;
hw
tor, 28,.09.2006 kl. 13.06 +0300, skrev Bogdan-Andrei Iancu:
Helge,
what openser version are you using?
try to run in debug and look for: DEBUG:rr:check_route_param: params are <.......>
regards, bogdan
Helge Waastad wrote:
Hi, I'm checking for a Re-Invite (Hold)
The Invite from the UA is like this:
SIP MESSAGE 1 10.46.11.132:5060() -> xxx.xxx.xxx.xxx:5060() UDP Frame 1 28/Sep/06 10:45:38.0422 TimeFromPreviousSipFrame=0.0000 TimeFromStart=0.0000 INVITE sip:67512388@10.46.11.101:5060;user=phone SIP/2.0 Via: SIP/2.0/UDP 10.46.11.132;branch=z9hG4bKeb3ee7f3572b7f4b Route:sip:xxx.xxx.xxx.xxx;lr=on;ftag=9f2aeb7dd809d46d;nat=yes;did=3c4.85d80b74 Route:sip:yyy.yyy.yyy.yyy;lr=on;ftag=9f2aeb7dd809d46d;nat=yes
I do a check_route_param("nat=yes")
Should not this work?
from the doc it says check_route_param: The function checks if the URI parameters of the local Route header (coresponding to the local server)
I'm also calling the function after loose_route()
br hw
tor, 28,.09.2006 kl. 11.35 +0300, skrev Bogdan-Andrei Iancu:
Hi Helge,
doesn't matter how you added the RR hdr - via record_route(), record_route_preset() or append_hf(). When you receive a sequential request, check_route_param("") will check the params of the corresponding Route hdr. Maybe it is a reg exp problem or the Route does not contain the param you are looking for...
regards, bogdan
Helge Waastad wrote:
Hi, I was just wondering if the check_route_param("") works on record_route_preset Routes?
It never hits when my Route: are, f.ex like xxx.xxx.xxx.xxx:<port>;nat=yes
Is this true?
br hw
hmmm...
maybe the route hdr is not considered local...Could you sent me the entire sip message (privately is necessary)?
regards, bogdan
Helge Waastad wrote:
Hi
I did some debugs, and it seems that the check_route_param is exiting in this check beneath. Thats why I do not get any debug messages from openser.....
/* check if params are present */ if ( !routed_params.s || !routed_params.len ) return -1;
hw
tor, 28,.09.2006 kl. 13.06 +0300, skrev Bogdan-Andrei Iancu:
Helge,
what openser version are you using?
try to run in debug and look for: DEBUG:rr:check_route_param: params are <.......>
regards, bogdan
Helge Waastad wrote:
Hi, I'm checking for a Re-Invite (Hold)
The Invite from the UA is like this:
SIP MESSAGE 1 10.46.11.132:5060() -> xxx.xxx.xxx.xxx:5060() UDP Frame 1 28/Sep/06 10:45:38.0422 TimeFromPreviousSipFrame=0.0000 TimeFromStart=0.0000 INVITE sip:67512388@10.46.11.101:5060;user=phone SIP/2.0 Via: SIP/2.0/UDP 10.46.11.132;branch=z9hG4bKeb3ee7f3572b7f4b Route:sip:xxx.xxx.xxx.xxx;lr=on;ftag=9f2aeb7dd809d46d;nat=yes;did=3c4.85d80b74 Route:sip:yyy.yyy.yyy.yyy;lr=on;ftag=9f2aeb7dd809d46d;nat=yes
I do a check_route_param("nat=yes")
Should not this work?
from the doc it says check_route_param:
The function checks if the URI parameters of the local Route header (coresponding to the local server)
I'm also calling the function after loose_route()
br hw
tor, 28,.09.2006 kl. 11.35 +0300, skrev Bogdan-Andrei Iancu:
Hi Helge,
doesn't matter how you added the RR hdr - via record_route(), record_route_preset() or append_hf(). When you receive a sequential request, check_route_param("") will check the params of the corresponding Route hdr. Maybe it is a reg exp problem or the Route does not contain the param you are looking for...
regards, bogdan
Helge Waastad wrote:
Hi, I was just wondering if the check_route_param("") works on record_route_preset Routes?
It never hits when my Route: are, f.ex like xxx.xxx.xxx.xxx:<port>;nat=yes
Is this true?
br hw