Hi,
I apologise if this is not the correct venue for such a question...
I am running kamailio v4.3.4 (x86_64/linux) on debian Jessie, sourced from; deb http://deb.kamailio.org/kamailio jessie main
In my routing logic I am handling SUBSCRIBE requests and striping extra Event package parameters appended to "ua-profile" event types. i.e.;
Event: ua-profile;model=somemodel;vendor=somevendor;profile-type=user
becomes;
Event: ua-profile
This is done with this code;
} else if( is_method("SUBSCRIBE")) { subst('/ua-profile.*/ua-profile/') ; handle_subscribe(); t_release();
However, in such conditions "search_event()" doesn't correctly find the event. Even though it looks like it is searching for the right event type;
start event= [ua-profile/7] handle_subscribe(): unsupported presence event ua-profile
--- Begin debug ----
]3(7664) DEBUG: <core> [re.c:457]: subst_run(): matched (332, 79): [Event: ua-profile;model=somemodel;vendor=somevendor;profile-type=user] with [Event: ua-profile]extops.c:680]: subst_f(): textops: replacing at offset 376[Event: ua-profile;model=somemodel;vendor=somevendor;profile-type=user] 13(7664) debug: textops [textops.c:696]: subst_f(): lst was 0x7fb391fd0da8 13(7664) error: *** cfgtrace:request_route=[presence] c=[/etc/kamailio/kamailio.cfg] l=365 a=24 n=handle_subscribe 13(7664) debug: presence [event_list.c:348]: search_event(): start event= [ua-profile/7] 13(7664) notice: presence [subscribe.c:1092]: handle_subscribe(): unsupported presence event ua-profile 13(7664) debug: tm [t_lookup.c:1011]: t_check_msg(): debug: t_check_msg: msg id=1 global id=1 t start=0x7fb388763290 13(7664) debug: tm [t_lookup.c:1083]: t_check_msg(): debug: t_check_msg: t already found! 13(7664) debug: <core> [mem/shm_mem.c:101]: _shm_resize(): warning:vqm_resize: resize(0) called 13(7664) debug: tm [t_reply.c:1591]: cleanup_uac_timers(): debug: cleanup_uac_timers: retr/fr timers reset 13(7664) debug: <core> [tcp_main.c:2196]: tcpconn_send_put(): send from reader (7664 (13)), reusing fd 13(7664) debug: <core> [tcp_main.c:2430]: tcpconn_do_send(): sending... 13(7664) debug: <core> [tcp_main.c:2464]: tcpconn_do_send(): after real write: c= 0x7fb38875ecf8 n=368 fd=9 13(7664) debug: <core> [tcp_main.c:2465]: tcpconn_do_send(): buf= sip/2.0 489 bad event via: sip/2.0/tcp 127.0.1.1:5060;branch=z9hg4bk-2999-1-0;rport=34679;received=192.168.88.88 cseq: 1 subscribe call-id: 1-2999@127.0.1.1 from: sip:c.vella@albourne.com;tag=1 to: sip:provisioning@albourne.com;tag=a6a1c5f60faecf035a1ae5b6e96e979a-811a
--- End debug ---
As a test, I send another message with clean "Event: ua-profile" and this works , event= [ua-profile/7] is found.
--- Begin debug ---
]4(7665) DEBUG: <core> [re.c:457]: subst_run(): matched (332, 18): [Event: ua-profile ] with [Event: ua-profile]extops.c:680]: subst_f(): textops: replacing at offset 376 [Event: ua-profile 14(7665) DEBUG: textops [textops.c:696]: subst_f(): lst was 0x7fb391fd0da8 14(7665) ERROR: *** cfgtrace:request_route=[PRESENCE] c=[/etc/kamailio/kamailio.cfg] l=365 a=24 n=handle_subscribe 14(7665) DEBUG: presence [event_list.c:348]: search_event(): start event= [ua-profile/7] 14(7665) DEBUG: presence [subscribe.c:1161]: extract_sdialog_info_ex(): 'Expires' header found, value= 3600 14(7665) DEBUG: presence [subscribe.c:1195]: extract_sdialog_info_ex(): 'To' header ALREADY PARSED: sip:provisioning@albourne.com 14(7665) DEBUG: presence [subscribe.c:1266]: extract_sdialog_info_ex(): generating to_tag 14(7665) DEBUG: sl [sl.c:329]: get_reply_totag(): totag stateful mode (tm) 14(7665) DEBUG: presence [subscribe.c:1326]: extract_sdialog_info_ex(): subs->contact= sip:c.vella@192.168.88.179:59206;transport=tcp - len = 46 14(7665) DEBUG: presence [subscribe.c:1043]: handle_subscribe(): subscription status= active - inserted 14(7665) DEBUG: presence [subscribe.c:554]: update_subscription(): update subscription 14(7665) DEBUG: presence [notify.c:115]: printf_subs(): pres_uri: sip:c.vella@albourne.com 14(7665) DEBUG: presence [notify.c:116]: printf_subs(): watcher_user@watcher_domain: c.vella@albourne.com 14(7665) DEBUG: presence [notify.c:117]: printf_subs(): to_user@to_domain: provisioning@albourne.com 14(7665) DEBUG: presence [notify.c:118]: printf_subs(): from_user@from_domain: c.vella@albourne.com 14(7665) DEBUG: presence [notify.c:119]: printf_subs(): callid/from_tag/to_tag: 1-3002@127.0.1.1/1/a6a1c5f60faecf035a1ae5b6e96e979a-1030 14(7665) DEBUG: presence [notify.c:120]: printf_subs(): local_cseq/remote_cseq: 0/1 14(7665) DEBUG: presence [notify.c:121]: printf_subs(): local_contact/contact: sip:192.168.88.85:5060;transport=tcp/sip:c.vella@192.168.88.179:59206;transport=tcp 14(7665) DEBUG: presence [notify.c:122]: printf_subs(): record_route: 14(7665) DEBUG: presence [notify.c:123]: printf_subs(): sockinfo_str: tcp:192.168.88.85:5060 14(7665) DEBUG: presence [notify.c:125]: printf_subs(): event: ua-profile 14(7665) DEBUG: presence [notify.c:126]: printf_subs(): status: active 14(7665) DEBUG: presence [notify.c:127]: printf_subs(): reason: 14(7665) DEBUG: presence [notify.c:128]: printf_subs(): version: 1 14(7665) DEBUG: presence [notify.c:129]: printf_subs(): expires: 3600 14(7665) DEBUG: presence [notify.c:131]: printf_subs(): updated/updated_winfo: -1/-1 14(7665) DEBUG: presence [subscribe.c:629]: update_subscription(): subscription not in dialog 14(7665) DEBUG: presence [subscribe.c:634]: update_subscription(): inserting in shtable 14(7665) DEBUG: tm [t_lookup.c:1011]: t_check_msg(): DEBUG: t_check_msg: msg id=1 global id=1 T start=0x7fb388763290 14(7665) DEBUG: tm [t_lookup.c:1083]: t_check_msg(): DEBUG: t_check_msg: T already found! 14(7665) DEBUG: <core> [mem/shm_mem.c:101]: _shm_resize(): WARNING:vqm_resize: resize(0) called 14(7665) DEBUG: tm [t_reply.c:1591]: cleanup_uac_timers(): DEBUG: cleanup_uac_timers: RETR/FR timers reset 14(7665) DEBUG: <core> [tcp_main.c:2196]: tcpconn_send_put(): send from reader (7665 (14)), reusing fd 14(7665) DEBUG: <core> [tcp_main.c:2430]: tcpconn_do_send(): sending... 14(7665) DEBUG: <core> [tcp_main.c:2464]: tcpconn_do_send(): after real write: c= 0x7fb38875ecf8 n=399 fd=9 14(7665) DEBUG: <core> [tcp_main.c:2465]: tcpconn_do_send(): buf= SIP/2.0 202 OK Via: SIP/2.0/TCP 127.0.1.1:5060;branch=z9hG4bK-3002-1-0;rport=34680;received=192.168.88.88 CSeq: 1 SUBSCRIBE Call-ID: 1-3002@127.0.1.1 From: sip:c.vella@albourne.com;tag=1 To: sip:provisioning@albourne.com;tag=a6a1c5f60faecf035a1ae5b6e96e979a-1030 Expires: 3600 Contact: sip:192.168.88.85:5060;transport=tcp
--- End debug ---
I suspect I am not understanding this correctly. Is there a proper way around this? I wonder if I am wrong to think that textops Module manipulates the actual request message?
Thank you!
Regards,
Hi Christopher!
try this function before search_event: http://www.kamailio.org/docs/modules/4.3.x/modules/textopsx.html#textopsx.f....
It should help
BR
-- View this message in context: http://sip-router.1086192.n5.nabble.com/Handling-of-messages-with-manipulate... Sent from the Users mailing list archive at Nabble.com.
Hi Vasiliy!
try this function before search_event: http://www.kamailio.org/docs/modules/4.3.x/modules/textopsx.html#textopsx.f....
Thank you for pointing this out. It's exactly what I need.
-vella