[Users] voicemail howto

Taymour A. El Erian taymour.elerian at tedata.net
Sun Sep 11 13:39:31 CEST 2005


Bogdan-Andrei Iancu wrote:

> Hi Taymour,
>
> here is the adapter SEMS cfg (please change back the modules path and
> debug.log params)
>
> the proxy cfg (openser.cfg) is ok for openser 0.9.5 (for safety, just
> replace all your break with exit).
>
> regards,
> bogdan
>
> Taymour A. El Erian wrote:
>
>> Attached the configuration I used, one (openser.cfg) used for the main
>> SIP server and the second was used as a second instance which serve for
>> voicemail.
>>
>>
>>  
>>
>------------------------------------------------------------------------
>
>#
># $Id: voicemail.cfg,v 1.5 2004/01/14 18:23:50 rco Exp $
>#
># this script is configured for use as voicemail UAS; it processes
># INVITEs and BYEs and asks SEMS to record media via "t_write_req"; 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=9		        # debug level (cmd line: -dddddddddd)
>fork=no
>log_stderror=yes 	# (cmd line: -E)
>
>
>#listen=212.103.160.198
>check_via=no		# (cmd. line: -v)
>dns=no			# (cmd. line: -r)
>rev_dns=no		# (cmd. line: -R)
>port=5090
>children=4
>fifo="/tmp/t_write_req_ser_fifo"
>
># ------------------ module loading ----------------------------------
>
>loadmodule "modules/sl/sl.so"
>loadmodule "modules/tm/tm.so"
>loadmodule "modules/maxfwd/maxfwd.so"
>
># -------------------------  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");
>		exit;
>	};
>	if (msg:len >= max_len) {
>		sl_send_reply("513", "Message too big");
>		exit;
>	};
>
>	if (!uri==myself) {
>		sl_send_reply("404", "not reponsible for host in r-uri");
>		exit;
>	};
>
>
>	# 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");
>			exit;
>		};
>
>		t_reply("100","Trying -- just wait a minute !");
>		if(method=="INVITE"){
>			if (uri=~"sip:999[0-9]@.*")
> 			{
> 				if (!t_write_req("/tmp/am_fifo", "announcement"))
> 				 {
> 					log(1,"couldn't contact announcement server\n");
> 					t_reply("500", "couldn not contact announcement server");
> 				};
> 	
> log("!!!!!!!!!!!!!!!!!!!!!ANNOUNCEMENT!!!!!!!!!!!!!!!!!!!!!!\n");
> 			}
> 			else  if(uri=~"sip:1234567890 at .*")
> 			{
> 				if (!t_write_req("/tmp/am_fifo", "number_reader"))
> 				{
> 					log("could not contact the number reader server\n");
> 					t_reply("500","could not contact ivr server");
> 				};
> 				log ("!!!!!!!!!!!!!!!!!!!!!!!!!IVR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
> 			}
> 			else if (uri=~"sip:55[0-9][0-9][0-9]@.*")
> 			{
> 				if (!t_write_req("/tmp/am_fifo", "conference"))
> 				{
> 					log("Could not contact conference server\n");
> 					t_reply("500","Could not contact conference server");
> 				};
> 				log ("!!!!!!!!!!!!!!!!!!!!!CONFERENCE!!!!!!!!!!!!!!!!!!!!!!!!!\n");
> 			}			
> 			else 
> 			{
>
> 				if(!t_write_req("/tmp/am_fifo","voicemail"))
> 				#if(!t_write_req("/tmp/am_fifo","ivr"))
> 				{
> 					log(1,"could not contact the answer machine\n");
> 					t_reply("500","could not contact the answer machine");
> 				};
> 	
> log("!!!!!!!!!!!!!!!!!!!!!!VOICEMAIL!!!!!!!!!!!!!!!!!!!!!!!!!\n");
> 			};
>#
>#			log("**************** t_write_req start - begin ******************\n");
>#			if(!t_write_req("/tmp/am_fifo","voicemail")){
>#				log("could not contact the answer machine\n");
>#				t_reply("500","could not contact the answer machine");
>#			};
>#			log("**************** t_write_req start - end ******************\n");
>		} else if(method=="BYE"){
>			log("**************** t_write_req end - begin ******************\n");
>			if(!t_write_req("/tmp/am_fifo","bye")){
>				log("could not contact the answer machine\n");
>				t_reply("500","could not contact the answer machine");
>			};
>			log("**************** t_write_req end - end ******************\n");
>		};
>		exit;
>	};
>	if (method=="CANCEL") {
>		sl_send_reply("200", "cancels are junked here");
>		exit;
>	};
>	sl_send_reply("501", "method not understood here");
>}
>  
>

I used the config u sent me now am getting this error in my log.

am using SEMS 0.9.0 and I have no idea what these errors mean

Sep 11 14:33:30 serry /usr/sbin/openser[20658]: ERROR: fifo_t_reply:
lookup failed
Sep 11 14:33:30 serry /usr/sbin/openser[20658]: ERROR: fifo_server:
command (t_reply) processing failed
Sep 11 14:33:30 serry Sems[19839]: Error: (AmRequest.cpp)(reply)(368):
AmRequestUAS::reply: 481 fifo_t_reply: no such transaction
Sep 11 14:33:30 serry Sems[19839]: Error: (AmSession.cpp)(run)(217): 500
could not send response.
Sep 11 14:33:30 serry /usr/sbin/openser[20658]: ERROR: fifo_t_reply:
lookup failed
Sep 11 14:33:30 serry /usr/sbin/openser[20658]: ERROR: fifo_server:
command (t_reply) processing failed
Sep 11 14:33:30 serry Sems[19839]: Error: (AmRequest.cpp)(reply)(368):
AmRequestUAS::reply: 481 fifo_t_reply: no such transaction
Sep 11 14:33:33 serry /usr/sbin/openser[20666]: LOG: Someone trying to
register from private IP, rewriting
Sep 11 14:33:35 serry /usr/sbin/openser[20678]: LOG: Someone trying to
register from private IP, rewriting
Sep 11 14:33:35 serry /usr/sbin/openser[20624]: WARNING: t_reply: ACKs
are not replied


-- 
Taymour A El Erian
System Division Manager
RHCE, LPIC, CCNA, MCSE, CNA
TE Data
E-mail: taymour.elerian at tedata.net
Web:     www.tedata.net
Tel:    +(202)-4166600
Fax:	+(202)-4166700
Ext:    1101






More information about the Users mailing list