Hi,
I have a SIP INVITE with “multipart/mixed” Content-Type that’s failing to match
iFC for SessionDescription. Below is the log from Sprout.
The fourth SPT in group 0 for SessionDescription’s m line = “message” should
evaluate to match, but it’s evaluating to not match. I looked at ifc.cpp file
based on the log and it looks like the codeline will only evaluate this if the
Content-Type is “application/sdp”:
if (msg->body &&
(!pj_stricmp2(&msg->body->content_type.type, "application")) &&
(!pj_stricmp2(&msg->body->content_type.subtype, "sdp")))
Shouldn't it also consider multipart body and look for the sdp to run the SPT
evaluation?
Thank you,
Alan Kwon
------------------------------------------------------------------------------------------------------------------------------------------------
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Verbose sproutletproxy.cpp:2487:
Routing Request msg INVITE/cseq=864586 (tdta0x7f66d42a1f80) (2504 bytes) to
downstream sproutlet scscf-proxy:
--start msg--
INVITE sip:[email protected] SIP/2.0
Route: <sip:sprout.demo.iot1.com;lr;service=scscf-proxy>
Record-Route: <sip:scscf.sprout.demo.iot1.com:5054;lr;billing-role=charge-orig>
Via: SIP/2.0/TCP
scscf.sprout.demo.iot1.com;branch=z9hG4bKPjsQV9J8nikwOXxD.rNAbtVLrTLc7i61DY
Via: SIP/2.0/UDP
xxx.xx.0.140:5060;received=xxx.xx.0.140;branch=z9hG4bK0cB0af77d08536ec87f
From: <tel:+18152579481>;tag=gK0c0b571d
To: <sip:[email protected];user=phone>
Call-ID: [email protected]
CSeq: 864586 INVITE
Max-Forwards: 68
Allow: INVITE, ACK, CANCEL, BYE, REGISTER, REFER, INFO, SUBSCRIBE, NOTIFY,
UPDATE, OPTIONS, MESSAGE, PUBLISH
P-Asserted-Identity: <sip:[email protected]>
Contact:
<sip:[email protected]:5762;transport=tcp;gr=urn:gsma:imei:35197909-002422->;+sip.instance="<urn:gsma:imei:35197909-002422->";+g.oma.sip-im
Record-Route: <sip:xxx.xx.0.140:5060;transport=udp;lr>
P-Preferred-Identity: <tel:+18152579481>
Allow: INVITE, ACK, BYE, CANCEL, NOTIFY, OPTIONS, MESSAGE, UPDATE
Contribution-ID: 6ec6a25a6e2a494ca799b33bd4e39999
Accept-Contact: *;+g.oma.sip-im
Subject: Pump
Supported: timer, replaces
Session-Expires: 3600
Min-SE: 90
MIME-Version: 1.0
P-Asserted-Identity: <tel:+18152579481>
Content-Type: multipart/mixed;boundary="sonus-content-delim"
Content-Length: 972
--sonus-content-delim
Content-Disposition: session; handling=required
Content-Length: 422
Content-Type: application/sdp
v=0
o=Sonus_UAC 582334 96029 IN IP4 172.27.0.140
s=SIP Media Capabilities
c=IN IP4 172.28.0.140
t=0 0
m=message 16559 TCP/MSRP *
a=setup:actpass
a=path:msrp://172.25.50.95:9/15b04feec8aa494f95cb6bcee06e2d55;tcp
a=accept-types:message/cpim application/im-iscomposing+xml
a=accept-wrapped-types:text/plain application/vnd.gsma.rcs-ft-http+xml
message/imdn+xml application/vnd.gsma.rcspushlocation+xml
a=msrp-cema
--sonus-content-delim
Content-Length: 319
Content-Type: message/cpim
NS: imdn <urn:ietf:params:imdn>
imdn.Disposition-Notification: positive-delivery, display
imdn.Message-ID: MsbsAhPj5lTXmoMSRd81dQqg
To: <sip:[email protected]>
From: <sip:[email protected]>
DateTime: 2018-06-28T21:34:32.767Z
Content-Length: 4
Content-Type: text/plain; charset=utf-8
Pump
--sonus-content-delim--
--end msg--
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug sproutletproxy.cpp:2504:
Network function boundary: yes ('icscf'->'scscf'/'scscf-proxy')
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug sproutletproxy.cpp:2504:
Network function boundary: yes ('icscf'->'scscf'/'scscf-proxy')
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug sproutletproxy.cpp:2517:
Internal network function boundary: yes
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug pjutils.cpp:736: Cloned
tdta0x7f66d42a1f80 to tdta0x7f66d4365620
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug sproutletproxy.cpp:1450:
Remove top Route header Route: <sip:sprout.demo.iot1.com;lr;service=scscf-proxy>
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug sproutletproxy.cpp:2115:
Adding message 0x7f66d4365c30 => txdata 0x7f66d43656c8 mapping
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Verbose sproutletproxy.cpp:1946:
scscf-proxy-0x7f66d4255170 pass initial request Request msg INVITE/cseq=864586
(tdta0x7f66d4365620) to Sproutlet
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Info scscfsproutlet.cpp:471: S-CSCF
received initial request
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug uri_classifier.cpp:139: home
domain: false, local_to_node: true, is_gruu: false, enforce_user_phone: false,
prefer_sip: true, treat_number_as_phone: false
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug uri_classifier.cpp:172:
Classified URI as 3
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug scscfsproutlet.cpp:945: Route
header references this system
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug scscfsproutlet.cpp:991: No ODI
token, or invalid ODI token, on request - logging ICID marker
739955c0-5d49-1036-00-00-00-50-56-bb-09-00 for B2BUA AS correlation
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug scscfsproutlet.cpp:1004: Got
our Route header, session case term, OD=None
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug uri_classifier.cpp:139: home
domain: true, local_to_node: false, is_gruu: false, enforce_user_phone: false,
prefer_sip: true, treat_number_as_phone: false
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug uri_classifier.cpp:172:
Classified URI as 4
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug acr.cpp:1797: Create RalfACR
for node type S-CSCF with role Terminating
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug acr.cpp:24: Created ACR
(0x7f66d4211ef0)
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug acr.cpp:170: Created S-CSCF
Ralf ACR
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug sproutletproxy.cpp:342:
Possible service name scscf will be used if sprout.demo.iot1.com is a local
hostname
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug sproutletproxy.cpp:302: Found
services param - scscf-proxy
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug scscfsproutlet.cpp:1242:
Looking up iFCs for sip:[email protected] for new AS chain
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug hssconnection.cpp:448: Making
Homestead request for /impu/sip%3A%2B18152570701%40demo.iot1.com/reg-data
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug a_record_resolver.cpp:57:
ARecordResolver::resolve_iter for host dime.demo.iot1.com, port 8888, family 2
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug utils.cpp:446: Attempt to
parse dime.demo.iot1.com as IP address
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Verbose dnscachedresolver.cpp:468:
Check cache for dime.demo.iot1.com type 1
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug dnscachedresolver.cpp:578:
Pulling 2 records from cache for dime.demo.iot1.com A
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug baseresolver.cpp:192: Found 2
A/AAAA records, creating iterator
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug utils.cpp:446: Attempt to
parse dime.demo.iot1.com as IP address
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug baseresolver.cpp:812:
Attempting to get 1 targets for host:dime.demo.iot1.com. allowed_host_state = 3
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug baseresolver.cpp:587:
172.27.0.52:8888;transport=TCP has state: WHITE
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug baseresolver.cpp:587:
172.27.0.51:8888;transport=TCP has state: WHITE
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug baseresolver.cpp:587:
172.27.0.52:8888;transport=TCP has state: WHITE
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug baseresolver.cpp:883: Added a
whitelisted server to targets, now have 1 of 1
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug connection_pool.h:207: Request
for connection to IP: 172.27.0.52, port: 8888
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug connection_pool.h:220: Found
existing connection 0x7f6814028970 in pool
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug httpclient.cpp:557: Set
CURLOPT_RESOLVE: dime.demo.iot1.com:8888:172.27.0.52
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug httpclient.cpp:588: Sending
HTTP request :
http://dime.demo.iot1.com:8888/impu/sip%3A%2B18152570701%40demo.iot1.com/reg-data
(trying 172.27.0.52)
28-06-2018 21:34:33.338 UTC [7f670ae0d700] Debug thread_dispatcher.cpp:117:
Pausing stopwatch due to HTTP request to
http://dime.demo.iot1.com:8888/impu/sip%3A%2B18152570701%40demo.iot1.com/reg-data
28-06-2018 21:34:33.339 UTC [7f670ae0d700] Debug httpclient.cpp:956: Received
header http/1.1200ok with value
28-06-2018 21:34:33.339 UTC [7f670ae0d700] Debug httpclient.cpp:957: Header
pointer: 0x7f670ae0c3d0
28-06-2018 21:34:33.339 UTC [7f670ae0d700] Debug httpclient.cpp:956: Received
header content-length with value 3387
28-06-2018 21:34:33.339 UTC [7f670ae0d700] Debug httpclient.cpp:957: Header
pointer: 0x7f670ae0c3d0
28-06-2018 21:34:33.339 UTC [7f670ae0d700] Debug httpclient.cpp:956: Received
header content-type with value text/plain
28-06-2018 21:34:33.339 UTC [7f670ae0d700] Debug httpclient.cpp:957: Header
pointer: 0x7f670ae0c3d0
28-06-2018 21:34:33.339 UTC [7f670ae0d700] Debug httpclient.cpp:956: Received
header with value
28-06-2018 21:34:33.339 UTC [7f670ae0d700] Debug httpclient.cpp:957: Header
pointer: 0x7f670ae0c3d0
28-06-2018 21:34:33.339 UTC [7f670ae0d700] Debug thread_dispatcher.cpp:123:
Resuming stopwatch after HTTP request to
http://dime.demo.iot1.com:8888/impu/sip%3A%2B18152570701%40demo.iot1.com/reg-data
28-06-2018 21:34:33.339 UTC [7f670ae0d700] Debug httpclient.cpp:628: Received
HTTP response: status=200, doc=<ClearwaterRegData>
<RegistrationState>REGISTERED</RegistrationState>
<PreviousRegistrationState>REGISTERED</PreviousRegistrationState>
<IMSSubscription xsi="http://www.w3.org/2001/XMLSchema-instance"
noNamespaceSchemaLocation="CxDataType.xsd">
<PrivateID>[email protected]</PrivateID>
<ServiceProfile>
<PublicIdentity>
<Identity>sip:[email protected]</Identity>
</PublicIdentity>
<PublicIdentity>
<Identity>tel:+18152570701</Identity>
</PublicIdentity>
<InitialFilterCriteria>
<Priority>0</Priority>
<TriggerPoint>
<ConditionTypeCNF>0</ConditionTypeCNF>
<SPT>
<ConditionNegated>0</ConditionNegated>
<Group>0</Group>
<Method>INVITE</Method>
</SPT>
<SPT>
<ConditionNegated>1</ConditionNegated>
<Group>0</Group>
<SIPHeader>
<Header>User-Agent</Header>
<Content>IVC</Content>
</SIPHeader>
</SPT>
<SPT>
<ConditionNegated>1</ConditionNegated>
<Group>0</Group>
<SIPHeader>
<Header>P-Preferred-Service</Header>
<Content>(callcomposer|callunanswered|sharedmap|sharedsketch)</Content>
</SIPHeader>
</SPT>
<SPT>
<ConditionNegated>0</ConditionNegated>
<Group>0</Group>
<SessionDescription>
<Line>m</Line>
<Content>message</Content>
</SessionDescription>
</SPT>
<SPT>
<ConditionNegated>0</ConditionNegated>
<Group>1</Group>
<Method>MESSAGE</Method>
</SPT>
<SPT>
<ConditionNegated>1</ConditionNegated>
<Group>1</Group>
<SIPHeader>
<Header>User-Agent</Header>
<Content>IVC</Content>
</SIPHeader>
</SPT>
<SPT>
<ConditionNegated>0</ConditionNegated>
<Group>2</Group>
<Method>SUBSCRIBE</Method>
</SPT>
<SPT>
<ConditionNegated>0</ConditionNegated>
<Group>2</Group>
<SIPHeader>
<Header>Event</Header>
<Content>conference</Content>
</SIPHeader>
</SPT>
<SPT>
<ConditionNegated>0</ConditionNegated>
<Group>3</Group>
<Method>REFER</Method>
</SPT>
<SPT>
<ConditionNegated>0</ConditionNegated>
<Group>3</Group>
<SIPHeader>
<Header>Accept-Contact</Header>
<Content>(g.oma.sip-im|service.ims.icsi.oma.cpm.session)</Content>
</SIPHeader>
</SPT>
</TriggerPoint>
<ApplicationServer>
<ServerName>sip:sc01.demo.iot1.com:5510;transport=TCP</ServerName>
<DefaultHandling>1</DefaultHandling>
</ApplicationServer>
</InitialFilterCriteria>
<InitialFilterCriteria>
<Priority>2</Priority>
<TriggerPoint>
<ConditionTypeCNF>0</ConditionTypeCNF>
<SPT>
<ConditionNegated>0</ConditionNegated>
<Group>0</Group>
<Method>REGISTER</Method>
<Extension>
<RegistrationType>0</RegistrationType>
</Extension>
</SPT>
<SPT>
<ConditionNegated>0</ConditionNegated>
<Group>1</Group>
<Method>REGISTER</Method>
<Extension>
<RegistrationType>1</RegistrationType>
</Extension>
</SPT>
</TriggerPoint>
<ApplicationServer>
<ServerName>sip:sc01.demo.iot1.com:5510;transport=TCP</ServerName>
<DefaultHandling>1</DefaultHandling>
</ApplicationServer>
</InitialFilterCriteria>
</ServiceProfile>
</IMSSubscription>
</ClearwaterRegData>
28-06-2018 21:34:33.339 UTC [7f670ae0d700] Debug baseresolver.cpp:672:
Successful response from 172.27.0.52:8888;transport=TCP
28-06-2018 21:34:33.339 UTC [7f670ae0d700] Debug connection_pool.h:244: Release
connection to IP: 172.27.0.52, port: 8888 to pool
28-06-2018 21:34:33.339 UTC [7f670ae0d700] Debug
event_statistic_accumulator.cpp:32: Accumulate 1761 for 0x2d4e720
28-06-2018 21:34:33.339 UTC [7f670ae0d700] Debug
event_statistic_accumulator.cpp:32: Accumulate 1761 for 0x2d4e798
28-06-2018 21:34:33.339 UTC [7f670ae0d700] Debug
event_statistic_accumulator.cpp:32: Accumulate 1761 for 0x2d53300
28-06-2018 21:34:33.339 UTC [7f670ae0d700] Debug
event_statistic_accumulator.cpp:32: Accumulate 1761 for 0x2d533a8
28-06-2018 21:34:33.339 UTC [7f670ae0d700] Debug sprout_xml_utils.cpp:70:
Processing Identity node from HSS XML - sip:[email protected]
28-06-2018 21:34:33.339 UTC [7f670ae0d700] Debug sprout_xml_utils.cpp:70:
Processing Identity node from HSS XML - tel:+18152570701
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug scscfsproutlet.cpp:1248:
Successfully looked up iFCs
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug aschain.cpp:55: Creating
AsChain 0x7f66d4179500 with 2 iFCs and adding to map
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug aschain.cpp:57: Attached ACR
(0x7f66d4211ef0) to chain
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug scscfsproutlet.cpp:1376:
S-CSCF sproutlet transaction 0x7f66d4255170 linked to AsChain
AsChain-term[0x7f66d4179500]:1/2
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug acr.cpp:210: Set record type
for P/S-CSCF
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug acr.cpp:237: Dialog-initiating
INVITE => START_RECORD
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug acr.cpp:1596: Found
P-Charging-Vector header, store information
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Info scscfsproutlet.cpp:635: Found
served user, so apply services
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug ifc.cpp:428: SPT class Method:
result true
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug ifc.cpp:428: SPT class
SIPHeader: result false
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug ifc.cpp:428: SPT class
SIPHeader: result false
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug ifc.cpp:428: SPT class
SessionDescription: result false
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug ifc.cpp:428: SPT class Method:
result false
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug ifc.cpp:428: SPT class
SIPHeader: result false
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug ifc.cpp:428: SPT class Method:
result false
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug ifc.cpp:428: SPT class
SIPHeader: result false
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug ifc.cpp:428: SPT class Method:
result false
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug ifc.cpp:428: SPT class
SIPHeader: result true
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug ifc.cpp:582: iFC does not match
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug ifc.cpp:589: AND each SPT
match result to determine group result.
OR each group result to determine overall iFC match.
SPT in group 0 is matched.
SPT in group 0 is matched.
SPT in group 0 is matched.
SPT in group 0 is not matched.
SPT in group 1 is not matched.
SPT in group 1 is matched.
SPT in group 2 is not matched.
SPT in group 2 is not matched.
SPT in group 3 is not matched.
SPT in group 3 is matched.
Group 0 is not matched.
Group 1 is not matched.
Group 2 is not matched.
Group 3 is not matched.
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug ifc.cpp:428: SPT class Method:
result false
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug ifc.cpp:428: SPT class Method:
result false
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug ifc.cpp:582: iFC does not match
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Debug ifc.cpp:589: AND each SPT
match result to determine group result.
OR each group result to determine overall iFC match.
SPT in group 0 is not matched.
SPT in group 1 is not matched.
Group 0 is not matched.
Group 1 is not matched.
28-06-2018 21:34:33.340 UTC [7f670ae0d700] Info scscfsproutlet.cpp:1529:
Completed applying terminating services
[cid:7E8907A8-95D3-4E42-84B2-4DE94ABAB638]<http://www.interoptechnologies.com/>
ALAN KWON
Senior Software Engineer
T: +1 972-753-1865 (Texas)
F: +1 239-425-6845
Confidentiality Notice: The information in this e-mail and in any attachment
may contain information which is legally privileged. It is intended only for
the attention and use of the named recipient. If you are not the intended
recipient, you are not authorized to retain, disclose, copy or distribute the
message and/or any of its attachments. If you received this e-mail in error,
please notify me and delete this message.
_______________________________________________
Clearwater mailing list
[email protected]
http://lists.projectclearwater.org/mailman/listinfo/clearwater_lists.projectclearwater.org