Hola a todos,
Estoy tratando de configurar Kamailio 3.0.0 para que redirija las llamadas a un buzón de voz basado en SEMS cuando el usuario llamado está ocupado. Siguiendo las instrucciones de varios ejemplos encontrados en internet, y del propio script ejemplo de kamailio.cfg, estoy usando las funciones revert_uri(), rewritehostport() (o reescribiéndo el R-URI manualmente) y append_branch(), dentro de la failure_route. Aparentemente modifica correctamente el R-URI y crea la segunda "pata" de la llamada. Sin embargo, a pesar de que la dirección del R-Uri aparece bien cambiada como decía en la Request Line, el paquete IP se envía a la dirección IP del destinatario original:
|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) | |
Esta es la captura del Invite de la redirección, en el 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
La configuración que he usado es la siguiente:
# 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(); } }
¿Alguien ha tenido un problema similar? Cualquier ayuda será bienvenida.
Saludos.
LAA.
sr-users-es@lists.kamailio.org