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