Thanks for your reply.
This means that I need to setup another SIP server (Asterisk) to help me to
handle the 'call pickup', right?
Thanks.
RoaYu
-----Original Message-----
From: SIP [mailto:sip@arcdiv.com]
Sent: Friday, February 22, 2008 8:39 PM
To: roayu
Cc: serusers(a)lists.iptel.org
Subject: Re: [Serusers] FW: Intercept SIP call
This is called 'call pickup' in the PBX world, and most PBX software can
handle it (see Asterisk).
N.
roayu wrote:
>
> Resend.
>
>
>
> ------------------------------------------------------------------------
>
> *From:* roayu
> *Sent:* Wednesday, February 20, 2008 11:21 AM
> *To:* serusers(a)lists.iptel.org
> *Cc:* roayu
> *Subject:* Intercept SIP call
>
>
>
> Hi there!
>
>
>
> Recently, I had setup a SIP environment with few sip phones, SIPphone
> A, SIPphone B, and SIPphone C. For instance, when SIPphone A called to
> SIPphone B, but B is not able to answer the call. Can SIPphone C
> answer A's call?
>
>
>
> I would like to know whether is SER able to have the intercept sip
> calls function? If yes, what module or configuration that I need to set?
>
>
>
> Thanks in advance!
>
>
>
>
>
> Best regards,
>
> RoaYu
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Serusers mailing list
> Serusers(a)lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
>
hi
i have large voip udp packets over internet problems and i need the
transfer medium to be tcp. below is what i had in mind.
SIPp_client A (TCP out) -> (listen TCP) SER 1 (UDP out) --> Soft-switch
(UDP in /out only) --> (to) ring Client B (listen UDP)
Client A and Client B registers to above Soft-switch. All the above are
individual servers (Linux CentOS based)
i need help in a (conversion) ser.cfg. Can anyone post a sample ?? below
is my ser.cfg (tried using t_relay_to_udp(), rewritehost(),
rewritehostport(), forward functions BUT none seems to work the way i
want it to)
SER 1 == 192.168.10.203
Softswitch == 192.168.10.251
Client A == 192.168.10.221 or .236 (SIPp client-registered to
soft-switch successfully)
Client B == 192.168.x.x (registered to soft-switch successfully)
Thanks
shengmai
shengmai_goh(a)innomedia.com.sg
#
# $Id: ser.cfg,v 1.25.2.1 2005/02/18 14:30:44 andrei Exp $
#
# simple quick-start config script
#
# ----------- global configuration parameters ------------------------
#debug=3 # 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
*/
check_via=no # (cmd. line: -v)
dns=no # (cmd. line: -r)
rev_dns=no # (cmd. line: -R)
port=5060
children=4
fifo="/tmp/ser_fifo"
# ------------------ 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"
loadmodule "/usr/local/lib/ser/modules/print.so"
loadmodule "/usr/local/lib/ser/modules/uri.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"
# ----------------- 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)
# ------------------------- 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 >= 2048 ) {
sl_send_reply("513", "Message too big");
break;
};
# 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();
#if (method == "INVITE") {
# if (uri =~ "sip:*@*"){
# log(1, "Forwarding to Vsp12K\n");
# rewritehostport("192.168.10.204:5060");
# t_relay();
# break;
# }
#};
if (uri =~ "sip:*@*"){
#log(1, "Forwarding to Vsp12K\n");
#rewritehostport("192.168.10.204:5060");
if (uri =~ "sip:*@192.168.10.203"){
rewritehostport("192.168.10.251:5060");
}
t_relay_to_udp("192.168.10.251", "5060");
#t_relay();
break;
};
# 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;
};
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("iptel.org", "subscriber")) {
# www_challenge("iptel.org", "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]
{
# -----------------------------------------------------------------
# Pass on stuff going to PSTN to Asterisk
# -----------------------------------------------------------------
#if (uri=~"^sip:*@.*") {
# rewritehostport ("*192.168.10.204:5060");
# if (!t_relay()) {
# # sl_send_reply ("403", "prout");
# sl_reply_error();
# };
# break;
#};
rewritehostport("192.168.10.204:5060");
# send it out now; use stateful forwarding as it works reliably
# even for UDP2TCP
if (!t_relay()) {
sl_reply_error();
};
break;
}
Folks,
I developed a new feature in the Media Proxy project of AG-Proyect.
With this new feature the Media Proxy Server is now able to manage the
problem of the NAT IP change in an established call. It is
currently in production and working without any problem.
Somebody wants to test it?
I would like to know what to do to make this feature available to
everybody. Does anybody know?
Regards,
------------------------------
Details:
-------
Supose that there is an established rtp connection between two
endpoints and the media proxy is in the middle doing the relay of
the rtp streams, let´s say
(MP = mediaproxy)
EP A <--------->[NAT with IP1]<-----------> MP <--------------------> EP B
EP A sends rtp to MP_IP:MP_PORT passing through the NAT box.
EP B sends rtp to MP_IP:MP_PORT without passing through a NAT box.
The MP know that the caller = NAT_IP1:NAT_PORT1, and the called =
EP_B_IP:EP_B_PORT
Now, supose that the NAT box change their PUBLIC IP from IP1 to IP2, so
this escenary
EP A <------->[NAT with IP1]<---------> MP <-------------> EP B
will change to this
EP A <------->[NAT with IP2]<---------> MP <--------------> EP B
so the MP should detect that change of IPs and continue relaying the rtp
streams but now to IP2:PORT2 instead of IP1:PORT1.
Well, that was the situation y have experienced.
To fix this, I developed this solution, changing rtphandler.py file:
1) When the first rtp packet of a source arrives, save the SSRC field in
the MP.
- Save the SSRC of the caller.
- Save the SSRC of the called.
2) If arrives a rtp packet with unknown source IP but with the same SSRC
field of some of the two streams, updates the binding (with the new IP
detected) between the caller and the MP or between the called and the MP
according to the field SSRC previously saved.
Note: SSRC (RFC 3550 RTP), (from the rfc: "The SSRC identifier carried in
the RTP header and in various fields of RTCP packets is a random 32-bit
number that is required to be globally unique within an RTP session ")
--------------------------------
--
Gonzalo J. Sambucaro
Ingeniería de Software
Tel: +54-341-4230504
MSLC
gonzalo.sambucaro(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,
Followup on prior message:
When doing make .... modules I found a similar
error that did not involve a system include.
The offending line in avpops_db.h is:
int db_store_avp( db_key_t *keys, db_val_t *vals, int n, char *table);
Both examples below and this example are related to forward declarations
with pointers to structures.
Regards, ..mike..
make[1]: Entering directory `/usr/local/src/ser-2.0.x-CVS/modules/avpops'
gcc -fPIC -DPIC -g -O9
-funroll-loops -Wcast-align
-minline-all-stringops -falign-loops
-ftree-vectorize
-mtune=athlon64 -Wall -DNAME='"ser"'
-DVERSION='"2.1.0-dev17-tcp"' -DARCH='"i386"'
-DOS='linux_' -DOS_QUOTED='"linux"'
-DCOMPILER='"gcc 4.1.1"' -D__CPU_i386
-D__OS_linux -DSER_VER=2001000
-DCFG_DIR='"/usr/local/etc/ser/"'
-DMODS_DIR='"/usr/local/lib/ser/modules/"'
-DPKG_MALLOC -DSHM_MEM -DSHM_MMAP -DDNS_IP_HACK
-DUSE_IPV6 -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE
-DHAVE_RESOLV_RES -DUSE_DNS_CACHE
-DUSE_DNS_FAILOVER -DUSE_DST_BLACKLIST
-DUSE_NAPTR -DUSE_TLS -DTLS_HOOKS -DFAST_LOCK
-DADAPTIVE_WAIT
-DADAPTIVE_WAIT_LOOPS=1024 -DCC_GCC_LIKE_ASM
-DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN
-DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL
-DHAVE_MSGHDR_MSG_CONTROL -DHAVE_ALLOCA_H
-DHAVE_TIMEGM -DHAVE_SCHED_SETSCHEDULER
-DHAVE_EPOLL -DHAVE_SIGIO_RT
-DSIGINFO64_WORKARROUND -DUSE_FUTEX -DHAVE_SELECT -c avpops.c -o avpops.o
In file included from avpops_impl.h:41,
from avpops_parse.h:38,
from avpops.c:50:
avpops_db.h:66: error: expected â)â before â*â token
make[1]: *** [avpops.o] Error 1
make[1]: Leaving directory `/usr/local/src/ser-2.0.x-CVS/modules/avpops'
make: *** [modules] Error 1
========================================================================
Hi,
I am doing a ser build from CVS check-out on a RH based linux with gcc 4.1.1.
The build commands are this.
make clean
make proper
make group_include="standard standard-dep stable mysql"
When I get to any core or module section code
which included futexlock.h header, I get the following:
gcc -g -O9 -funroll-loops -Wcast-align
-minline-all-stringops -falign-loops
-ftree-vectorize -mtune=athlon64
-Wall -DNAME='"ser"'
-DVERSION='"2.1.0-dev17-tcp"' -DARCH='"i386"'
-DOS='linux_' -DOS_QUOTED='"linux"'
-DCOMPILER='"gcc 4.1.1"' -D__CPU_i386
-D__OS_linux -DSER_VER=2001000
-DCFG_DIR='"/usr/local/etc/ser/"'
-DMODS_DIR='"/usr/local/lib/ser/modules/"'
-DPKG_MALLOC -DSHM_MEM -DSHM_MMAP -DDNS_IP_HACK
-DUSE_IPV6 -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE
-DHAVE_RESOLV_RES -DUSE_DNS_CACHE
-DUSE_DNS_FAILOVER -DUSE_DST_BLACKLIST
-DUSE_NAPTR -DUSE_TLS -DTLS_HOOKS -DFAST_LOCK
-DADAPTIVE_WAIT
-DADAPTIVE_WAIT_LOOPS=1024 -DCC_GCC_LIKE_ASM
-DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN
-DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL
-DHAVE_MSGHDR_MSG_CONTROL -DHAVE_ALLOCA_H
-DHAVE_TIMEGM -DHAVE_SCHED_SETSCHEDULER
-DHAVE_EPOLL -DHAVE_SIGIO_RT
-DSIGINFO64_WORKARROUND -DUSE_FUTEX -DHAVE_SELECT -c core_cmd.c -o core_cmd.o
In file included from mem/../futexlock.h:48,
from mem/../lock_ops.h:85,
from mem/shm_mem.h:76,
from core_cmd.c:32:
/usr/include/linux/futex.h:96: error: expected â)â before â*â token
/usr/include/linux/futex.h:98: error: expected â)â before â*â token
make: *** [core_cmd.o] Error 1
=========================================================================
The offending lines came from the system
header <futex.h>. The offending lines are:
long do_futex(u32 *uaddr, int op, u32 val,
unsigned long timeout, u32 *uaddr2, u32 val2, u32 val3);
extern int handle_futex_death(u32 *uaddr, struct task_struct *curr, int pi);
By pointing to an alternate version of <futex.h>
where these lines are commented out
I can compile all the way thru with non-fatal warnings.
My questions are:
1) can anyone tell me what are the equivalent lines in the DEB version where
this code/compile was most recently developed?
2) has anyone got a fix for this error?
..mike..
_______________________________________________
Serusers mailing list
Serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers
Hello Users
I installed the Sems both version 0.10.0.rc2 and 0.10.0-bundle,
Am using OpenSER 1.3 version.
When i integrated openser 1.3 and sems both version, is not working
i Got this error in openser server
*error: mi_datagram: identify_command the request's first line is
invalid: no newline after the second
error:mi_datagram : mi_diagram_server: command not availble
*openser is communicating but sems server send this message to openser
server.
*debug: cachemsg (AmCtrlInterface.cpp 186) recv-ed: <500 command not
available >
Error: send_msg (AmServer.cpp:152) AmServer::send_request: ser ansered:
500 c0mmand not available
Error: onInvite (EarlyAnnouncement.cpp 93) 500 cound not reply
*
But with openser.1.2.2 is working with these versions of SEMS...
please help me ....
--
Thanks &Regards
Ravi Prakash Sunkara
VoIP Development Tech Lead
Hi All
I want to encrypt the communication between the softphone and OpenSER.
I have compiled 1.3 with TLS support and I am using the default certs
that come with the source code and are located in
/usr/local/etc/openser/tls/user
My TLS config looks as follows
disable_tls = no
listen = tls:xx.xx.xx.xx:443
tls_verify_server = 1
tls_verify_client = 1
tls_require_client_certificate = 0
tls_method = TLSv1
tls_certificate = "/usr/local/etc/openser/tls/user/user-cert.pem"
tls_private_key = "/usr/local/etc/openser/tls/user/user-privkey.pem"
tls_ca_list = "/usr/local/etc/openser/tls/user/user-calist.pem"
I am getting the following error on my softphone
ERROR:core:tls_accept: some error in SSL:
ERROR:core:tls_print_errstack: error:14094418:SSL
routines:SSL3_READ_BYTES:tlsv1 alert unknown ca
Any Suggestions ?
Thx
Hello everybody.
Is it possible to modify the From URI username for a particular request?
I am trying this, but, openser fails to start:
$var(tmp) = "4" + $fU;
$fU = $var(tmp);
Thanks in advance for your help.
Best regards.
Sergio Gutierrez
Hi,
I am doing a ser build from CVS check-out on a RH based linux with gcc 4.1.1.
The build commands are this.
make clean
make proper
make group_include="standard standard-dep stable mysql"
When I get to any core or module section code
which included futexlock.h header, I get the following:
gcc -g -O9 -funroll-loops -Wcast-align
-minline-all-stringops -falign-loops
-ftree-vectorize -mtune=athlon64
-Wall -DNAME='"ser"'
-DVERSION='"2.1.0-dev17-tcp"' -DARCH='"i386"'
-DOS='linux_' -DOS_QUOTED='"linux"'
-DCOMPILER='"gcc 4.1.1"' -D__CPU_i386
-D__OS_linux -DSER_VER=2001000
-DCFG_DIR='"/usr/local/etc/ser/"'
-DMODS_DIR='"/usr/local/lib/ser/modules/"'
-DPKG_MALLOC -DSHM_MEM -DSHM_MMAP -DDNS_IP_HACK
-DUSE_IPV6 -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE
-DHAVE_RESOLV_RES -DUSE_DNS_CACHE
-DUSE_DNS_FAILOVER -DUSE_DST_BLACKLIST
-DUSE_NAPTR -DUSE_TLS -DTLS_HOOKS -DFAST_LOCK
-DADAPTIVE_WAIT
-DADAPTIVE_WAIT_LOOPS=1024 -DCC_GCC_LIKE_ASM
-DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN
-DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL
-DHAVE_MSGHDR_MSG_CONTROL -DHAVE_ALLOCA_H
-DHAVE_TIMEGM -DHAVE_SCHED_SETSCHEDULER
-DHAVE_EPOLL -DHAVE_SIGIO_RT
-DSIGINFO64_WORKARROUND -DUSE_FUTEX -DHAVE_SELECT -c core_cmd.c -o core_cmd.o
In file included from mem/../futexlock.h:48,
from mem/../lock_ops.h:85,
from mem/shm_mem.h:76,
from core_cmd.c:32:
/usr/include/linux/futex.h:96: error: expected â)â before â*â token
/usr/include/linux/futex.h:98: error: expected â)â before â*â token
make: *** [core_cmd.o] Error 1
=========================================================================
The offending lines came from the system
header <futex.h>. The offending lines are:
long do_futex(u32 *uaddr, int op, u32 val,
unsigned long timeout, u32 *uaddr2, u32 val2, u32 val3);
extern int handle_futex_death(u32 *uaddr, struct task_struct *curr, int pi);
By pointing to an alternate version of <futex.h>
where these lines are commented out
I can compile all the way thru with non-fatal warnings.
My questions are:
1) can anyone tell me what are the equivalent lines in the DEB version where
this code/compile was most recently developed?
2) has anyone got a fix for this error?
..mike..