Asterisk freepbx with cisco 7940g sip phone

Dear Professional,

I am facing a challenge from past 1 week. I have free asterisk freepbx server installed in oracle vm virtualbox. I created 3 extensions, 2 for softphones(x-lite & media5-phone) & 1 for cisco 7940g ip phone. Now extensions work well with softwares and i can call each other without any problems. But cisco ip phone fails to register as i can see in asterisk info peers as host unspecified. i can see this cisco ip phone ip address in asterisk info channel only.
When i run tcpdump i can see some information for this cisco phone ip as icmp udp port 49110/49111 unreachable.

Not sure where it is going wrong! Is it because we need to buy separate module for hardphones like cisco?
Appreciate your help. Thank you.

… because? What’s wrong in SIP or networking terms?
Check your Asterisk sip debug and/or debug on the phone during the registration attempt.

Hi Andrew,

How can I check asterisk debug/ debug on the phone? I mean where can I find? Please could you assist.

Just 1 more info I missed. When I do tcpdump in asterisk, it shows icmp duo port 49110 unreachable for phone ip.
Soft phones looks OK as no error message.
Actually soft phone, asterisk & Cisco phone are on different vlans with inter vlan routing on. I can see soft phone on different vlan registers ok to asterisk but Cisco phone cannot register.
Thanks & appreciate your help.

What was the ICMP in response to, and in which direction.

If the Asterisk box sent the ICMP for a SIP request, that is right, as Asterisk will be listening on 5060, by default. If it received it when responding to the phone, you have a firewall or NAT problem.

Generally cherry picking symptoms is not helpful. We need to see the complete debugging trace, although it does help if you highlight interesting bits.

Thanks David, it was nat problem. Now it’s sorted after enabling nat in Cisco cone file.
Thanks for your help.