Hi:
I use the latest code from SER cvs. the mysql db and ser are located
on two computer. I registered 3 sip UA on the registrar which alse is
a proxy. all the ua will expire after 1 hour. But after a while, i don't
know how long it is. I found the location table has lost the ua record.
my three sip ua is still online.
I wonder whether the registrar and usrloc have other condition I
don't know. What happens to them??
Thanks for your advice and help!
Best Regards
Sun Zongjun
Hello,
I've installed the latest version of SER on SUSE linux 9.0. Setup MYSQL
as well to test sutehntication/challenge. When SER receives Register
request, I'm seeing these msgs on console:
"Received SIP_msg. No mem for the SIP_msg".
It would be great if someone could help me with this.
Thanks & Regards
Lakshmi
I am using Asterisk for IVR in conjunction with SER. My service provider
prefers that I send a 183 progress message before sending a 200 OK, in
response to their INVITE. I am using the "progressinband" option in
sip.conf along with the Ringing() in extensions.conf for this purpose.
When I set progressinband=no, Asterisk (i.e Ringing() command) sends a
100, followed by 180, followed by 200OK in response to an INVITE.
However, when I set progressinband=yes, Asterisk sends a 100, followed
by 180, followed by 183 (with SDP) followed by 200OK.
I want asterisk to send only the 183 without the 180. i.e 100, followed
by 183, followed by 200 OK, in response to an INVITE. How do I do that?
regards,
SCM
I am facing some problems with sending fax calls. I am using G.711
codec. However, my service provider (Level-3) does not support T.38 fax
relay.
According to Level-3 they "think" the problem lies in the "Media
Description" field of the SDP message I am sending them. The problem is
related to the "Media Format" sub-field (value 101) that I am sending,
which according to them should be removed.
The SDP "Media Description" field I am sending, looks as follows:
"m=audio 20744 RTP/AVP 0 101"
which is decoded by Ethereal as follows:
Media Type: audio
Media Port: 20744
Media Proto: RTP/AVP
Media Format: ITU-T G.711 PCMU
Media Format: 101
My call is initiated by Asterisk which is sent to Level-3 via SER
Asterisk ---> SER ---> Level-3
The SIP call flow looks fine for the call. The sending fax sends the
page and then gives an error. The receiving side gives me an error and
prints a blank page.
My questions are as follows:
1) Could the "Media Format" 101 be the problem? If so, how do I
remove the 101? This change is probably in Asterisk, as it initiates the
call, and not SER, or probably both.
2) If not, should I be looking elsewhere in SER/Asterisk to solve
this problem?
regards,
SCM
Hi All.
I've got a question about the new LCR module that Juha commited to CVS.
We're located in the US so this question may pertain only to ser
installations that follow the North American Numbering Plan.
For us to _really_ perform LCR decisions we need to look at the NPA
and NXX (ie, the first 6 digits of a 10-digit phone number) of the
origination and termination numbers. This this we would decide where
to route the call.
The reason is that it matters here we get DIDs from (sometimes they're
provided by 3rd party PSTN gateway operators) and where our
softswitch(s) are physically located.
So at a high level the matrix of routing decisions would look
something like this:
Orig NPANXX Term NPANXX PSTN Gateway
--------------------- ----------------------- -----------------------
407566 321251 10.10.0.40
814332 202442 67.93.11.31
So can the LCR module accomodate something like this?
Regards,
Paul
Hello,
Juha Heinanen schrieb:
>Martin Koenig writes:
>
> > is it possible to do FROM-independent lcr with this module?
>
>sure, just place % in the from field of lcr table.
>
>-- juha
>
>
Erm yes, you are right. Of course. Thanks for the hint!
Another question, wouldn't it make sense to allow the lcr engine to
somehow rewrite the RURI for a specific call destination, i.e. add a
prefix or suffix to the RURI? Or maybe even different header fields for
each destination? This would make sense for destinations that require
further routing information than just the telephone number. I.e.
gateways to the pstn with several pstn trunks to different carriers, or
proxies that allow peering to several other networks. This way,
intelligence could be kept in a central place, and the border entities
would only need to look a a specific prefix or suffix.
Regards,
Martin
Hello:
I have a Cisco 7960 running v7.3 SIP image. The phone registers to SER
0.8.14 stable. Everything works fine except call transfer. Has anyone
experienced problems with call transfer? Has anyone done anything
specific in their ser config to handle call transfer?
Thanks,Steve
--
ISC Network Engineering
The University of Pennsylvania
3401 Walnut Street, Suite 221A
Philadelphia, PA 19104
voice: 215-573-8396
215-746-8001
fax: 215-898-9348
sip:blairs@upenn.edu
Hi All.
I'm using ser-0.9.
What do I have to do to get the avpops avp_print() function to spit
out something?
Right now I'm just calling it after avp_write()
Regards,
Paul
Thanks Marian's help and answer. I can make a call from domainA to
domainB via PDT module.
But I got another error message from nathelper or rtpproxy.
It is "ERROR: extract_mediaip: no `c=' in SDP" from /var/log/messages.
I also find this message at source code of nathelper. So I think it
should happen from this module.
It seems voice channel can't pass throught it.
I make a call from UA_A ( under NAT ) from domainA and using PDT to
redirect to UA_B via domainB. UA_B has ring and it can answer. I can
hear the UA_A's sound from UA_B. The sound of UA_B is failed to UA_A.
UA_A(NAT) ==> domainA(PDT) ==> domainB(nathelper+rptproxy) ==> UA_B(NAT)
SOUND_A ==========================================> UA_B
UA_A <===== XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX === SOUND_B
Do I put the prefix2domain() in a wrong place?? Or Is it a bug ofi
nathelper & rtpproxy?
And my ser.cfg as below:
#
# $Id: ser.cfg,v 1.25 2004/11/30 16:28:24 andrei Exp $
#
# simple quick-start config script
#
# ----------- global configuration parameters ------------------------
debug=8 # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=no # (cmd line: -E)
/* Uncomment these lines to enter debugging mode
fork=no
log_stderror=yes
*/
listen=xxx.xxx.xxx.xxx
alias=ser.xxx.net
alias=ser
alias=xxx.xxx.xxx.xxx
check_via=no # (cmd. line: -v)
dns=no # (cmd. line: -r)
rev_dns=no # (cmd. line: -R)
port=5060
children=4
fifo_mode=0666
fifo="/tmp/ser_fifo"
fifo_db_url="mysql://ser:heslo@localhost/ser"
# ------------------ 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/textops.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"
# !! Nathelper
loadmodule "/usr/local/lib/ser/modules/nathelper.so"
loadmodule "/usr/local/lib/ser/modules/exec.so"
loadmodule "/usr/local/lib/ser/modules/avpops.so"
loadmodule "/usr/local/lib/ser/modules/domain.so"
loadmodule "/usr/local/lib/ser/modules/group.so"
loadmodule "/usr/local/lib/ser/modules/uri.so"
loadmodule "/usr/local/lib/ser/modules/uri_db.so"
loadmodule "/usr/local/lib/ser/modules/permissions.so"
loadmodule "/usr/local/lib/ser/modules/speeddial.so"
loadmodule "/usr/local/lib/ser/modules/acc.so"
loadmodule "/usr/local/lib/ser/modules/pdt.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)
modparam("usrloc", "db_mode", 1)
# -- 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")
# -- rr params --
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)
# -- nathelper params --
modparam("registrar", "nat_flag", 6)
modparam("nathelper", "natping_interval", 30) # Ping interval 30 s
modparam("nathelper", "ping_nated_only", 1) # Ping only clients behind NAT
# -- db_url params --
modparam("acc|auth_db|domain|group|permissions|speeddial|uri_db|usrloc|pdt",
"db_url", "mysql://ser:heslo@localhost/ser")
# -- use_domain params --
modparam("auth_db|group|registrar|speeddial|uri_db|usrloc", "use_domain", 0)
# -- permissions params --
modparam("permissions", "db_mode", 1)
modparam("permissions", "trusted_table", "trusted")
# -- accounting params --
modparam("acc", "db_flag", 1)
modparam("acc", "db_missed_flag", 1)
modparam("acc", "log_fmt", "cdfimorstup")
modparam("acc", "log_level", 1)
modparam("acc", "failed_transactions", 1)
modparam("acc", "report_cancels", 1)
modparam("acc", "report_ack", 0)
# -- domain params --
modparam("domain", "db_mode", 1)
# -- avp params --
modparam("avpops", "avp_url", "mysql://ser:heslo@localhost/ser")
modparam("avpops", "avp_table", "usr_preferences")
#modparam("avpops", "use_domain", "1")
modparam("avpops", "uuid_column", "uuid")
modparam("avpops", "username_column", "username")
modparam("avpops", "domain_column", "domain")
modparam("avpops", "attribute_column", "attribute")
modparam("avpops", "value_column", "value")
modparam("avpops", "type_column", "type")
modparam("avpops", "avp_aliases",
"voicemail=i:500;calltype=i:700;fwd_no_answer_type=i:701;fwd_busy_type=i:702")
# To use more than one tables example
#modparam("avpops", "db_scheme",
"scheme1:table=subscriber;uuid_column=uuid;value_column=first_name")
# -- tm params --
modparam("tm", "fr_timer", 15)
modparam("tm", "fr_inv_timer", 22)
modparam("tm", "wt_timer", 5)
modparam("tm", "fr_inv_timer_avp", "inv_timeout")
# -- pft params --
modparam("pdt", "db_table", "prefix_domain")
modparam("pdt", "prefix", "")
#modparam("pdt", "start_range", 2000)
#modparam("pdt", "terminator", 0)
modparam("pdt", "hsize_2pow", 2)
modparam("pdt", "sync_time", 300)
modparam("pdt", "clean_time", 600)
# ------------------------- 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;
};
if (method=="INVITE" || method=="BYE") {
setflag(1);
};
# !! Nathelper
# Special handling for NATed clients; first, NAT test is
# executed: it looks for via!=received and RFC1918 addresses
# in Contact (may fail if line-folding is used); also,
# the received test should, if completed, should check all
# vias for rpesence of received
if (nat_uac_test("3")) {
# Allow RR-ed requests, as these may indicate that
# a NAT-enabled proxy takes care of it; unless it is
# a REGISTER
if (method == "REGISTER" || ! search("^Record-Route:")) {
log("SER: Someone trying to register from private IP, rewriting\n");
# This will work only for user agents that support symmetric
# communication. We tested quite many of them and majority is
# smart enough to be symmetric. In some phones it takes a configuration
# option. With Cisco 7960, it is called NAT_Enable=Yes, with kphone it is
# called "symmetric media" and "symmetric signalling".
fix_nated_contact(); # Rewrite contact with source IP of signalling
if (method == "INVITE") {
fix_nated_sdp("1"); # Add direction=active to SDP
};
force_rport(); # Add rport parameter to topmost Via
setflag(6); # Mark as NATed
};
};
# 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
if (!method=="REGISTER") record_route();
# subsequent messages withing a dialog should take the
# path determined by record-routing
if (loose_route()) {
# mark routing logic in request
append_hf("P-hint: rr-enforced\r\n");
route(1);
break;
};
prefix2domain();
if (!uri==myself) {
# mark routing logic in request
append_hf("P-hint: outbound\r\n");
route(1);
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("ser.xxx.net", "subscriber")) {
www_challenge("ser.xxx.net", "0");
break;
};
save("location");
break;
};
-
lookup("aliases");
if (!uri==myself) {
append_hf("P-hint: outbound alias\r\n");
route(1);
break;
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
break;
};
};
append_hf("P-hint: usrloc applied\r\n");
route(1);
}
route[1]
{
# !! Nathelper
if (uri=~"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)" &&
!search("^Route:")){
sl_send_reply("479", "We don't forward to private IP addresses");
break;
};
# if client or server know to be behind a NAT, enable relay
if (isflagset(6)) {
force_rtp_proxy();
};
# NAT processing of replies; apply to all transactions (for example,
# re-INVITEs from public to private UA are hard to identify as
# NATed at the moment of request processing); look at replies
t_on_reply("1");
# send it out now; use stateful forwarding as it works reliably
# even for UDP2TCP
if (!t_relay()) {
sl_reply_error();
};
}
On Thu, 17 Feb 2005 12:49:10 +0100, Marian Dumitru
<marian.dumitru(a)voice-sistem.ro> wrote:
> Hi Charles,
>
> You have to use interdomain prefixes. Set on domainA a prefix for
> recognizing dialed numbers in domainB.
> The logic is like:
> PrefixToB+numberInB@domainA -> numberinB@domainB
>
> you can do this directly from script or by using PDT module.
>
> Best regards,
> Marian
Capture the SIP packets from/to the gateway and take a look at the SDP.
I Don't know if Cisco can handle this scenario (sending RTP to itself)
proper.
regards,
klaus
Steve Blair wrote:
>
> Thanks I guess but the problem is that if a call comes in from the PSTN
> to an IP phone via a Cisco 2620 gateway and is then transferred back
> through
> the same gateway to a Centrex extension the call connects but no media
> is exchanged.
>
>
>
> Klaus Darilion wrote:
>
>> Hi Steve!
>>
>> You don'T have to do anything special for call transfer. Call
>> transfer is end2end feature - implementied by the SIP clients. The
>> REFER message will be forwarded by the SIP proxy as any other message.
>>
>> regards,
>> klaus
>>
>>
>>
>> Steve Blair wrote:
>>
>>>
>>> Hello:
>>>
>>> I have a Cisco 7960 running v7.3 SIP image. The phone registers to SER
>>> 0.8.14 stable. Everything works fine except call transfer. Has anyone
>>> experienced problems with call transfer? Has anyone done anything
>>> specific in their ser config to handle call transfer?
>>>
>>> Thanks,Steve
>>>
>