[Users] OpenSER-1.2.0 and SEMS

Peter Lemenkov lemenkov at gmail.com
Wed May 9 17:29:27 CEST 2007


2007/5/9, raviprakash sunkara <sunkara.raviprakash.feb14 at gmail.com>:
> Hello Users
>
> Todays onwards I'm Started integrating SEMS.
> Previously I'm using the Asterisk + openSER1.2 .For a small change , I
> shifted into the SEMS for voicemail
>
> By this url (
> http://openser.org/pipermail/users/2005-September/000844.html53
> )

<sorry skipped>

This mini-tutorial is very outdated. Look at my current config with
OpenSER from svn ans SEMS from svn:

==========================================

  # ------------------ module loading ----------------------------------

unix_sock="/tmp/openser_sems_socket"

mpath="/usr/local/lib/openser/modules"

  loadmodule "sl.so"
  loadmodule "tm.so"
  loadmodule "rr.so"
  loadmodule "maxfwd.so"
  loadmodule "xlog.so"

loadmodule "avpops.so"
loadmodule "mysql.so"

modparam("tm", "fr_inv_timer", 15000)
modparam("tm", "pass_provisional_replies", 1)

modparam("rr", "enable_full_lr", 1)

modparam("avpops", "db_url", "mysql://openser:openserrw@127.0.0.1/openser")
modparam("avpops", "avp_table", "subscriber")
modparam( "avpops", "uuid_column", "id" )

modparam("avpops", "username_column", "username")
modparam("avpops", "db_scheme",
"email_scheme:table=subscriber;value_col=email_address;value_type=string")

modparam("tm", "tw_append", "voicemail_headers:P-Email-Address=$avp(i:67)")
modparam("tm", "tw_append", "mailbox_headers:P-Mailbox-URL=$avp(i:68)")
modparam("tm", "tw_append", "mailbox_query_headers:P-Mailbox-URL=$avp(i:68)")

avp_aliases="email=i:67;mailbox_uri=i:68"
  # -------------------------  request routing logic -------------------

  route{
        xlog("L_ERR","BEGIN: call [$rm] ru[$ru] fu[$fu] tu[$tu]
si[$si] ct[$ct]\n");

        if (!mf_process_maxfwd_header("5")) {
                sl_send_reply("483","Too Many Hops");
                return;
        };
        if (msg:len >= max_len ) {
                sl_send_reply("513", "Message too big");
                return;
        };

        record_route();

        if (loose_route()) {
                xlog("L_ERR","LOOSE_ROUTE: [$rm] ru[$ru] fu[$fu]
tu[$tu] si[$si] ct[$ct]\n");
        }

        if (!t_newtran()){
                sl_send_reply("500","could not create transaction");
                return;
        };
        if (method=="INVITE"){
#               if(uri=~"sip:9.*@"){
#                       if(!t_write_unix("/tmp/sems_sock","conference"))
#                               t_reply("500","error contacting
conference server");
#               }
                if(uri=~"sip:2.*@"){
                        avp_db_load( "$fu", "$avp(i:67)/$email_scheme");

if(!t_write_unix("/tmp/sems_sock","voicemail/voicemail_headers"))
                                t_reply("500","error contacting
message-to-email server");
                }
                if(uri=~"sip:3.*@"){
                        if(!t_write_unix("/tmp/sems_sock","echo"))
                                t_reply("500","error contacting echo server");
                }
                if(uri=~"sip:7.*@"){
                        # TODO passwords
                        $avp(mailbox_uri) = "imap://" + $tu +
":123 at localhost:143/INBOX";

if(!t_write_unix("/tmp/sems_sock","mailbox/mailbox_headers"))
                                t_reply("500","error contacting
mailbox server");
                }
                if(uri=~"sip:mail@"){
                        # TODO passwords
                        $avp(mailbox_uri) = "imap://" + $au +
":123 at localhost:143/INBOX";

if(!t_write_unix("/tmp/sems_sock","mailbox_query/mailbox_headers"))
                                t_reply("500","error contacting
mailbox server for query");
                }
                if(uri=~"sip:error404.*@"){
                        if(!t_write_unix("/tmp/sems_sock","announcement"))
                                t_reply("500","error contacting
error404 server");
                }
        }
        if (method=="BYE" || method=="CANCEL"){
                if(!t_write_unix("/tmp/sems_sock","bye"))
                         t_reply("500","error contacting bye");
        }
        return;
}


==========================================

You also need to do next things:

* set up IMAP server (Dovecot or similar) in order to store voicemail
* Correct parameter ser_socket_name in /etc/sems/sems.conf
* Fix paths for audiofiles in /etc/sems/etc/*.conf

-- 
With best regards!




More information about the sr-users mailing list