Hi all,
I'm running Kamailio 3.0.0, with SEMS integration as Media Server for Voice
mail. I'm trying to get a configuration to forward calls on busy to voice
mail. I have followed without success some examples. I'm using
revert_uri(), rewritehostport() and append_branch(), within failure_route.
It seems to be modifying R-URI properly, and generating the new branch, but
Kamailio is sending the new invite packet to the IP address of the original
destination UAC, and not to the IP address of the voicemail, that was
indicated in the R-URI. Here you can see the packet flow:
|Time | 192.168.3.20
| 192.168.0.167 |
| | | 192.168.0.197 |
|5,069 | INVITE SDP ( telephone-event)
| |SIP From: sip:4095@192.168.0.197
To:sip:4440@192.168.0.197
| |(5060) ------------------> (5060) | |
|5,071 | 407 Proxy Authentication Required
| |SIP Status
| |(5060) <------------------ (5060) | |
|5,074 | ACK | | |SIP
Request
| |(5060) ------------------> (5060) | |
|5,076 | INVITE SDP ( telephone-event)
| |SIP From: sip:4095@192.168.0.197
To:sip:4440@192.168.0.197
| |(5060) ------------------> (5060) | |
|5,084 | 100 trying -- your call is important to us
| |SIP Status
| |(5060) <------------------ (5060) | |
|5,085 | | INVITE SDP (
telephone-event) |SIP Request
| | |(5060) ------------------> (5060) |
|5,088 | | 100 Trying| |SIP
Status
| | |(5060) <------------------ (5060) |
|5,088 | | 486 Busy Here |SIP
Status
| | |(5060) <------------------ (5060) |
|5,091 | | ACK | |SIP
Request
| | |(5060) ------------------> (5060) |
|5,101 | | INVITE SDP (
telephone-event) |SIP Request
| | |(5060) ------------------> (5060) |
|5,102 | | 404 Not Found |SIP
Status
| | |(5060) <------------------ (5060) |
|5,102 | | ACK | |SIP
Request
| | |(5060) ------------------> (5060) |
|5,103 | 404 Not Found | |SIP
Status
| |(5060) <------------------ (5060) | |
|5,106 | ACK | | |SIP
Request
| |(5060) ------------------> (5060) | |
And the RAW capture of the INVITE message in timestamp 5,101.
No. Time Source Destination Protocol
Info
1235 5.100698 192.168.0.197 192.168.0.167 SIP/SDP
Request: INVITE sip:voicemail4440@192.168.0.197:5080, with session
description
Frame 1235 (1151 bytes on wire, 1151 bytes captured)
Ethernet II, Src: CadmusCo_96:31:84 (08:00:27:96:31:84), Dst:
Micro-St_6d:77:54 (00:21:85:6d:77:54)
Internet Protocol, Src: 192.168.0.197 (192.168.0.197), Dst: 192.168.0.167
(192.168.0.167)
User Datagram Protocol, Src Port: sip (5060), Dst Port: sip (5060)
Session Initiation Protocol
Request-Line: INVITE sip:voicemail4440@192.168.0.197:5080 SIP/2.0
Method: INVITE
Request-URI: sip:voicemail4440@192.168.0.197:5080
[Resent Packet: True]
[Suspected resend of frame: 1233]
Message Header
Record-Route: <sip:192.168.0.197;lr=on;nat=
yes>
Via: SIP/2.0/UDP 192.168.0.197;branch=z9hG4bKafce.403718a6.1
Via: SIP/2.0/UDP
192.168.57.20;received=192.168.3.20;rport=5060;branch=z9hG4bK0a00030f0000003151ed60b85ec2c3de000000c8
Content-Length: 386
Contact: <sip:4095@192.168.3.20:5060>
Call-ID: 8EAF9EC2-1DD2-11B2-B110-C84E476664B0(a)10.0.3.15
Content-Type: application/sdp
CSeq: 2 INVITE
From: "4095"<sip:4095@192.168.0.197>;tag=121754238352072516
Max-Forwards: 69
To: <sip:4440@192.168.0.197>
User-Agent: SJphone/1.60.299a/L (SJ Labs)
P-App-Name: voicemail
P-App-Param: mod=box;usr=
voicemail4440;dom=sipproxy.a.com
;uid=voicemail4440;did=sipproxy.a.com;
Message Body
Here you can see the failure_route in my kamailio.cfg file:
# Sample failure route
failure_route[FAIL_ONE] {
#ifdef WITH_NAT
if (is_method("INVITE")
&& (isbflagset("6") || isflagset(5))) {
unforce_rtp_proxy();
}
#endif
if (t_is_canceled()) {
exit;
}
# uncomment the following lines if you want to block client
# redirect based on 3xx replies.
##if (t_check_status("3[0-9][0-9]")
) {
##t_reply("404","Not found");
## exit;
##}
# uncomment the following lines if you want to redirect the failed
# calls to a different new destination
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");
$ru = "sip:" + $rU + "@" + "192.168.0.197:5080";
#rewritehostport("192.168.0.197:5080");
#append_branch("sip:4888@192.168.0.102");
append_branch();
# do not set the missed call flag again
t_relay();
}
}
Has anybody experienced this problem? Any help would be wellcome
Best Regards
LAA