I have checked that I'm , experiencing the same problem when the
redirection to voicemail is originated by the destination UAC via 302
message. Kamailio sends the packet to the destination UAC, even when I set
$du to null.
??¿?¿?¿¿??¿
if ($rU=~"^voicemail.*") {
$du = $null;
remove_hf("P-App-Name");
append_hf("P-App-Name: voicemail\r\n");
append_hf("P-App-Param:
mod=box;usr=$rU;dom=sipproxy.a.com
;uid=$rU;did=sipproxy.a.com;\r\n");
$ru = "sip:" + $rU + "@" + "192.168.0.197:5080";
$du = $null;
route(RELAY);
exit;
}
Conv.| Time | 192.168.3.20 |
192.168.0.167 |
| | | 192.168.0.197 |
0 |3,574 | INVITE SDP ( telephone-event)
| |SIP From: sip:4095@192.168.0.197
To:sip:4440@192.168.0.197
| |(5060) ------------------> (5060) | |
0 |3,575 | 407 Proxy Authentication Required
| |SIP Status
| |(5060) <------------------ (5060) | |
0 |3,577 | ACK | |
|SIP Request
| |(5060) ------------------> (5060) | |
0 |3,577 | INVITE SDP ( telephone-event)
| |SIP From: sip:4095@192.168.0.197
To:sip:4440@192.168.0.197
| |(5060) ------------------> (5060) | |
0 |3,584 | 100 trying -- your call is important to
us | |SIP Status
| |(5060) <------------------ (5060) | |
0 |3,585 | | INVITE SDP (
telephone-event) |SIP Request
| | |(5060) ------------------> (5060) |
0 |3,587 | | 100 Trying|
|SIP Status
| | |(5060) <------------------ (5060) |
0 |3,587 | | 302 Moved Temporarily
|SIP Status
| | |(5060) <------------------ (5060) |
0 |3,588 | | ACK |
|SIP Request
| | |(5060) ------------------> (5060) |
0 |3,592 | 302 Moved Temporarily |
|SIP Status
| |(5060) <------------------ (5060) | |
0 |3,594 | ACK | |
|SIP Request
| |(5060) ------------------> (5060) | |
-----------------------------------------------------------------------------
1 |3,596 | INVITE SDP ( telephone-event)
| |SIP From: sip:4095@192.168.0.197
To:sip:voicemail4440@192.168.0.167:5060
| |(5060) ------------------> (5060) | |
1 |3,596 | 407 Proxy Authentication Required
| |SIP Status
| |(5060) <------------------ (5060) | |
1 |3,600 | ACK | |
|SIP Request
| |(5060) ------------------> (5060) | |
1 |3,601 | INVITE SDP ( telephone-event)
| |SIP From: sip:4095@192.168.0.197
To:sip:voicemail4440@192.168.0.167:5060
| |(5060) ------------------> (5060) | |
1 |3,608 | 100 trying -- your call is important to
us | |SIP Status
| |(5060) <------------------ (5060) | |
1 |3,608 | | INVITE SDP (
telephone-event) |SIP Request
| | |(5060) ------------------> (5060) |
1 |3,608 | | 404 Not Found
|SIP Status
| | |(5060) <------------------ (5060) |
1 |3,609 | | ACK |
|SIP Request
| | |(5060) ------------------> (5060) |
1 |3,614 | 404 Not Found |
|SIP Status
| |(5060) <------------------ (5060) | |
1 |3,615 | ACK | |
|SIP Request
| |(5060) ------------------> (5060) | |
2013/7/25 LAA <ornitorrinco7424(a)gmail.com>
OK, Daniel and thanks for your help,
I see that you don't append brach but you are calling route(RELAY) instead
of t_relay() directly. I have tryed with this configuration within failure
route:
if (t_check_status("486|408")) {
#revert_uri();
prefix("voicemail");
remove_hf("P-App-Name");
append_hf("P-App-Name: voicemail\r\n");
append_hf("P-App-Param: mod=box;usr= $rU;dom=sipproxy.a.com
;uid=$rU;did=sipproxy.a.com;\r\n");
rewritehostport("192.168.0.197:5080");
$du = $null;
#append_branch();
route(RELAY);
#t_relay();
}
}
And kamailio gets into a strange behavior
|Time | 192.168.3.20 |
192.168.0.167 |
| | | 192.168.0.197 |
|3,366 | INVITE SDP ( telephone-event)
| |SIP From: sip:4095@192.168.0.197
To:sip:4440@192.168.0.197
| |(5060) ------------------> (5060) | |
|3,370 | 407 Proxy Authentication Required
| |SIP Status
| |(5060) <------------------ (5060) | |
|3,380 | ACK | | |SIP
Request
| |(5060) ------------------> (5060) | |
|3,382 | INVITE SDP ( telephone-event)
| |SIP From: sip:4095@192.168.0.197
To:sip:4440@192.168.0.197
| |(5060) ------------------> (5060) | |
|3,393 | 100 trying -- your call is important to us
| |SIP Status
| |(5060) <------------------ (5060) | |
|3,394 | | INVITE SDP (
telephone-event) |SIP Request
| | |(5060) ------------------> (5060) |
|3,395 | | 100 Trying| |SIP
Status
| | |(5060) <------------------ (5060) |
|3,395 | | 486 Busy Here |SIP
Status
| | |(5060) <------------------ (5060) |
|3,398 | | ACK | |SIP
Request
| | |(5060) ------------------> (5060) |
|3,416 | 500 I'm terribly sorry, server error occurred
...SL) | |SIP Status
| |(5060) <------------------ (5060) | |
|3,416 | 486 Busy Here | |SIP
Status
| |(5060) <------------------ (5060) | |
|3,418 | ACK | | |SIP
Request
| |(5060) ------------------> (5060) | |
|3,418 | ACK | | |SIP
Request
| |(5060) ------------------> (5060) | |
|3,872 | 486 Busy Here | |SIP
Status
| |(5060) <------------------ (5060) | |
|3,873 | ACK | | |SIP
Request
| |(5060) ------------------> (5060) | |
|4,875 | 486 Busy Here | |SIP
Status
| |(5060) <------------------ (5060) | |
|4,876 | ACK | | |SIP
Request
| |(5060) ------------------> (5060) | |
Are you using this sequence within failure route? or in the call routing
section? I'm using this sequence in the route section that is working OK:
if ($rU=~"^voicemail.*") {
remove_hf("P-App-Name");
append_hf("P-App-Name: voicemail\r\n");
append_hf("P-App-Param:
mod=box;usr=$rU;dom=sipproxy.a.com
;uid=$rU;did=sipproxy.a.com;\r\n");
$ru = "sip:" + $rU + "@" + "192.168.0.197:5080";
route(RELAY);
exit;
}
The problem is when I try to get a call forwarded by kamailio to voice
mail when it gets a busy message to the destination message. In your
implementation are you expecting a 302 (temporary unavailable) message from
the destination UAC?
Regards.
L.
2013/7/25 Daniel Tryba <daniel(a)pocos.nl>
On Thursday 25 July 2013 16:30:21 you wrote:
if (t_check_status("486|408")) {
revert_uri();
prefix("voicemail");
remove_hf("P-App-Name");
append_hf("P-App-Name: voicemail\r\n");
append_hf("P-App-Param: mod=box;usr= $rU;dom=sipproxy.a.com
;uid=$rU;did=sipproxy.a.com;\r\n");
rewritehostport("192.168.0.197:5080");
$du = $null;
#$du = "sip:192.168.0.197";
#append_branch();
t_relay();
Taking a look at my config which I found to work after the long struggle
you
are experiencing right now.
if($avp(dst_voicemail))
{
$du=$null;
$ru = "sip:tovm-" + $avp(dst_voicemail) + "@" +
$sel(cfg_get.voicemail.srv_ip) + ":" + $sel(cfg_get.voicemail.srv_port);
route(RELAY);
exit;
}
Which effectively sets $du to null (if not null the message would get
relayed
to the original destination (the proxy itself)) and rewrites $ru to
something
like
"sip:tovm-0123456789@voicemail:5060"
and then just do the normal relay route to deliver the message. Your *_hf
shouldn't have any effect on routing.
--
POCOS B.V. - Croy 9c - 5653 LC Eindhoven
Telefoon: 040 293 8661 - Fax: 040 293 8658
http://www.pocos.nl/ -
http://www.sipo.nl/
K.v.K. Eindhoven 17097024