Hi!
Since my last question on this list I have set up the OpenXCAP and put
the necessery documents in the database. I however still have the same
problem.
On subscribe requests the server responds 481 Subscription does not
exist and logs:
Jan 21 16:04:24 m2lin3 ./openser[5109]:
ERROR:presence:get_stored_info: record not found in hash_table
Jan 21 16:04:24 m2lin3 ./openser[5109]:
ERROR:presence:handle_subscribe: getting stored info
Anyone that can tell me why it's behaving like this?
Leo
Dear,
I would like to test the open xcap service. So i have installed the openser
presence module 1.2 and also the openxcap package but it does not work
properly. I have a few questions :
Where can I find an up to date installation documentation ?
How to make the link between the openser module and the openxcap package ?
I have the following errors, someone can help me ?
0(24573) PRESENCE:get_xcap_tree:The query in table xcap for [username]=bob ,
domain=open-ims.test returned no result
0(24573) PRESENCE: get_subs_dialog:The query for subscribtion for [user]=
vno,[domain]= open-ims.test for [event]= presence.winfo returned no result
0(24573) PRESENCE:query_db_notify: Could not get subs_dialog from database
0(24573) PRESENCE:update_subscription:Could not send notify for
presence.winfo
0(24573) PRESENCE:get_xcap_tree:The query in table xcap for [username]=vno
, domain=open-ims.test returned no result
1(24574) PRESENCE:get_xcap_tree:The query in table xcap for
[username]=alice , domain=open-ims.test returned no result
1(24574) PRESENCE:get_xcap_tree:The query in table xcap for [username]=vno
, domain=open-ims.test returned no result
1(24574) PRESENCE:get_xcap_tree:The query in table xcap for [username]=bob
, domain= open-ims.test returned no result
Thanks,
Vincent
Hi,
we're testing openser 1.3.0 on a linux server with presence module. I'm
using the provided configuration file with the following modifications:
- loaded the modules mysql, presence, presence_xml
- set the following parameters for these modules:
modparam("presence|presence_xml", "db_url",
"mysql://openser:[secret]@localhost/openser")
modparam("presence_xml", "force_active", 1)
modparam("presence", "server_address", "sip:[ip]:5060")
modparam("presence_xml","integrated_xcap_server", 1)
- uncommented the code to handle PUBLISH/SUBSCRIBE requests to the
presence module
I also configured the mi_datagram module, to receive mi commands.
I discovered the following issues.
In the main route block, the second if test checks if the request has a
to-tag. If the request does not contain a Route header a 404 Not Here
response is sent to the request.
When a client subscribes for presence, a 202 OK response is received
from the presence module, without Record-Route(s). This means future
in-dialog requests won't contain the Route header. It also means that
for example an un-SUBSCRIBE request is rejected with a 404 Not Here.
I worked around this by removing the has_totag () check and not sending
a 404 Not Here response when loose_route () returns false.
Furthermore I noticed that sometimes, the presence NOTIFY requests do
not contain a body. I checked the database, and there was data in the
body column in the presentity table for the presence resource.
The value in the status column of the watchers/active_watchers table is
1. When I restart openser, the presence descriptions are added to the
NOTIFY requests again (the entry in the database did not change).
I have to say that we insert some presence states directly in the
database via another process. But this is nothing more than an INSERT or
UPDATE statement on the presentity table.
Do you have any idea why a NOTIFY without body is sent? Do i need to
configure something extra? And why does it seem to work after openser
has restarted?
kind regards,
Sigrid
Hi,
I have configured Openser as an RLS server. Whenever I send a Subscribe
for a resourcelist [ with Reqest-URI as resource list ], I am getting NOTIFY
message with empty message body. { I was simply giving some junk list name
in request URI}
now what I am bothered is the configuration of resource list. how will I
form a resource list of a number of subscribers..? Is it possible to use it
without an XCAP Server..?
*"global lists" *and *"users lists".* How do I form a *"users list"*..? with
out using an XCAP..? Is there an RFC to specify the local list ( aka "*users
list*" where the sender specify whom all he would like to subscribe for
Presence Information )
Thanks,
--
Noble Antony T.
Thanks Everyone. My mistake, didn't see the ; at the end. VIM colored
it dark blue on a black background...
Appreciate you help guys...
Drix
>
> Message: 6
> Date: Mon, 18 Feb 2008 12:43:39 +0100
> From: Henning Westerholt <henning.westerholt(a)1und1.de>
> Subject: Re: [OpenSER-Users] Radius Acct Syntax Error?
> To: users(a)lists.openser.org
> Cc: Drix Tabligan <drix(a)tabligan.net>
> Message-ID: <200802181243.39271.henning.westerholt(a)1und1.de>
> Content-Type: text/plain; charset="ansi_x3.4-1968"
>
> On Friday 15 February 2008, Drix Tabligan wrote:
>> Hi,
>>
>> A quick help from anyone please?
>>
>> I've compiled Openser to support radius accounting and did the
>> necessary installations already. Freeradius is running and can do
>> accounting and auth already when tested.
>>
>> I'm having a problem starting Openser 1.2. The output shows...
>> [..]
>> 0(11900) parse error (224,21-22): syntax error
>> 0(11900) parse error (224,21-22):
>> ERROR: bad config file (2 errors)
>
> Hi Drix,
>
> look at line 224, the character at position 21 produces this error.
> The error
> messages is difficult to understand, this was improved 1.3.
>
> Cheers,
>
> Henning
>
>
>
> ------------------------------
>
Hi again,
I hope I am not being to pushy/obnoxious now, but I was really hoping I
could
get an anwer from the openser-guru's concerning my issues with the
transaction
matching code I mentioned in an earlier mail.
I and my co-workers feel that the RFC is quite clear on the subject of
matching ACK to 2xx, so I would really like to hear what the objections
are, since openser does not behave this way.
What I was trying to do, was simply to stop the ACKs for 3++ in my
script by using "t_check_trans()" and if the ACK did match the transaction,
the script would end processing.
But I suppose I'm supposed to do this some other way??
Anyway, I hope to hear from someone, indicating what your views on
this txn-matching issue is.
Regards
Taisto
Taisto Qvist wrote:
> I seems like we dont agree on the interpretation of the txn handling
> for invite.
> Sure, there is a timer for handling retransmitted responses, but thats
> in earlier states than Terminated.
> Also, there is nothing that says that the inner workings of your
transactions
> must exactly behave as the statemachine diagrams in the rfc as long
as the
> external behavior stays the same, but still I think that the ACK for 2xx
> should not match the INVITE txn and I believe the RFC is faily clear
on this.
> (It probably boils down to how rfc-isch you want to be.)
>
> > [Bogdan]
> >The end-to-end ACK establish a separate transaction (RFC 3261) and these
> >ACKs are not match as part of the INVITE transactions, but correlated
> >with them.
>
> [TQ]
> Where does it say that ACKs establish a separate transaction?
> There is no defined ACK transaction, only INVITE/nonInvite, server
and client.
> The ACK is either a part of the INVITE txn, or its a separate
request, but I would
> never call it a standalone transaction.
> The real purpose of txn's (in my view), is to enable/simplify
forking, and to
> handle retransmissions. Retransmissions of ACK and 2xx, are done by
the UAC/UAS,
> so there is no need for a ack-txn.
>
> > [Bogdan]
> > but even describe the wait timer. So, there is no contradiction.
>
> [TQ]
> I'd say there is. Where does it describe that this wait-timer should be
> used for all responses, or for matching *all* ACKs?
>
> My main reasons for saying that ACKs for 2xx should not be matched,
> come from the following texts. (17.1.1.2, and 17.2.1)
>
> 17.1.1.2 (client invite txn)
> The client transaction MUST be destroyed the instant it enters the
> "Terminated" state. This is actually necessary to guarantee correct
> operation. The reason is that 2xx responses to an INVITE are treated
> differently; each one is forwarded by proxies, and the ACK handling
> in a UAC is different. Thus, each 2xx needs to be passed to a proxy
> core (so that it can be forwarded) and to a UAC core (so it can be
> acknowledged). No transaction layer processing takes place.
> Whenever a response is received by the transport, if the transport
> layer finds no matching client transaction (using the rules of
> Section 17.1.3), the response is passed directly to the core. Since
> the matching client transaction is destroyed by the first 2xx,
> subsequent 2xx will find no match and therefore be passed to the
> core.
>
> [TQ]
> It even says "actually necessary to guarantee...."
> Since the txn's are there to (among other things) absorb retransmissions,
> the receiving the 2xx MUST destroy the txn, so that when the next
retransmission
> of 2xx is received, it is not consumed by the txn layer.
> This is what your txn-layer does for retransmitted 3++ right?
> Any additional 3++ received on a txn while waiting for Timer D to expire,
> will just be consumed, and the proxy core will never have to process it.
> Or?
>
> 17.2.1. (server invite txn)
> The purpose of the "Confirmed" state is to absorb any additional ACK
> messages that arrive, triggered from retransmissions of the final
> response.
> ..snip...
> Once the transaction is in the "Terminated" state, it MUST be destroyed
> immediately.
>
> [TQ]
> The Confirmed state is there to absorb retransmissions, not the
terminated.
> When receiving 2xx you go directly to terminated, bypassing, confirmed.
>
> Also, in 18.2.1 the text even explicitly says(sure, not "MUST" but..):
>
> .. Note that when a UAS core sends a 2xx response to INVITE,
> the server transaction is destroyed. This means that when the ACK
arrives,
> there will be no matching server transaction, and based on this rule,
> the ACK is passed to the UAS core, where it is processed.
>
>
> <snip old stuff>
>
> What I would dream of, is simply have some function-parameters to the
> t_check_trans(<param>), or even better in my little mind,
> a "modparam("tm", "ack_2xx_matching", 1)".
>
> I am looking forward to hearing your reply, and in the mean time,
> thanks to all of you developers for an extraordinary software :-)
>
> Regards
> Taisto Qvist
>
> > Hi guys,
> >
> > Just to bring some clarifications on the TM module.
> >
> > once a transaction is completed (negative or 2xx reply), it is put on
> > wait (wait timer - see RFC3261) for catching any potential
> > retransmissions of replies.
> > So, the transaction is completed, but not removed from memory - RFC
does
> > not say that you need to trash immediately all the transaction
> > information, but even describe the wait timer. So, there is no
> > contradiction.
> >
> > The ACK (for 2xx)catching is done based on the completed INVITE
> > transaction (from wait timer) - nothing else.
> >
> >
> > Inaki, could you please detail what you mean by:
> >
> > <quote>
> > In my opinion OpenSer does a special treatment for ACK in tm mode,
even if
> > they are for failed transaction (hop-by-hop ACK's) or succesfull INVITE
> > (end-to-end ACK's).
> >
> > </quote>
> >
> > Maybe I can explain you more if I understand you question....
> >
> > Regards,
> > Bogdan
>
Hi,
I am running openser 1.2.3 on ip 10.10.10.10
openser is adding itself as a route and the next hop then sends the
invite back to it.
Is there a way to strip the route when sending out the invite? See >> below<<
INVITE sip:192.168.10.1:5060;transport=UDP SIP/2.0..Record-Route:
<sip:10.10.10.10;lr=on>..
--- >>>> this is the problem >>> Route:
<sip:16464894489@10.10.10.10;user=phone>.. <<<< <<<<<<
Via: SIP/2.0/UDP 10.10.10.10;branch=z9hG4bK9ffa.8103bc92.0..Via:
SIP/2.0/UDP 172.16.100.17:506
0;branch=z9hG4bKckr04nq099hc7oit3g6bl0s;rport=5060..From:
<sip:706@10.10.10.10>;tag=k1404nvk7hhc61333g66..To: <sip:164
64894489(a)10.10.10.10;user=phone>..Contact:
<sip:706@172.16.100.17;transport=UDP>..Supported:
100rel,sec-agree..CSeq: 1
153 INVITE..Call-ID: ZII2nVPhoIfc11McnXIVhs0adjyRuT..Allow:
INVITE,ACK,BYE,CANCEL,REFER,NOTIFY,OPTIONS,PRACK..Expires: 1
20..Privacy: none..User-Agent: Nokia RM-208
1.0633.18.01..P-Preferred-Identity: sip:706@10.10.10.10..Max-Forwards:
70.
.Content-Type: application/sdp..Accept:
application/sdp..Content-Length: 435....v=0..o=Nokia-SIPUA
63371528233679000 633
71528233679000 IN IP4 172.16.100.17..s=-..c=IN IP4
172.16.100.17..t=0 0..m=audio 16384 RTP/AVP 96 0 8 97 18 98 13..a=pti
me:20..a=maxptime:200..a=fmtp:96 mode-change-neighbor=1..a=fmtp:18
annexb=no..a=fmtp:98 0-15..a=rtpmap:96 AMR/8000/1..a=
rtpmap:0 PCMU/8000/1..a=rtpmap:8 PCMA/8000/1..a=rtpmap:97
iLBC/8000/1..a=rtpmap:18 G729/8000/1..a=rtpmap:98 telephone-ev
ent/8000/1..a=rtpmap:13 CN/8000/1..
#
Sorry about that: Network Topology.
8.21.8.24 is the PSTN gateway (WAN IP)
192.168.2.5 UAS (simple IP phone, "PC to PC" no registrar, etc)
192.168.2.1 NAT Router with 192.168.2.10 in DMZ WAN Address is 2.6.7.9 in
my previous message.
192.168.2.10 OpenSER and RTPProxy.
Hello,
still playing arround with presence and xcap, another thing i would like to know is following query
that i can see in my sql logs:
username,domain,doc_type,etag,doc_uri,port from xcap where source=1
Q: What does the "source" value stand for, because currently all data records have a value of "0"
Also trying currently with "inetgrated xcap_server="0" " but with "xcap_client" module, also with no
success...
Presence status keeps always pending....
Any hints ?
r,
Andreas M.
Andreas M. schrieb:
> Hello,
> i installed OSER 1.3-SVN and openxcap-0.9.9 (does not work with OSER 1.2 :) )
>
> XCAP Server is running, also openser, but i can´t see any presence status, clients sends publish but
> no notifys are sent out.
>
> i´m using latest eyebeam clients, i can also see that privacy rules are updated in the xcap
> database, but subscribtion status is always pending.
>
> i can see that xcap doc is loaded through a query, but status is pending.
> Had a long time presence running mit "force_active = 1", but now i want to introduce also xcap
> functionality.
>
> Where can i start to debug ?
>
> r,
> Andreas M.
>
> presence config:
> ## presence module
>
> modparam("presence", "db_url","mysql://xx:xx@127.0.0.1/presence")
> modparam("presence", "presentity_table", "presentity")
> modparam("presence", "active_watchers_table", "active_watchers")
> modparam("presence", "watchers_table", "watchers")
> modparam("presence", "clean_period", 100)
> modparam("presence", "to_tag_pref", 'mango')
> modparam("presence", "expires_offset", 10)
> modparam("presence", "max_expires", 3600)
> modparam("presence", "server_address", "sip:10.0.0.1:5065")
> modparam("presence", "fallback2db", 1)
>
> modparam("presence_xml", "db_url","mysql://xxx:xxx@127.0.0.1/presence")
> modparam("presence_xml", "xcap_table", "xcap")
> modparam("presence_xml", "force_active", 0)
> modparam("presence_xml", "pidf_manipulation", 0)
> modparam("presence_xml", "integrated_xcap_server", 1)
>
> also i can see following query in my sql log, that does not work (field does not exists)
>
> select id from watchers where inserted_time<1202992297 AND subs_status='pending'
>
> source:
> CREATE TABLE `watchers` (
> `id` int(10) unsigned NOT NULL auto_increment,
> `presentity_uri` varchar(128) NOT NULL,
> `watcher_username` varchar(64) NOT NULL,
> `watcher_domain` varchar(64) NOT NULL,
> `event` varchar(64) NOT NULL default 'presence',
> `status` int(11) NOT NULL,
> `reason` varchar(64) default NULL,
> `inserted_time` int(11) NOT NULL,
> PRIMARY KEY (`id`),
> UNIQUE KEY `watcher_idx` (`presentity_uri`,`watcher_username`,`watcher_domain`,`event`)
> ) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;
>
>
--
g,
Andreas M.