Hi all,
We at Sipwise are excited to announce the first public release of the
sip:provider Community Edition (http://www.sipwise.com/products/spce/).
It is a fully open-source SIP based Class5 VoIP soft-switch, providing
every component an operator needs to offer VoIP services. It comes as a
communication platform leveraging the capabilities of Kamailio, SEMS and
Asterisk, complemented by our own open-sourced building blocks to
provide consistent and easy-to-use provisioning, billing and
configuration maintenance. The different parts are carefully integrated
with each other to form a fully featured VoIP soft-switch.
Please check
http://www.sipwise.com/news/announcements/spce-first-release/ for more
information on this release.
Have fun playing with it, we hope it's as useful to you as it is for us.
Andreas
Hi all,
We at Sipwise are excited to announce the first public release of the
sip:provider Community Edition (http://www.sipwise.com/products/spce/).
It is a fully open-source SIP based Class5 VoIP soft-switch, providing
every component an operator needs to offer VoIP services. It comes as a
communication platform leveraging the capabilities of Kamailio, SEMS and
Asterisk, complemented by our own open-sourced building blocks to
provide consistent and easy-to-use provisioning, billing and
configuration maintenance. The different parts are carefully integrated
with each other to form a fully featured VoIP soft-switch.
The platform will make it much easier for new Kamailio users to get
started with VoIP, and will provide missing parts in the open-source
VoIP eco-system for more experienced users.
Please check
http://www.sipwise.com/news/announcements/spce-first-release/ for more
information on this release.
Have fun playing with it, we hope it's as useful to you as it is for us.
Andreas
Hello,
My customer has the following database design.
Voip server 1 talks to SQL server 1.
Voip server 2 talks to SQL server 2.
Voip 1 and Voip 2 are load-balanced.
Each SQL server has two databases. Database 1 contains semi-static data like call forwarding properties for users and is read-only. This is replicated from a third SQL server which the web interface writes to. Database 2 is read/write, is not replicated and contains data that is updated frequently like user location and now dialog info.
Voip server 1 is not allowed to talk to SQL server 2 and vice versa.
I'm using forward() to send authenticated REGISTERs to the other server so that it'll write this to RAM and its own SQL server. Thus, both servers are aware of clients authenticated and registered by the other server.
How can I make both servers be aware of active calls on the other server?
The customer is looking into possibly changing their design, but this may be a lengthy process involving lots of people.
With kind regards,
Pan
Hello,
I'm using kamailio 3.0 with mediaproxy and I want to cancel calls if I have no mediaproxy relay connected to my mediaproxy dispatcher.
In my request route I'm checking if "use_media_proxy()" is returning me a positive result and it's working fine :
use_media_proxy();
if($rc < 0) {
sl_send_reply("480","Temporarily Unavailable");
exit;
}
But I'm also want check in my onreply_route If I still have an active relay because I need to rewrite the sdp in the 200/OK reply.
My problem is that I don't know how to end the transaction, I have tried :
if (is_method("INVITE") && status == "200") {
#!ifdef WITH_MEDIA_PROXY
use_media_proxy();
if($rc < 0) {
xlog("L_ERR", "invite reply error $rc \n");
dlg_bye("all");
}
#!endif
}
and also :
if (is_method("INVITE") && status == "200") {
#!ifdef WITH_MEDIA_PROXY
use_media_proxy();
if($rc < 0) {
xlog("L_ERR", "invite reply error $rc \n");
drop();
}
#!endif
}
In both case I'm seeing in my log file that use_media_proxy() returned me -1, but the reply is routed to the caller ...
Any idea on how I can cancel my call in the onreply_route ?
Also, I don't know if it's a good thing to make a second call to "use_media_proxy" in the onreply_route, mediaproxy module couldn't reply me with a different relay address if I have multiple mediaproxy relay?
Regards,
--
Nikita
Dispatcher crashes everytime guaranteed if there is a single dead host kamailio exits with a core dump (see below). If there are two dead hosts entire kamailio locks up (no core dump). Any ideas on this one? The invalid flag is never marked in the DB btw.
Crashes at ds_select_dst having never reached "COMPLETED FIRST DST LOOKUP"
# ------------------------- request routing logic -------------------
# main routing logic
# ------------------
route{
# initial checks
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
exit;
};
if (msg:len >= 2048 ) {
sl_send_reply("513", "Message too big");
exit;
};
xlog("[$TF] VALID RECV $rm\n $fu ($si:$sp) to $ru\n");
$avp(orig_du) = $du;
if($(fU{s.select,1,-})){
# from a user-formed message
$avp(user) = $(fU{s.select,0,-});
xlog(" USER $avp(user) DETECTED\n");
}
if(pv_isset("$avp(user)") && !ds_is_from_list()){
# from client
# route to client PBX
if(method == "REGISTER"){
route(3);
} else {
route(1);
}
}
if(ds_is_from_list()){
# from client, outbound from pbx
xlog(" IS FROM PBX\n");
if(is_e164($rU)){
xlog(" IS E164");
# all pbx-pbx traffic should be in user format
# since this is pbx-non-pbx send it to gateway
# gateway only takes E164
route(2);
}
if($(rU{s.select,0,-})){
# send directly from pbx to client
route(4);
}
}
if($si == "GATEWAY_IP_ADDRESS"){
# lookup enum
# route to appropriate pbx via DISPATCHER based on user returned
xlog(" CALL FROM GATEWAY\n");
}
}
route[1]{
route(3);
xlog(" ROUTED to $avp(user) PBX\n");
ds_select_dst($avp(user),"7");
xlog(" COMPLETED FIRST DST LOOKUP\n");
if($avp(orig_rd) == $rd){
exec("kamctl dispatcher reload");
ds_select_dst($avp(user),"9");
}
xlog(" host is now $rd; all is $ru || $du\n");
if($avp(orig_du) != $du){
t_on_failure("1");
if(!t_relay()){
xlog(" T_RELAY() FAILED\n");
sl_reply_error();
}
} else {
xlog(" RELOAD STILL YIELDED NOTHING\n");
}
}
route[2]{
xlog(" Sending to gateway...");
#$rd = "GATEWAY";
}
route[3]{
#register
if(!www_authorize("domain.net","subscriber")){
www_challenge("domain.net","0");
return;
} else {
xlog(" AUTHENTICATED $avp(user)\n");
save("location");
return;
}
}
route[4]{
$rU = "2-1";
#$rd = "10.1.40.7";
#$rp = "16314";
lookup("location");
xlog(" ROUTING TO USER $rU\n");
forward();
}
failure_route[1]{
xlog(" FAILED FAILURE_ROUTE[1]\n");
if(t_any_timeout()){
xlog(" MARKING DEAD HOST $du\n");
ds_mark_dst();
xlog(" TIMEOUT!\n");
}
}
0(2934) ERROR: <script>: [Thu Dec 2 20:15:34 2010] VALID RECV REGISTER
sip:3-1@domain.com (10.1.40.7:43899) to sip:domain.com
0(2934) ERROR: <script>: USER 3 DETECTED
0(2934) ERROR: <script>: ROUTED to 3 PBX
0(2934) ERROR: <script>: mark#1
0(2934) ERROR: <script>: host is now domain.com; all is sip:domain.com || sip:xxx.xxx.xxx.166:5060
0(2934) ERROR: <script>: [Thu Dec 2 20:15:35 2010] VALID RECV REGISTER
sip:3-1@domain.com (10.1.40.7:43899) to sip:domain.com
0(2934) ERROR: <script>: USER 3 DETECTED
0(2934) ERROR: <script>: ROUTED to 3 PBX
0(2934) ERROR: <script>: mark#1
0(2934) ERROR: <script>: host is now domain.com; all is sip:domain.com || sip:xxx.xxx.xxx.166:5060
1(2935) ERROR: <script>: FAILED FAILURE_ROUTE[1]
1(2935) ERROR: <script>: MARKING DEAD HOST sip:xxx.xxx.xxx.166:5060
1(2935) ERROR: <script>: TIMEOUT!
0(2934) ERROR: <script>: [Thu Dec 2 20:15:50 2010] VALID RECV REGISTER
sip:3-1@domain.com (10.1.40.7:29372) to sip:domain.com
0(2934) ERROR: <script>: USER 3 DETECTED
0(2934) ERROR: <script>: ROUTED to 3 PBX
0(2934) ERROR: <script>: mark#1
0(2934) ERROR: <script>: host is now domain.com; all is sip:domain.com || sip:xxx.xxx.xxx.165:5060
0(2934) ERROR: <script>: [Thu Dec 2 20:15:50 2010] VALID RECV REGISTER
sip:3-1@domain.com (10.1.40.7:29372) to sip:domain.com
0(2934) ERROR: <script>: USER 3 DETECTED
0(2934) ERROR: <script>: ROUTED to 3 PBX
0(2934) ERROR: <script>: mark#1
0(2934) ERROR: <script>: host is now domain.com; all is sip:domain.com || sip:xxx.xxx.xxx.165:5060
1(2935) ERROR: <script>: FAILED FAILURE_ROUTE[1]
1(2935) ERROR: <script>: MARKING DEAD HOST sip:xxx.xxx.xxx.165:5060
1(2935) ERROR: <script>: TIMEOUT!
0(2934) ERROR: <script>: [Thu Dec 2 20:15:55 2010] VALID RECV REGISTER
sip:3-1@domain.com (10.1.40.7:29373) to sip:domain.com
0(2934) ERROR: <script>: USER 3 DETECTED
0(2934) ERROR: <script>: ROUTED to 3 PBX
:::::Core file from crash with 1 invalid host:::::
Program terminated with signal 8, Arithmetic exception.
#0 0x0069e92b in ds_select_dst (msg=0x82ffb00, set=2, alg=7, mode=0)
at dispatch.c:1720
1720 i = (i+1)%(idx->nr-1);
Thanks for any help on this one!
-Eric
After completing the web install, I am getting the following error after
login.
Not Found
The requested URL /siremis/system/general_default was not found on this
server.
Any help out there?
Kurt A. Mullen
Practical PC, LLC
(O) 830.542.4102 x204
(F) 210.767.3912
This issue has not been resolved. I am still getting the same error when
trying to use kamctl for anything.
I have tried all of the suggestions posted to date with no resolution. Is
there anything more I can provide to help resolve this problem?
Kurt
-----Original Message-----
From: sr-users-bounces(a)lists.sip-router.org
[mailto:sr-users-bounces@lists.sip-router.org] On Behalf Of
sr-users-request(a)lists.sip-router.org
Sent: Monday, December 06, 2010 4:02 PM
To: sr-users(a)lists.sip-router.org
Subject: sr-users Digest, Vol 67, Issue 20
Send sr-users mailing list submissions to
sr-users(a)lists.sip-router.org
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
or, via email, send a message with subject or body 'help' to
sr-users-request(a)lists.sip-router.org
You can reach the person managing the list at
sr-users-owner(a)lists.sip-router.org
When replying, please edit your Subject line so it is more specific than
"Re: Contents of sr-users digest..."
Today's Topics:
1. presence_xml and xpath (Andreas Granig)
2. Re: presence_xml and xpath (Daniel-Constantin Mierla)
3. Re: presence_xml and xpath (Andreas Granig)
4. Re: presence_xml and xpath (Daniel-Constantin Mierla)
5. Re: presence_xml and xpath (Andreas Granig)
6. Re: Error opening Kamailio's FIFO (Kurt Mullen)
----------------------------------------------------------------------
Message: 1
Date: Mon, 06 Dec 2010 15:13:06 +0100
From: Andreas Granig <agranig(a)sipwise.com>
Subject: [SR-Users] presence_xml and xpath
To: sr-users(a)lists.sip-router.org
Message-ID: <4CFCEF72.4040308(a)sipwise.com>
Content-Type: text/plain; charset="iso-8859-1"
Hi,
I'm having troubles fetching an xpath from an xml document using
presence_xml, so I probably do something wrong (using kamailio 3.0.x):
$xml(x=>doc) = '<?xml version="1.0" encoding="utf-8"?><presence
xmlns="urn:ietf:params:xml:ns:pidf"
entity="sip:test@mydomain.com"><tuple
id="86ae65b7-42de-4399-b635-295caad13aac"><status><basic>none</basic></statu
s></tuple></presence>';
xlog("L_INFO", "all=$xml(x=>doc)\n");
-> prints the whole document, which is ok
xlog("L_INFO", "tmp1=$xml(x=>xpath:/)\n");
-> also prints the whole document (including the xml tag in the beginning,
not sure if this is ok)
xlog("L_INFO", "tmp2=$xml(x=>xpath:/presence)\n");
-> prints an empty string
How is this actually supposed to work? What I'd like to do in the end is
extracting for example the "none" from the "basic"-tag by specifying
"xpath:/presence/tuple/status/basic", which also returns an empty string
now, also when appended with "/text()".
Thanks a lot,
Andreas
On Fri, Dec 10, 2010 at 10:57 AM, David J <david(a)styleflare.com> wrote:
> I will test it. Seems to have worked
>
OK.
After confirmation, please notify the developers:
http://sip-router.org/tracker/
> On Dec 9, 2010 8:40 PM, "mayamatakeshi" <mayamatakeshi(a)gmail.com> wrote:
> > On Thu, Dec 9, 2010 at 11:55 PM, David J <david(a)styleflare.com> wrote:
> >
> >> Yes. That module is loaded.
> >> On Dec 9, 2010 7:48 AM, "mayamatakeshi" <mayamatakeshi(a)gmail.com>
> wrote:
> >>
> >> > On Thu, Dec 9, 2010 at 9:36 PM, David J. <david(a)styleflare.com>
> wrote:
> >> >
> >> >> If anyone can direct me how to resolve.
> >> >>
> >> >>
> >> >> I load presence.so,pua.so,purple.so
> >> >>
> >> >> When I run kamailio I see.
> >> >>
> >> >>
> >> >> Dec 9 14:36:05 localhost /usr/local/sbin/kamailio[1605]: ERROR:
> purple
> >> >> [purple.c:148]: can't import load_tm
> >> >>
> >> >
> >> > Function load_tm is defined at module tm.so. Are you loading this
> module?
> >>
> >
> >
> > I took a look at the code.
> > It seems there was a change in the API but module purple was not updated.
> It
> > calls load_tm this way (purple.c):
> >
> > if((load_tm=(load_tm_f)find_export("load_tm", 0, 0))==NULL)
> >
> > But all other modules call it this way:
> >
> > if((load_tm=(load_tm_f)find_export("load_tm", NO_SCRIPT, 0))==NULL)
> >
> > NO_SCRIPT is defined as -1.
> >
> > So I believe just changing the above will permit to load the module.
>
I am upgrading from 1.5 to 3.1, but ran into some issues. The one
right now is that I can’t seem to use the lcr and gws, although I’ve
spent quite some time looking at the documentation. When it hits the
next_gw() inside my route[PSTN] it finds nothing, and I have already
added
to the tables. But I added it manually to the tables, so maybe I
needed to load them to memory – but “kamctl lcr reload” has been
discontinued, so no loading. Is Siremis necessary as the input tool
for lcr and gws?
Just to make sure that it's not because of my cfg - here is the part
of the cfg where it returns false in next_gw():
route[PSTN] {
if (is_method("INVITE")) {
t_on_reply("REPLY_ONE");
t_on_failure("FAIL_ONE");
if (!load_gws(1)) {
sl_send_reply("500", "Our mistake - cannot load gateways");
exit;
}
if (!next_gw()) {
sl_send_reply("503", "Service not available (no more gateways)");
exit;
}
}
if (!t_relay()) {
sl_reply_error();
}
exit;
}
Any ideas what is wrong?
//Anders
On Thu, Dec 9, 2010 at 11:55 PM, David J <david(a)styleflare.com> wrote:
> Yes. That module is loaded.
> On Dec 9, 2010 7:48 AM, "mayamatakeshi" <mayamatakeshi(a)gmail.com> wrote:
>
> > On Thu, Dec 9, 2010 at 9:36 PM, David J. <david(a)styleflare.com> wrote:
> >
> >> If anyone can direct me how to resolve.
> >>
> >>
> >> I load presence.so,pua.so,purple.so
> >>
> >> When I run kamailio I see.
> >>
> >>
> >> Dec 9 14:36:05 localhost /usr/local/sbin/kamailio[1605]: ERROR: purple
> >> [purple.c:148]: can't import load_tm
> >>
> >
> > Function load_tm is defined at module tm.so. Are you loading this module?
>
I took a look at the code.
It seems there was a change in the API but module purple was not updated. It
calls load_tm this way (purple.c):
if((load_tm=(load_tm_f)find_export("load_tm", 0, 0))==NULL)
But all other modules call it this way:
if((load_tm=(load_tm_f)find_export("load_tm", NO_SCRIPT, 0))==NULL)
NO_SCRIPT is defined as -1.
So I believe just changing the above will permit to load the module.