I’ve recently built an Asterisk pabx to run all my phone systems for Amberdms. In testing I found everything to be working correctly, with the exception of my Linksys SPA942 desk phone.
The phone worked fine, except for when it received calls, the caller would not be able to hear anything, and the call would disconnect after 15 seconds everytime.
Further testing found that:
- Calls from the Linksys to any phone (internal or external) worked fine.
- Calls to & from software-based phones on the same network segment as the Linksys worked fine.
Whilst one-directional audio is typical of NAT issues, this wasn’t the case since the network was fully routed between the phone and the PABX.
After performing a packet dump on the local router, I found that the dumps showed RTP packets arriving at the phone from the PABX, but the phone was not returning any, meaning that the phone was not sending anything back!
After a long period of debugging, I enabled “sip set debug” on the PABX and found the following message in the output:
set_destination: Parsing <1000> for address/port to send to [Aug 30 21:17:31] WARNING: chan_sip.c:5845 set_destination: Can't find address for host '1000'
I had configured the phone with the display string of “Jethro Carr <1000>”, and it seems that the “<1000>” was being interpreted by the PABX and used for the address of the phone – which explains the weird “can’t find adddress” messages I was receiving.
After changing the display string to just “Jethro Carr” the problem was resolved!