Friday, 20 September 2013

Bypass Microsoft Exchange AntiSpam Filtering for a Specified Receive Connector

This article describes how to prevent a Specified Microsoft Exchange Receive Connector from being subjected to the AntiSpam Filtering features within Exchange's Hub Transport settings. This can be useful for allowing devices (such as printers) on the network to relay emails through your Exchange server using an Anonymous Authenticated Connection (see my other article Configuring Outgoing Mail Server SMTP Settings for Samsung Printers using the SyncThru HTTP Interface) as this often results in Exchange detecting the relay request as possible spam.

My Environment
Microsoft Exchange Version:  Microsoft Exchange Server 2007 SP3 (SBS2008) (Version No: 8.3) (How to Get Exchange Server Version via PowerShell)

If you are having trouble configuring a network device to use your Microsoft Exchange Server to relay SMTP (email) messages, it is worth turning on the logging facility for the Receive Connector that you have set up.

Open up the Exchange Management Console, and browse to Microsoft Exchange > Server Configuration > Hub Transport. You should then see a list of your Receive connectors. Ensure you have an appropriate Receive Connector set up (see screen shots below) and temporarily set the Protocol Logging Level to Verbose on the General tab to diagnose any email test failures you encounter during network device set up.

Ensure your Network Device's IP is listed within the Remote IP address section on the Network Tab (In my example below I have a small IP address range defined as that covers my Printer IP's to [See IP Calculator]).

 Ensure you are using Basic Authentication under the Authentication Tab:-
Check the Anonymous and Exchange Users check boxes to allow anonymous and Exchange authenticated connections to relay.

The Error
After applying these settings, and testing my Samsung Printer's SMTP Settings, the printer was unable to confirm the SMTP settings were working.

Looking at the Exchange Agent log, found on the Exchange Server here:-
C:\Program Files\Microsoft\Exchange Server\TransportRoles\Logs\AgentLog\AgentLog[DATE].LOG

I came across the following entry that coincided with the time of my Printer SMTP Configuration Test:-
2013-09-11T18:18:32.154Z,08D027A356EB1EC6,,,<103620.0007@t37>,SOMEUSER@MYDOMAIN.COM,SOMEUSER@MYDOMAIN.COM;,SOMEUSER@MYDOMAIN.COM,1,Content Filter Agent,OnEndOfData,RejectMessage,550 5.7.1 Message rejected as spam by Content Filtering.,SclAtOrAboveRejectThreshold,7,DV:3.3.5705.600;SV:3.3.4604.600;SID:SenderIDStatus None;TIME:TimeBasedFeatures

The Cause
The Message Rejected as spam by Content Filtering indicates that the Exchange Server decided the message was spam.
The Fix
One method to fix this error is to allow this particular Receive Connector to by-pass Exchange's Spam Filtering. This is achieved via a PowerShell command (substitute Printers with your Receive Connector Name!):-

Get-ReceiveConnector “Printers” | Add-ADPermission -User “NT Authority\Anonymous Logon” -AccessRights ExtendedRight -ExtendedRights ms-exch-bypass-anti-spam

.After running this command, your should now be able to relay email anonymously from a network device that has an IP address specified within the Receive Connector.

External Resources

How to Get Microsoft Exchange's Server Version Number via PowerShell or Outlook

This article describes the process in which you can access your Microsoft Exchange's version number via a PowerShell Command. This is useful to know to help ensure your server is up to date with the latest patches and service packs.

My Environment

  • Windows Server 2008
  • Microsoft Exchange Version ??? (That would defeat the object of this article!) 

Method 1: PowerShell Command
There are various PowerShell commands that can be used to access your Exchange Server's Version number. I use:-
Get-ExchangeServer | Format-Table Name, *Version*

Once you have your version number, you can find further information about it using the Microsoft Knowledge Base article on Build Number and Release Dates for Exchange Server.

Method 2: Microsoft Outlook
If you do not have immediate access to the Sever or PowerShell remote access, you can also find out the Exchange Server version from a client PC with Outlook by:-
  1. Start Outlook
  2. Hold CTRL whilst Right Clicking the Outlook Icon in the System Tray
  3. Select Connection Status
  4. In the final column of the General tab, you should see a Version column containing the Server Version No.

External Resources

Configuring Outgoing Mail Server SMTP Settings for Samsung Printers using the SyncThru HTTP Interface

This article describes the SMTP configuration process of a Samsung CLX-6260FR (and similar printers) via the SyncThru HTTP management interface to enable the printer to send email anonymously through a Microsoft Exchange Server.

By configuring SMTP settings, you can take advantage of using the printers to:-

  • Converts FAX to emails (reducing printer consumable usage)
  • Receive FAX Send/Receive confirmations by Email (Improve audit trail)
  • Send detailed Printer Status notifications (such as low toner, paper, jam and faults) to a specified account 
  • Receive regular status reports via email such as print volumes (Good for keeping track of your printer contracts and usage by end-users!)

My Environment
Printers (For this article, we assume these printers have already been configured for the network):
  • Samsung CLX-9251 (Firmware Version 6.M6.10)
  • Samsung CLX-6260FR (Firmware Version
  • Samsung CLP670ND (Firmware Version V2.20.01.51)
Mail Server:  Microsoft Exchange Server 2007 SP3 (SBS-2008) (Version No: 8.3 [How to Get Exchange Server Version via PowerShell])

  1. Open the Samsung Printer's 'SyncThru' HTTP Admin interface (http://[Printer_IPAddress]/
  2. Click Log In and enter the username and password (default: admin/sec00000)
  3. Click the Settings option in the top navigational menu and select Network Settings
  4. Select Outgoing Mail Server (SMTP) on the left menu.
  5. Under SMTP Server text box, specify the IP address of your Mail Server e.g:
  6. Enter your SMTP Port Number (Default: 25)
  7. Under the Advanced heading on the Default [From:] Address field, enter a suitable address such as (this address does not have to exist)
  8. Then hit the Save button at the top of the screen to save your settings.
  9. Hit the Test button under SMTP Configuration Test to check your settings are working correctly. Don't worry if this fails this first time (the test failed for me when sending anonymously!) as you may have to configure the associated Exchange Server's Receive Connector (you did set one up right?) to bypass Exchange's AntiSpam Hub Transport Configuration OR alternatively, you could specify an Exchange account's log in credentials under the SMTP Login Information section by ticking SMTP Requires Authentication box and entering your Login ID (DOMAIN\UserName) and Password and then hitting Save and Test again. 

Tuesday, 17 September 2013

Accessing Call Log History on Siemens OpenScape Telephone System

Objective: Accessing Telephone Call history on the Siemens OpenScape Office Telephone System
Below is a method that you should be able to use to extract telephone call history (both incoming and outgoing) from the Siemens OpenScape Office Telephone System. There is a tool called myReports that can be used to extract more detailed call information, but in my case, access to this tool was not available to me due to not having the relevant licensed modules on our telephone system.

My Environment
Telephone System: Siemens OpenScape Office
Version: OSO_V3_R3.6.0_007
Client PC: Windows 7 64Bit
Required Information (my environment details [not real!])
Telephone Server IP:
Telephone Server Username: MYUSERNAME@system
Telephone Server Password: MYPASSWORD

Method 1 - Call log information via Telephone Server URL
After trying to un-successfully run the Siemens myReports Software, a few Google searches later, I came across a PDF download from the Siemens Wiki Site (OpenScape Office V3 - Call Detailed Recording & Call Data Record Structure 2012-07-24) which referenced accessing the servlet available on the telephone system to retrieve call log information. Page 7 of this document indicated that a specially crafted URL containing a valid HTTP interface log in username and password within the parameters would allow access to call log information.

I tried this URL adjusting it to my environment and managed to get all our outgoing call information using:-

I could then see the following outgoing (info on how to change this is below...) call information in my web browser

It looks like there is some scope to run some automated script with a get command to download this call log info to a pipe-delimited text file for further analysis if desired.

Method 2 - Call log information via Siemens Accounting Manager Tool
Within the Siemens OpenScape Server, there is a Microsoft Windows MSI based tool called Siemens Accounting Manager that can be configured to retrieve call log information from the telephone server. The tool can be installed by logging into the HTTP/S interface of the telephone server ( and browsing to the Service Center section, it is listed under the Software section as Call Charge Manager.

The download URL should be something like
Once downloaded, unzip the files and run Accounting Manager.msi to start the install process.

Once installed you will need to open the application from the Start Menu and then configure the connection settings under the drop down menu of Settings > Connection
 Enter your Telephone Server's IP address, Port, Username and password.

Once entered, you may be prompted to restart the application. You will then need to get the application to download the call information from the telephone server using the drop down menu PBX > Retrieve Data option. Depending on how much data is in your telephone system and you network etc, this can take a while. (For me, it took around 10 minutes). I suspect application pulls this information using the servlet method described above in Method 1 as you specify the server IP, port, username and password.

My retrieve process seemed to hang at 99% even after leaving it to the next day so I had to run an CTRL+ ALT+DEL > Task Manager > End Task on the Application. Once restarted however, it seemed to function as intended with the data it downloaded on the first attempt being being displayed.

Once the data has been retrieved, you will need to configure the Filters to specify the date period and call types you wish to display. You can do this under CDR > Set Filters.

What about Incoming Call Data?
In our environment, the Telephone Server had not been configured to record incoming call statistics. I suspect that this was a default configuration to keep the telephone server's database quite lean therefore, snappy. To show incoming call statistics, I enabled incoming call logging under the HTTP interface of the telephone system found under Expert Mode > Telephony Server > Basic Settings > Call Charges > Check 'Log Incoming Calls'. Incoming calls after setting this option are then recorded by the server, however, this is basic call information (telephone number, date, duration) as call routing after hitting the systems attendant menu is not available unless the relevant add on module required for myReports is purchased.