Hi,
I am newcomer in SIP and Kamailio Wold an have a question.
I have two IP Telefones and would like to realize with Kamailio an IP Communication. The Problem:
a. The UA 1 calls UA 2
b. UA 2 start recording the video form UA 1, before a SIP call is established (early media)
How can I do that? Can anybody help me or can give me any Info about example application.
Thank you very much.
Bahanfar
_________________________________________________________________
http://redirect.gimas.net/?n=M0905xIE8_MSN4
Internet Explorer 8 jetzt für MSN - kostenlos!
>You mean you've added the users to the subscriber table?
Yes i added User1 and User2 in the subscriber's mysql table.
Xlite conf :
usr : User1
psw : xxxx
Domain : 10.10.10.2
usr: User2
psw : xxxx
Domain : 192.168.0.2
In mysql table i added : User2 with xxx psw and 192.168.0.2 domain. (don't
really know if it is the righ way...!?)
It seems the registering request are fine, below are the wireshark captures
for user1 and user2 :
http://www.nabble.com/file/p23555745/User1_Register.jpghttp://www.nabble.com/file/p23555745/User2_Register.jpg
Etheir i try to call from User2 to User1 or User1 to User2 i got nothing.
On XliteUser2 i tried for the call :
User1(a)10.10.10.2
>You've enabled auth in the cfg given below, so this is the expected
behaviour.
>Your UA should reply with the proper credentials, then the call should be
>established. Take a look to the log file of the kamailio, and do a sip
trace
>(e.g. with ngrep -W byline port 5060) to get more information about the
>eventual problem.
Below ngrep -W byline port 5060 capture, User1 call User2
INVITE sip:boby@10.10.10.2 SIP/2.0.
Via: SIP/2.0/UDP
10.10.10.3:41394;branch=z9hG4bK-d87543-18094a3f30346a6c-1--d87543-;rport.
Max-Forwards: 70.
Contact: <sip:1000@10.10.10.3:41394>.
To: "boby"<sip:boby@10.10.10.2>.
From: "toto"<sip:1000@10.10.10.2>;tag=89767174.
Call-ID: MzE3NDc5YzMwNDI2YjdjMWE4Zjg2Y2RlYTQ3YTZiMzY..
CSeq: 2 INVITE.
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE,
INFO.
Content-Type: application/sdp.
Proxy-Authorization: Digest
username="1000",realm="10.10.10.2",nonce="4a0d276f000000535a5a47a45038d6cbfab9392dd8d576cf",uri="sip:boby@10.10.10.2",response="87afe587be968300f615006a989c9c7f",algorithm=MD5.
User-Agent: X-Lite release 1006e stamp 34025.
Content-Length: 534.
.
v=0.
o=- 2 2 IN IP4 10.10.10.3.
s=CounterPath X-Lite 3.0.
c=IN IP4 10.10.10.3.
t=0 0.
m=audio 20562 RTP/AVP 107 119 0 98 8 3 101.
a=alt:1 1 : wbrcVqeO gWxBJcbu 10.10.10.3 20562.
a=fmtp:101 0-15.
a=rtpmap:107 BV32/16000.
a=rtpmap:119 BV32-FEC/16000.
a=rtpmap:98 iLBC/8000.
a=rtpmap:101 telephone-event/8000.
a=sendrecv.
m=video 31202 RTP/AVP 115 34.
a=alt:1 1 : Ph3NZX4n 9x8Vo2nU 10.10.10.3 31202.
a=fmtp:115 QCIF=1 I=1 J=1 K=1 MAXBR=1960.
a=fmtp:34 QCIF=1 MAXBR=1960.
a=rtpmap:115 H263-1998/90000.
a=rtpmap:34 H263/90000.
a=sendrecv.
#
U 10.10.10.2:5060 -> 10.10.10.3:41394
SIP/2.0 404 Not Found.
Via: SIP/2.0/UDP
10.10.10.3:41394;branch=z9hG4bK-d87543-18094a3f30346a6c-1--d87543-;rport=41394.
To: "boby"<sip:boby@10.10.10.2>;tag=0c6c077910af0e0627388e55f0ad5733-3061.
From: "toto"<sip:1000@10.10.10.2>;tag=89767174.
Call-ID: MzE3NDc5YzMwNDI2YjdjMWE4Zjg2Y2RlYTQ3YTZiMzY..
CSeq: 2 INVITE.
Server: Kamailio (1.5.0-notls (x86_64/linux)).
Content-Length: 0.
.
#
U 10.10.10.3:41394 -> 10.10.10.2:5060
ACK sip:boby@10.10.10.2 SIP/2.0.
Via: SIP/2.0/UDP
10.10.10.3:41394;branch=z9hG4bK-d87543-18094a3f30346a6c-1--d87543-;rport.
To: "boby"<sip:boby@10.10.10.2>;tag=0c6c077910af0e0627388e55f0ad5733-3061.
From: "toto"<sip:1000@10.10.10.2>;tag=89767174.
Call-ID: MzE3NDc5YzMwNDI2YjdjMWE4Zjg2Y2RlYTQ3YTZiMzY..
CSeq: 2 ACK.
Content-Length: 0.
.
Cheers,
Karhu
--
View this message in context: http://www.nabble.com/kamailio-multi-domain-tp23539467p23555745.html
Sent from the OpenSER Users Mailing List mailing list archive at Nabble.com.
Hi,
I am getting the following error when kamailio wants to connect to mysql within a simple perl program. "mysql" module is already loaded in the config file. Is there any modparam for mysql that has to be set?
ERROR:core:XS_OpenSER__Message_log: perl error: Can't locate object method "connect" via package "DBI" at /etc/openser/test.pl line 17.
simple perl program:
#!/usr/bin/perl
use OpenSER;
use OpenSER::Constants;
sub run
{
???
}
1
Thanks,
A. R.
_________________________________________________________________
Insert movie times and more without leaving Hotmail®.
http://windowslive.com/Tutorial/Hotmail/QuickAdd?ocid=TXT_TAGLM_WL_HM_Tutor…
Hello to all
Im trying to use Kamailio with xmpp module in Component Mode.
So, I have Jabberd2 installed and running in the same machine, and this
is my config:
loadmodule "xmpp.so"
modparam("xmpp", "domain_separator", "*")
modparam("xmpp", "gateway_domain", "jabber.servebeer.com")
modparam("xmpp", "xmpp_domain", "jabber.servebeer.com")
modparam("xmpp", "xmpp_host", "my_server_IP")
modparam("xmpp", "xmpp_port", 5347)
if (method == "MESSAGE") {
log("*** xmpp-handled MESSAGE message.\n");
if (xmpp_send_message()) {
t_reply("200", "Accepted");
} else {
t_reply("404", "Not found");
}
return;
}
but I'm receiving this errors:
kamailio[8218]: ERROR:xmpp:cmd_send_message: invalid content-type 0x300ff
What could be the problem?
Thanks
regards
Joao Pereira
--
StarTel - A Rede Livre
Joao Gomes Pereira
www.startel.pt
+351 304500650
sip: gomespereira(a)startel.pt
Hello,
First of all i would like to say i am a newbee in Kamailio :).
Here is my network configuration :
User 1 User2
10.10.10.3 10.10.10.2 192.168.0.2 192.168.0.10
-----------------*KAMAILIO*-----------------
User1 and User2 are registered in mysql.
When i installed Kamailio, i edited kmctlrc to have SIP_DOMAIN = 10.10.10.2.
I am using XLite Siphone for both users. When User 1 is registering to
Kamailio there is no problem, but when User2 try to do the same i get 407
Proxy Authentication Required..
What i would like to do is User1 call User2 trough kamailio. Obviously i
activated nathelper module and started rtpproxy.
Do i need to configure multi-domain module ?
Here is my .conf file :
#############################################
####### Global Parameters #########
debug=9
log_stderror=yes
log_facility=LOG_LOCAL0
fork=yes
children=4
/* uncomment the following lines to enable debugging */
#debug=6
#fork=no
#log_stderror=yes
/* uncomment the next line to disable TCP (default on) */
#disable_tcp=yes
/* uncomment the next line to enable the auto temporary blacklisting of
not available destinations (default disabled) */
#disable_dns_blacklist=no
/* uncomment the next line to enable IPv6 lookup after IPv4 dns
lookup failures (default disabled) */
#dns_try_ipv6=yes
/* uncomment the next line to disable the auto discovery of local aliases
based on revers DNS on IPs (default on) */
#auto_aliases=no
/* uncomment the following lines to enable TLS support (default off) */
#disable_tls = no
#listen = tls:your_IP:5061
#tls_verify_server = 1
#tls_verify_client = 1
#tls_require_client_certificate = 0
#tls_method = TLSv1
#tls_certificate = "/usr/local/etc/kamailio/tls/user/user-cert.pem"
#tls_private_key = "/usr/local/etc/kamailio/tls/user/user-privkey.pem"
#tls_ca_list = "/usr/local/etc/kamailio/tls/user/user-calist.pem"
#port=5060
/* uncomment and configure the following line if you want Kamailio to
bind on a specific interface/port/proto (default bind on all available)
*/
listen=udp:192.168.0.2
listen=udp:10.10.10.2
####### Modules Section ########
#set module path
mpath="/usr/local/lib64/kamailio/modules/"
/* uncomment next line for MySQL DB support */
loadmodule "db_mysql.so"
loadmodule "mi_fifo.so"
loadmodule "sl.so"
loadmodule "tm.so"
loadmodule "rr.so"
loadmodule "pv.so"
loadmodule "maxfwd.so"
loadmodule "usrloc.so"
loadmodule "registrar.so"
loadmodule "textops.so"
loadmodule "uri_db.so"
loadmodule "siputils.so"
loadmodule "xlog.so"
loadmodule "acc.so"
/* uncomment next lines for MySQL based authentication support
NOTE: a DB (like db_mysql) module must be also loaded */
loadmodule "auth.so"
loadmodule "auth_db.so"
/* uncomment next line for aliases support
NOTE: a DB (like db_mysql) module must be also loaded */
#loadmodule "alias_db.so"
/* uncomment next line for multi-domain support
NOTE: a DB (like db_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 db_mysql) module must be also loaded */
loadmodule "presence.so"
loadmodule "presence_xml.so"
loadmodule "nathelper.so"
# ----------------- setting module-specific parameters ---------------
# ----- mi_fifo params -----
modparam("mi_fifo", "fifo_name", "/tmp/kamailio_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)
modparam("acc", "log_extra",
"src_user=$fU;src_domain=$fd;dst_ouser=$tU;dst_user=$rU;dst_domain=$rd")
/* uncomment the following lines to enable DB accounting also */
#c#modparam("acc", "db_flag", 1)
#c#modparam("acc", "db_missed_flag", 2)
#c#modparam("domain", "db_url",
#c# "mysql://openser:openserrw@localhost/openser")
#c#modparam("acc", "db_extra",
#c# "src_user=$fU;src_domain=$fd;dst_ouser=$tU;dst_user=$rU;dst_domain=$rd")
# ----- usrloc params -----
/* 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", "")
# ----- alias_db params -----
/* uncomment the following lines if you want to enable the DB based
aliases */
#modparam("alias_db", "db_url",
# "mysql://openser:openserrw@localhost/openser")
# ----- domain params -----
/* uncomment the following lines to enable multi-domain detection
support */
modparam("domain", "db_url",
"mysql://openser:openserrw@localhost/openser")
modparam("domain", "db_mode", 1) # Use caching
# ----- multi-module params -----
/* uncomment the following line if you want to enable multi-domain support
in the modules (dafault off) */
modparam("alias_db|auth_db|usrloc|uri_db", "use_domain", 1)
# ----- presence params -----
/* uncomment the following lines if you want to enable presence */
modparam("presence|presence_xml", "db_url",
"mysql://openser:openserrw@localhost/openser")
modparam("presence_xml", "force_active", 1)
modparam("presence", "server_address", "sip:10.10.10.2:5060")
# -- nathelper
modparam("nathelper", "rtpproxy_sock", "udp:127.0.0.1:7890")
modparam("nathelper", "natping_interval", 30)
modparam("nathelper", "ping_nated_only", 1)
modparam("nathelper", "sipping_bflag", 7)
modparam("nathelper", "sipping_from", "sip:pinger@kamailio.org")
modparam("registrar|nathelper", "received_avp", "$avp(i:80)")
modparam("usrloc", "nat_bflag", 6)
####### 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 accounting ...
setflag(3); # ... even if the transaction fails
}
route(1);
} else {
if (is_method("SUBSCRIBE") && uri == myself) {
# 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();
# authentication
route(3);
# record routing
if (!is_method("REGISTER|MESSAGE"))
record_route();
# account only INVITEs
if (is_method("INVITE")) {
setflag(1); # do accounting
}
if (!uri==myself)
/* replace with following line if multi-domain support is used */
##if (!is_uri_host_local())
{
append_hf("P-hint: outbound\r\n");
# if you have some interdomain connections via TLS
##if($rd=="tls_domain1.net") {
## t_relay("tls:domain1.net");
## exit;
##} else if($rd=="tls_domain2.net") {
## t_relay("tls:domain2.net");
## exit;
##}
route(1);
}
# requests for my domain
if( is_method("PUBLISH|SUBSCRIBE"))
route(2);
if (is_method("REGISTER"))
{
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] {
if (check_route_param("nat=yes")) {
setbflag(6);
}
if (isflagset(5) || isbflagset(6)) {
route(5);
}
/* example how to enable some additional event routes */
if (is_method("INVITE")) {
#t_on_branch("1");
t_on_reply("1");
t_on_failure("1");
}
if (!t_relay()) {
sl_reply_error();
}
exit;
}
# Presence route
/* uncomment the whole following route for enabling presence server */
route[2]
{
if (!t_newtran())
{
sl_reply_error();
exit;
};
if(is_method("PUBLISH"))
{
handle_publish();
t_release();
}
else
if( is_method("SUBSCRIBE"))
{
handle_subscribe();
t_release();
}
exit;
# if presence enabled, this part will not be executed
if (is_method("PUBLISH") || $rU==null)
{
sl_send_reply("404", "Not here");
exit;
}
return;
}
# Authentication route
/* uncomment the whole following route for enabling authentication */
route[3] {
if (is_method("REGISTER"))
{
# authenticate the REGISTER requests (uncomment to enable auth)
if (!www_authorize("", "subscriber"))
{
www_challenge("", "0");
exit;
}
if ($au!=$tU)
{
sl_send_reply("403","Forbidden auth ID");
exit;
}
} else {
# authenticate if from local subscriber (uncomment to enable auth)
if (from_uri==myself)
{
if (!proxy_authorize("", "subscriber")) {
proxy_challenge("", "0");
exit;
}
if (is_method("PUBLISH"))
{
if ($au!=$tU) {
sl_send_reply("403","Forbidden auth ID");
exit;
}
} else {
if ($au!=$fU) {
sl_send_reply("403","Forbidden auth ID");
exit;
}
}
consume_credentials();
# caller authenticated
}
}
return;
}
# Caller NAT detection route
/* uncomment the whole following route for enabling Caller NAT Detection */
route[4]{
force_rport();
if (nat_uac_test("19")) {
if (method=="REGISTER") {
fix_nated_register();
} else {
fix_nated_contact();
}
setflag(5);
}
return;
}
# RTPProxy control
/* uncomment the whole following route for enabling RTPProxy Control */
route[5] {
if (is_method("BYE")) {
unforce_rtp_proxy();
} else if (is_method("INVITE")){
force_rtp_proxy();
}
if (!has_totag()) add_rr_param(";nat=yes");
return;
}
branch_route[1] {
xdbg("new branch at $ru\n");
}
onreply_route[1] {
xdbg("incoming reply\n");
if ((isflagset(5) || isbflagset(6)) && status=~"(183)|(2[0-9][0-9])") {
force_rtp_proxy();
}
if (isbflagset(6)) {
fix_nated_contact();
}
}
failure_route[1] {
if (is_method("INVITE")
&& (isbflagset(6) || isflagset(5))) {
unforce_rtp_proxy();
}
if (t_was_cancelled()) {
exit;
}
# uncomment the following lines if you want to block client
# redirect based on 3xx replies.
##if (t_check_status("3[0-9][0-9]")) {
##t_reply("404","Not found");
## exit;
##}
# uncomment the following lines if you want to redirect the failed
# calls to a different new destination
##if (t_check_status("486|408")) {
## sethostport("192.168.2.100:5060");
## append_branch();
## # do not set the missed call flag again
## t_relay();
##}
}
##############################################
Thanks
--
View this message in context: http://www.nabble.com/kamailio-multi-domain-tp23539467p23539467.html
Sent from the OpenSER Users Mailing List mailing list archive at Nabble.com.
Hello,
during last weeks while testing the kamailio (openser) modules with
sip-router core I got x-lite 3.0 working on linux (ubuntu) with wine
1.1.20. I posted guidelines at:
http://appdb.winehq.org/objectManager.php?sClass=version&iId=16413
Voice, IM&Presence seem to work just fine. Video was not tested as I
couldn't make any wine application see the video cam, although it is
working fine on linux with skype or ekiga. For me it is a great tool to
test the presence, hope it will be useful for some of you as well.
Apart of x-lite, I got other sip softphone working with wine:
- pangolin - works fine, but the presence status changes are not sent to
server (no PUBLISH) -- might be a bug in the software, maybe someone
running it on windows can confirm it or not
- zoiper communicator rc1 free edition for windows - linux version seems
to be available now, but requires to register with their site
Cheers,
Daniel
--
Daniel-Constantin Mierla
http://www.asipto.com/
Hello,
long awaited period of SIP Router integration phase is more and more
approaching the end. Apart of 4 modules that are not integrated yet from
Kamailio - seas, siptrace, uac_redirect and nat_traversal (work being
undertaken) -- the rest of 88 modules are ready for
http://sip-router.org core.
I have created a page to collect guidelines for the default Kamailio
configuration file used with sip-router. I invite all of you to test it,
not only this one, but your private configs as well.
http://sip-router.org/wiki/migration/kamailio-3.0-config
Feel free to add to the wiki page or post questions about it to
sr-users(a)lists.sip-router.org. This is a new list created for users of
sip-router project, you can subscribe to it at:
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
At this stage, sip router can be used with modules from both Kamailio
(OpenSER) and SER projects, mixed in same instance at the same time.
Therefore you can choose the best ones that fit your needs. For Kamailio
(OpenSER) users there is a page that tries to collect new features they
got from SER side (still a lot to add there, hope ser developers will
contribute what they find missing). Another page collects links for ser
and kamailio users to find what the other project brings:
http://sip-router.org/wiki/migration/new-features-for-k-usershttp://sip-router.org/wiki/features/inherited-features
It was not only integration work in the past months, sip router has
quite a bunch of brand new feature. The wiki page to collect the summary
is available at:
http://sip-router.org/wiki/features/new-in-devel
Jan just set online documentation portal, available for web browsing:
http://sip-router.org/docbook/sip-router/branch/master/
Common modules are located in directory 'modules' while kamailio and ser
specific modules can be found under module_k and modules_s. Project's
wiki portal got also good content and it is under heavy work -- note
that everyone can contribute to wiki:
http://sip-router.org/wiki
Couple of core and tm features are not yet integrated or not exactly as
they were in Kamailio. Please report the ones you are missing in your
config at:
http://sip-router.org/wiki/devel/kamailio-integration#tm_and_core_extensions
It is the place that should set the priority rank for integration. I
hope that in 1-2 months time frame to get into beta stage and prepare a
stable release.
Many thanks for those that allocated resources to make things evolve to
this stage and many thanks in advance for those that will start testing
and help improving the sip router project. Beware that is still very
early stage and not recommended for production.
Cheers,
Daniel
PS. Codename 3.0 refers to Kamailio (OpenSER) or SER using sip router
core, there is not a stable release yet.
--
Daniel-Constantin Mierla
http://www.asipto.com/
Hi all,
I was playing around with dialplan module (kam 1.4) for the first time
and it seems that the repl_exp doesn't handle back references correctly:
mysql root@kamailio> select * from dialplan\G
*************************** 1. row ***************************
id: 1
dpid: 1
pr: 1
match_op: 1
match_exp: @voicebox\.local$
match_len: 0
subst_exp: ^sip:(.*)$
repl_exp: sip:xx_\1_yy
attrs: voicebox
1 row in set (0.00 sec)
In my config, I do:
dp_translate("1", "$ru/$var(dptest)");
xlog("L_INFO", "DP result='$var(dptest)', attr='$avp(s:dialplan_attr)\n");
and the result is:
DP result='sip:xx_user@voicebox.local', attr='voicebox'
So the string after the back reference ("_yy" in this case) is not inserted.
Any ideas?
Andreas
Hi all,
is there any way to automatically change "reason" column from "rejected" back to "NULL" or "allow" in watchers table after UAC#1 moves the UAC#2 from its blacklist to whitelist?
i see that kamailio (1.5.0) correctly reads index.xml file from database, but "rejected" reason is still in the watcher table until I delete it manually and restart UAC.
...and is this even suppose to work like that or should I use different approach?
Thanks
Dubravko