I am working on a project for a call center about programming an open source
predictive dialer, and so far my research shows no sign of a competitor to
Asterisk.
I hope someone can guide me here, because I don't know yet whether OpenSER
can be programmed to make calls automatically and if callees answers the
calls hand the calls to agents ? .. allow agents to make transfers to other
agents ... and other call center stuff.
Thanks
--
"He who asks a question may be a fool for a few minutes. He who does not ask
may be a fool forever"
Hello all.
Please, I'd like to know if there is a way to handle aliases for multiple domain ser server.
I have 4 ser servers, each one serves on a different domain, all of them connected to one database. I need some users to connect to one server and other users to another server . They use aliases, but they can't call each other when they are on registered on different servers.
When I create the alias I have to put the especific domain. How can I use aliases without restricting the user to one server? or how can I call between them?
Thanks, Rosa.
_________________________________________________________________
Stop squinting -- view your photos on your TV. Learn more.
http://www.microsoft.com/windows/digitallife/default.mspx?deepLink=photos
Hello all,
I'm required to send a particular FROM for a specific provider, for
now, I'm doing it with:
uac_replace_from("8888888","sip:8888888@1.2.3.4<sip%3A8888888(a)1.2.3.4>
");
I'm wondering, is there another way to set this? Imagine each provider
requires a different FROM...
thanks to all
d
Hi,
Can I get the bflag value in a script loaded with the perl module ?
It seams to me that the 'isbflagset' function isn't implemented.
Do you know another manner to obtain this value ?
Best Regards,
--
Julien Mangeard
Hello,
I'm testing with OpenSER 1.3.x revision 4393 with RTPProxy.
I'm trying to make a call from a Nokia E51 to a SIPp instance started with:
sipp -sn uas -p 6060 -mp 4000
The INVITE goes thru OpenSER to SIPp and then, SIPp replies with this:
SIPp to OpenSER:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 210.126.5.158;branch=z9hG4bK9c1e.f06224f3.0, SIP/2.0/UDP
192.168.0.4:5060;received=123.224.149.169
;branch=z9hG4bK5j85u8aa6jpebhelr55b8bj;rport=64351
From: <sip:1000@210.126.5.158 <sip%3A1000(a)210.126.5.158>
>;tag=r5hbkuj8mlhc6o184cms
To: <sip:22222222@210.126.5.158 <sip%3A22222222(a)210.126.5.158>
;user=phone>;tag=28909SIPpTag013
Call-ID: nLPxHi_hoIf-POcJ7OKojntw2wgQle
CSeq: 7342 INVITE
Contact: <sip:192.168.88.16:6060;transport=UDP>
Content-Type: application/sdp
Content-Length: 135
v=0
o=user1 53655765 2353687637 IN IP4 192.168.88.16
s=-
c=IN IP4 192.168.88.16
t=0 0
m=audio 4000 RTP/AVP 0
a=rtpmap:0 PCMU/8000
But when OpenSER relays this to E51, I can see it is adding
"a=nortpproxy:yes" immediatelly after the the last characters in the SDP
instead of prepending a CRLF.
OpenSER to Caller
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.4:5060;received=123.224.149.169
;branch=z9hG4bK5j85u8aa6jpebhelr55b8bj;rport=64351
From: <sip:1000@210.126.5.158 <sip%3A1000(a)210.126.5.158>
>;tag=r5hbkuj8mlhc6o184cms
To: <sip:22222222@210.126.5.158 <sip%3A22222222(a)210.126.5.158>
;user=phone>;tag=28909SIPpTag013
Call-ID: nLPxHi_hoIf-POcJ7OKojntw2wgQle
CSeq: 7342 INVITE
Contact: <sip:210.126.5.158:6060;transport=UDP;nat=yes>
Content-Type: application/sdp
Content-Length: 154
v=0
o=user1 53655765 2353687637 IN IP4 192.168.88.16
s=-
c=IN IP4 210.126.5.158
t=0 0
m=audio 36740 RTP/AVP 0
a=rtpmap:0 PCMU/8000a=nortpproxy:yes
Because of this, E51 ignores the message and doesn't send ACK.
I believe this is a bug in OpenSER.
Thanks,
Takeshi
hi,
I've installed openser 1.3.0 ( by following instructions from
http://www.openser.org/dokuwiki/do [...] -from-svn)
<http://www.openser.org/dokuwiki/doku.php/install:openser-from-svn%29>
on my computer (fedora core 6,result of the command uname -a: Linux
park 2.6.20-1.2952.fc6 #1 SMP Wed May 16 17:59:13 EDT 2007 i686 i686
i386 GNU/Linux), and when I launch OpenSER via /etc/ini.d/openser start,
I've this:
[eliass@park ~]$ /etc/init.d/openser start
Starting openser: openser /var/run/openser/openser.pidListening on
udp: 127.0.0.1 [127.0.0.1]:5060
udp: 192.168.10.110 [192.168.10.110]:5060
tcp: 127.0.0.1 [127.0.0.1]:5060
tcp: 192.168.10.110 [192.168.10.110]:5060
Aliases:
tcp: localhost:5060
udp: localhost:5060
.
[eliass@park ~]$
OK, but when I check Openser status via /etc/ini.d/openser, I've:
Status of openser: openser is not running.
So, I don't undrstand why.
Can you help me?
Thanks
hi,
I've installed openser 1.3.0 ( by following instructions from
http://www.openser.org/dokuwiki/do [...] -from-svn)
<http://www.openser.org/dokuwiki/doku.php/install:openser-from-svn%29>
on my computer (fedora core 6,result of the command uname -a: Linux
park 2.6.20-1.2952.fc6 #1 SMP Wed May 16 17:59:13 EDT 2007 i686 i686
i386 GNU/Linux), and when I launch OpenSER via /etc/ini.d/openser start,
I've this:
[eliass@park ~]$ /etc/init.d/openser start
Starting openser: openser /var/run/openser/openser.pidListening on
udp: 127.0.0.1 [127.0.0.1]:5060
udp: 192.168.10.110 [192.168.10.110]:5060
tcp: 127.0.0.1 [127.0.0.1]:5060
tcp: 192.168.10.110 [192.168.10.110]:5060
Aliases:
tcp: localhost:5060
udp: localhost:5060
.
[eliass@park ~]$
OK, but when I check Openser status via /etc/ini.d/openser, I've:
Status of openser: openser is not running.
So, I don't undrstand why.
Can you help me?
Thanks
Hello everybody,
I am having a problem while REGISTERing to openser. I have
understood that in my case even though REGISTER method is sent always
uri != myself, which is why register is not honored can anyone point
me the reason behind it.
Anybody please give me some advices?
Thank you very much!!!
Alex
Here is snippet of openser.cfg where I am logging inside (!uri==myself)
++++++++++++++++++++++++++++++++++++++++++++++++
if (!uri==myself)
/* replace with following line if multi-domain support is used */
##if (!is_uri_host_local())
{
xlog("L_INFO", "request method URI not matched: [$rm],
from URI: [$fu], To URI: [$tu]");
append_hf("P-hint: outbound\r\n");
route(1);
}
++++++++++++++++++++++++++++++++++++++++++++++++
Here is my complete openser.cfg
# $Id: openser.cfg 4083 2008-04-24 19:26:11Z miconda $
debug=3
log_stderror=no
log_facility=LOG_LOCAL0
fork=yes
children=4
port=5060
####### Modules Section ########
#set module path
mpath="/usr/local/lib64/openser/modules/"
/* uncomment next line for MySQL DB support */
loadmodule "mysql.so"
loadmodule "sl.so"
loadmodule "tm.so"
loadmodule "rr.so"
loadmodule "maxfwd.so"
loadmodule "usrloc.so"
loadmodule "registrar.so"
loadmodule "textops.so"
loadmodule "mi_fifo.so"
loadmodule "uri_db.so"
loadmodule "uri.so"
loadmodule "xlog.so"
loadmodule "acc.so"
/* uncomment next lines for MySQL based authentication support
NOTE: a DB (like mysql) module must be also loaded */
loadmodule "auth.so"
loadmodule "auth_db.so"
/* uncomment next line for aliases support
NOTE: a DB (like mysql) module must be also loaded */
loadmodule "alias_db.so"
/* uncomment next line for multi-domain support
NOTE: a DB (like mysql) module must be also loaded
NOTE: be sure and enable multi-domain support in all used modules
(see "multi-module params" section ) */
#loadmodule "domain.so"
/* uncomment the next two lines for presence server support
NOTE: a DB (like mysql) module must be also loaded */
#loadmodule "presence.so"
#loadmodule "presence_xml.so"
# ----------------- setting module-specific parameters ---------------
# ----- mi_fifo params -----
modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo")
# ----- rr params -----
# add value to ;lr param to cope with most of the UAs
modparam("rr", "enable_full_lr", 1)
# do not append from tag to the RR (no need for this script)
modparam("rr", "append_fromtag", 0)
# ----- rr params -----
modparam("registrar", "method_filtering", 1)
/* uncomment the next line to disable parallel forking via location */
# modparam("registrar", "append_branches", 0)
/* uncomment the next line not to allow more than 10 contacts per AOR */
#modparam("registrar", "max_contacts", 10)
# ----- uri_db params -----
/* by default we disable the DB support in the module as we do not need it
in this configuration */
modparam("uri_db", "use_uri_table", 0)
modparam("uri_db", "db_url", "")
# ----- acc params -----
/* what sepcial events should be accounted ? */
modparam("acc", "early_media", 1)
modparam("acc", "report_ack", 1)
modparam("acc", "report_cancels", 1)
/* by default ww do not adjust the direct of the sequential requests.
if you enable this parameter, be sure the enable "append_fromtag"
in "rr" module */
modparam("acc", "detect_direction", 0)
/* account triggers (flags) */
modparam("acc", "failed_transaction_flag", 3)
modparam("acc", "log_flag", 1)
modparam("acc", "log_missed_flag", 2)
/* uncomment the following lines to enable DB accounting also */
modparam("acc", "db_flag", 1)
modparam("acc", "db_missed_flag", 2)
# ----- usrloc params -----
#modparam("usrloc", "db_mode", 0)
/* uncomment the following lines if you want to enable DB persistency
for location entries */
modparam("usrloc", "db_mode", 2)
modparam("usrloc", "db_url",
"mysql://openser:openserrw@localhost/openser")
# ----- auth_db params -----
/* uncomment the following lines if you want to enable the DB based
authentication */
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "password_column", "password")
modparam("auth_db", "db_url",
"mysql://openser:openserrw@localhost/openser")
modparam("auth_db", "load_credentials", "")
####### Routing Logic ########
# main request routing logic
route{
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
exit;
}
if (has_totag()) {
# sequential request withing a dialog should
# take the path determined by record-routing
if (loose_route()) {
if (is_method("BYE")) {
setflag(1); # do accouting ...
setflag(3); # ... even if the transaction fails
}
route(1);
} else {
/* uncomment the following lines if you want to
enable presence */
##if (is_method("SUBSCRIBE") && $rd ==
"your.server.ip.address") {
## # in-dialog subscribe requests
## route(2);
## exit;
##}
if ( is_method("ACK") ) {
if ( t_check_trans() ) {
# non loose-route, but stateful
ACK; must be an ACK after a 487 or e.g. 404 from upstream server
t_relay();
exit;
} else {
# ACK without matching
transaction ... ignore and discard.\n");
exit;
}
}
sl_send_reply("404","Not here");
}
exit;
}
#initial requests
# CANCEL processing
if (is_method("CANCEL"))
{
if (t_check_trans())
t_relay();
exit;
}
t_check_trans();
# record routing
if (!is_method("REGISTER|MESSAGE"))
record_route();
# account only INVITEs
if (is_method("INVITE")) {
setflag(1); # do accouting
}
### Added to hit this Asterisk system itself (nxxtcom2)
if (!uri==myself)
/* replace with following line if multi-domain support is used */
##if (!is_uri_host_local())
{
xlog("L_INFO", "request method URI not matched: [$rm],
from URI: [$fu], To URI: [$tu]");
append_hf("P-hint: outbound\r\n");
route(1);
}
xlog("L_INFO", "request method: [$rm], from URI: [$fu], To URI: [$tu]");
# requests for my domain
/* uncomment this if you want to enable presence server
and comment the next 'if' block
NOTE: uncomment also the definition of route[2] from below */
##if( is_method("PUBLISH|SUBSCRIBE"))
## route(2);
if (is_method("PUBLISH"))
{
sl_send_reply("503", "Service Unavailable");
exit;
}
if (is_method("REGISTER"))
{
xlog("L_INFO", "In Register method: [$rm], from URI:
[$fu], To URI: [$tu]");
# authenticate the REGISTER requests (uncomment to enable auth)
if (!www_authorize("nxxtcom1.kanobe.net", "subscriber"))
{
xlog("L_INFO", "In authorize section: [$rm],
from URI: [$fu], To URI: [$tu]");
www_challenge("nxxtcom1.kanobe.net", "0");
exit;
}
##
##if (!check_to())
##{
## sl_send_reply("403","Forbidden auth ID");
## exit;
##}
if (!save("location"))
sl_reply_error();
exit;
}
if ($rU==NULL) {
# request with no Username in RURI
sl_send_reply("484","Address Incomplete");
exit;
}
# apply DB based aliases (uncomment to enable)
##alias_db_lookup("dbaliases");
if (!lookup("location")) {
switch ($retcode) {
case -1:
case -3:
t_newtran();
t_reply("404", "Not Found");
exit;
case -2:
sl_send_reply("405", "Method Not Allowed");
exit;
}
}
# when routing via usrloc, log the missed calls also
setflag(2);
route(1);
}
route[1] {
# for INVITEs enable some additional helper routes
## if (is_method("INVITE")) {
## t_on_branch("2");
## t_on_reply("2");
## t_on_failure("1");
## }
if (!t_relay()) {
sl_reply_error();
};
exit;
}
branch_route[2] {
xlog("new branch at $ru\n");
}
onreply_route[2] {
xlog("incoming reply\n");
}
failure_route[1] {
if (t_was_cancelled()) {
exit;
}
}
Hi all,
i dont now if it the right place tp post the request here or not. but
anyway, i have my openser server running and i decided to add a connectivity
to the PSTN. the Lab i am working in they have alcatel omnipcx enterprise
IPBX.
did anyone knows how to connect opneser to the alcatel omnipcx enterprise
IPBX through SIP trunk?
i section 5.4 this pdf file
http://www.dipotel.co.yu/force_download.php?file_id=3hzg7x8jpvcr
they said it is possible to build a SIP trunking. did anyone knows how and
from where i should start?
i will appreciate any help to this issue.
regards,
Ahmed ALALI