Hi all,
The new lcr module has now two modes of operation controlled by the
direct_db parameter:
- direct_db = 1 (no DB caching)
This is the old behavior of the lcr module
- direct_db = 0 (DB caching - default one)
In this mode, the 1.7 TODO issue from the README file is addressed: no
more SQL query in load_gws() function.
In addition to this, the From URI from the lcr table is now a POSIX
regular expression, with the following extension: if the From URI is
an empty string, it will be considered as a universal match - ie .*
without invoking the regexec function.
Migrating from the old mode to the new mode requires the from_uri column
from the lcr table to be updated to use POSIX regular expressions instead
of the special _ and % characters.
Example:
old from_uri -> new from_uri
------------------------------
% ->
123% -> 123.*
regards
Ovidiu Sas
Hello.
I'm trying to use TLS with openser. I've made the steps from the
tutorial:http://openser.org/docs/tls.html.
I have "tls_verify = 1" and "tls_require_certificate = 1".
I have a phone without TLS support, but it registers in openser. I think, this
shouldn't happend.
Anybody has ideas?
Second question:
I used netstat to verify if somebody is listening on 5060 and 5061, but if I put
ip_openser:5061 in the phone, I have an icmp message with "destination
unreachable".
What's happening?
Thanks
Hello,
Im making tests and its not a LCR problem, its a problem from my GW2,
when I use it for first option, it fails too, here you have the
ngrep,
ClientA --> Proxy -->
GW2
(192.168.10.93) (192.168.10.91)
(195.219.74.166)
Regards
The problem is that the BYE request will be handled by your LCR logic.
The BYE request should be route in the loose_route block as it is an
in-dialog request. Maybe the BYE sent from the gateway is not correct.
Please post a ngrep dump (ngrep -t -W byline port 5060)
regards
klaus
Pepe wrote:
> Hello,
>
> Im configuring Openser with LCR module and Im having an extrange
> behavior, I have 2 gateways, GW1(preference1) and GW2(preference2),
>
> GW1(pref.1)
> / \
> ClientA --> OpenSer --> Client B
> \ GW2 (pref.2) /
>
>
> When I call from Client A to Client B using GW1, all works fine, its the
> same when hang up Client B or Client A, but when GW1 fail(I provoke it
> changing codec) and use failure route (GW 2) then if Client A hang up
> all works fine, but the problem is when is Client B who hang up, its
> like a new conversation, GW 2 send BYE to openser and Openser just send
> "503 Service Not avilable - No gateways" to GW2, but doesnt send nothing
> to ClientA, any idea ????
>
>
> Thx in advance
>
For example, using PHP, I have found that the code below works well:
$a1="$subscriber:$domain:$password";
$ha1=md5($a1);
$a1b="$subscriber@$domain:$domain:$password";
$ha1b=md5($a1b);
Regards,
Norm
Hi!
I have problems accounting ACK (e2e ACKs after INVITE-200 Ok). I have
the following setup:
client1 proxy1 proxy2 proxy3 client2
|---INVITE--->| | | |
| rewritehostport | | |
| t_relay | | |
| |--INVITE->| | |
| | enum_lookup | |
| | t_relay | |
| | |-INVITE-->| |
| | | lookup() |
| | | t_relay |
| | | |-----INVITE->|
| | | | |
| | | |<----200 OK--|
| | |<--200 OK-| |
| |<--200 OK-| | |
| <--200 OK---| | | |
| | | | |
| ---ACK----> | | | |
| loose_route | | |
| |----ACK-> | | |
| | loose_route | |
| | |---ACK--->| |
| | | loose_route |
| | | |---ACK------>|
| | | | |
All proxies do accounting. I do see the INVITE and BYE requests
accountend by all proxies, but the ACK is only accounted by proxy1. All
proxies are configured nearly identical:
# accounting parameters
modparam("acc", "early_media", 1)
modparam("acc", "report_ack", 1)
modparam("acc", "report_cancels", 0)
modparam("acc", "multi_leg_enabled", 0)
modparam("acc", "failed_transaction_flag", 4) # radius, syslog and DB
modparam("acc", "log_flag", 1) # syslog
modparam("acc", "db_flag", 2) # DB
modparam("acc", "db_missed_flag", 3) # DB missed calles table
modparam("acc", "swap_direction", 1)
and all the flags are set for sure:
route{
setflag(1);setflag(2);
setflag(3);setflag(4);
Does somebody had a similar problem? Are there any known issues how ACKs
are handled? Studying the debug log. it looks like proxy 1 identifies
the ACK as belonging to a transaction, whereas proxy 2 does not find the
transaction (full debug at the end of the mail):
proxy 1:
-----------
t_lookup_request: start searching: hash=6242, isACK=1
parse_headers: flags=38
DEBUG: t_lookup_request: e2e proxy ACK found
parse_headers: flags=8
DEBUG: totag for e2e ACK found: 0
DBG: trans=0x406b1940, callback type 4, id 0 entered
parse_headers: flags=258
ACC: request acknowledged: method=ACK, i-uri=sip:user201@.....
proxy 2:
-----------
t_lookup_request: start searching: hash=6242, isACK=1
DEBUG: proceeding to pre-RFC3261 transaction matching
DEBUG: t_lookup_request: no transaction found
DEBUG:tm:t_relay: forwarding ACK statelessly
DEBUG: mk_proxy: doing DNS lookup...
parse_headers: flags=1000
check_via_address(10.10.0.41, 10.10.0.41, 0)
Sending: ACK sip:user201@10.10.1.50:8737 SIP/2.0^M To: <sip:+43201@proxy1
Thus, why is there a matching transaction in proxy 1, but not in proxy 2?
Why are ACKs not accounting in every case?
Thanks
Klaus
proxy 1 (full debug):
-------------------
SIP Request:
method: <ACK>
uri: <sip:user201@10.10.1.50:8737>
version: <SIP/2.0>
parse_headers: flags=2
DEBUG: add_param: tag=2b4e3b2d
DEBUG:parse_to:end of header reached, state=29
DEBUG: get_hdr_field: <To> [52]; uri=[sip:+43201@proxy1.ienum.labs.nic.at]
DEBUG: to body [<sip:+43201@proxy1.ienum.labs.nic.at>]
Found param type 232, <branch> = <z9hG4bK-d87543-685643142-1--d87543->;
state=6
Found param type 235, <rport> = <n/a>; state=17
end of header reached, state=5
parse_headers: Via found, flags=2
parse_headers: this is the first via
After parse_msg...
preparing to run routing scripts...
DEBUG : sl_filter_ACK: to late to be a local ACK!
DEBUG: add_param: tag=f937ab7a
DEBUG:parse_to:end of header reached, state=29
xl_printf: final buffer length 186
parse_headers: flags=100
get_hdr_field: cseq <CSeq>: <2> <ACK>
DEBUG:maxfwd:is_maxfwd_present: value = 70
parse_headers: flags=200
is_preloaded: No
grep_sock_info - checking if host==us: 10==10 && [10.10.1.50] ==
[10.10.0.41]
grep_sock_info - checking if port 5060 matches port 8737
grep_sock_info - checking if host==us: 10==10 && [10.10.1.50] ==
[10.10.0.41]
grep_sock_info - checking if port 5060 matches port 8737
grep_sock_info - checking if host==us: 10==10 && [10.10.1.50] ==
[10.10.0.41]
grep_sock_info - checking if port 5061 matches port 8737
check_self: host != me
grep_sock_info - checking if host==us: 10==10 && [10.10.0.41] ==
[10.10.0.41]
grep_sock_info - checking if port 5060 matches port 5060
after_loose: Topmost route URI: 'sip:10.10.0.41;lr;ftag=f937ab7a' is me
after_loose: URI to be processed:
'sip:10.10.0.41:5062;r2=on;ftag=f937ab7a;lr=on'
after_loose: Next URI is a loose router
parse_headers: flags=ffffffffffffffff
DEBUG: get_hdr_body : content_length=0
found end of header
DEBUG: t_newtran: msg id=2 , global msg id=0 , T on entrance=0xffffffff
parse_headers: flags=ffffffffffffffff
parse_headers: flags=78
t_lookup_request: start searching: hash=6242, isACK=1
parse_headers: flags=38
DEBUG: t_lookup_request: e2e proxy ACK found
parse_headers: flags=8
DEBUG: totag for e2e ACK found: 0
DBG: trans=0x406b1940, callback type 4, id 0 entered
parse_headers: flags=258
ACC: request acknowledged: method=ACK,
i-uri=sip:user201@10.10.1.50:8737, o-uri=sip:user201@10.10.1.50:8737,
call_id=9c5e0930eb2b8e5a,
from="user101"<sip:user101@proxy1.ienum.labs.nic.at>;tag=f937ab7a, code=200
parse_headers: flags=258
grep_sock_info - checking if host==us: 10==10 && [10.10.1.50] ==
[10.10.0.41]
grep_sock_info - checking if port 5060 matches port 8737
grep_sock_info - checking if host==us: 10==10 && [10.10.1.50] ==
[10.10.0.41]
grep_sock_info - checking if port 5060 matches port 8737
grep_sock_info - checking if host==us: 10==10 && [10.10.1.50] ==
[10.10.0.41]
grep_sock_info - checking if port 5061 matches port 8737
check_self: host != me
Route ftag and From tag are same
DEBUG:tm:t_relay: forwarding ACK statelessly
DEBUG: mk_proxy: doing DNS lookup...
check_via_address(10.10.1.51, 10.10.1.51, 0)
Sending: ACK sip:user201@10.10.1.50:8737 SIP/2.0^M To: <sip:+43201@proxy1
proxy 2 (full debug):
-------------------
SIP Request:
method: <ACK>
uri: <sip:user201@10.10.1.50:8737>
version: <SIP/2.0>
parse_headers: flags=2
DEBUG: add_param: tag=2b4e3b2d
DEBUG:parse_to:end of header reached, state=29
DEBUG: get_hdr_field: <To> [52]; uri=[sip:+43201@proxy1.ienum.labs.nic.at]
DEBUG: to body [<sip:+43201@proxy1.ienum.labs.nic.at>]
Found param type 232, <branch> = <0>; state=16
end of header reached, state=5
parse_headers: Via found, flags=2
parse_headers: this is the first via
After parse_msg...
preparing to run routing scripts...
DEBUG : sl_filter_ACK: to late to be a local ACK!
DEBUG: add_param: tag=f937ab7a
DEBUG:parse_to:end of header reached, state=29
xl_printf: final buffer length 186
parse_headers: flags=100
Found param type 232, <branch> = <z9hG4bK-d87543-685643142-1--d87543->;
state=6
Found param type 235, <rport> = <6477>; state=16
end of header reached, state=5
parse_headers: Via found, flags=100
parse_headers: this is the second via
get_hdr_field: cseq <CSeq>: <2> <ACK>
DEBUG:maxfwd:is_maxfwd_present: value = 69
parse_headers: flags=200
is_preloaded: No
grep_sock_info - checking if host==us: 10==10 && [10.10.1.50] ==
[10.10.0.41]
grep_sock_info - checking if port 5062 matches port 8737
grep_sock_info - checking if host==us: 10==10 && [10.10.1.50] ==
[10.10.0.41]
grep_sock_info - checking if port 5062 matches port 8737
grep_sock_info - checking if host==us: 10==10 && [10.10.1.50] ==
[10.10.0.41]
grep_sock_info - checking if port 5063 matches port 8737
check_self: host != me
grep_sock_info - checking if host==us: 10==10 && [10.10.0.41] ==
[10.10.0.41]
grep_sock_info - checking if port 5062 matches port 5062
after_loose: Topmost route URI:
'sip:10.10.0.41:5062;r2=on;ftag=f937ab7a;lr=on' is me
grep_sock_info - checking if host==us: 10==10 && [10.10.0.41] ==
[10.10.0.41]
grep_sock_info - checking if port 5063 matches port 5063
after_loose: URI to be processed:
'sip:10.10.0.42:5063;transport=tls;r2=on;ftag=f937ab7a;lr=on'
after_loose: Next URI is a loose router
DEBUG: has_totag: totag found
parse_headers: flags=ffffffffffffffff
DEBUG: get_hdr_body : content_length=0
found end of header
DEBUG: t_newtran: msg id=1 , global msg id=0 , T on entrance=0xffffffff
parse_headers: flags=ffffffffffffffff
parse_headers: flags=78
t_lookup_request: start searching: hash=6242, isACK=1
DEBUG: proceeding to pre-RFC3261 transaction matching
DEBUG: t_lookup_request: no transaction found
DEBUG:tm:t_relay: forwarding ACK statelessly
DEBUG: mk_proxy: doing DNS lookup...
parse_headers: flags=1000
check_via_address(10.10.0.41, 10.10.0.41, 0)
Sending: ACK sip:user201@10.10.1.50:8737 SIP/2.0^M To: <sip:+43201@proxy1
Bogdan-Andrei Iancu,hello
Ask for you again. :)
I am succesful on openser for TLS connected by SIPp,but not minisip :(
thanks for your more help!
Now I step to srtp! Can I use SRTP to build peer to peer communication from openser? if outbound via openser.or do you learn more about srtp of SIP.
Best Regard!
Kenny from China Shanghai
2006-1-5
Bogdan-Andrei Iancu,hello
Thanks for your help!!!!
I try 'netstat -ual' but nothing is list; I try 'netstat -al' list is below:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 debian1:sip-tls *:* LISTEN
tcp 0 0 localhost:mysql *:* LISTEN
tcp 0 0 *:ftp *:* LISTEN
tcp 0 0 localhost:smtp *:* LISTEN
tcp6 0 0 *:ssh *:* LISTEN
We can see 'debian1' :sip-tls,but I cann't see service port 5061 ,why? or must I connect to server on 5061 port,unlees I cann't see it?
Thanks you again.
======= 2006-01-05 02:50:15 您在来信中写道:=======
>Hi Kenny,
>
>Kenny Yeh wrote:
>
>>users,hello
>>
>>
>> Happly new year!
>>
>> My problem:
>>
>> 1.I start openser with TLS support,follow the TLS help file,create a ca/demoCA/ and create cert.pem,private.pem,key.pem.openser is start well,but I cann't list the listen ports by openserctl ps,how I can be sure openser is started by TLS support?
>>
>>
>use "netstat -ual" to check for port 5061 (TLS one).
>
>> 2.My client is minisip phone that TLS support.but when I start minisip to registar,the error messenge is "exception caught when creating TLS server",I donn't know what's happend.
>>
>>
>ask the minisip guys or their lists.
>
>regards,
>bogdan
>
>> Please help me !
>>
>>
>>
>> 致
>>礼!
>>
>>
>> Kenny Yeh
>> 上海金叶通讯科技有限公司
>> TEL:8621-6421-6758 ext.311
>> kenny(a)artdio.com.tw
>> 2006-01-04
>>
>>
>>------------------------------------------------------------------------
>>
>>_______________________________________________
>>Users mailing list
>>Users(a)openser.org
>>http://openser.org/cgi-bin/mailman/listinfo/users
>>
>>
>
= = = = = = = = = = = = = = = = = = = =
致
礼!
Kenny Yeh
kenny(a)artdio.com.tw
2006-01-05
Hello Klaus!
Thanks for your reply, you have triggered some new ideas. of course i
should have thought about checking back if any packets are received by the
openser host after the line is dead but i thought if it still works with
ser, it should work with openser too(and i still have no problems with a
second line registered at ser@port5060 while the registration at
openser@5061 is lost).
ok, the result of the ngrep was that no packets appear on the openser-host
when i try to call from the (dead) line. i've made some tracing both on
the snom and the ser/openser-host as you suggested.
To my surprise, the snom seems to be the device that doesn't behave as
expected - it doesn't re-register on the openser-configuration!
I have made the attached traces in this way:
First i've set the account-details on the snom with
103456(a)sip.de.domain.cc,then rebooted the phone and started the trace on
the siprouter-host on port 5060(ser), then changed the configuration to
112233(a)siptest1.domain.cc, rebooted the phone and made the second trace on
port 5061(openser). In both cases i didn't touch the phone or make any
calls after the reboot to get a pure registration-trace.
When i use the account 112233(a)siptest1.domain.cc, the snom registers once
and doesn't try to re-register anymore.
With the account 103456(a)sip.de.domain.cc, the snom re-registers every 5
minutes, not the expected 10 minutes, but at least it does re-register.
When switching the account-details, i didn't do anything but changing the
login-details(username, password, registrar-url), the rest of the
configuration has not been touched.
The phone-firmware is 3.60w.
There doesn't seem to be a difference between the siplogs, at least i
can't see it. i'm really puzzled right now... 8-|
I've attached the siptrace from the ser/openser-host:
SER_host_siptrace.txt/OPENSER_host_siptrace.txt
the syslog from snom190:
SER_snom190_log.txt/OPENSER_snom190_log.txt
and the siptrace from snom190:
SER_snom_siptrace.txt/OPENSER_snom190_siptrace.txt
I have tried this several times now, changing the configuration and
rebooting, same results everytime. on SER it's reregistering exactly every
5 minutes, on OPENSER it isn't.
I hope all this information is not too much and you have the time to sniff
through.
thanks!
christian
p.s.:i've also thought about a error in the srv-records on my nameservers,
but they look exactly the same for all sub-domains, the only difference is
the port change from 5060 to 5061...
On Thu, 05 Jan 2006 10:58:46 +0100
Klaus Darilion <klaus.mailinglists(a)pernau.at> wrote:
> Hi Christian!
> The more interesting part would be the SIP signaling between the SNOM
and the proxy. If registration is lost, that means that:
> - SNOM stops sending REGISTER or
> - SNOM still sends REGISTER but they are not accepted by openser Please
set exires back to 10min and watch the SIP signaling:
> - using "ngrep -t -W byline port 5060" on the proxy
> - using the logging feature of the snom phone
> Please post this logs.
> regards
> klaus
> Christian Benke wrote:
> > Hello!
> >
> > I've been running my experimental(production in the near future)
environment with ser and a mysql-db for some months now but want to switch
> > to postgres and openser soon. i'm using a very simple routing as i
didn't
> > have the time to dig deeper into the ser-routing-language.
> >
> > i've already adapted my current config-file to openser and the routing
works as expected. still, there is one major problem i could not cope with
yet: Expiry.
> >
> > i'm using a snom 190 and had the "proposed expiry"
> > set to 10min with ser, without any registration-problems or
> > registration-loss.
> > with openser with the same settings on the snom i loose my
registration
> > within a few minutes after phone-reboot, when setting "proposed
expiry" to
> > 1min on the snom it works without problems endlessly - but setting
this
> > generally to 1min on all the phones that will register at openser
doesn't
> > seem to be a good idea and i guess there are other ways.
> >
> > I've tried to force it with the modparams min_expire 100, max_expire
1800
> > and default_expire 600
> > but the result is still the same, calls are possible after rebooting
the
> > phone, but after some minutes(below 10min), i loose registration. I
had
> > similar problems due to a firewall closing the connection, but that
occured when i had set a 60min expiry on the snom(with ser), the 10min
timeout works fine with the same snom 190 and ser.
> > I've searched a lot for
> > expiry-problems but only found the modparams above that could be
responsible for this.
> > Sorry if my explanations sound simple and untechnical,
> > but i'm pretty unexperienced with ser/openser yet so i try to explain
it
> > the way i understand it, simple ;-)
> >
> > i've attached my config-files, both ser and openser:
> > 21X.XXX.XXX.100 is the host running ser(port 5060) and openser(port
5061)
> > 21X.XXX.XXX.101 is asterisk1
> > 21X.XXX.XXX.102 is asterisk2(asterisk2.de.domain.cc)
> >
> > i'm registering my phones at openser with the domain
siptest1.domain.cc, the
> > second domain sip2.de.domain.cc is a test for a multidomain setup but
doesn't work yet(i can't
> > use the domain-column provided by the db since i need two different
origination domains in asterisk's sip.conf to seperate the calls - maybe
> > not the best approach...)
> >
> > p.s.:
> > a second question regarding the multidomain - i can't register with
sip2.de.domain.cc - i guess there's something wrong with my regexp
> >
> > "if (uri=~"^sip:(.+@)?((sip2\.)?(de\.)?domain\.cc)([:;\?].*)?$") {"
> >
> > someone having mercy and tell me what is wrong with my syntax(or maybe
a
> > link to a descriptive documentation - ser admin guide was not enough
for
> > me)?
> >
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > Users mailing list
> > Users(a)openser.org
> > http://openser.org/cgi-bin/mailman/listinfo/users
Isn't there a script called 'sc' somewhere that does the same thing as openserctl? I looked at the sc script and was able to determine how it generates those fields. I think they're gen_ha and something else... installed by openser.
-----Original Message-----
From: unplug [mailto:maillisting@gmail.com]
Sent: Sun 1/8/2006 7:50 PM
To: Norman Brandinger
Cc: users(a)openser.org
Subject: Re: [Users] direct manipulation of DB
There are 2 parts. One is server and one is client. How to setup the
server as openser has already a fifo interfece?
On 12/23/05, Norman Brandinger <norm(a)goes.com> wrote:
> I posted a simple FIFO Client that can be used to test sending commands
> and receiving responses from OpenSER.
>
> The link is here: http://openser.org/dokuwiki/doku.php?id=utilities
>
> Regards,
> Norm
>
> p.s. Comments or suggestions for improvements are welcome.
>
> p.s.s. I believe that the OpenSER roadmap has an API project that will
> depreciate the FIFO interface. Perhaps one of the developers can
> elaborate more on this.
>
> Klaus Darilion wrote:
>
> > unplug wrote:
> >
> >> I am using openser with mysql as db. There is a tool call openserctl
> >> to manage the data in the openser. I wonder whether I can direct
> >> manipulate the db directly without using openserctl. I have tried to
> >> insert a record in the aliases table directly using mysql client but
> >> it doesn't work. Can I conclude direct manipulate the DB is
> >> impossible?
> >
> >
> > It depends on the table! There are some tables which will be cached
> > inside openser, e.g:
> > location
> > aliases
> > domain
> > gw (lcr module)
> >
> > If you make changes to location/aliases you have to:
> > - restart openser to reload the tables or
> > - use openserctl (inserts via FIFO to openser which wirtes back to
> > the db or
> > - in case of aliases use the aliases_DB module
> >
> > for the domain and gw table, you can use the respectife FIfo commands
> > to reload the tables.
> >
> > regards
> > klaus
> >
> > _______________________________________________
> > Users mailing list
> > Users(a)openser.org
> > http://openser.org/cgi-bin/mailman/listinfo/users
> >
> >
> >
>
>
_______________________________________________
Users mailing list
Users(a)openser.org
http://openser.org/cgi-bin/mailman/listinfo/users