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.html) i found t_write_reg that is not in OpenSER tm modules , I found t_write_fifo/unix
How I can do the voicemail or announcement with OpenSER + SEMS
Any one give me ant hints
Regardinng this points
raviprakash sunkara writes:
By this url ( http://openser.org/pipermail/users/2005-September/000844.html) i found t_write_reg that is not in OpenSER tm modules , I found t_write_fifo/unix
How I can do the voicemail or announcement with OpenSER + SEMS
t_write_unix("/tmp/sems_sock", "announcement")
if you have in your sems.conf
socket_name=/tmp/sems_sock
-- juha
2007/5/9, raviprakash sunkara sunkara.raviprakash.feb14@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@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@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
Hello Peter,
Thanks for giving a clues.
I need to tell the OpenSER *Tutorials guys **
in modules documentation of OpenSER of all version , mainly in tm modules, In TM module the exported Function " t_write_fifo/unix("info","fifo/unix") " the function parameter should me reverser, like t_write_fifo/unix("fifo/unix","info")
can replace the function in http://www.openser.org/docs/modules/ of Tm module .
** *On 5/9/07, Peter Lemenkov lemenkov@gmail.com wrote:
2007/5/9, raviprakash sunkara sunkara.raviprakash.feb14@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@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@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!