Peter Lemnkov writes ( http://openser.org/pipermail/users/2007-May/010918.html ):
<sorry skipped>
This mini-tutorial is very outdated. Look at my current config with
OpenSER from svn ans SEMSi [1] from svn:
==========================================
# ------------------ module loading ----------------------------------
unix_sock="/tmp/openser_semsi [2]_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" [3])
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 transactioni [4]");
return;
};
if (method=="INVITE"){
# if(uri=~"sip:9.*@" [5]){
# if(!t_write_unix("/tmp/sems_sock","conference"))
# t_reply("500","error contacting
conference server");
# }
if(uri=~"sip:2.*@" [6]){
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.*@" [7]){
if(!t_write_unix("/tmp/sems_sock","echo"))
t_reply("500","error contacting echo server");
}
if(uri=~"sip:7.*@" [8]){
# TODO passwords
$avp(mailbox_uri) = "imap://" [9] + $tu +
":123@localhost:143/INBOX";
if(!t_write_unix("/tmp/sems_sock","mailbox/mailbox_headers"))
t_reply("500","error contacting
mailbox server");
}
if(uri=~"sip:mail@" [10]){
# TODO passwords
$avp(mailbox_uri) = "imap://" [11] + $au +
":123@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.*@" [12]){
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 seri [13]_socket_name in /etc/sems/sems.conf
* Fix paths for audiofiles in /etc/sems/etc/*.conf
With best regards!