ok. right now from tcpdump I can see the session progress and OK messages are sent to the correct ip:port of my phone, but either the phone doesn't receive it or it doesn't process it.
I assume the problem to be the headers sent by freeswitch, and perhaps not changed appropriately by kamailio, but I'm not sure: Call id and Cseq are the same as in RINGING, but contact header has freeswitch's IP (on the same server as kamailio) Contact: sip:3@127.0.0.1:5070;transport=udp
Could that ever work this way?
On 6/4/13, Daniel Tryba daniel@pocos.nl wrote:
On Tuesday 04 June 2013 12:07:35 hiro wrote:
Sometimes it also seemed that kamailio was sending the INVITE to the phone instead of to freeswitch, or when i played around between changing $du or $ru the INVITE gets sends to freeswitch but with the wrong URI pointing to the phone instead of 127.0.0.1:5070 which is where freeswitch is listening. I guess it would be easier to reproduce if that random factor wasn't there, but at least it's failing most of the time, only in different ways. I had hoped I could get at least confirmation that it "works here" to keep me going :P I will test with xlog when I can test at home again which would at least exclude NAT issues.
It works here :)
I know your pain. I spend days figuring out the magic trick was to set $du to null (which I stumbled upon by accident). Without $du=$null traffic was being routed (seemingly random) to either the registered phone or the actual voicemail server.
# route to voicemail server route[TOVOICEMAIL] { if(!is_method("INVITE")) return;
# check if VoiceMail server IP is defined if (strempty($sel(cfg_get.voicemail.srv_ip))) { xlog("SCRIPT: VoiceMail routing enabled but IP not
defined\n"); return; }
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; } return;
}
failure_route[MANAGE_FAILURE] { .... # serial forking # - route to voicemail on busy or no answer (timeout) if (t_check_status("486|408")) { route(CALLREDIRECT); route(TOVOICEMAIL); exit; } .... }
--
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