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@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