Hello,
I do have the following in ser.cfg:
------------------------
failure_route[1] {
log(1, "Entering failure_route(1)");
revert_uri();
log(1, "reverted");
rewritehostport("xxx.xxx.xxx.xxx:5060");
log(1, "rewritten");
append_branch();
log(1, "appended");
t_relay_to_udp("xxx.xxx.xxx.xxx", "5060");
log(1, "relayed");
log(1, "Exiting failure_route(1)");
break;
}
------------------------
It is called from there:
-----------------------
route[1] {
if (method=="INVITE") {
t_on_failure("1");
}
if (!t_relay()) {
sl_reply_error();
}
else {
log (1, "t_relay() done in route(1)");
}
break;
}
------------------------
Which is called from the end of route{} and also from end of some
route(x).
In the log, I can see SER crashing, after tm's "fr_inv_timer" seconds:
Jun 30 16:40:00 ser /usr/local/sbin/ser[3548]: Entering failure_route
(1) Jun 30 16:40:00 ser /usr/local/sbin/ser[3548]: reverted
Jun 30 16:40:00 ser /usr/local/sbin/ser[3548]: rewritten
Jun 30 16:40:00 ser /usr/local/sbin/ser[3548]: appended
Jun 30 16:40:00 ser /usr/local/sbin/ser[3548]: BUG: qm_free: bad
pointer 0x2a97d717e8 (out of memory block!) - aborting Jun 30
16:40:00 ser /usr/local/sbin/ser[3558]: ERROR: receive_fd: EOF on 14
Jun 30 16:40:00 ser /usr/local/sbin/ser[3525]: child process 3548
exited by a signal 6 Jun 30 16:40:00 ser /usr/local/sbin/ser[3525]:
core was generated Jun 30 16:40:00 ser /usr/local/sbin/ser[3525]:
INFO: terminating due to SIGCHLD
It also do the same if I replace t_relay_to_udp(...) with t_relay().
And also if I move the t_on_failure() in main route() or the calling
route(x).
Is it a known bug or am I doing something wrong?
Any help appreciated!
Best regards
--
# Lol Zimmerli // S y s C o ® // http://www.sysco.ch/
Modularise. Use subroutines.
- The Elements of Programming Style (Kernighan & Plaugher)
Hi,
Sorry to resubmit on much the same topic as before (Portal for forking
call to preferred end device-sequential ringing) but I was wondering if
anyone had any further ideas on how to associate a particular contact
address with a location. i.e. a user can choose that their preferred
location is their desktop phone and I need to devise some way to know
that a particular contact address is associated with the desktop phone.
I was thinking the user must either enter the device ip addresses
manually so I can search the contact based on IP address (This sucks in
terms of NAT, scalability and losing mobility over networks) OR I could
perhaps stipulate that a user cannot have two of the same device e.g.
cant have two BT100 hardphones and I could search the location table
based on model. I think either of these options aren't great....Which is
why I was wondering if anyone had any better ideas?
Many Thanks,
Aisling.
p.s. I currently retrieve the users contact address and q value via a
web interface using the serctl fifo interface.
-----Original Message-----
From: Bogdan-Andrei Iancu [mailto:bogdan@voice-system.ro]
Sent: 22 June 2005 12:45
To: Aisling
Cc: 'Greger V. Teigre'; jh(a)tutpro.com
Subject: Re: [Serusers]CPL - Portal for forking call to
preferredenddevice-sequential ringing
Hi Aisling,
There are many ways to implement serial forking - like using CPL, LCR or
AVPOPS.
But the main idea (if I getting right from your initial email) is to
allow the user to order his contacts for the same account (like account
userx that have contact_pda_x, contact_PC_x, contact_office_x, etc). So
you have all this contacts in user location, you have several mechanism
for serial forking, but you are missing the link - to get the contacts
from user location and to feed any of the serial forking mechanism. This
is the big problem.
even if you use CPL, you need to place in each location node the
contacts (and not the AOR) of the user, contacts which are dynamically
stored only in user location.
what you are describing below can be possible only if you a user (as
person) has different sip accounts (SIP users) for each of his devices.
Other way I don't see how you can place in the CPL script the "phone1"
and "phone2" addresses.
and just to answer you to the CPL- related questions (from
implementation point of view):
- each user can have only one script - if you load a new script, the
previous one will be lost (overwritten). If you can different services
via CPL (like screening and no-answer), you need to mix them in the same
script during provisioning.
- if you want to delete a CPL script via FIFO, use the REMOVE_CPL
command:
serctl fifo REMOVE_CPL user@domain
regards,
bogdan
Aisling wrote:
>Hello,
>
>Many thanks for the ideas so far.
>I looked at CPL Greger and I think that provides a very simple solution
>to this - a simple Call forward on no answer script.
>
>I have an included an example that I came across below. If a user wants
>to modify the order of the devices a call should be sent to, then I
>simply have to retrieve the information from the user via the web
>interface and provision a new cpl script. I think this solves the
>problem - Does anyone foresee any problems with this or think it has
>disadvantages?
>
>I do have two minor questions if I am to go ahead with this direction
>though:
>1) If a particular user already has a cpl script e.g. a call screening
>script uploaded to the database and they then upload this forward on no
>answer script, will it overwrite the original script? i.e. can there
>only be one cpl script per user?
>
>2)How can a cpl script be "undone" or deleted? Must it be overwritten
or
>is there a way of simply removing it(without using mysql commands)?
>
>Example CPL: Call Forward on No Answer
>
><?xml version="1.0">
>
><cpl>
> <subaction id="phone2">
> <location url="sip:2000@phone2">
> <proxy />
> </location>
> </subaction>
>
> <incoming>
> <location url="sip:2000@phone1">
> <proxy timeout="8">
> <noanswer>
> <sub ref="phone2"/>
> </noanswer>
> </proxy>
> </location>
> </incoming>
></cpl>
>
>Many Thanks,
>Aisling.
>
>-----Original Message-----
>From: Greger V. Teigre [mailto:greger@teigre.com]
>Sent: 22 June 2005 05:42
>To: Aisling O'Driscoll; jh(a)tutpro.com
>Cc: samuel.osorio(a)nl.thalesgroup.com; ashling.odriscoll(a)cit.ie;
>serusers(a)lists.iptel.org
>Subject: Re: [Serusers] Portal for forking call to
>preferredenddevice-sequential ringing
>
>Aisling O'Driscoll wrote:
>
>
>>Ok, just to recap - cos Im getting a little bit confused ;)
>>
>>I have two choices(?)
>>
>>1. Somehow invoke sipsak to configure permanent addresses with a
>>particular q value.
>>2. Develop a FIFO method to change q value.
>>
>>
>
>Yes. Except that I don't know if anybody verified that q value cannot
be
>
>changed with today's FIFO. I just asked the question...
>
>
>
>>Am I correct in thinking directly modifying the usrloc table in the
>>database is out of the question because the changes cant be updated
>>except by SER itself in which case a reboot would required - Correct?
>>
>>
>
>Correct. "SER itself" is here either serctl, sipsak or FIFO.
>
>
>
>>Also lcr module (load_contacts() etc) isnt suitable for per user
>>configurable sequential forking?
>>
>>
>
>I don't know about that. There is definitely a q-value based
>functionality
>there.
>
>
>
>>Have others tried to implement similar functionality or is it usually
>>a generic site wide sequential forking policy?
>>
>>
>
>I think using CPL could be an option. Have you looked at CPL and the
cpl
>
>module?
>g-)
>
>
>
>>Many thanks for the opinions and help so far.
>>Aisling.
>>
>>
>>
>>>---- Original Message ----
>>>From: jh(a)tutpro.com
>>>To: greger(a)teigre.com
>>>Subject: Re: [Serusers] Portal for forking call to
>>>preferredenddevice-sequential ringing
>>>Date: Tue, 21 Jun 2005 21:41:54 +0300
>>>
>>>
>>>
>>>>Greger V. Teigre writes:
>>>>
>>>>
>>>>
>>>>>:-D Yes, that is true. But I didn't know that you could change
>>>>>
>>>>>
>>>q-value in
>>>
>>>
>>>>>FIFO?
>>>>>
>>>>>
>>>>if that is not possible, then you can always use sipsak to install
>>>>"permanent" registrations with a given q value. sipsak has an
>>>>additional advantage over fifo in that you can apply permissions
>>>>
>>>>
>>>check
>>>
>>>
>>>>to sipsak registration, but not to fifo registration.
>>>>
>>>>-- juha
>>>>
>>>>
-------------------Legal
Disclaimer---------------------------------------
The above electronic mail transmission is confidential and intended only
for the person to whom it is addressed. Its contents may be protected by
legal and/or professional privilege. Should it be received by you in
error please contact the sender at the above quoted email address. Any
unauthorised form of reproduction of this message is strictly
prohibited. The Institute does not guarantee the security of any
information electronically transmitted and is not liable if the
information contained in this communication is not a proper and complete
record of the message as transmitted by the sender nor for any delay in
its receipt.
-------------------Legal Disclaimer---------------------------------------
The above electronic mail transmission is confidential and intended only for the person to whom it is addressed. Its contents may be protected by legal and/or professional privilege. Should it be received by you in error please contact the sender at the above quoted email address. Any unauthorised form of reproduction of this message is strictly prohibited. The Institute does not guarantee the security of any information electronically transmitted and is not liable if the information contained in this communication is not a proper and complete record of the message as transmitted by the sender nor for any delay in its receipt.
Hi!
The 0.9.4 source tarballs at http://openser.org/pub/openser/0.9.4/src/
still have the postgres-usrloc bug. (I knew I should have used CVS)
I suggest that they will be updated automatically, or removed.
regards,
klaus
Hi everyone!
I have set up a ser as an outbound proxy with nathelper+rtpproxy. This
is my set up
IPphone1 -->
nat router --> outbound proxy(OP) --> softswitch(SS)
IPphone2 -->
with the OP and SS in public. The IPphones are behind the same NAT and
both configured to the same OP. I am only testing against this
softswitch from some vendor so i don't have any control over it. And
I used the sample nathelper.cfg from the CVS to get started.
Registration went smoothly. The problem starts when I try to call one
phone using the other. Nothing happens until I recieve a 408 request
time out. I did dumps on the OP and
NAT router and what happens is the that the SS sends the INVITE to the
NAT router directly instead of sending it to the OP. I tried reading
the RFC but since im still new with sip and ser i am still at lost.
Maybe someone here can help enlighten me. On sending INVITES, where in
the SIP messages does the SS knows where to send the INVITE? Is it
suppose to send back on what's in the Contact Header in registration?
Would a Record-Route help solve the problem? Here's a rough
description on what happens on the INVITES on phone1 calling phone2:
IPphone1 --> NAT --> OP --> SS
Adds: Via
Changes Contact with source ip
IPphone1 <-- NAT <-- OP <-- SS
407 407 407 407
Removes Via
IPphone1 --> NAT --> OP --> SS
Invite with Adds Via
Authorization Changes Contact with
source ip
(lost) NAT <------------------------------ SS
sees 3 Vias
Thanks in Advance for any help or ideas.
Regards,
CGR
Dear serusers,
I successfully installed SERWEB.I think.
However, I cannot seem to login at the login screen.
I go to http://mydomain/admin/index.php and I get the login screen, but
nothing I try there works. What could this be?
I already tried:
'root' and my passoword
admin and heslo
I don't know what else to do. Please help.
Sincerely,
Leo Papadopoulos
leo(a)ltcjp.com
Hi
Are call waiting and transfer both features which should reliably be
handled within ser itself, if so how would u prevent someone from
transfering out of their company and to some other IP phone on your voip
network.
Iqbal
hello,
Anybody would be informed about ip phones able to
provide moh according to
http://www.tech-invite.com/Ti-sip-service-3.html
regards
harry
___________________________________________________________________________
Appel audio GRATUIT partout dans le monde avec le nouveau Yahoo! Messenger
Téléchargez cette version sur http://fr.messenger.yahoo.com
I have Asterisk and SER at the same computer with 2
different listening ports, the goal is to accomplish
this scenario:
- SER acts as a NAT transversal gateway with
Mediaproxy
- Asterisk acts as PBX, PSTN Gateway and Voicemail
server
That means that ALL the authentications, PBX functions
and switching are handled by Asterisk.
I donât know how to do this, all I can do now is:
- Create users with DB authentication at SER, these
users can successfully register and place calls to
each other
- At Asterisk, I added Autocreatepeer = yes
(sip.conf)
- The registered SER users can place PSTN calls
through Asterisk
What Iâm confused about is:
- How to do a double authentication at SER and
Asterisk at the same time? I tried to create an
extension at Asterisk with the same user name and
password I used in SER and remove the Autocreatepeer =
yes. It doesnât work
- The reason I want to do this is to be able to use
the PBX functions at Asterisk (call forward, transfer,
.. etc.)
Any help is highly appreciated
Regards.
____________________________________________________
Yahoo! Sports
Rekindle the Rivalries. Sign up for Fantasy Football
http://football.fantasysports.yahoo.com
Hello I just upgraded my ser 0.9.2 to ser 0.9.3 stable and it just coredumps
on me.
It seems to be a database issue because original ser.cfg works as long as
athentication is not enabled. Enable it and ser dumps...
Jun 30 00:51:47 ns2 ser[38150]: Maxfwd module- initializing
Jun 30 00:51:48 ns2 kernel: pid 38150 (ser), uid 0: exited on signal 11
(core dumped)
I even completely cleaned my system and installed everything from scratch
again... still same error.
I use FreeBSD 5.4
I use precompiled Ser 0.9.3 for FreeBSD
I use MySQL Client 4.1.10a
I use MySQL Server 4.1.10a
This is the test config used...
#
# $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"
# 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();
# 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("", "subscriber")) {
www_challenge("", "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]
{
# send it out now; use stateful forwarding as it works reliably
# even for UDP2TCP
if (!t_relay()) {
sl_reply_error();
};
}
Hi
Is there a way of getting ser to send messages to asterisk but to match
different blocks in sip.conf in asterisk
In sip.conf asterisk seems to match on
a) the username (From:)
b) the ip address
c) default
What i want to do is to based upon certain matches in ser to direct the
INVITE to a particular block in sip.conf, from where I can then match to
a diff contect in extensions.conf. If this is not possible can I have a
variable name for context based upon username of something like that.
I know this post would be better in asterisk mailing list, I will get
there soon :-)
iqbal