[SR-Users] linphone & presence_xml ERROR
Pali Rohár
pali.rohar at gmail.com
Sat Jun 23 22:21:24 CEST 2018
Hi!
I'm using linphone 3.6.1 as SIP client and Kamailio 4.4.4 as proxy
server and registrar.
And every time I try to change online status (presence) in linphone
client, I see following error messages in kamailio server log:
ERROR: presence_xml [add_events.c:167]: xml_publ_handl(): bad body format
ERROR: presence [publish.c:443]: handle_publish(): in event specific publish handling
ERROR: tm [t_reply.c:533]: _reply_light(): ERROR: _reply_light: can't generate 500 reply when a final 415 was sent out
ERROR: sl [sl.c:269]: send_reply(): failed to reply stateful (tm)
ERROR: presence [utils_func.c:146]: send_error_reply(): sending 500 Server Internal Error reply
ERROR: presence [publish.c:492]: handle_publish(): failed to send error reply
So it looks like kamailio is not able to parse presence change which is
linphone doing. I captured traffic via tcpdump what linphone sends:
21:58:58.704792 IP (tos 0x68, ttl 64, id 64109, offset 0, flags [DF], proto UDP (17), length 32)
LINPHONE_IP_ADDRESS.5060 > KAMAILIO_IP_ADDRESS.5060: SIP
21:58:58.704919 IP (tos 0x68, ttl 64, id 64110, offset 0, flags [DF], proto UDP (17), length 752)
LINPHONE_IP_ADDRESS.5060 > KAMAILIO_IP_ADDRESS.5060: SIP, length: 724
PUBLISH sip:USER at HOST SIP/2.0
Via: SIP/2.0/UDP LINPHONE_IP_ADDRESS:5060;rport;branch=z9hG4bK2049418743
From: User <sip:USER at HOST>;tag=184282924
To: User <sip:USER at HOST>
Call-ID: 1435474953
CSeq: 26 PUBLISH
Content-Type: application/pidf+xml
Max-Forwards: 70
User-Agent: Linphone/3.6.1 (eXosip2/4.1.0)
Expires: 600
Event: presence
Content-Length: 353
<?xml version="1.0" encoding="UTF-8"?>
<presence xmlns="urn:ietf:params:xml:ns:pidf" xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model" xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid" entity="User <sip:USER at HOST>">
<tuple id="sg89ae">
<status><basic>closed</basic></status>
<contact priority="0.8">User <sip:USER at HOST></contact>
</tuple>
</presence>
21:58:58.710097 IP (tos 0x10, ttl 53, id 10255, offset 0, flags [none], proto UDP (17), length 473)
KAMAILIO_IP_ADDRESS.5060 > LINPHONE_IP_ADDRESS.5060: SIP, length: 445
SIP/2.0 407 Proxy Authentication Required
Via: SIP/2.0/UDP LINPHONE_IP_ADDRESS:5060;rport=5060;branch=z9hG4bK2049418743;received=EXTERNAL_IP_ADDRESS
From: User <sip:USER at HOST>;tag=184282924
To: User <sip:USER at HOST>;tag=515cb47c4c34ffa85b598d6b25676122.744d
Call-ID: 1435474953
CSeq: 26 PUBLISH
Proxy-Authenticate: Digest realm="HOST", nonce="NONCE"
Server: kamailio (4.4.4 (x86_64/linux))
Content-Length: 0
21:58:58.718147 IP (tos 0x68, ttl 64, id 64111, offset 0, flags [DF], proto UDP (17), length 940)
LINPHONE_IP_ADDRESS.5060 > KAMAILIO_IP_ADDRESS.5060: SIP, length: 912
PUBLISH sip:USER at HOST SIP/2.0
Via: SIP/2.0/UDP LINPHONE_IP_ADDRESS:5060;rport;branch=z9hG4bK1165141043
From: User <sip:USER at HOST>;tag=184282924
To: User <sip:USER at HOST>
Call-ID: 1435474953
CSeq: 27 PUBLISH
Proxy-Authorization: Digest username="USER", realm="HOST", nonce="NONCE", uri="sip:USER at HOST", response="RESP", algorithm=MD5
Content-Type: application/pidf+xml
Max-Forwards: 70
User-Agent: Linphone/3.6.1 (eXosip2/4.1.0)
Expires: 600
Event: presence
Content-Length: 353
<?xml version="1.0" encoding="UTF-8"?>
<presence xmlns="urn:ietf:params:xml:ns:pidf" xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model" xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid" entity="User <sip:USER at HOST>">
<tuple id="sg89ae">
<status><basic>closed</basic></status>
<contact priority="0.8">User <sip:USER at HOST></contact>
</tuple>
</presence>
21:58:58.781668 IP (tos 0x10, ttl 53, id 10259, offset 0, flags [none], proto UDP (17), length 380)
KAMAILIO_IP_ADDRESS.5060 > LINPHONE_IP_ADDRESS.5060: SIP, length: 352
SIP/2.0 415 Unsupported media type
Via: SIP/2.0/UDP LINPHONE_IP_ADDRESS:5060;rport=5060;branch=z9hG4bK1165141043;received=EXTERNAL_IP_ADDRESS
From: User <sip:USER at HOST>;tag=184282924
To: User <sip:USER at HOST>;tag=97d8e785fdf42bf9622a64c13c504961-3901
Call-ID: 1435474953
CSeq: 27 PUBLISH
Server: kamailio (4.4.4 (x86_64/linux))
Content-Length: 0
I replaced ip addresses in packets by KAMAILIO_IP_ADDRESS,
LINPHONE_IP_ADDRESS and EXTERNAL_IP_ADDRESS strings and also SIP account
by USER at HOST. Maybe it helps you.
Any idea why kamailio refuse presence update and reports those error
into error log?
Or is there any special setting which is needed for linphone or other
SIP clients for online status / presence support?
--
Pali Rohár
pali.rohar at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20180623/c5ebf67d/attachment.sig>
More information about the sr-users
mailing list