Hello gurus,
I'm attempting to do some rather crazy parallel forking and have found a
few issues I'm hoping to solve. I thought I'd solicit some advice from
the experts.
Some background:
Each device registers with its own unique information. No two devices
share the same credentials. Since a random user might want their number
sent to multiple phones, and maybe even a cell phone, I've done the
following:
if(method=="INVITE" && !isflagset(5))
{
if(avp_db_load("$ru/username","fork"))
{
t_on_branch("1");
avp_pushto("$ru/username","$avp(s:fork)/g");
};
};
Then the branch route looks like:
branch_route[1]
{
setflag(5);
route(3);
}
The idea here is the fork avp contains one or more possible destinations,
but we don't store a complete URI here. The branch route sends us back
through the normal routing logic to lookup local users on the system, and
maybe route something to an external PSTN gateway, or another proxy.
The problem:
I haven't found a way to gracefully handle the event when one of the
possible destinations is a device that hasn't registered. Say we allow
the user to have a soft client, so we add the username to the list of fork
avps. If the device isn't registered, I have 2 options:
1) Use a default route
2) Detect that I should know who this is, and error out
Either way, an error is produced, but I don't see a good way of detecting
if we should push the 404, or generate a 404 back to the client. The
polite method would be:
Are there other branches still going?
If yes, just exit this branch
If no, relay, or generate an error back to the client
So my question is how to do this last part. Am I crazy for even thinking
about doing this in OpenSER? BTW, I'm using v1.1.1
--Chris
Hi!
I have problems understanding the uri module.
As far as I understand I can map aliases to subscribers - e.g. my main
identity is klaus@mydomain, but I also want to use nickname@cooldomain
in From: header with a single SIP account (single subscriber)
Thus I can use uri_db module and uri table to check if klaus@mydomain is
allowed to use nickname@cooldomain.
Thus, what do I enter in the uri table? The definition is:
id | username | domain | uri_user | last_modified
----+----------+--------+----------+---------------
In which column do I have to put which values?
thanks
klaus
--
Klaus Darilion
nic.at
Hi,
I've set up a small architecture in which an ASterisk proxy is connected to
a SER proxy in two different domains.
I have sip phones connected to both of them. when an asterisk subscriber
"travels" to SER domain it tries to register to SER. I've configured SER to
accept foreign
subscribers and to REGISTER them to their initial domain by the command
"t_replicate". Till now everything works good, the UA is registered and
Asterisk is aware
of its new location, it displays in peers list the UA and its new IP address
and port.
The problem is when i'm trying to call the foreign UA from an Asterisk
subscriber, it doesn't work. i have a TRYING response but no call
establishement.
how can i overcome this problem please?
--
BASRAOUI Karim
www.basraouik.afrikart.net
I can't get any logging out of openSER for some reason. I've tried using the log_facility setup via /etc/syslog.conf and i still cannot get any output. What am I missing?
Here's the top of my openser.cfg file:
debug=9 # 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
sip_warning=yes
#log_facility=LOG_LOCAL7
I've tried un-commenting that last line to correspond to my /etc/syslog.conf:
# don't log messages with LOG_LOCAL7 in /var/log/syslog anymore
*.*;auth,authpriv.none,local0.none -/var/log/syslog
#
# log messages with LOG_LOCAL7 in /var/log/ser.log
local7.* -/var/log/ser.log
What am i doing wrong? Any ideas?
Thanks,
Ben
I have enabled mysql authentication of REGISTER messagess, but i need that only INVITE mesagges from devices properly registered in SER can go through, and that INVITE mesagges from devices NOT registered are dropped.
How can i do this? do you have a sample script?
Thanx a lot!
Hello,
I'm sorry if this question was asked before, I googled and did not found
references to it.
I'm interested in reducing load of mediaproxy (using mediaproxy 1.8.0,
openser-devel).
Is it possible to connect callers not behind NAT directly and how configuration
should look like?
I want to direct traffic by this scheme:
Caller Proxy Called
NAT <- mediaproxy -> NAT
NAT <- mediaproxy -> not NAT
not NAT <- mediaproxy -> NAT
not NAT <- direct connect -> not NAT
I tried configuration something like this:
route {
if (client_nat_test(3)) {
use_media_proxy();
t_on_reply("1");
}
}
onreply_route[1] {
if (client_nat_test("2")) {
use_media_proxy();
}
}
And it works fine then caller is behind NAT and called is not (NAT <-> not NAT)
- traffic was directed via mediaproxy.
But, then caller is not behind NAT and called is (not NAT <-> NAT), this
configuration does not work.
Any suggestions? Thanks.
I have been given the task of getting a Polycom IP 601 running SIP
v2.0.1.0291 to register with our SER proxy and be able to interact with
our Asterisk server for voice mail. The Asterisk server currently sends
unsolicited NOTIFY messages to turn on/off the message waiting light.
Most of the configuration is working however I cannot get the phone to
register with SER if I set the voIpProt.server.1.address to the SRV name
of our SIP domain. The only way the phone will register is if I set this
parameter to the IP address of our SER server which is something we do
not want to do.
Is there any way to make this phone perform a SRV lookup for the
server address?
Thanks,Steve
Is there a way to change the value of the timer from inside the script
Ibrahim Hamouda
Sphinx Information Technologies Inc.
IT Canada International
Tel: 403-668-6880
Fax: 403-229-0407
N.A.: 1-877-500-7664
Mobile: 403-714-3336
Hello,
OpenSER was chosen to be the SIP proxy of Cisco Service Node for Linksys
One. That shows the very good level of stability and flexibility as well
as wide set of capabilities in OpenSER:
http://www.openser.org/index.php?option=com_content&task=view&id=90&Itemid=9
I would like to express my thanks to all supporting the project by any
means (coding, testing, community support ...). Release 1.2.0 is
knocking at the door -- it is a huge step forward since 1.1.0 adding lot
of new stuff, plus a handful of improvements to existing features, just
to remember some of news in 1.2.0:
- SIMPLE Presence support
- SNMP
- PERL API
- JAVA SIP Servlet Application Server (http://wesip.eu)
- script variables
- DNS failover
- IP blacklists
- XMPP IM gateway
- XMLRPC
- SIP session timers
- secure federation peering
- retransmission timer accuracy
- automatic error handling
So, here I wanted to get: help with testing 1.2.0 is very appreciated
these days :-)
For those looking forward to meet other OpenSER folks, the next two
major events are:
- Fosdem, Brussels, Belgium, this weekend
- Von Spring, San Jose, USA, in March
Cheers,
Daniel
Hello,
I am doing interop testing with Level3, and need to be able to rewrite
the To: field in requests to match their requirements. I can fake the
rewrites inside route[], but although the packets sent out look like
they use the new "To:", the header is never parsed again, so the
internal structures of SER still hold the former (incorrect) value.
When a request hit failure_route[] (for example when a CANCEL is sent
when an INVITE times out) the original, incorrect To: header is then
sent (and there's no way to modify the content of the CANCEL from
within failure_route[]).
Is there a standard way to alter the internally-stored value for To:
(and From:, since I'm asking)?
If not, could someone point me to the right place in the code to start
adding this kind of feature?
Thanks,
Stéphane Alnet
--
http://carrierclass.net/http://www.linkedin.com/in/stephalnet