Happy holidays! Not sure what happened to my previous email the format is kind of messy. Sorry about that.
I am playing with SST module for session timer and have some questions that I would like someone can help me out.
1. First question is the 422 message is not sent immediately after receiving INVITE with SE header smaller than default
1800 sec. My OpenSER script is very strait forward as the example in the module document:
if (method=="INVITE") {
if (sstCheckMin("1")) {
blah blah....
exit;
}
}
Debug on OpenSER shows the result returns -1 when an INVITE contains SE and Min-SE timer at 90. It is until the INVITE
hits lookup("location") it replies a 422.
2. Right after OpenSER sends a 422 it proxies the INVITE to the called party at that same time. So the call flow looks
like:
Caller OpenSER Callee
INVITE (SE 90)=======>
<======= 422 ====
======INVITE===>
=== INVITE (SE 1800)==>
3. The 422 Session Timer Too Small message put MIN-SE and Server headers in one line which looks like:
MIN-SE: 1800Server: OpenSER...........
Has anyone tried SST module before and how did it work for you? Many thanks for you help.
Best regards,
Patrick
_________________________________________________________________
The best games are on Xbox 360. Click here for a special offer on an Xbox 360 Console.
http://www.xbox.com/en-US/hardware/wheretobuy/
Happy holidays! I am playing with SST module for session timer and have some questions that I would like someone can help me out. 1. First question is the 422 message is not sent immediately after receiving INVITE with SE header smaller than default 1800 sec. My OpenSER script is very strait forward as the example in the module document: if (method=="INVITE") { if (sstCheckMin("1")) { blah blah.... exit; }}Debug on OpenSER shows the result returns -1 when an INVITE contains SE and Min-SE timer at 90. It is until the INVITE hits lookup("location") it replies a 422. 2. Right after OpenSER sends a 422 it proxies the INVITE to the called party at that same time. So the call flow looks like: Caller OpenSER Callee INVITE (SE 90)=======> <======= 422 ==== ======INVITE===> === INVITE (SE 1800)==> 3. The 422 Session Timer Too Small message put MIN-SE and Server headers in one line which looks like: MIN-SE: 1800Server: OpenSER........... Has anyone tried SST module before and how did it work for you? Many thanks for you help. Best regards,Patrick
_________________________________________________________________
Share life as it happens with the new Windows Live.
http://www.windowslive.com/share.html?ocid=TXT_TAGHM_Wave2_sharelife_122007
Hi all,
I am struggling arround since hours about fifo.
I get all the time a syntax error. Tired several things like chmod, cr
/tmp/ser_fifo as a file or directory, created a /temp/ser_fifo.
Changed ser.cfg to
fifo="/temp/ser_fifo"
fifo_mode=0666
with / without "" does not help all the time a syntax error.
Can someone explain
- what fifo is (file or folder) - would gues it is a file (first in
first out)?
- does fifo needs to be created before?
I changed /temp/ or /tmp/ to 666 but this does not help either.
starting ser shows me
[root@ser /]# ser -f /etc/ser/ser.cfg -c
0(8574) parse error (23,1-5): syntax error
0(8574) parse error (23,1-5):
ERROR: bad config file (2 errors)
wherin line 23 is the one with fifo.
Kind regards
Patrick
# ------------- Initial global variables
debug=3
fork=yes
log_stderror=no
listen=<ip adress> # put your real IP here
port=5060
alias=sip.mycompany.com
children=4
server_signature=yes
dns=no
rev_dns=no
check_via=no
syn_branch=yes
memlog=1000
sip_warning=yes
reply_to_via=no
uid="nobody"
gid="nobody"
mhomed=0
fifo="/temp/ser_fifo"
fifo_mode=0666
fifo_db_url="mysql://ser:heslo@localhost/ser"
*************************************************************************************
The message is intended for the named addressee only and may not be disclosed to or used by anyone else, nor may it be copied in any way.
The contents of this message and its attachments are confidential and may also be subject to legal privilege. If you are not the named addressee and/or have received this message in error, please advise us by e-mailing security(a)colt.net and delete the message and any attachments without retaining any copies.
Internet communications are not secure and COLT does not accept responsibility for this message, its contents nor responsibility for any viruses.
No contracts can be created or varied on behalf of COLT Telecommunications, its subsidiaries or affiliates ("COLT") and any other party by email Communications unless expressly agreed in writing with such other party.
Please note that incoming emails will be automatically scanned to eliminate potential viruses and unsolicited promotional emails. For more information refer to www.colt.net or contact us on +44(0)20 7390 3900.
Hello Martin,
Please, keep always the list in copy as more people can be interested
in the replies.
> I am beginner in this. I have this as project to school. In which
> part of
> config file I have to write
> cpl_run_script("incoming","force_stateful") ?
You can have something like:
if (is_method("INVITE") {
# run incoming script
if ( !cpl_run_script("incoming","force_stateful") ) {
# script execution failed
sl_send_reply("500","CPL script execution failed");
exit;
};
};
Regards.
Saludos
JesusR.
>> Hi Martin,
>>
>>
>> El 20/12/2007, a las 16:28, Martin Kardi escribió:
>>
>> [...]
>>
>>> and this is easy cpl script:
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>>
>>> <cpl>
>>> <incoming>
>>> <reject status="400" reason="Busy" />
>>> </incoming>
>>> </cpl>
>>>
>>> Upload of this cpl script to DB is correct, record in table "cpl" is
>>> created
>>> for "user" but when I am calling to this "user", openser ignores
>>> this script
>>> and phone is ringing.
>>> I don't know what is problem, could somebody help me?
>>
>>
>> You need to call the cpl_run_script() function to execute the
>> uploaded
>> cpl script. Something like:
>>
>> cpl_run_script("incoming","force_stateful")
>>
>> Regards.
>>
>> Saludos
>> JesusR.
>>
>> ------------------------------------
>> Jesus Rodriguez
>> VozTelecom Sistemas, S.L.
>> jesusr(a)voztele.com
>> http://www.voztele.com
>> Tel. 902360305
>> -------------------------------------
>>
>>
>>
>>
>>
>
>
>
Saludos
JesusR.
------------------------------------
Jesus Rodriguez
VozTelecom Sistemas, S.L.
jesusr(a)voztele.com
http://www.voztele.com
Tel. 902360305
-------------------------------------
Hello folks,
I was Working in the NAT IP changed solution, my idea is to
change media proxy server (MPS) in a such way when in a
established connection and receive a RTP package from unknown
IP source (because a NAT server changed their IP), using de
field SSRC (RFC 3550 RTP) updates the binding (with the new
IP detected) between the caller and the MPS or between the
called and the MPS according to the field SSRC previously
saved.
What do you think about my solution?
Regards,
Gonzalo Sambucaro.
--
Gonzalo J. Sambucaro
Ingeniería de Software
Tel: +54-341-4230504
MSLC
gonzalo(a)mslc.com.ar
www.mslc.com.ar
Ocampo y Esmeralda - Vivero de Empresas de Base Tecnológica
Ciudad Universitaria Rosario UNR, CCT CONICET
Rosario - Santa Fé - Argentina
Hi everybody,
The third patch release of 1.2.x series is out as version 1.2.3. It
preserves full compatibility with 1.2 family regarding the configuration
file.
OpenSER 1.2.3 brings all kind of fixes (mainly from the 1.3 version). No
new features were added.
The 1.2.3 release includes:
- small fixes (compile warnings, porting across UNIX platform errors
- bug fixing
- mi_xmlrpc update to work with latest 1.0 libxmlrpc-c3 releases
- functionality fixes (Route header handling in local sequential
requests)
- small improvements - more self - sanity checks, more verbose error
codes in script (like t_relay() in TM).
Tomorrow I will start uploading the tarballs on the web sites.
Best regards,
Bogdan
Hi,
I have problem with CPL. This is my config file for openser:
debug=3 # debug level (cmd line: -dddddddddd)
fork=yes # Set to no to enter debugging mode
log_stderror=no # (cmd line: -E) Set to yes to enter debugging mode
check_via=no # (cmd. line: -v)
dns=no # (cmd. line: -r)
rev_dns=no # (cmd. line: -R)
port=5060
children=4
fifo="/tmp/openser_fifo"
#
# uncomment the following lines for TLS support
#disable_tls = 0
#listen = tls:your_IP:5061
#tls_verify = 1
#tls_require_certificate = 0
#tls_method = TLSv1
#tls_certificate =
"/build/buildd/openser-1.1.0/debian/openser/etc/openser/tls/user/user-cert.pem"
#tls_private_key =
"/build/buildd/openser-1.1.0/debian/openser/etc/openser/tls/user/user-privkey.pem"
#tls_ca_list =
"/build/buildd/openser-1.1.0/debian/openser/etc/openser/tls/user/user-calist.pem"
# ------------------ module loading ----------------------------------
# Uncomment this if you want to use SQL database
# mysql.so must be loaded !
loadmodule "/usr/lib/openser/modules/mysql.so"
loadmodule "/usr/lib/openser/modules/sl.so"
loadmodule "/usr/lib/openser/modules/tm.so"
loadmodule "/usr/lib/openser/modules/rr.so"
loadmodule "/usr/lib/openser/modules/maxfwd.so"
loadmodule "/usr/lib/openser/modules/usrloc.so"
loadmodule "/usr/lib/openser/modules/registrar.so"
loadmodule "/usr/lib/openser/modules/textops.so"
#cpl modul -- dopisali sme tu my !!!!!!
loadmodule "/usr/lib/openser/modules/cpl-c.so"
# Uncomment this if you want digest authentication
#loadmodule "/usr/lib/openser/modules/auth.so"
#loadmodule "/usr/lib/openser/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")
# -- rr params --
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)
#---CPL-C Parameter
modparam("cpl-c","db_url","mysql://openser:ser@localhost/openser")
modparam("cpl-c","cpl_table","cpl")
modparam("cpl-c","cpl_dtd_file","/etc/openser/cpl-06.dtd")
modparam("cpl-c","log_dir","/var/log/openser/cpl")
#modparam("cpl-c","proxy_recurse",2)
#modparam("cpl-c","proxy_route",0)
#modparam("cpl-c","nat_flag",6)
modparam("cpl-c","lookup_domain","location")
#cpl_run_script("incoming","force_statefull")
# ------------------------- 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");
exit;
};
if (msg:len >= 2048 ) {
sl_send_reply("513", "Message too big");
exit;
};
# 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);
};
if (!uri==myself) {
# mark routing logic in request
append_hf("P-hint: outbound\r\n");
# if you have some interdomain connections via TLS
#if(uri=~"@tls_domain1.net") {
# t_relay("tls:domain1.net");
# exit;
#} else if(uri=~"@tls_domain2.net") {
# t_relay("tls:domain2.net");
# exit;
#}
route(1);
};
# 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("openser.org", "subscriber")) {
# www_challenge("openser.org", "0");
# exit;
#};
cpl_process_register();
save("location");
exit;
};
lookup("aliases");
if (!uri==myself) {
append_hf("P-hint: outbound alias\r\n");
route(1);
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
exit;
};
append_hf("P-hint: usrloc applied\r\n");
};
route(1);
}
route[1] {
# send it out now; use stateful forwarding as it works reliably
# even for UDP2TCP
if (!t_relay()) {
sl_reply_error();
};
exit;
and this is easy cpl script:
<?xml version="1.0" encoding="UTF-8"?>
<cpl>
<incoming>
<reject status="400" reason="Busy" />
</incoming>
</cpl>
Upload of this cpl script to DB is correct, record in table "cpl" is created
for "user" but when I am calling to this "user", openser ignores this script
and phone is ringing.
I don't know what is problem, could somebody help me?
thanks
Martin
--
View this message in context: http://www.nabble.com/Ignore-CPL-script-tp14438450p14438450.html
Sent from the OpenSER Users Mailing List mailing list archive at Nabble.com.
Guys,
I would need your help in troubleshooting some pretty serious issue for me.
Scenario: relaying an INVITE from openser to a softswitch and recognizing the flags (global and branch ones) in onreply. Everything seems to work fine with relaying the requests, but when the answers are matched in onreply, the flags are gone.
Bellow is the log configuration which gives the output used by me to troubleshoot in logs:
in route:
xlog("First branch: $br, all branches: $bR, flags set: $mf , branch flags: $bf");
xlog("Relaying to: $avp(s:route), message: $mb");
xlog("OUT to Softswitch");
in onreply route:
xlog ("ENTERING ON REPLY ROUTE");
xlog("First branch: $br, all branches: $bR, flags set: $mf , branch flags: $bf");
xlog("In onreply, message: $mb");
Please see the output bellow:
Dec 20 10:07:51 ellie /usr/local/sbin/openser[15295]: First branch: <null>, all branches: <null>, flags set: 130 , branch flags: 1024
Dec 20 10:07:51 ellie /usr/local/sbin/openser[15295]: Relaying to: pstn1, message: INVITE sip:INT_NUMBER_MASKED@sip.itsyscom.com SIP/2.0^M Via: SIP/2.0/UDP 10.10.11.10:7091;rport;branch=z9hG4bK2127028508^M From: <sip:dan@sip.itsyscom.com>;tag=2128765320^M To: <sip:INT_NUMBER_MASKED@sip.itsyscom.com>^M Call-ID: 886593274(a)10.10.11.10^M CSeq: 21 INVITE^M Contact: <sip:dan@10.10.11.10:7091>^M Proxy-Authorization: Digest username="dan", realm="sip.itsyscom.com", nonce="476a40226a7cfaa9a11de5b6e7d6742d45ec6bd4", uri="sip:INT_NUMBER_MASKED@sip.itsyscom.com", response="08872e4a06f011ea7d6f947f1874a882", algorithm=MD5^M Max-Forwards: 4^M User-Agent: Linphone-1.5.1/eXosip^M Subject: Phone call^M Expires: 120^M Allow: INVITE, ACK, CANCEL, BYE, OPTIONS, REFER, SUBSCRIBE, NOTIFY, MESSAGE^M Content-Type: application/sdp^M Content-Length: 310^M ^M v=0^M o=dan 123456 654321 IN IP4 10.10.11.10^M s=A conversation^M c=IN IP4 10.10.11.10^M t=0 0^M m=audio 7078 RTP/AVP 3 0 8 111 110 101^M a=rtpmap:3 GSM/8000/1^M a=rtpmap:0 PCMU/8000/1^M a=rtp
Dec 20 10:07:51 ellie /usr/local/sbin/openser[15295]: OUT to Softswitch
Dec 20 10:07:51 ellie /usr/local/sbin/openser[15295]: ENTERING ON REPLY ROUTE
Dec 20 10:07:51 ellie /usr/local/sbin/openser[15295]: First branch: <null>, all branches: <null>, flags set: 0 , branch flags: 0
Dec 20 10:07:51 ellie /usr/local/sbin/openser[15295]: In onreply, message: SIP/2.0 100 Trying^M Via: SIP/2.0/UDP IP_MASKED;branch=z9hG4bK9221.886b3817.0;received=IP_MASKED;rport=5060^M Via: SIP/2.0/UDP 10.10.11.10:7091;received=ORIGINATOR_IP;rport=8026;branch=z9hG4bK2127028508^M Record-Route: <sip:IP_MASKED;lr=on;ftag=2128765320;nat=yes>^M From: <sip:dan@sip.itsyscom.com>;tag=2128765320^M To: <sip:INT_NUMBER_MASKED@sip.itsyscom.com>^M Call-ID: 886593274(a)10.10.11.10^M CSeq: 21 INVITE^M Server: GlobalE SoftSWITCH/1.3.0.^M Content-Length: 0^M ^M
Dec 20 10:07:53 ellie /usr/local/sbin/openser[15296]: ENTERING ON REPLY ROUTE
Dec 20 10:07:53 ellie /usr/local/sbin/openser[15296]: First branch: <null>, all branches: <null>, flags set: 0 , branch flags: 0
Dec 20 10:07:53 ellie /usr/local/sbin/openser[15296]: In onreply, message: SIP/2.0 180 Ringing^M Via: SIP/2.0/UDP IP_MASKED;branch=z9hG4bK9221.886b3817.0;received=IP_MASKED;rport=5060^M Via: SIP/2.0/UDP 10.10.11.10:7091;received=ORIGINATOR_IP;rport=8026;branch=z9hG4bK2127028508^M Record-Route: <sip:IP_MASKED;lr=on;ftag=2128765320;nat=yes>^M From: <sip:dan@sip.itsyscom.com>;tag=2128765320^M To: <sip:INT_NUMBER_MASKED@sip.itsyscom.com>;tag=975999519^M Call-ID: 886593274(a)10.10.11.10^M CSeq: 21 INVITE^M Server: GlobalE SoftSWITCH/1.3.0.^M Contact: <sip:INT_NUMBER_MASKED@IP_MASKED:5070>^M Allow: ACK, INVITE, BYE, CANCEL, OPTIONS^M Content-Type: application/sdp^M Content-Length: 187^M ^M v=0^M o=yate 1198145273 1198145273 IN IP4 208.50.127.243^M s=SIP Call^M c=IN IP4 208.50.127.243^M t=0 0^M m=audio 23166 RTP/AVP 8 101^M a=rtpmap:8 PCMA/8000^M a=rtpmap:101 telephone-event/8000^M
Can any of you help me troubleshooting this? I get the feeling that there is no transaction matched by openser for the replies.
Version I am using (compiled from sources, with some params modified in configure.h):
openser -V
version: openser 1.2.2-tls (i386/linux)
flags: STATS: Off, USE_IPV6, USE_TCP, USE_TLS, DISABLE_NAGLE, USE_MCAST, SHM_MEM, SHM_MMAP, PKG_MALLOC, F_MALLOC, FAST_LOCK-ADAPTIVE_WAIT
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
svnrevision: 2:3368M
@(#) $Id: main.c 3173 2007-11-20 08:26:35Z bogdan_iancu $
Thxs in advance for any help.
DanB
Hi,
When I send calls to PSTN the From filed is my user@SER IP is correct but in
To Filed I want Number@ProviderIP but SER send Number@SERIP ?
Thanks,
Arun