<DIV>
<DIV>
<DIV><BR><BR><B><I>Quek Eric &lt;inputdev@yahoo.com&gt;</I></B> wrote: 
<BLOCKQUOTE class=replbq style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #1010ff 2px solid">
<DIV>thx Steve,</DIV>
<DIV>can u simplify wad to do or where can i learn to create voice mail? due&nbsp;to I'm totally new to SIP...I'm actually a student taking over a project which was done by a student too.</DIV>
<DIV>rgds,</DIV>
<DIV>Eric<BR><BR><B><I>Steve Blair &lt;blairs@isc.upenn.edu&gt;</I></B> wrote:</DIV>
<BLOCKQUOTE class=replbq style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #1010ff 2px solid"><BR>Eric:<BR><BR>You need to decide what application will provide voice mail service<BR>SEMS, Asterisk, etc. That decision will drive what needs to be in your<BR>config file. Basically you'll need to add t_on_failure("N") and<BR>failure_route[N] statements to handle the unanswered call. In the<BR>failure_route you will want to do hostname and/or port number<BR>re-writing as necessary then t_relay the call to this new (voicemail<BR>server) destination.<BR><BR>-Steve<BR><BR>Quek Eric wrote:<BR><BR>&gt;Hi all,<BR>&gt;<BR>&gt;Im a new learner who is a beginner learning on SIP...<BR>&gt;<BR>&gt;I will like to know how do I enable Voice Mail in my<BR>&gt;ser.cfg file...<BR>&gt;<BR>&gt;Here's my ser.cfg:<BR>&gt;#<BR>&gt;# $Id: ser.cfg,v 1.21.4.1 2003/11/10 15:35:15 andrei<BR>&gt;Exp $<BR>&gt;#<BR>&gt;# simple quick-start config script<BR>&gt;#<BR>&gt;<BR>&gt;# ----------- global
 configuration parameters<BR>&gt;------------------------<BR>&gt;<BR>&gt;debug=3 # debug level (cmd line: -dddddddddd)<BR>&gt;fork=yes<BR>&gt;log_stderror=yes # (cmd line: -E)<BR>&gt;<BR>&gt;/* Uncomment these lines to enter debugging mode <BR>&gt;debug=7<BR>&gt;fork=no<BR>&gt;log_stderror=yes<BR>&gt;*/<BR>&gt;<BR>&gt;listen=172.16.221.38<BR>&gt;listen=127.0.0.1<BR>&gt;alias="sip.nyp.edu.sg"<BR>&gt;alias=172.16.221.38<BR>&gt;alias=127.0.0.1<BR>&gt;<BR>&gt;check_via=yes # (cmd. line: -v)<BR>&gt;dns=yes # (cmd. line: -r)<BR>&gt;rev_dns=no # (cmd. line: -R)<BR>&gt;port=5060<BR>&gt;children=4<BR>&gt;fifo="/tmp/ser_fifo"<BR>&gt;<BR>&gt;# ------------------ module loading<BR>&gt;----------------------------------<BR>&gt;<BR>&gt;loadmodule "/usr/lib/ser/modules/mysql.so"<BR>&gt;loadmodule "/usr/lib/ser/modules/sl.so"<BR>&gt;loadmodule "/usr/lib/ser/modules/tm.so"<BR>&gt;loadmodule "/usr/lib/ser/modules/rr.so"<BR>&gt;loadmodule "/usr/lib/ser/modules/maxfwd.so"<BR>&gt;loadmodule
 "/usr/lib/ser/modules/usrloc.so"<BR>&gt;loadmodule "/usr/lib/ser/modules/registrar.so"<BR>&gt;loadmodule "/usr/lib/ser/modules/auth.so"<BR>&gt;loadmodule "/usr/lib/ser/modules/auth_db.so"<BR>&gt;loadmodule "/usr/lib/ser/modules/acc.so"<BR>&gt;loadmodule "/usr/lib/ser/modules/exec.so"<BR>&gt;loadmodule "/usr/lib/ser/modules/group.so"<BR>&gt;loadmodule "/usr/lib/ser/modules/domain.so"<BR>&gt;loadmodule "/usr/lib/ser/modules/print.so"<BR>&gt;loadmodule "/usr/lib/ser/modules/textops.so"<BR>&gt;loadmodule "/usr/lib/ser/modules/uri.so"<BR>&gt;loadmodule "/usr/lib/ser/modules/msilo.so"<BR>&gt;loadmodule "/usr/lib/ser/modules/vm.so"<BR>&gt;<BR>&gt;# ----------------- setting module-specific parameters<BR>&gt;---------------<BR>&gt;<BR>&gt;# -- tm parameters --<BR>&gt;modparam("tm", "fr_timer", 12)<BR>&gt;modparam("tm", "fr_inv_timer", 24)<BR>&gt;<BR>&gt;# -- rr parameters --<BR>&gt;#add value to ;lr param to make some broken UAs happy<BR>&gt;modparam("rr", "enable_full_lr",
 1)<BR>&gt;<BR>&gt;# -- usrloc parameters --<BR>&gt;#2 enables write-back to persistent mysql storage for<BR>&gt;speed<BR>&gt;#disable=0, write-through=1<BR>&gt;modparam("usrloc", "db_mode", 2)<BR>&gt;#minimize write back window - default is 60 seconds<BR>&gt;modparam("usrloc", "timer_interval", 120)<BR>&gt;#database location<BR>&gt;modparam("usrloc", "db_url",<BR>&gt;"sql://ser:heslo@localhost/ser")<BR>&gt;<BR>&gt;# -- auth parameters --<BR>&gt;#database location<BR>&gt;modparam("auth_db", "db_url",<BR>&gt;"sql://ser:heslo@localhost/ser")<BR>&gt;#allows clear text password in the mysql database<BR>&gt;modparam("auth_db", "calculate_ha1", yes)<BR>&gt;#name of password column in mysql database<BR>&gt;modparam("auth_db", "password_column", "password")<BR>&gt;<BR>&gt;# -- acc parameters --<BR>&gt;modparam("acc", "log_level", 1)<BR>&gt;modparam("acc", "log_flag", 1)<BR>&gt;modparam("acc", "log_missed_flag", 3)<BR>&gt;<BR>&gt;# -- msilo parameters --<BR>&gt;modparam("msilo", "db_table",
 "silo")<BR>&gt;<BR>&gt;# ------------------------- request routing logic<BR>&gt;-------------------<BR>&gt;# main routing logic<BR>&gt;<BR>&gt;route{<BR>&gt;<BR>&gt; #checks messages with max_forwards==0<BR>&gt; if (!mf_process_maxfwd_header("10"))<BR>&gt; {<BR>&gt; sl_send_reply("483","too many hops");<BR>&gt; break;<BR>&gt; };<BR>&gt; #or excessively long requests<BR>&gt; if ( msg:len &gt; max_len )<BR>&gt; {<BR>&gt; sl_send_reply("513", "message is too big");<BR>&gt; break;<BR>&gt; };<BR>&gt;<BR>&gt; # we record-route all messages -- to make sure that<BR>&gt; # subsequent messages will go through our proxy;<BR>&gt;that's<BR>&gt; # particularly good if upstream and downstream<BR>&gt;entities<BR>&gt; # use different transport protocol<BR>&gt; record_route();<BR>&gt;<BR>&gt; # loose-route processing<BR>&gt; if (loose_route())<BR>&gt; {<BR>&gt; t_relay();<BR>&gt; break;<BR>&gt; };<BR>&gt;<BR>&gt; # labeled all transaction for accounting<BR>&gt; setflag(1);<BR>&gt;<BR>&gt; #
 record-route INVITES to make sure BYEs will visit<BR>&gt;our server too<BR>&gt; if (method=="INVITE") record_route();<BR>&gt;<BR>&gt; # if the request is for other domain use UsrLoc<BR>&gt; # (in case, it does not work, use the following<BR>&gt;command<BR>&gt; # with proper names and addresses in it)<BR>&gt; if (uri==myself)<BR>&gt; {<BR>&gt; if (method=="REGISTER")<BR>&gt; {<BR>&gt; #make sure that users don't register infinite loops<BR>&gt; if<BR>&gt;(search("^(Contact|m):.*@(172\.16\.221\.38|(proxy\.)?sip\.nyp\.edu\.sg)"))<BR>&gt; {<BR>&gt; log(1, "LOG: alert: someone trying to set<BR>&gt;aor==contact\n");<BR>&gt; sl_send_reply("476", "no server address in<BR>&gt;contacts allowed");<BR>&gt; break; <BR>&gt; };<BR>&gt;<BR>&gt; #Uncomment this if you want to use digest<BR>&gt;authentication<BR>&gt; # if (!www_authorize("sip.nyp.edu.sg",<BR>&gt;"subscriber"))<BR>&gt; # {<BR>&gt; # www_challenge("sip.nyp.edu.sg", "0");<BR>&gt; # break;<BR>&gt; # };<BR>&gt; save("aliases");<BR>&gt;
 save("location");<BR>&gt; log("REGISTER received -&gt; dumping messages with<BR>&gt;MSILO\n");<BR>&gt;<BR>&gt; #MSILO - dumping user's offline messages<BR>&gt; if (m_dump())<BR>&gt; {<BR>&gt; log("MSILO: offline messages dumped - if they<BR>&gt;were\n");<BR>&gt; }<BR>&gt; else<BR>&gt; {<BR>&gt; log("MSILO: no offline messages dumped\n");<BR>&gt; };<BR>&gt; break;<BR>&gt; };<BR>&gt; <BR>&gt; #native SIP destinations are handled using our<BR>&gt;USRLOC DB<BR>&gt; if (!lookup("location"))<BR>&gt; {<BR>&gt; if (! t_newtran())<BR>&gt; {<BR>&gt; sl_reply_error();<BR>&gt; break;<BR>&gt; };<BR>&gt;<BR>&gt; if (!method=="MESSAGE")<BR>&gt; {<BR>&gt; if (!t_reply("404", "not found on LDAP or SER"))<BR>&gt; {<BR>&gt; sl_reply_error();<BR>&gt; };<BR>&gt; break;<BR>&gt; };<BR>&gt;<BR>&gt; log("MESSAGE received -&gt; storing using MSILO\n");<BR>&gt; # MSILO - storing as offline message<BR>&gt; if (m_store("0"))<BR>&gt; {<BR>&gt; log("MSILO: offline message stored\n");<BR>&gt; if (!t_reply("202",
 "accepted for later<BR>&gt;delivery")) <BR>&gt; {<BR>&gt; sl_reply_error();<BR>&gt; };<BR>&gt; }<BR>&gt; else<BR>&gt; {<BR>&gt; log("MSILO: offline message NOT stored\n");<BR>&gt; if (!t_reply("503", "service unavailable")) <BR>&gt; {<BR>&gt; sl_reply_error();<BR>&gt; };<BR>&gt; };<BR>&gt; break;<BR>&gt;<BR>&gt; sl_send_reply("404", "not found on LDAP or SER");<BR>&gt; break;<BR>&gt; };<BR>&gt; #if the downstream UA does not support MESSAGE<BR>&gt;requests<BR>&gt; #go to failure_route[1]<BR>&gt; t_on_failure("1");<BR>&gt; t_relay();<BR>&gt; break;<BR>&gt;<BR>&gt; #native SIP destinations are handled using our<BR>&gt;USRLOC DB<BR>&gt; if (!lookup("location"))<BR>&gt; {<BR>&gt; if (!exec_dset("/etc/ser/sipldap"))<BR>&gt; {<BR>&gt; sl_send_reply("404", "not found on LDAP or SER");<BR>&gt; break;<BR>&gt; }<BR>&gt; else<BR>&gt; {<BR>&gt; log(1, "sipldap call");<BR>&gt; };<BR>&gt; };<BR>&gt; };<BR>&gt; setflag(3);<BR>&gt;<BR>&gt; #forward to current uri now; use stateful
 forwarding;<BR>&gt;that<BR>&gt; #works reliably even if we forward from TCP to UDP<BR>&gt; if (!t_relay())<BR>&gt; {<BR>&gt; sl_reply_error();<BR>&gt; break;<BR>&gt; };<BR>&gt;<BR>&gt; #does user wish redirection on no availability?<BR>&gt; #(is he in the voicemail (ser-&gt;grp) group?<BR>&gt; if (is_user_in("Request-URI", "voicemail"))<BR>&gt; {<BR>&gt; t_on_failure("4");<BR>&gt; setflag(1);<BR>&gt; };<BR>&gt;}<BR>&gt;<BR>&gt;failure_route[1] {<BR>&gt; #forwarding failed -- check if the request was a<BR>&gt;MESSAGE <BR>&gt; if (!method=="MESSAGE")<BR>&gt; {<BR>&gt; break;<BR>&gt; };<BR>&gt; log(1,"MSILO: the downstream UA does not support<BR>&gt;MESSAGE requests ...\n");<BR>&gt; #we have changed the R-URI with the contact address<BR>&gt;-- ignore it now<BR>&gt; if (m_store("1"))<BR>&gt; {<BR>&gt; log("MSILO: offline message stored\n");<BR>&gt; t_reply("202", "accepted for later delivery"); <BR>&gt; }<BR>&gt; else<BR>&gt; {<BR>&gt; log("MSILO: offline message NOT stored\n");<BR>&gt;
 t_reply("503", "service unavailable");<BR>&gt; };<BR>&gt;}<BR>&gt;<BR>&gt;failure_route[4] {<BR>&gt; append_branch("sip:80000@sip.nyp.edu.sg");<BR>&gt; append_urihf("CC-Diversion: ", "\r\n");<BR>&gt; append_hf("P-hint: OFFLINE-VOICEMAIL\r\n");<BR>&gt; t_relay();<BR>&gt;}<BR>&gt;<BR>&gt;<BR>&gt;Pls do help me...<BR>&gt;rgds,<BR>&gt;Eric<BR>&gt;<BR>&gt;<BR>&gt; <BR>&gt;__________________________________ <BR>&gt;Do you Yahoo!? <BR>&gt;Yahoo! Personals - Better first dates. More second dates. <BR>&gt;http://personals.yahoo.com<BR>&gt;<BR>&gt;_______________________________________________<BR>&gt;Serusers mailing list<BR>&gt;serusers@lists.iptel.org<BR>&gt;http://lists.iptel.org/mailman/listinfo/serusers<BR>&gt; <BR>&gt;<BR><BR>-- <BR><BR>ISC Network Engineering<BR>The University of Pennsylvania<BR>3401 Walnut Street, Suite 221A<BR>Philadelphia, PA 19104 <BR><BR><BR>voice: 215-573-8396 <BR><BR>215-746-8001<BR><BR>fax: 215-898-9348 <BR><BR>sip:blairs@upenn.edu<BR><BR></BLOCKQUOTE>
<P>
<HR SIZE=1>
Do you Yahoo!?<BR>Better first dates. More second dates. <A href="http://us.rd.yahoo.com/evt=27808/*http://personals.yahoo.com">Yahoo! Personals</A> </BLOCKQUOTE></DIV></DIV></DIV><p>
                <hr size=1>Yahoo! Messenger<br> 
Show us what our next emoticon should look like. <a href="http://us.rd.yahoo.com/evt=31855/*http://advision.webevents.yahoo.com/emoticontest">Join the fun.</a>