I am looking to configure Kamailio and RTPEngine to play a wav file for any new 
calls during a scheduled asterisk server maintenance. I have set up the 
following within route{} to send the call to a early_media route based on a 
variable that I can set on the server using kamcmd.

route {
...
       if ($sht(config=>maint)=="1") {
            if (is_method("INVITE") && !has_totag()) {
                xlog ("L_INFO","Ongoing maintenance. Call-ID:$ci | Method: 
$rm");
                route(early_media);
            }
        }
...
}

route[early_media] {
    xlog("Maintenance: handling early_media\n");
    rtpengine_manage("direction=external direction=external");
    $var(body) = $(rb{re.subst,/(IP4.).*/\1##server IP redacted##/g});
    set_reply_body($var(body), "application/sdp");
    t_send_reply("183", "Session Progress");
    sleep(2);
    unblock_dtmf("all");
    play_media("file=/etc/kamailio/media/maintenance.wav");
    sleep(21);
    rtpengine_delete();
    t_reply("480","Temporarily Unavailable");
}

This mostly works as I hear the recorded message in place of the ringing tone 
when a call is processed by kamailio and then a busy signal is heard as part of 
the 480 reply at the end. The sleep's are in place to match the duration of the 
recorded message as otherwise the 480 is sent immediately following the start 
of the play_media. Feel free to let me know if there is a better solution to 
wait the duration of the media file and then proceed with processing instead of 
using sleep().

Is there a way to instead send a CANCEL or a BYE instead of a 480 after the wav 
file is played? I tried using t_cancel_callid("$ci", "$cs", "0") as well as a 
dlg_bye("all") at the end of the early_media route and neither seemed to send 
any headers out.
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions
To unsubscribe send an email to [email protected]
Important: keep the mailing list in the recipients, do not reply only to the 
sender!
Edit mailing list options or unsubscribe:

Reply via email to