123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #
- # $Id$
- #
- # this script is configured for use as voicemail UAS; it processes
- # INVITEs and BYEs and asks SEMS to record media via "vm"; in this
- # script, all record-routing and other constructs known from proxy
- # scripts are not present -- it is a simple UAS
- #
- # ----------- global configuration parameters ------------------------
- #debug= # debug level (cmd line: -dddddddddd)
- #fork=no
- #log_stderror=yes # (cmd line: -E)
- check_via=no # (cmd. line: -v)
- dns=no # (cmd. line: -r)
- rev_dns=no # (cmd. line: -R)
- port=5090
- children=4
- fifo="/tmp/vm_ser_fifo"
- # ------------------ module loading ----------------------------------
- loadmodule "/home/srouter/sip_router/modules/sl/sl.so"
- loadmodule "/home/srouter/sip_router/modules/tm/tm.so"
- loadmodule "/home/srouter/sip_router/modules/maxfwd/maxfwd.so"
- loadmodule "/home/srouter/sip_router/modules/mysql/mysql.so"
- loadmodule "/home/srouter/sip_router/modules/vm/vm.so"
-
- # ----------------- setting module-specific parameters ---------------
- modparam("vm", "db_url","mysql://ser:heslo@dbhost/ser")
- # ------------------------- request routing logic -------------------
- # main routing logic
- route{
- # initial sanity checks -- messages with
- # max_forwars==0, or excessively long requests
- if (!mf_process_maxfwd_header("10")) {
- sl_send_reply("483","Too Many Hops");
- break;
- };
- if (len_gt( max_len )) {
- sl_send_reply("513", "Message too big");
- break;
- };
- if (!uri==myself) {
- sl_send_reply("404", "not reponsible for host in r-uri");
- break;
- };
- # Voicemail specific configuration - begin
- if(method=="ACK" || method=="INVITE" || method=="BYE"){
- if (!t_newtran()) {
- log("could not create new transaction\n");
- sl_send_reply("500","could not create new transaction");
- break;
- };
- t_reply("100","Trying -- just wait a minute !");
- if(method=="INVITE"){
- log("**************** vm start - begin ******************\n");
- if(!vm("/tmp/am_fifo","voicemail")){
- log("could not contact the answer machine\n");
- t_reply("500","could not contact the answer machine");
- };
- log("**************** vm start - end ******************\n");
- } else if(method=="BYE"){
- log("**************** vm end - begin ******************\n");
- if(!vm("/tmp/am_fifo","bye")){
- log("could not contact the answer machine\n");
- t_reply("500","could not contact the answer machine");
- };
- log("**************** vm end - end ******************\n");
- };
- break;
- };
- if (method=="CANCEL") {
- sl_send_reply("200", "cancels are junked here");
- break;
- };
- sl_send_reply("501", "method not understood here");
- }
|