Search code examples
iptelephonycisco

Cisco IP Phone Showing Error TFTP Timeout


i just started setting up a Cisco IP phone 7941G (With the SIP firmware) and when i turn it on and plug it into my network, it comes up with this message TFTP Timeout, i am not using a TFTP server to configure my ip phone, i would like to do it manually by typing in the PBX ip and the other required information, so how do i get into the ip phones settings from this screen?

Photo of error https://i.sstatic.net/WZgjZ.jpg


Solution

  • Your phone is actually searching to download its firmware/operating system. In my experience, there is no way to bypass this other than connecting the phone to a network where there are DHCP boot options that point to a TFTP server setup with the SIP image.

    The confusing part is, the screen probably displays the SIP symbol, so it’s tempting to think that it doesn’t need to search for an image, but it does. The environment that this phone came from would have had the image for it to boot from when it restarts.

    [I can edit my answer with detailed instructions on how to set that up if you want]

    Edit: Okay, here is what I would do:

    1. The hard part is finding an image for your phone. If you have an account with Cisco, you may be able log in and search for an image there, but you will probably need to purchase a license. Otherwise, search Google for 'cisco 79xx sip image'. For me, the ninth result has the downloads.

    2. Once you have the image(s), I would start a fresh Debian based VM (Ubuntu Server on VirtualBox in my case.) In Settings->Network, set the guest to have a 'Bridged Adapter' on the hosts ethernet port.

    3. On the VM, edit /etc/network/interfaces with a static address and restart networking:

      $sudo nano /etc/network/interfaces

    Edit the following section:

    auto eth0
    iface eth0 inet static
    address 10.0.0.2
    netmask 255.255.255.0
    

    Save and exit.

    $sudo ifdown eth0 && sudo ifup eth0

    1. Install the servers you need:

      $sudo apt-get update && sudo apt-get install isc-dhcp-server tftp-hpa xinetd

    2. Edit the DHCP config file and restart DHCP server (this way, the DHCP server will answer the option 150 request that the 7900 phone sends when it starts. The phone needs to know where to look for its files.):

    $sudo nano /etc/dhcp/dhcpd.conf

    default-lease-time 600;
    max-lease-time 7200;
    option subnet-mask 255.255.255.0;
    option broadcast-address 10.0.0.255;
    option routers 10.0.0.2;
    option domain-name-servers 8.8.8.8;
    option domain-name "mydomain.example";
    #option voip-tftp-servers code 150 = ip-address;
    
    subnet 10.0.0.0 netmask 255.255.255.0 {
    range 10.0.0.50 10.0.0.100;
    #option voip-tftp-servers 10.0.0.3;
    } 
    

    $sudo service isc-dhcp-server restart

    1. Copy the files you located in step 1 to the tftpboot root (filenames probably different for your phone):

    $cp P0S3-08-6-00.bin /var/lib/tftpboot/

    Repeat for the following files:

    P0S3-08-6-00.sbn

    P0S3-08-6-00.loads

    P0S3-08-6-00.sb2

    P0S3-08-6-00.zip

    1. Add some config files:

    $sudo nano /var/lib/tftpboot/OS79XX.TXT

    Add:

    P0S3-08-6-00
    

    Save and exit.

    $sudo nano /var/lib/tftpboot/SIPDeafult.cnf

    Add:

    #Image Version
    image_version:P0S3-08-6-00
    

    Save and exit.

    1. May have to edit permissions on the files (I can't remember):

    $sudo chmod -R 777 /var/lib/tftpboot/

    1. At this point, you should be able to connect the phone and the server to an isolated switch (no other DHCP servers present) and reboot the phone and it will find its files. Be patient.