Rather than respond individually for requests for help with configuring Cisco 79x1 series phones with 3CX, I am posting a procedure here. These phones work well with 3CX other than MWI. They provide very good voice quality and the xml configuration files allow administrators to make global changes to phone settings with minimal effort. Using a Cisco 7941/7961 phone with 3CX Step 1: Install a TFTP Server on your network. There are several shareware programs available however for a production environment I would suggest a TFTP server that runs as a service such as Winagents TFTF Server. Step 2: Download the SIP firmware version you decide to use from Cisco by using your CCO account. These instructions will use SIP41.8-0-2SR1S as it is the only version known to work correctly with the message waiting indicator on non-Cisco IP-PBXs, however it will lack the Do Not Disturb feature of the newest version. I have not yet been able to get the MWI to work with 3CX however. Download the file cmterm-7941_7961-sip.8-0-2SR1.cop and change the file extension to tar.gz and unzip the file. Copy your unzipped files to the root directory of your TFTP server. Step 3: Create a SEPmacaddress.cnf.xml file for each of your phones. I suggest using the application Notepad2 (licensed under GPL) http://www.flos-freeware.ch/notepad2.html to create this file as it provides line numbers and syntax color coding. Modify the minimal configuration file below for your location specific settings. I have bolded the ones you will need to change. This configuration is for a 3CX extension number 100 and voice mail extension of 999. For an explanation of these settings see the posting “Cisco 79x1 xml configuration files for SIP” at http://www.voip-info.org/wiki. <device> <deviceProtocol>SIP</deviceProtocol> <sshUserId>ssh_username</sshUserId> <sshPassword>sshpassword</sshPassword> <devicePool> <dateTimeSetting> <dateTemplate>D-M-Y</dateTemplate> <timeZone>Alaskan Standard/Daylight Time</timeZone> <ntps> <ntp> <name>a_ntpserver</name> </ntp> </ntps> </dateTimeSetting> <callManagerGroup> <members> <member priority="0"> <callManager> <ports> <ethernetPhonePort>2000</ethernetPhonePort> <sipPort>5060</sipPort> <securedSipPort>5061</securedSipPort> </ports> <processNodeName>ip of 3CX server</processNodeName> </callManager> </member> </members> </callManagerGroup> </devicePool> <sipProfile> <sipProxies> <registerWithProxy>true</registerWithProxy> </sipProxies> <enableVad>false</enableVad> <!—Note – This following may need to be just g711 in later firmware versions --> <preferredCodec>g711ulaw</preferredCodec> <natEnabled></natEnabled> <phoneLabel>Cisco_Phone</phoneLabel> <sipLines> <line button="1"> <featureID>9</featureID> <featureLabel>100</featureLabel> <proxy>3CX server IP</proxy> <name>100</name> <displayName>username</displayName> <authName>100</authName> <authPassword>xxx</authPassword> <messagesNumber>999</messagesNumber> </line> <line button="2"> <featureID>21</featureID> <featureLabel>SpeedDial</featureLabel> <speedDialNumber>5551234</speedDialNumber> </line> </sipLines> <dialTemplate>DRdialplan.xml</dialTemplate> </sipProfile> <commonProfile> <phonePassword></phonePassword> </commonProfile> <loadInformation>SIP41.8-0-2SR1S</loadInformation> <versionStamp>1143565489-a3cbf294-7526-4c29-8791-c4fce4ce4c37</versionStamp> <directoryURL></directoryURL> <servicesURL></servicesURL> </device> Step 4: Create a DRdialplan.xml file and place this also in the root directory of your TFTP server. The example below is specifying how long to wait to dial after a specific digit or sequence of digits is dialed. <DIALTEMPLATE> <TEMPLATE MATCH="8" TIMEOUT="1" User="Phone"/> <TEMPLATE MATCH="9" TIMEOUT="1" User="Phone"/> <TEMPLATE MATCH="...." TIMEOUT="2" User="Phone"/> <TEMPLATE MATCH="......." TIMEOUT="1" User="Phone"/> </DIALTEMPLATE> Step 5: Configure your DHCP server with the specific IP address of your TFTP server. Cisco suggests option 150 for this however if your DHCP server does not offer the option 150 you may use option 66 and enter the IP address of your TFTP Server. Step 6: If your phone fails to provision or you make changes in your configuration file that are not reflected on the phone, connect to the phone on port 80 via your web browser. Select the Console logs and then the highest /FS/cache/log# which will be your latest log. Check for exceptions in parsing the configuration. This will indicate the configuration file entry that needs to be corrected. Disregard errors relating to “non-secure” or “CTL”.