hello friends,
iam useing the sems+ivr when i run the sems with
ivr support it gives me the message as
ERROR: reply (AmRequest.cpp:335):
AmRequestUAS::reply: 500 command 't_reply' not
available
as suggested in the list i did serctl fifo which
in this list there is no function t_relay
so how do i need to proceed from here
to get the sucess
here is my sems.conf
*****************************
##################################
# global parameters #
##################################
# optional parameter: fork={yes|no}
#
# - specifies if sems should run in daemon mode
(background)
# (fork=no is the same as -E)
fork=yes
# optional parameter: stderr={yes|no}
#
# - debug mode: do not fork and log to stderr
# (stderr=yes is the same as -E)
stderr=no
# optional parameter: loglevel={0|1|2|3}
#
# - sets log level (error=0, warning=1, info=2,
debug=3)
# (same as -D)
loglevel=1
# optional parameter: fifo_name=<filename>
#
# - path and file name of our fifo file (same as -i)
fifo_name=/tmp/am_fifo
# optional parameter: ser_fifo_name=<filename>
#
# - path and file name of Ser's fifo file (same as -o)
ser_fifo_name=/tmp/ser_fifo
# optional parameter: socket_name=<filename>
#
# - path and file name of our unix socket
#socket_name=/tmp/am_sock
# optional parameter: ser_socket_name=<filename>
#
# - path and file name of Ser's unix socket
#ser_socket_name=/tmp/ser_sock
# optional parameter: send_method=<filename>
#
# - sets which method will be used to contact Ser:
# FIFO or unix socket server.
# - values: fifo (default), unix_socket
#
# - PLEASE NOTE THAT: if you use 'fifo', make sure
that
# fifo_name and ser_fifo_name have been set. if you
use 'unix_socket',
# make sure that socket_name and ser_socket_name
have been set.
#
#send_method=unix_socket
# optional parameter: plugin_path=<path>
#
# - sets the path to the plug-ins
# - may be absolute or relative to CWD
plugin_path=/usr/local/lib/sems/plug-in
# optional parameter: smtp_server=<hostname>
#
# - sets address of smtp server
smtp_server=localhost
# optional parameter: smtp_port=<port>
#
# - sets port of smtp server
smtp_port=25
# optional parameter: rtp_low_port=<port>
#
# - sets port of rtp lowest server
#rtp_low_port=1024
# optional parameter: rtp_high_port=<port>
#
# - sets port of rtp highest server
#rtp_high_port=65535
##################################
# module specific parameters #
##################################
# sample voicemail configuration (inline)
config.voicemail=inline
# optional parameter: rec_file_extension=<ext>
#
# - sets the file extension which will be used
# to record messages.
# - example 1: wav
# - example 2: mp3
#
# WARNING: you must compile the mp3 plug-in
# in order to use 'mp3' as default
# extension. You will need the lame
# encoder for that.
# See plug-in/mp3/ReadmeMP3.txt for
# more information.
#
rec_file_extension=wav
# optional parameter: announce_path=<path>
#
# - sets the path where announce files are searched
for
# - the file to be played is determined the following
way:
# <announce_path>/<domainname>/<username>.wav
# if this file is not available
<announce_path>/<default_anounce> is used
announce_path=/usr/local/lib/sems/audio/
# parameter: default_announce=<filename>
#
# - sets the name of the default announce WAV file
default_announce=default_en.wav
# parameter: max_record_time=<seconds>
#
# - maximum record time
max_record_time=30
# parameter: accept_delay=<x>
#
# - delays accepting of the call for x seconds
# - default value is 0
accept_delay=0
# parameter: email_template_path=<filename>
#
# - email templates path
#
# See the README file in <sems-src>/plug-in/voicemail
# for more information on the syntax used.
#
email_template_path=/usr/local/etc/sems/
# end of configuration section for voicemail module
config.voicemail=end
# sample announcement configuration (inline)
config.announcement=inline
# optional parameter: announce_path=<path>
#
# - sets the path where announce files are searched
for
announce_path=/usr/local/lib/sems/audio/
# parameter: default_announce=<filename>
#
# - sets the name of the default announce WAV file
default_announce=default_en.wav
# end of configuration section for announcement module
config.announcement=end
# sample isdngw module configuration (external file)
# config.isdngw=/etc/isdngw.conf
# sample ivr module configuration (inline)
config.ivr=inline
#
#
# The IVR checks for a script with the named of the
callee
# (<local part in r-uri>.py for python, <local part in
r-uri>.pl for perl)
# in the directory <ivr_script_path><domain>, then for
# <ivr_script_path><domain><ivr_script_file>. If this
is not found,
# <ivr_script_path>/<local part in r-uri>.py if
searched,
# and if this is not found,
<ivr_script_path>/<ivr_script_file> is used.
#
# So with a call to sayer(a)iptel.org and
#ivr_script_path=/etc/ivr and
#ivr_script_file=ivr.py
# these files are checked:
#/etc/ivr/iptel.org/sayer.py
#/etc/ivr/iptel.org/ivr.py
#/etc/ivr/sayer.py
#/etc/ivr/ivr.py
#
#config.ivr=inline
#python_scrit_path=/root/answer_machine/plugin/ivr/
#python_script_file=ivr.py
#config.ivr=end
#parameter: ivr_script_path:
# path to ivr scripts.
#
ivr_script_path=/root/answer_machine/plugin/ivr/script
# default script file: this will be executed if
<user>.py does not exist.
#
ivr_script_file=ivr.py
# parameter : tts_caching
# y or n
# text will be read from waves already
synthesized and
# cached in cache_path
tts_caching=y
# parameter : tts_cache_path
# path to cache waves
# path must exist!
tts_cache_path=/tmp/wavs
# end of configuration section for ivr module
config.ivr=end
config.conference=inline
# parameter: default_announce=<filename>
#
# - sets the full pathed name of the default announce
WAV file.
# Will be played to lonely users.
default_announce=/usr/local/lib/sems/audio/first_participant.wav
# end of configuration section for conference module
config.conference=end
# example configuration for number reader
config.number_reader=inline
number_path=/usr/local/lib/sems/audio/
prolog_file=welcome_to_number_reader.wav
epilog_file=thanks_calling_number_reader.wav
# end of number_reader configuration
config.number_reader=end
**********************************
my aim is to run the ivr.py when there is any invite
with regards
serdiehard
__________________________________
Do you Yahoo!?
Send holiday email and support a worthy cause. Do good.
http://celebrity.mail.yahoo.com
Hi,
Suppose my SIP domain is xyz.com. When I use my gateway to register SER,
I find that the gateway will send a request message to SER with
REQUEST/NOTIFY URI sip:xyz.com:5060. SER will reply a 404 Not found to
gateway. However, sip:xyz.com:5060 is invalid address as I do not have
this user. Valid sip address should be in the form
sip:username@xyz.com:5060.
How can I solve this problem? Do you have any idea?
Thomas
Hi,
When I use serctl ul show xxx, I can see xxx in database. But when I use serweb to view the "show online users only" list, I see nothing displayed.
Does it mean even if xxx is registered, it will not be shown in "online user list" in serweb unless a call is setup ?
Could anyone answer me? Thank you.
Thomas
Hello Jiri, Rafael, Ulrich:
I installed ser (sip router) and sems (sip + sems),
after struggling for long time with them and make them
work (conference, authentication, all my needs),
everythind worked fine. Then, I needed to restart the
servers. When I tested my system again with the same
configuration files, it didnt work properly.
Calls between online users still works, but when I
call a non-existent user (fake one), the system still
tries (TRYING state) to establish it even though, sems
display a "no email address" notification. I receive a
Timeout message after a while.
This is the place where I download my servers
ftp://ftp.berlios.de/pub/ser/0.8.14/ and it is
supposed to be the stable version and the sems server
installed is the one on contrib folder.
I attach the log files from sems(notice the "no email
address" message) and ser at the end of this text.
Regarding the configuration files, I'm using the basic
ones from this distribution.
Can you give me a clue of what is going on???
Thanx,
Songo.
---------------SER OUTPUT IN DEBUG MODE--------------
4(5556) parse_headers: flags=-1
4(5556) DEBUG: t_check: msg id=2 global id=2 T
start=0x402f3200
4(5556) DEBUG: t_check: T alredy found!
4(5556) record_route->nameaddr.uri:
sip:juan@147.214.193.11;ftag=1265157650;lr=on
4(5556) vm: first proxy has loose routing.
4(5556) vm: calculated route:
<sip:juan@147.214.193.11;ftag=1265157650;lr=on>
4(5556) vm: next r-uri:
sip:ecarloa@147.214.141.157:5060
4(5556) parse_headers: flags=-1
4(5556) query="select email_address from subscriber
where username='juan'"
4(5556) vm: write_to_vm_fifo: <0.2
sip_request.voicemail
INVITE
juan
.
conf.wider.se
10.1.0.15
5090
sip:juan@conf.wider.se:5090
sip:ecarloa@147.214.141.157:5060
ecarloa <sip:ecarloa@wider.se>
<sip:juan@wider.se>
226C518E-3FCF-413B-A2D4-EDF5C1F24E26(a)147.214.141.157
1265157650
.
54916
57670:1263549648
<sip:juan@147.214.193.11;ftag=1265157650;lr=on>
sip:juan@147.214.193.11;ftag=1265157650;lr=on
P-MsgFlags: 0
.
v=0
o=ecarloa 1903577 1903577 IN IP4 147.214.141.157
s=X-PRO
c=IN IP4 147.214.141.157
t=0 0
m=audio 8000 RTP/AVP 0 101
a=rtpmap:0 pcmu/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
>
5(5557) DEBUG: fifo_t_reply: ############### begin
##############
5(5557) DEBUG: fifo_t_reply:
trans_id=57670:1263549648
5(5557) DEBUG: fifo_t_reply: hash_index=57670
label=1263549648
5(5557) DEBUG: fifo_t_reply: to-tag: 000015BD6507507B
5(5557) DEBUG: fifo_t_reply: new headers: Contact:
<sip:juan@10.1.0.15:5090>
5(5557) DEBUG: t_lookup_ident: transaction found
5(5557) parse_headers: flags=-1
5(5557) check_via_address(147.214.193.11,
147.214.193.11, 0)
5(5557) t_reply_with_body: buffer computed
5(5557) DEBUG: cleanup_uacs: RETR/FR timers reset
5(5557) DEBUG: add_to_tail_of_timer[4]: 0x402f32b4
5(5557) DEBUG: add_to_tail_of_timer[0]: 0x402f32c8
5(5557) DEBUG: reply sent out. buf=0x80db908: SIP/2.0
4..., shmem=0x402f49a0: SIP/2.0 4
5(5557) DEBUG: t_reply: finished
5(5557) DEBUG: fifo_t_reply: ################ end
##############
4(5556) DEBUG: write_to_vm_fifo: write completed
4(5556) DEBUG: add_to_tail_of_timer[0]: 0x402f333c
4(5556) **************** vm start - end
******************
4(5556) DEBUG:destroy_avp_list: destroing list (nil)
4(5556) receive_msg: cleaning up
6(5558) DEBUG: timer routine:4,tl=0x402f32b4
next=(nil)
6(5558) DEBUG: retransmission_handler : reply
resending (t=0x402f3200, SIP/2.0 4 ... )
6(5558) DEBUG: reply retransmitted. buf=0x421a1de0:
SIP/2.0 4..., shmem=0x402f49a0: SIP/2.0 4
6(5558) DEBUG: add_to_tail_of_timer[5]: 0x402f32b4
6(5558) DEBUG: retransmission_handler : done
2(5554) SIP Request:
2(5554) method: <INVITE>
2(5554) uri: <sip:juan@conf.wider.se:5090>
2(5554) version: <SIP/2.0>
2(5554) parse_headers: flags=1
2(5554) Found param type 232, <branch> =
<z9hG4bK641e.35bfa03.0>; state=16
2(5554) end of header reached, state=5
2(5554) parse_headers: Via found, flags=1
2(5554) parse_headers: this is the first via
2(5554) After parse_msg...
2(5554) preparing to run routing scripts...
2(5554) DEBUG : is_maxfwd_present: searching for
max_forwards header
2(5554) parse_headers: flags=128
2(5554) Found param type 235, <rport> = <5060>;
state=6
2(5554) Found param type 232, <branch> =
<z9hG4bK0CEAD939118543379231D866C75F6C83>; state=16
2(5554) end of header reached, state=5
2(5554) parse_headers: Via found, flags=128
2(5554) parse_headers: this is the second via
2(5554) end of header reached, state=9
2(5554) DEBUG: get_hdr_field: <To> [21];
uri=[sip:juan@wider.se]
2(5554) DEBUG: to body [<sip:juan@wider.se>
]
2(5554) get_hdr_field: cseq <CSeq>: <54916> <INVITE>
2(5554) DEBUG: is_maxfwd_present: value = 69
2(5554) DEBUG: add_param: tag=1265157650
2(5554) end of header reached, state=29
2(5554) parse_headers: flags=256
2(5554) DEBUG: get_hdr_body : content_length=199
2(5554) found end of header
2(5554) find_first_route(): No Route headers found
2(5554) loose_route(): There is no Route HF
2(5554) check_self - checking if host==us: 13==9 &&
[conf.wider.se] == [10.1.0.15]
2(5554) check_self - checking if port 5090 matches
port 5090
2(5554) DEBUG: t_addifnew: msg id=4 , global msg id=3
, T on entrance=0xffffffff
2(5554) parse_headers: flags=-1
2(5554) parse_headers: flags=60
2(5554) t_lookup_request: start searching:
hash=57670, isACK=0
2(5554) DEBUG: RFC3261 transaction matched,
tid=641e.35bfa03.0
2(5554) DEBUG: t_lookup_request: transaction found
(T=0x402f3200)
2(5554) DEBUG: reply retransmitted. buf=0x421a1de0:
SIP/2.0 4..., shmem=0x402f49a0: SIP/2.0 4
2(5554) DEBUG:destroy_avp_list: destroing list (nil)
2(5554) receive_msg: cleaning up
6(5558) DEBUG: timer routine:5,tl=0x402f32b4
next=(nil)
6(5558) DEBUG: retransmission_handler : reply
resending (t=0x402f3200, SIP/2.0 4 ... )
6(5558) DEBUG: reply retransmitted. buf=0x421a1de0:
SIP/2.0 4..., shmem=0x402f49a0: SIP/2.0 4
6(5558) DEBUG: add_to_tail_of_timer[6]: 0x402f32b4
6(5558) DEBUG: retransmission_handler : done
4(5556) SIP Request:
4(5556) method: <INVITE>
4(5556) uri: <sip:juan@conf.wider.se:5090>
4(5556) version: <SIP/2.0>
4(5556) parse_headers: flags=1
4(5556) Found param type 232, <branch> =
<z9hG4bK641e.35bfa03.0>; state=16
4(5556) end of header reached, state=5
--------------SEMS OUTPUT IN DEBUG
MODE----------------
(5565) INFO: run (AmServer.cpp:154): Sems started
(5565) DEBUG: run (AmServer.cpp:167): version= <0.2>
(5565) DEBUG: run (AmServer.cpp:177): fct_name=
<sip_request.voicemail>
(5565) DEBUG: execute (AmServer.cpp:236): cmd.method=
<INVITE>
(5565) DEBUG: execute (AmServer.cpp:237): cmd.user=
<juan>
(5565) DEBUG: execute (AmServer.cpp:238): cmd.email=
<>
(5565) DEBUG: execute (AmServer.cpp:239): cmd.domain=
<conf.wider.se>
(5565) DEBUG: execute (AmServer.cpp:240): cmd.dstip=
<10.1.0.15>
(5565) DEBUG: execute (AmServer.cpp:241): cmd.port=
<5090>
(5565) DEBUG: execute (AmServer.cpp:242): cmd.r_uri=
<sip:juan@conf.wider.se:5090>
(5565) DEBUG: execute (AmServer.cpp:243):
cmd.from_uri= <sip:ecarloa@147.214.141.157:5060>
(5565) DEBUG: execute (AmServer.cpp:244): cmd.from=
<ecarloa <sip:ecarloa@wider.se>>
(5565) DEBUG: execute (AmServer.cpp:245): cmd.to=
<<sip:juan@wider.se>>
(5565) DEBUG: execute (AmServer.cpp:246): cmd.callid=
<1B0E0906-C5C0-44B1-B29A-CBE64417276B(a)147.214.141.157>
(5565) DEBUG: execute (AmServer.cpp:247):
cmd.from_tag= <3474869260>
(5565) DEBUG: execute (AmServer.cpp:248): cmd.to_tag=
<>
(5565) DEBUG: execute (AmServer.cpp:251): cseq_str=
<32452>
(5565) DEBUG: execute (AmServer.cpp:256): cseq=
<32452>(32452)
(5565) DEBUG: execute (AmServer.cpp:258): cmd.key=
<34926:921248335>
(5565) DEBUG: execute (AmServer.cpp:259): cmd.route=
<<sip:juan@147.214.193.11;ftag=3474869260;lr=on>>
(5565) DEBUG: execute (AmServer.cpp:260):
cmd.next_hop=
<sip:juan@147.214.193.11;ftag=3474869260;lr=on>
(5565) DEBUG: execute (AmServer.cpp:266): hdrs:
`P-MsgFlags: 0
'
(5565) DEBUG: execute (AmServer.cpp:273): body: `v=0
o=ecarloa 1783814 1783814 IN IP4 147.214.141.157
s=X-PRO
c=IN IP4 147.214.141.157
t=0 0
m=audio 8000 RTP/AVP 0 101
a=rtpmap:0 pcmu/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
'
(5565) DEBUG: execute (AmServer.cpp:284): everything
is OK !
(5565) ERROR: startSession (AmSession.cpp:442): 404
voicemail: no email address for user <juan>
(5565) DEBUG: sendToFIFO (AmRequest.cpp:194):
msg=<:vm_reply:000015BD5025B896
404
voicemail: no email address for user <juan>
34926:921248335
000015BD47C9409A
Contact: <sip:juan@10.1.0.15:5090>
.
.
>
(5565) DEBUG: openReplyFifo (AmRequest.cpp:362):
flags=800
(5565) DEBUG: openReplyFifo (AmRequest.cpp:364):
flags=0
(5565) DEBUG: write_to_fifo (AmRequest.cpp:708): Write
to fifo: completed
(5565) DEBUG: getReturnCode (AmRequest.cpp:400):
Waiting for Ser to respond to the FIFO request...
(5565) DEBUG: getReturnCode (AmRequest.cpp:421):
response from Ser: 200 fifo_t_reply succeeded
(5565) DEBUG: getReturnCode (AmRequest.cpp:442):
n_cmd.from_uri= <>
(5565) DEBUG: getReturnCode (AmRequest.cpp:445):
n_cmd.next_hop= <>
(5565) DEBUG: getReturnCode (AmRequest.cpp:448):
n_cmd.route= <>
(5565) DEBUG: sendToFIFO (AmRequest.cpp:216):
sendToFifo returns ret=getReturnCode=0
=====
CUANDO UNO SABE A DONDE VA, EL MUNDO SE ABRE PARA DEJARLO PASAR.
__________________________________
Do you Yahoo!?
Yahoo! Mail - Find what you need with new enhanced search.
http://info.mail.yahoo.com/mail_250
Hello list,
i have successfully completed my trails with voice
mail
now my aim is to do the ivr enableing with sems.
iam useing the ser-0.8.12 of stable version and sems
of stable and latest cvs version.
i have compiled my ivr plugin with the python and i
got the binary file ivr.so
so my doubts are
1) does i need to load this binary file into ser.cfg
2)if so how do i need to load the module into the my
ser.cfg
3) the following is my configuration files of ser.cfg
and sems.conf
4) my expectations with the current configurtions is
that when i invite any other user agent it has to
go to the ivr but instead of this it gives the error
as follows
out put while running sems in debug mode
------------------------------------------
[root@server1 answer_machine]# ./sems -D 3 -E
(1281) ERROR: reportConfigError
(SemsConfiguration.cpp:274):
/usr/local/etc/sems/sems.conf:197 configuration:
inline module definitions may not be nested
sems.conf
******************************************************
[root@server1 sems]# cat sems.conf
# $Id: sems.conf.sample,v 1.20 2004/08/30 11:03:26 rco
Exp $
#
# sems.conf.sample
#
# Sip Express Media Server (sems)
#
# sample configuration file
#
#
# whitespaces (spaces and tabs) are ignored
# comments start with a "#" and may be used inline
#
# example: option=value1, value2 # i like this option
#
##################################
# global parameters #
##################################
# optional parameter: fork={yes|no}
#
# - specifies if sems should run in daemon mode
(background)
# (fork=no is the same as -E)
fork=yes
# optional parameter: stderr={yes|no}
#
# - debug mode: do not fork and log to stderr
# (stderr=yes is the same as -E)
stderr=no
# optional parameter: loglevel={0|1|2|3}
#
# - sets log level (error=0, warning=1, info=2,
debug=3)
# (same as -D)
loglevel=1
# optional parameter: fifo_name=<filename>
#
# - path and file name of our fifo file (same as -i)
fifo_name=/tmp/am_fifo
# optional parameter: ser_fifo_name=<filename>
#
# - path and file name of Ser's fifo file (same as -o)
ser_fifo_name=/tmp/ser_fifo
# optional parameter: socket_name=<filename>
#
# - path and file name of our unix socket
socket_name=/tmp/am_sock
# optional parameter: ser_socket_name=<filename>
#
# - path and file name of Ser's unix socket
ser_socket_name=/tmp/ser_sock
# optional parameter: send_method=<filename>
#
# - sets which method will be used to contact Ser:
# FIFO or unix socket server.
# - values: fifo (default), unix_socket
#
# - PLEASE NOTE THAT: if you use 'fifo', make sure
that
# fifo_name and ser_fifo_name have been set. if you
use 'unix_socket',
# make sure that socket_name and ser_socket_name
have been set.
#
send_method=unix_socket
# optional parameter: plugin_path=<path>
#
# - sets the path to the plug-ins
# - may be absolute or relative to CWD
plugin_path=/usr/local/lib/sems/plug-in/
# optional parameter: smtp_server=<hostname>
#
# - sets address of smtp server
smtp_server=localhost
# optional parameter: smtp_port=<port>
#
# - sets port of smtp server
smtp_port=25
# optional parameter: rtp_low_port=<port>
#
# - sets port of rtp lowest server
#rtp_low_port=1024
# optional parameter: rtp_high_port=<port>
#
# - sets port of rtp highest server
#rtp_high_port=65535
##################################
# module specific parameters #
##################################
# sample voicemail configuration (inline)
config.voicemail=inline
# optional parameter: rec_file_extension=<ext>
#
# - sets the file extension which will be used
# to record messages.
# - example 1: wav
# - example 2: mp3
#
# WARNING: you must compile the mp3 plug-in
# in order to use 'mp3' as default
# extension. You will need the lame
# encoder for that.
# See plug-in/mp3/ReadmeMP3.txt for
# more information.
#
rec_file_extension=wav
# optional parameter: announce_path=<path>
#
# - sets the path where announce files are searched
for
# - the file to be played is determined the following
way:
# <announce_path>/<domainname>/<username>.wav
# if this file is not available
<announce_path>/<default_anounce> is used
announce_path=/usr/local/lib/sems/audio/
# parameter: default_announce=<filename>
#
# - sets the name of the default announce WAV file
default_announce=default_en.wav
# parameter: max_record_time=<seconds>
#
# - maximum record time
max_record_time=30
# parameter: accept_delay=<x>
#
# - delays accepting of the call for x seconds
# - default value is 0
accept_delay=0
# parameter: email_template_path=<filename>
#
# - email templates path
#
# See the README file in <sems-src>/plug-in/voicemail
# for more information on the syntax used.
#
email_template_path=/usr/local/etc/sems/
# end of configuration section for voicemail module
config.voicemail=end
# sample announcement configuration (inline)
config.announcement=inline
# optional parameter: announce_path=<path>
#
# - sets the path where announce files are searched
for
announce_path=/usr/local/lib/sems/audio/
# parameter: default_announce=<filename>
#
# - sets the name of the default announce WAV file
default_announce=default_en.wav
# end of configuration section for announcement module
config.announcement=end
# sample isdngw module configuration (external file)
# config.isdngw=/etc/isdngw.conf
# sample ivr module configuration (inline)
config.ivr=inline
#
#
# The IVR checks for a script with the named of the
callee
# (<local part in r-uri>.py for python, <local part in
r-uri>.pl for perl)
# in the directory <ivr_script_path><domain>, then for
# <ivr_script_path><domain><ivr_script_file>. If this
is not found,
# <ivr_script_path>/<local part in r-uri>.py if
searched,
# and if this is not found,
<ivr_script_path>/<ivr_script_file> is used.
config.ivr=inline
python_scrit_path=/root/answer_machine/plugin/ivr/
python_script_file=ivr.py
config.ivr=end
#parameter: ivr_script_path:
# path to ivr scripts.
#
ivr_script_path=/etc/ivr/
# default script file: this will be executed if
<user>.py does not exist.
#
ivr_script_file=ivr.py
# parameter : tts_caching
# y or n
# text will be read from waves already
synthesized and
# cached in cache_path
tts_caching=y
# parameter : tts_cache_path
# path to cache waves
# path must exist!
tts_cache_path=/tmp/wavs
# end of configuration section for ivr module
******************************************************
ser.cfg
*******************************************************
# ----------- global configuration parameters
debug=8 # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=yes # (cmd line: -E)
check_via=no # (cmd. line: -v)
dns=no # (cmd. line: -r)
rev_dns=no # (cmd. line: -R)
port=5060
children=4
fifo="/tmp/ser_fifo"
# ------------------ module loading
# Uncomment this if you want to use SQL database
loadmodule "/usr/local/lib/ser/modules/mysql.so"
loadmodule "/usr/local/lib/ser/modules/sl.so"
loadmodule "/usr/local/lib/ser/modules/tm.so"
loadmodule "/usr/local/lib/ser/modules/rr.so"
loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
loadmodule "/usr/local/lib/ser/modules/usrloc.so"
loadmodule "/usr/local/lib/ser/modules/registrar.so"
loadmodule "/usr/local/lib/ser/modules/vm.so"
# Uncomment this if you want digest authentication
# mysql.so must be loaded !
loadmodule "/usr/local/lib/ser/modules/auth.so"
loadmodule "/usr/local/lib/ser/modules/auth_db.so"
# ----------------- setting module-specific parameters
# -- usrloc params --
modparam("usrloc", "db_mode", 0)
# Uncomment this if you want to use SQL database
# for persistent storage and comment the previous line
#modparam("usrloc", "db_mode", 2)
# -- auth params --
# Uncomment if you are using auth module
#
modparam("auth_db", "calculate_ha1", yes)
#
# If you set "calculate_ha1" parameter to yes (which
true in this config),
# uncomment also the following parameter)
#
modparam("auth_db", "password_column", "password")
modparam("usrloc","db_url","mysql://ser:heslo@localhost:3306/ser")
# -- rr params --
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)
#voicemail
modparam("voicemail","db_url","mysql://ser:heslo@localhost:3306/ser")
modparam("voicemail","subscriber_table","subscriber")
modparam("voicemail","email_column","email_address")
# ------------------------- request routing logic
-------------------
# main routing logic
route{
# initial sanity checks -- messages with
# max_forwards==0, or excessively long
requests
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
break;
};
if ( msg:len > max_len ) {
sl_send_reply("513", "Message too
big");
break;
};
# we record-route all messages -- to make sure
that
# subsequent messages will go through our
proxy; that's
# particularly good if upstream and downstream
entities
# use different transport protocol
record_route();
# loose-route processing
if (loose_route()) {
t_relay();
break;
};
# if the request is for other domain use
UsrLoc
# (in case, it does not work, use the
following command
# with proper names and addresses in it)
if (uri==myself) {
if (method=="REGISTER") {
# Uncomment this if you want to use digest
authentication
# if
(!www_authorize("iptel.org", "subscriber")) {
#
www_challenge("iptel.org", "0");
# break;
# };
save("location");
break;
};
if ( method=="ACK" || method=="INVITE" ||
method=="BYE" || method=="CANCEL" )
{
if (!t_newtran())
{
sl_send_reply("500","could not create transaction");
break;
};
t_reply("100","Trying - just wait
a minute !");
if (method=="INVITE")
{
log("in to the invite");
if(!vm("/tmp/am_fifo","ivr"))
{
log("could not contact announcement server");
t_reply("500","error contacting sems");
};
break;
}
else if (method=="BYE" ||
method=="CANCEL")
{
if(!vm("/tmp/am_fifo","bye"))
{
t_reply("500","error
contacting sems");
};
break;
};
};
# native SIP destinations are handled
using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not
Found");
break;
};
};
# forward to current uri now; use stateful
forwarding; that
# works reliably even if we forward from TCP
to UDP
if (!t_relay()) {
sl_reply_error();
};
}
*******************************************************
your help will be highly appreciated
with regards
serdiehard
__________________________________
Do you Yahoo!?
Yahoo! Mail - now with 250MB free storage. Learn more.
http://info.mail.yahoo.com/mail_250
Hi,
Does SER's sems module support's smpp (small message
peer to peer) ? If not what protocol does sms
currently use.
Is there a configuration guide/document for using the
sms module.
Thanks.
Rao.
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
It sounds like SER is going into a loop, which of course is really bad thing. Make sure you have break; statements on your challenges. I had this problem when I first started to use SER, my problem was I was adding too many things to the config at once without testing the bits and pieces one by one. My solution was to start over with the original (working?) config and add a piece here at there. If that doesn't help then you will need to post your config, either that or just spend time doing alot of debug'ing. Good luck!
Matt
-----Original Message-----
From: 牛坤 [mailto:haoniukun@sohu.com]
Sent: Sat 12/11/2004 3:47 AM
To: serusers(a)iptel.org
Cc:
Subject: [Serusers] Some problem about too many hops
Dear ser users,
Originally, I have a ser worked correctly for me.
We also implemented the www authentigation function.
But when we change our domain name, the server can't work properly.
We encountered the following strange stuation:
We clear the mysql database, but users from the original database can login with proper username and password.
The users now can login.
But each time they make a call, ser send 200 OK directly to my client SJphone without asking the receiver.
So ACK sent by the caller can't reach the receiver.
My ser always sends 483 too many hops :(
I'm really messed about such strange things.
Hope that someone would be kind enough to give some hints.
Sincerely,
Kun
_______________________________________________
Serusers mailing list
Serusers(a)iptel.org
http://mail.iptel.org/mailman/listinfo/serusers
Hi
I'm trying to use sip-communicator with ser over IPv6. Using IPv4,
everything works fine. With IPv6, users can register at the SIP server,
but INVITE fails with the messages below. The o-uri=sip:127.0.0.1:5060
looks like the source of error to me, I'd expect an IPv6 address there.
Any ideas?
Regards,
Martin
0(46056) ERROR: udp_send: sendto(sock,0x282ff758,842,0,0x282fde90,16):
Invalid argument(22)
0(46056) CRITICAL: invalid sendtoparameters one possible reason is the
server is bound to localhost and attempts to send to the net
0(46056) msg_send: ERROR: udp_send failed
0(46056) ERROR: t_forward_nonack: sending request failed
0(46056) ERROR: udp_send: sendto(sock,0x282ffab8,846,0,0x282fdf70,16):
Invalid argument(22)
0(46056) CRITICAL: invalid sendtoparameters one possible reason is the
server is bound to localhost and attempts to send to the net
0(46056) msg_send: ERROR: udp_send failed
0(46056) ERROR: t_forward_nonack: sending request failed
0(46056) ACC: transaction answered: method=INVITE,
i-uri=sip:martin@sipgate.ctlabs.ch,
o-uri=sip:127.0.0.1:5060;transport=udp,
call_id=eff5eafae8208c8f2ad61c67dbcdf368@[2001:918:ffff:1000:48c4:4495:3
c73:dd3a], from="Sean"
<sip:sean@sipgate.ctlabs.ch:5060;transport=udp>;tag=26530674, code=477
# serctl ps
0 46045 stand-alone receiver @
2001:918:ffff:1000:210:b5ff:fe4f:25d8:5060
1 46046 timer
2 46047 fifo server
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 0
11 0
Hi everybody,
how I can ensure that the Authorization-ID instead of the CID is logged
to the Accounting Database?
E.g. if somebody enters a fake CID number an name this fake IDs are
logged to the Accounting database. Now it is not possible to identity
the real caller.
Regards
Bastian