Hi,
I'm having headaches with the debugging of my Unwanted Communication Reporting extension.
iPhone log says:
com.apple.IdentityLookup.MessageFilter[1774] <Error>: Extension's containing app (appID <private>) unauthorized to defer requests to host <private>
So I guess I have something wrong with my apple-app-site-association.
The AASA file I get with swcutil dl -d services.mydomain.com
{
classificationreport = {
apps = (
"<MYTEAMID>.com.mydomain.myapp",
"<MYTEAMID>.com.mydomain.myapp.unwanted"
);
};
}
where .com.mydomain.myapp is my containing app (bundle id).
and .com.mydomain.myapp.unwanted is my extension
The AASA file on the server is obviously in JSON format and correctly served from the server : services.mydomain.com
In the extension Info.plist I've set the following :
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>ILClassificationExtensionNetworkReportDestination</key>
<string>https://services.mydomain.com/path/unwanted/report</string>
</dict>
<key>NSExtensionMainStoryboard</key>
<string>MainInterface</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.identitylookup.classification-ui</string>
</dict>
I suppose the reply from classificationResponse method is correct since MessageFilter "tries" to send the request.
Where am I mistakening ?
Difficult to debug... MessageFilter's log keeps interesting data as private (so there is no way to check what it's actually doing). And I've found no way to go deeper in the debug process.
Many thanks
Emmanuel
SMS and Call Reporting
RSS for tagProvide extensions to manage unwanted communication using SMS and Call Reporting.
Posts under SMS and Call Reporting tag
13 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
I’m wonder if Apple can allow users to save a message within the messages (text messages) like Snapchat allows to easily reference a specific message
At present, I am developing a multimedia messaging application, but I have found that when sending messages through a mobile phone, Android can receive them, but iPhone cannot. By using Wireshark to capture packets, I can see that I have received a mms packet, but the log shows that the message parsing has failed(Because of unknown fields). Do you have any solutions?
Hi,
I have implemented VOIP calling feature in my application using OpenTok SDK and CallKit framework. Calling feature is working most of the time. But there is one strange issue I have come across.
During a call, if any external cellular call appears and if I decline that external call then my running voip call also disconnects. This is happening some of the iPhone devices.
iPhone config is as follows
Model : iPhone 11
iOS Version : 17.3
I have added loggers CXEndCallAction and -provider:performEndCallAction and debugged at my end . I found that CXEndCallAction is not executing from my end but still -provider:performEndCallAction is triggered by iOS along with my ongoing callUUID
This is very strange behaviour I am observing in one of my iPhone device. I have tested this in around 3-4 iPhone devices but i am facing this issue only in 1 iPhone .
Kindly help me here if anyone has solution around it .
Thanks
Dear Appple Dev Team,
we have developed an app to identify incoming phone calls via CallKit (https://developer.apple.com/documentation/callkit/cxcalldirectoryextensioncontext). This function works great. However, we are missing a similar function for SMS/iMessage sender identification. Is it possible to integrate this function into iOS.
Thanks
Markus
I'm new to iOS development, and not currently ready to pay Apple $99/y for the privilege of playing around with some APIs.
I would like to create an SMS/Call filter and reporting extension but got to a point where the "associated domain" entitlement is required.
Is there a way to get the entitlement for local development without enrolling for the Apple Developer Program?
When there is an ongoing call, if the user gets another one, we don't want to support multi-call and directly send the new call to the voicemail. For this operation what should be CXCallEndedReason?
My understanding is that remoteEnded is used when the call connected and then ended. unanswered might be the choice for me but would it cause any issue if i directly reject a call with this status (the difference between the incoming call and reject time would be too short)? There is also declinedElsewhere , which might be suitable
This issue did not occur until we mandated our workforce update to 17.2 to be compliant. Once users who had large contact lists updated, they started to experience delayed / freezing calls.
We utilize Microsoft Intune as our MDM, but I have to assume this is hitting other MDM's as well since this is a policy that the management profile portion of the software either has toggled on or off. The policy triggering this issue, if enabled is "Block viewing corporate documents in unmanaged apps".
I've linked a dummy google account with an imported contact list of 16k contacts (yes somehow we have a handful of folks who have this) and the issue replicates with this policy enabled.
With a mirrored configuration profile, minus this setting enabled, calls flow as they should. Even with the large contact list.
I have no clue if this is right place for this, but the issue still persists after updating my device to 17.3
Hi,
Since iOS 16, when we present a keyboard in the sms/call reporting extension, the app will crash with error:
failure in NSXPCConnectionWithEndpoint:configurator: of BSServiceConnection:0x1efcd9a78 (BSServiceConnection+NSXPCConnection.m:20) : Invalid condition not satisfying: endpoint
In ideas?
Furthermore, when reporting mms message with image, the sender phone is empty. And we are unable to determine what the number is that needs reporting.
Hi,
I have some scenario in which I need to reportIncoming to CallKit with same UUID 2 times. So I just need to know that, it will cause an issue of CallKit or with application.
I have followed every step to make sure UnwantedCommunicationReportingExtension will work with my app. Let me list here
Adding a new target UnwantedCommunicationReportingExtension to my project
Adding API endpoint to Info.plist
<dict>
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>ILClassificationExtensionNetworkReportDestination</key>
<string>https://api.mycompany.net/call/v2/main/report</string>
</dict>
<key>NSExtensionMainStoryboard</key>
<string>MainInterface</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.identitylookup.classification-ui</string>
</dict>
</dict>
</plist>
Added classificationreport to Associate domain in Capability section.
classificationreport:api.mycompany.net
Created an apple-app-site-association file without json extension and returned this when api.mycompany.net called. I don't know whether to add app's bundle id or extension's bundle id. So added both. Complete apple-app-site-association below
{
"classificationreport": {
"apps": [
"XXXXXX.com.company.appname.CallReport",
"XXXXXX.com.company.appname"
]
}
}
Checked the following website to ensure the file can be accessed. Both are displaying the file
https://app-site-association.cdn-apple.com/a/v1/api.mycompany.net
https://api.mycompany.net/.well-known/apple-app-site-association
But I cannot call API https://api.mycompany.net/call/v2/main/report. It always fails with the following error
Can anyone tell me what I'm missing? I tried for a week and was exhausted .
Hi,
I just have seen an issue in my project that the Unwanted Communication Reporting extension sends response over the network connection only ONCE after installing. In the second try, after pressing the Done button, I don't see any request sent to my external server. To send response again, I have to re-install the app.
But using SMS is still ok. Every time I press the Done button, the view used to compose SMS appears.
This is my Info.plist to send response over network connection:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>ILClassificationExtensionNetworkReportDestination</key>
<string>https://example.com/api</string>
</dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.identitylookup.classification-ui</string>
<key>NSExtensionPrincipalClass</key>
<string>$(PRODUCT_MODULE_NAME).UnwantedCommunicationReportingExtension</string>
</dict>
</dict>
</plist>
The classificationResponse() function is still hit every time I press the Done button, but no request is sent to my external server, except the first try. This is my sample code used to confirm that behavior:
// Provide a classification response for the classification request
override func classificationResponse(for request:ILClassificationRequest) -> ILClassificationResponse {
return ILClassificationResponse.init(action: .reportJunk)
}
In addition, the Message Filtering extension (in same app) is running as expected.
I'm using:
iOS 15
Xcode 13
Any comment is highly appreciated. Thanks.
Is it possible to write an iOS app or app extension to block an incoming call based on the area code (or some other portion of the incoming call number)?