I meant Kamailio does a case-sensitive search.
Anyways, I am still trying to get the client working with Kamailio.
This client is proven to work with other presence server, so just
trying to piece things together so it works with the Kamailio PS.
I do not have RLS. The client does put the resource list, presence
rules and rls services documents and I can see those in the XCAP
database. I still do not understand why
1. Kamailio is not sending the authorization request to sub B when A
adds B to the contact list
2. Does Kamailio just look at the pres rules document in this case and
authorize B if A has their pres-rules document published on the server
and the sub_handling is allow?
How is this supposed to work? I don't see anything substantial going
to the client in the winfo notifies. They should have the watcher info
but they don't :(
There are no errors that I notice right now.
Sangeeta
On Mon, Oct 15, 2012 at 9:42 AM, Sangeeta Shah <sangeeta.shah(a)gmail.com> wrote:
The path is from the resource list xml inserted
by the client. The
issue over here was that the Kamalio code does a case insensitive
search for %5b and %5d and doesn't replace the path below with the "["
brackets.
This was the fix I had referred to in another thread
(update_subs_rlsdb: NO MATCH) that I had to make to get past this
issue. Now we are still getting xml errors but the current reason is
because Kamailio doesn't seem to like the pres-rules xml inserted by
the client that we are using because it doesn't have an indentity tag
for each condition. Excerpt from the other thread:
This is what I noticed in the error log:
Oct 12 14:21:46 RCS-Presence /usr/local/sbin/kamailio[11001]: DEBUG:
presence_xml [xcap_auth.c:201]: node1->name= rule
Oct 12 14:21:46 RCS-Presence /usr/local/sbin/kamailio[11001]: DEBUG:
presence_xml [xcap_auth.c:209]: cond_node->name= conditions
Oct 12 14:21:46 RCS-Presence /usr/local/sbin/kamailio[11001]: DEBUG:
presence_xml [xcap_auth.c:201]: node1->name= rule
Oct 12 14:21:46 RCS-Presence /usr/local/sbin/kamailio[11001]: DEBUG:
presence_xml [xcap_auth.c:209]: cond_node->name= conditions
Oct 12 14:21:46 RCS-Presence /usr/local/sbin/kamailio[11001]: ERROR:
presence_xml [xcap_auth.c:311]: didn't find identity tag
Now when I closely look at the presence rules xml document inserted by
Boghe I noticed that some of the condition tags under the rule tags do
not have identity tags. Is kamailio not able to handle what's being
put by this client? Based on other examples I've seen I don't think
every condition needs to have an identity tag. Is my understanding
correct. This is the XML that's being inserted:
<cr:ruleset xmlns:ocp="urn:oma:xml:xdm:common-policy"
xmlns="urn:ietf:params:xml:ns:pres-rules"
xmlns:op="urn:oma:xml:prs:pres-rules"
xmlns:cr="urn:ietf:params:xml:ns:common-policy">
<cr:rule id="wp_prs_allow_own">
<cr:conditions>
<cr:identity>
<cr:one id="sip:8475551001 at ip" />
</cr:identity>
</cr:conditions>
<cr:actions>
<sub-handling>allow</sub-handling>
</cr:actions>
<cr:transformations>
<provide-services>
<all-services />
</provide-services>
<provide-persons>
<all-persons />
</provide-persons>
<provide-all-attributes />
<provide-devices>
<all-devices />
</provide-devices>
</cr:transformations>
</cr:rule>
<cr:rule id="rcs_allow_services_anonymous">
<cr:conditions>
<ocp:anonymous-request />
</cr:conditions>
<cr:actions>
<sub-handling>allow</sub-handling>
</cr:actions>
<cr:transformations>
<provide-services>
<all-services />
</provide-services>
<provide-persons>
<all-persons />
</provide-persons>
<provide-all-attributes />
<provide-devices>
<all-devices />
</provide-devices>
</cr:transformations>
</cr:rule>
<cr:rule id="wp_prs_unlisted">
<cr:conditions>
<ocp:other-identity />
</cr:conditions>
<cr:actions>
<sub-handling>confirm</sub-handling>
</cr:actions>
</cr:rule>
<cr:rule id="wp_prs_grantedcontacts">
<cr:conditions>
<ocp:external-list>
<ocp:entry
anc="http://ip:5060/xcap-root/resource-lists/users/sip:8475551001@ip/index/~~/resource-lists/list%5B@name=%22oma_grantedcontacts%22%5D"
/>
</ocp:external-list>
</cr:conditions>
<cr:actions>
<sub-handling>allow</sub-handling>
</cr:actions>
<cr:transformations>
<provide-services>
<all-services />
</provide-services>
<provide-persons>
<all-persons />
</provide-persons>
<provide-all-attributes />
<provide-devices>
<all-devices />
</provide-devices>
</cr:transformations>
</cr:rule>
<cr:rule id="wp_prs_blockedcontacts">
<cr:conditions>
<ocp:external-list>
<ocp:entry
anc="http://ip:5060/xcap-root/resource-lists/users/sip:8475551001@ip/index/~~/resource-lists/list%5B@name=%22oma_blockedcontacts%22%5D"
/>
</ocp:external-list>
</cr:conditions>
<cr:actions>
<sub-handling>block</sub-handling>
</cr:actions>
</cr:rule>
</cr:ruleset>
Thanks,
Sangeeta
On Mon, Oct 15, 2012 at 2:16 AM, Daniel-Constantin Mierla
<miconda(a)gmail.com> wrote:
> This path does not look ok:
>
>
> /xmlns:resource-lists/xmlns:list%5B@name="rcs"%5D
>
> Where is it coming from?
>
> Cheers,
> Daniel
>
>
> On 10/10/12 4:50 PM, Sangeeta Shah wrote:
>>
>> Any clue what the correct path is supposed to be - per the data in the
>> xml and the path that's printed out by the module?
>>
>> Thanks,
>> Sangeeta
>>
>> On Tue, Oct 9, 2012 at 2:38 PM, Sangeeta Shah <sangeeta.shah(a)gmail.com>
>> wrote:
>>>
>>> Daniel,
>>> I don't know if this corresponds to the errors I was seeing before.
>>> But on a closer look I see the following errors when a subscribe
>>> request comes in. This is how I am handling subscribe requests:
>>>
>>> if( is_method("SUBSCRIBE"))
>>> {
>>> xdbg("======== Handling subscribe request ====
\n");
>>> $var(ret_code) = rls_handle_subscribe();
>>> xdbg("========= RLS Handle subscriber returned with
>>> ret code: $var(ret_code) ===\n");
>>> if ($var(ret_code) == 10)
>>> xdbg("======== Calling Handle subscribe =====
\n");
>>> handle_subscribe();
>>> t_release();
>>> }
>>>
>>> The resource list XML seems fine to me. But I am not sure if this is
>>> correct:
>>> path: /xmlns:resource-lists/xmlns:list%5B@name="rcs"%5D
>>>
>>> Data from the log file:
>>>
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> rls [notify.c:1031]: fetching local <resource-list/>
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24762]: DEBUG:
>>> db_mysql [km_res.c:85]: allocate 16 bytes for RES_NAMES[0] at
>>> 0x7f75730a3800
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> rls [notify.c:1228]: rl_uri:
>>>
>>>
/xcap-root/resource-lists/users/sip:8475551004@myip/index/~~/resource-lists/list%5B@name=%22rcs%22%5D
>>>
>>>
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> rls [notify.c:1242]: doc:
>>> /xcap-root/resource-lists/users/sip:8475551004@myip/index
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24762]: DEBUG:
>>> db_mysql [km_res.c:121]: use DB1_BLOB result type
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> rls [notify.c:1276]: path:
>>> /xmlns:resource-lists/xmlns:list%5B@name="rcs"%5D
>>>
>>>
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> rls [notify.c:1350]: rl document:#012<?xml
>>> version="1.0"?>#012<resource-lists xmlns="urn:iet
>>> f:params:xml:ns:resource-lists">#012 <list
name="rcs">#012
>>> <display-name>All Contacts</display-name>#012 <external
>>> anchor="http://myip:5060/xcap-r
>>>
>>>
oot/resource-lists/users/sip:8475551004@myip/index/~~/resource-lists/list%5B@name=%22doubango%22%5D"/>#012
>>> #012 </list>#012 <list name="rcs_blockedc
>>> ontacts">#012 <display-name>Blocked
Contacts</display-name>#012
>>> </list>#012 <list name="rcs_revokedcontacts">#012
>>> <display-name>Revoked Contacts</display
>>> -name>#012 </list>#012 <list
name="oma_allcontacts">#012
>>> <display-name>OMA All Contacts</display-name>#012
</list>#012 <list
>>> name="oma_blockedcontacts">#0
>>> 12 <display-name>OMA Blocked Contacts</display-name>#012
>>> <external
>>>
anchor="http://myip:5060/xcap-root/resource-lists/users/sip:8475551004@10.50.251
>>>
>>>
.12/index/~~/resource-lists/list%5B@name=%22rcs_blockedcontacts%22%5D"/>#012
>>> <external
>>> anchor="http://myip:5060/xcap-root/resource-lists/users/sip:847
>>>
>>>
5551004@myip/index/~~/resource-lists/list%5B@name=%22rcs_revokedcontacts%22%5D"/>#012
>>> </list>#012 <list name="oma_buddylist">#012
<display-name>OMA
>>> BuddyList</display-name>#012 <external
>>>
>>>
anchor="http://myip:5060/xcap-root/resource-lists/users/sip:8475551004@myip/index/~~/resource-lists/lis
>>> t%5B@name=%22rcs%22%5D"/>#012 <external
>>>
>>>
anchor="http://myip:5060/xcap-root/resource-lists/users/sip:8475551004@myip/index/~~/resource-lists/li
>>> st%5B@name=%22oma_pocbuddylist%22%5D"/>#012 </list>#012
<list
>>> name="oma_grantedcontacts">#012 <display-name>OMA
Granted
>>> Contacts</display-name>#012 <exte
>>> rnal
>>>
anchor="http://myip:5060/xcap-root/resource-lists/users/sip:8475551004@myip/index/~~/resource-lists/list%5B@name=%22rcs%22%5D"/>#012
>>> <ext
>>> ernal
>>>
anchor="http://myip:5060/xcap-root/resource-lists/users/sip:8475551004@myip/index/~~/resource-lists/li
>>>
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: ERROR:
>>> rls [notify.c:1386]: unable to evaluate path
>>>
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: ERROR:
>>> rls [subscribe.c:732]: failed sending full state notify
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: ERROR:
>>> rls [subscribe.c:781]: occured in rls_handle_subscribe
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> <script>: ========= RLS Handle subscriber returned with ret code: -1
>>> ===
>>>
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> <script>: ========= RLS Handle subscriber returned with ret code: -1
>>> ===
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [event_list.c:351]: start event= [presence/1]
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [subscribe.c:1063]: 'Expires' header found, value= 600000
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [subscribe.c:1085]: 'To' header ALREADY PARSED:
>>> <sip:8475551004@myip;pres-l
>>> ist=rcs>
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [subscribe.c:1156]: generating to_tag
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> sl [sl.c:327]: totag stateful mode (tm)
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [subscribe.c:1216]: subs->contact=
>>> sip:8475551004@10.50.0.93:49515;transport=udp -
>>> len = 45
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [subscribe.c:961]: subscription status= active - found in
>>> watcher table
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [subscribe.c:538]: update subscription
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [notify.c:117]: pres_uri: sip:8475551004@myip
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [notify.c:118]: watcher_user@watcher_domain: 8475551004@myip
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [notify.c:119]: to_user@to_domain: 8475551004@myip
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [notify.c:120]: from_user@from_domain: 8475551004@myip
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [notify.c:121]: callid/from_tag/to_tag:
>>>
>>>
0afe5565-8c8d-3012-4096-aff82200caf9/19038676/a6a1c5f60faecf035a1ae5b6e96e979a-a18a
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [notify.c:122]: local_cseq/remote_cseq: 0/24466
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [notify.c:123]: local_contact/contact:
>>> sip:myip:5060;transport=udp/sip:8475551004@10.50.0.93:49515;transport=udp
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [notify.c:124]: record_route:
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [notify.c:125]: sockinfo_str: udp:myip:5060
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [notify.c:127]: event: presence
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [notify.c:128]: status: active
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [notify.c:129]: reason:
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [notify.c:130]: version: 1
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [notify.c:131]: expires: 3600
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [notify.c:133]: updated/updated_winfo: -1/-1
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [subscribe.c:613]: subscription not in dialog
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> presence [subscribe.c:618]: inserting in shtable
>>>
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: ERROR:
>>> tm [t_reply.c:589]: ERROR: _reply_light: can't generate 202 reply when
>>> a final 200 was sent out
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> tm [t_reply.c:1543]: DEBUG: cleanup_uac_timers: RETR/FR timers reset
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> <core> [timer.c:595]: timer_add called on an active timer
>>> 0x7f756cdae230 (0x7f756cad7988, 0x7f756cdb1a98), flags 201
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> tm [t_funcs.c:184]: tm: put_on_wait: transaction 0x7f756cdae1b0
>>> already on wait
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: ERROR:
>>> sl [sl.c:270]: failed to reply stateful (tm)
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: ERROR:
>>> presence [subscribe.c:125]: sending reply
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: ERROR:
>>> presence [subscribe.c:655]: sending 202 OK reply
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: ERROR:
>>> presence [subscribe.c:707]: occured
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: ERROR:
>>> presence [subscribe.c:974]: in update_subscription
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> tm [t_lookup.c:1079]: DEBUG: t_check_msg: msg id=5 global id=5 T
>>> start=0x7f756cdae1b0
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> tm [t_lookup.c:1151]: DEBUG: t_check_msg: T already found!
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> <core> [msg_translator.c:206]: check_via_address(10.50.0.93,
>>> 10.50.0.93, 0)
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: ERROR:
>>> tm [t_reply.c:589]: ERROR: _reply_light: can't generate 500 reply when
>>> a final 200 was sent out
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> tm [t_reply.c:1543]: DEBUG: cleanup_uac_timers: RETR/FR timers reset
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> <core> [timer.c:595]: timer_add called on an active timer
>>> 0x7f756cdae230 (0x7f756cad7988, 0x7f756cdb1a98), flags 201
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: DEBUG:
>>> tm [t_funcs.c:184]: tm: put_on_wait: transaction 0x7f756cdae1b0
>>> already on wait
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: ERROR:
>>> sl [sl.c:270]: failed to reply stateful (tm)
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: ERROR:
>>> presence [utils_func.c:146]: sending 500 Server Internal Error reply
>>> Oct 9 13:55:13 RCS-Presence /usr/local/sbin/kamailio[24739]: ERROR:
>>> presence [subscribe.c:1014]: failed to send reply on error case
>>>
>>>
>>>
>>>
>>> On Mon, Oct 8, 2012 at 5:24 PM, Daniel-Constantin Mierla
>>> <miconda(a)gmail.com> wrote:
>>>>
>>>> Hello,
>>>>
>>>> the error messages seem to be due to a broken XML document in a NOTIFY
>>>> --
>>>> they are printed because of errors reported by libxml2 parser. Can you
>>>> get a
>>>> sip trace for such requests that throw these error messages in the log?
>>>>
>>>> Cheers,
>>>> Daniel
>>>>
>>>>
>>>> On 10/8/12 11:17 PM, Sangeeta Shah wrote:
>>>>>
>>>>> Hi,
>>>>> I am seeing the following errors in syslog:
>>>>>
>>>>> Oct 8 16:21:54 RCS-Presence /usr/local/sbin/kamailio[6723]: ERROR:
>>>>> presence_xml [notify_body.c:635]: while extracting tuple node
>>>>> Oct 8 16:21:54 RCS-Presence /usr/local/sbin/kamailio[6723]: ERROR:
>>>>> presence_xml [notify_body.c:75]: while constructing offline body
>>>>> Oct 8 16:21:54 RCS-Presence /usr/local/sbin/kamailio[6723]: ERROR:
>>>>> presence [presentity.c:1220]: preparing body
>>>>> Oct 8 16:21:54 RCS-Presence /usr/local/sbin/kamailio[6723]: ERROR:
>>>>> presence [publish.c:171]: Marking presentity
>>>>> Oct 8 16:21:55 RCS-Presence /usr/local/sbin/kamailio[6734]: INFO:
>>>>> presence [notify.c:1581]: NOTIFY sip:8475551004@10.50.251.12 via
>>>>> sip:8475551004@10.50.0.93:60562;transport=udp on behalf of
>>>>> sip:8475551004@10.50.251.12 for event message-summary
>>>>> Oct 8 16:21:55 RCS-Presence /usr/local/sbin/kamailio[6734]: INFO:
>>>>> presence [notify.c:1581]: NOTIFY sip:8475551004@10.50.251.12 via
>>>>> sip:8475551004@10.50.0.93:60562;transport=udp on behalf of
>>>>> sip:8475551004@10.50.251.12 for event presence.winfo
>>>>> Oct 8 16:21:57 RCS-Presence /usr/local/sbin/kamailio[6734]: INFO:
>>>>> presence [notify.c:1581]: NOTIFY sip:8475551004@10.50.251.12 via
>>>>> sip:8475551004@10.50.0.93:60562;transport=udp on behalf of
>>>>> sip:8475551004@10.50.251.12 for event presence
>>>>>
>>>>>
>>>>> I am using Kamailio 3.3 with Presence and RLS with integrated XCAP.
>>>>>
>>>>> The only significant change i made today is update the presence and
>>>>> RLS config to DB ONLY mode.
>>>>>
>>>>> Thanks,
>>>>> Sangeeta
>>>>>
>>>> --
>>>> Daniel-Constantin Mierla -
http://www.asipto.com
>>>>
http://twitter.com/#!/miconda -
http://www.linkedin.com/in/miconda
>>>> Kamailio Advanced Training, Berlin, Nov 5-8, 2012 -
>>>>
http://asipto.com/u/kat
>>>> Kamailio Advanced Training, Miami, USA, Nov 12-14, 2012 -
>>>>
http://asipto.com/u/katu
>>>>
>>>
>>>
>>> --
>>> Sangeeta Shah
>>
>>
>>
>
> --
> Daniel-Constantin Mierla -
http://www.asipto.com
>
http://twitter.com/#!/miconda -
http://www.linkedin.com/in/miconda
> Kamailio Advanced Training, Berlin, Nov 5-8, 2012 -
http://asipto.com/u/kat
> Kamailio Advanced Training, Miami, USA, Nov 12-14, 2012 -
>
http://asipto.com/u/katu
>
--
Sangeeta Shah