Hi all,
Kamailio sends a Contact set to modparam "server_address" in the
"presence" module when replying to SUBSCRIBE. Now I've seen in some
clients (e.g. eyebeam) and libs (e.g. eXosip) that they send subsequent
SUBSCRIBEs to this contact. In case of eXosip, it's for automatically
refreshing the subscription.
Problem is, that I can't tell what to put into "server_address" to
handle this correctly, since just putting in the domain of my server
(like "sip:my.domain") doesn't work, and putting in some generic URI
like "sip:server@my.domain") doesn't make sense also, since the user
doesn't exist.
So, how are you supposed to handle this? Any thoughts?
Andreas
Hi,
I am using openser to route requests towards differents Interactive
Voice Response (IVR).
For this, and to manage failures, maintenance a flexible way, I use
serial forking.
For each requests (after loose routing process), all possible
destinations are retrieved from 'location' with a modified lookup.
The first one is pushed to DURI, the other ones are stored in AVP.
An on_failure_route is set to get next destination if any.
fr_timer is 5 secs
fr_inv_timer is 120 secs.
Therefore, if an IVR does not response at all within 5 secs, the serial
forking mechanism is triggered.
Any subsequent message *MUST* go to same IVR, this is the
record_route/loose_route processing, and everything is ok for ACK or BYE.
My problem is for requests that does not match loose_routing.
- What about the initial INVITE being retransmitted ?
- What about a CANCEL ?
In those cases, the request goes to another IVR which handles it genuinely.
For INVITE retransmission, the calling uac will get two different
answers. If lucky, one will be canceled.
For CANCEL, the message will be rejected by all destinations but the one
which expects it (if lucky).
To avoid this, I used dynamic avp to set nexthop for a specific callid,
as soon as nexthop was chosen.
These avp were stored in database and reloaded from ...
This is really slowing down the system for a little annoyance ...
With kamailio 1.5.0 I use new module hash table to store next hop.
nexthop is cleaned on BYE, CANCEL and failures.
To handle runaway calls, the autoexpire parameter of hash table is a
great thing. Unfortunately It does not seem to do the job.
All entries stays indefinitely in table (as shown in sht_print)
Do you think these serial forking issues (re-INVITE, CANCEL) and all the
work around (nexthop hash table) it need is useful ?
Anyone want to share its serial forking management ?
What about the autoexpire parameter for hash table ?
Is it ok or did I miss something ?
loadmodule "htable.so"
modparam("htable", "htable", "nexthop=>size=4;autoexpire=120;")
Aurelien
Hello,
I am trying to setup a redirect proxy that pre-parses SIP before it gets
to the telco. It can do things like lookup speeddial-codes and map them
to either a phone number or a SIP-address.
My first thought was to use "305 Use Proxy" to tell phones to move on to
the proxy of the telco. But 305 is discouraged on iptel.org as it is not
properly standardised.
1. Am I correct in assuming that it is best to use "302 Moved Temporarily"?
Using this, I would need to set the Contact: field with address(es) of
new servers to appraoch.
2. What is the designated method to set Contact: in preparation of "302"?
Since there may be more than one SIP-server at the provider, it is good
to be able to create multiple Contact: headers. Behind the @ could be
server names and ports (from SRV lookup) or IP numbers (from A lookup).
3. How to make DNS lookups for proxy servers with Ser?
4. How to fold multiple DNS lookup results onto multiple Contact: headers?
I wonder if this is an existing facility in Ser, or if I should extend Ser
for doing this?
I hope someone on this list can help me move forward.
Thanks!
-Rick
Hi all,
I'm still working on without success for the moment.
I don't have an idea on the means to use AVP/DB etc. with this purpose.
Someone can help me ?
Regards
Le lundi 24 novembre 2008 à 12:20 +0100, Atle Samuelsen a écrit :
> if(search("Asterisk")){
> sl_reply("403","Go away ugly asterisk");
> break;
> }else if(search("my_other_ua_i_dont_like"){
> sl_reply("403","I do not like you either");
> break;
> }
>
>
> On Mon, Nov 24, 2008 at 12:16 PM, inge <inge(a)legos.fr> wrote:
> > Someone else has an idea ? I think about how to implement this kind of
> > filtering with functions included in SER 0.9.6, but I still in trouble.
> >
> > Thanks.
> >
> > Le jeudi 13 novembre 2008 à 16:44 +0100, inge a écrit :
> >> Hi Alexandre,
> >>
> >> Great workaround !!
> >>
> >> Maybe I can use it with Redhat if the module is compiled with x86
> >> architecture ?
> >>
> >> What about the "flag" field in table description ?
> >>
> >> Regards,
> >>
> >> A. LEMOINE
> >>
> >> Le mercredi 12 novembre 2008 à 20:59 +0300, Alexandre Snarskii a écrit :
> >> > On Wed, Nov 12, 2008 at 12:59:35PM +0100, inge wrote:
> >> > > Hi all,
> >> > >
> >> > > I look for a workaround to use a white list in addition of
> >> > > authentification proces, based on User-Agent (ie. for example : deny
> >> > > "Asterisk IPBX" permit "Cisco IPhone...")
> >> >
> >> > There is (unofficial) check_ua module added as a patch in FreeBSD port,
> >> > which works exactly as 'additional UA check'.
> >> >
> >> > Setup is not too complicated: you must create and populate some table
> >> > in your database. In my example, DB is postgresql, exact create/populate
> >> > commands is the next:
> >> >
> >> > CREATE TABLE check_ua (
> >> > rexx VARCHAR(256) NOT NULL UNIQUE,
> >> > flag INTEGER NOT NULL DEFAULT(0)
> >> > );
> >> > -- main goal is to disallow user-agents with invalid symbols:
> >> > INSERT INTO check_ua VALUES('^[0-9A-Za-z/.() _-]{1,64}$',1);
> >> > -- in your case it should be something like
> >> > INSERT INTO check_ua VALUES('^Cisco IP Phone.*',1);
> >> >
> >> > Then, add to global configuration:
> >> >
> >> > loadmodule "/usr/local/lib/ser/modules/check_ua.so"
> >> > modparam("check_ua", "db_url", "postgres://<username>:<password>@<host>/<db>")
> >> > modparam("check_ua", "db_table", "check_ua")
> >> >
> >> > and somewhere in route section:
> >> >
> >> > if(!check_ua()) {
> >> > xlog("L_ERR","Invalid UA DENIED: %fu, %is, %ua\n");
> >> > sl_send_reply("403", "Forbidden (Invalid UA)");
> >> > break;
> >> > };
> >> >
> >> > Voila. Until your Asterisk users will not find correct User-Agent
> >> > they must use in their sip.conf - it will work... :) In my case -
> >> > protection against bad symbols - it works even with asterisk... :)
> >> >
> >> > PS: not sure is that module can be found somewhere outside FreeBSD port,
> >> > at least my google skills is not enough to ...
> >> > However, both authors (Valentin Nechayev and Maxim Sobolev) read this list.
> >> >
> >>
> >> _______________________________________________
> >> Serusers mailing list
> >> Serusers(a)lists.iptel.org
> >> http://lists.iptel.org/mailman/listinfo/serusers
> >
> > _______________________________________________
> > Serusers mailing list
> > Serusers(a)lists.iptel.org
> > http://lists.iptel.org/mailman/listinfo/serusers
> >
We are having setup like openser+radius+mediaproxy.
Openser version is 1.2.3.
When we started to send high volume calls , we get below mentioned ERRORs &
WARNINGs.
1. /usr/local/sbin/openser[29869]: ERROR:tm:t_forward_nonack: discarding
fwd for a cancelled transaction
/usr/local/sbin/openser[29869]: ERROR:tm:w_t_relay: t_forward_nonack
failed
WARNING: script writer didn't release transaction
2. WARNING:tm:run_failure_handlers: no UAC or CANCEL support (1, 0)
3. /usr/local/sbin/openser[29870]: ERROR:nathelper:nh_timer: out of memory
4. /usr/local/sbin/openser[29870]: convert_rows: No memory left (openser
crashed)
As we were using default shared memory for openser, we increased shared
memory to maximum(2GB) to fix out of bound issue.
We checked openser script for memory leacks using valgrind, but did not find
any memory leack.
During doing relay of CANCEL,in relay route t_on_failure was added. So we
removed t_on_failure in relay route for CANCEL.
So WARNING:tm:run_failure_handlers: no UAC or CANCEL support (1, 0) was
fixed.
Still we are facing,
1. /usr/local/sbin/openser[29869]: ERROR:tm:t_forward_nonack: discarding fwd
for a cancelled transaction
/usr/local/sbin/openser[29869]: ERROR:tm:w_t_relay: t_forward_nonack
failed
WARNING: script writer didn't release transaction
2. /usr/local/sbin/openser[29870]: ERROR:nathelper:nh_timer: out of memory
3. ERROR:usrloc:get_all_db_ucontacts: raw_query failed
4. rc_avpair_gen: received unknown attribute 80 of length 18:
0xA40AA6A78F04D67B03C75F8CA233F008
Will increasing private memory will solve all issues?
Thanks in advance!!
--
Krunal Patel
Hi all,
I have this error when start ser (v0.9.7):
0(0) find_mod_export: found <db_update> in module mysql
[/usr/local/lib/ser/modules/mysql.so]
0(0) get_connection(): Connection not found in the pool
0(0) release_connection(): Removing connection from the pool
0(0) get_connection(): Connection not found in the pool
0(0) release_connection(): Removing connection from the pool
0(0) DEBUG: init_mod: domain
0(0) domain - initializing
0(0) find_mod_export: found <db_use_table> in module mysql
[/usr/local/lib/ser/modules/mysql.so]
0(0) find_mod_export: found <db_init> in module mysql
[/usr/local/lib/ser/modules/mysql.so]
0(0) find_mod_export: found <db_close> in module mysql
[/usr/local/lib/ser/modules/mysql.so]
0(0) find_mod_export: found <db_query> in module mysql
[/usr/local/lib/ser/modules/mysql.so]
0(0) find_mod_export: found <db_raw_query> in module mysql
[/usr/local/lib/ser/modules/mysql.so]
0(0) find_mod_export: found <db_free_result> in module mysql
[/usr/local/lib/ser/modules/mysql.so]
0(0) find_mod_export: found <db_insert> in module mysql
[/usr/local/lib/ser/modules/mysql.so]
0(0) find_mod_export: found <db_delete> in module mysql
[/usr/local/lib/ser/modules/mysql.so]
0(0) find_mod_export: found <db_update> in module mysql
[/usr/local/lib/ser/modules/mysql.so]
0(0) get_connection(): Connection not found in the pool
0(0) new_connection(): Access denied for user 'serro'@'localhost' to
database 'ser'
0(0) db_init(): Could not create a connection
0(0) ERROR:domain_db_init: cannot initialize database connection
0(0) init_mod(): Error while initializing module domain
ERROR: error while initializing modules
0(0) XLOG: destroy module ...
Couriously, database name is not 'ser', i've changed its name on
ser_mysql.sh.
I also change on ser_mysql.sh DBNAME, USERNAME, and DEFAULT_PW.
User 'serro' at this instance has its default password RO_PW (47serro11).
The "ser_mysql.sh create" works, but then whan I run "ser -D -E" it fails.
If I change 'serro' default password and run again ser_mysql (after
deleting previous db installation), the failure is the the following:
0(0) get_connection(): Connection not found in the pool
0(0) new_connection(): Access denied for user 'serro'@'localhost'
(using password: YES)
0(0) db_init(): Could not create a connection
0(0) ERROR:domain_db_init: cannot initialize database connection
Here, access is denied, but seem to found correctly the new db name.
Is it possible that 'serro', 'heslo', default password of serro, ser
default db names, an similar values be hardcoded on ser binary?
Any comments will be apreciatted.., thanks.
caiogf
Hi all,
I have this error when start ser (v0.9.7):
0(0) find_mod_export: found <db_update> in module mysql
[/usr/local/lib/ser/modules/mysql.so]
0(0) get_connection(): Connection not found in the pool
0(0) release_connection(): Removing connection from the pool
0(0) get_connection(): Connection not found in the pool
0(0) release_connection(): Removing connection from the pool
0(0) DEBUG: init_mod: domain
0(0) domain - initializing
0(0) find_mod_export: found <db_use_table> in module mysql
[/usr/local/lib/ser/modules/mysql.so]
0(0) find_mod_export: found <db_init> in module mysql
[/usr/local/lib/ser/modules/mysql.so]
0(0) find_mod_export: found <db_close> in module mysql
[/usr/local/lib/ser/modules/mysql.so]
0(0) find_mod_export: found <db_query> in module mysql
[/usr/local/lib/ser/modules/mysql.so]
0(0) find_mod_export: found <db_raw_query> in module mysql
[/usr/local/lib/ser/modules/mysql.so]
0(0) find_mod_export: found <db_free_result> in module mysql
[/usr/local/lib/ser/modules/mysql.so]
0(0) find_mod_export: found <db_insert> in module mysql
[/usr/local/lib/ser/modules/mysql.so]
0(0) find_mod_export: found <db_delete> in module mysql
[/usr/local/lib/ser/modules/mysql.so]
0(0) find_mod_export: found <db_update> in module mysql
[/usr/local/lib/ser/modules/mysql.so]
0(0) get_connection(): Connection not found in the pool
0(0) new_connection(): Access denied for user 'serro'@'localhost' to
database 'ser'
0(0) db_init(): Could not create a connection
0(0) ERROR:domain_db_init: cannot initialize database connection
0(0) init_mod(): Error while initializing module domain
ERROR: error while initializing modules
0(0) XLOG: destroy module ...
Couriously, database name is not 'ser', i've changed its name on
ser_mysql.sh.
I also change on ser_mysql.sh DBNAME, USERNAME, DEFAULT_PW.
User 'serro' at this instance has its default password RO_PW (47serro11).
The "ser_mysql.sh create" works, but then whan I run "ser -D -E" if fails.
If I change 'serro' default password and run again ser_mysql (after
deleting previous db installation), the failure is the the following:
0(0) get_connection(): Connection not found in the pool
0(0) new_connection(): Access denied for user 'serro'@'localhost'
(using password: YES)
0(0) db_init(): Could not create a connection
0(0) ERROR:domain_db_init: cannot initialize database connection
Access is denied, but seem to found correctly the new db name.
Is it possible that 'serro', 'heslo', default password of serro, ser
default db names, an similar values be hardcoded on ser binary?
Any comments will be apreciatted.., thanks.
caiogf
----- Mensaje original -----
De: Iñaki Baz Castillo <ibc(a)aliax.net>
Fecha: Jueves, Diciembre 11, 2008 4:52 pm
Asunto: Re: [Kamailio-Users] Kamalio Support for RFC 3323 " Privacy"
> El Jueves, 11 de Diciembre de 2008, ingdavidcespedes(a)cable.net.co
> escribió:> SORRYYYYYYY, you were right. What i'm trying to say is
> that if the UA
> > insert the p-p-i and privacy headers, the proxy should understand
> this and
> > do what I say above.
>
> The user sends the request with:
> From: Anonymous <sip:anonymous@XXXXXx>
> P-Preferred-Identity: <sip:alice@domain.com>
> Privacy: id
>
> Then the proxy knows who is by checking PPI header and could ask
> for
> credentiales. After it, the proxy would remove PPI before routing
> the
> request.
>
> If the proxy sends the request to a trusted node, it could add PAI
> header: P-Asserted-Identity: <sip:alice@domain.com>
> Privacy: id
>
> And the next element would remove it if it routes to an untrusted
> node/endpoint.
>
>
Agree with all that you say. Only that the "P-Preferred-Identity:" is optional. If it is not present, the proxy should add a predefined P-Asserted-Identity: header field, if it is going to send the request to a trusted node.
But as you can see, this implies different possible cases. So it would be very nice if we can do all of this using some module or something like that, don't you think so?
> --
> Iñaki Baz Castillo
>
> _______________________________________________
> Users mailing list
> Users(a)lists.kamailio.org
> http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
>
Hello,
Is there a simple doc to install CDRTool ?
I need to install a simple prepaid system, but I dont really understand how
to do!
Thank you
Cordialement,
BERGANZ François
P Pensez à l'Environnement, n'imprimez ce mail que si nécessaire.