Hello FreePBX community,
first of all, I would like to wish you all a happy new year!
And now to my problem.
I installed FreePBX to test some old SIP devices.
First of all, I created 2 Extensions (PJSIP) for X-Lite, to test the general function of my new PBX.
-> Works perfect!
My next goal was, to install the old SIP devices. The first challenge was, that they do not support a password.
-> I created a new PJSIP Extension without a “Secret”.
It still didn’t work, so I analyzed the TCP Dumps on my PBX.
When one X-Lite Notebook calls the other X-Lite Notebook, it looks like that:
X-Lite sends INVITE without Authorization Header
PBX answers 401 Unauthorized
X-Lite ACKS the 401 Unauthorized and sends a new INVITE with Authorization Header
-> Other side rings. As far as I understand SIP, this is absolutely normal.
Next step was, that I analyzed the TCP Dump of a call from my old SIP device. This looks like that:
Device sends INVITE without Authorization Header
PBX answers 401 Unauthorized
Device ACKS the 401 Unauthorized
-> Call does not work because device does not send the second INVITE.
I guess this means, that my device does not support a second INVITE.
So my question is, if it is possible, to make a call without the Authorization Header, since my device does not support that.
If you use chan_sip extensions without a SIP secret, they should work for you.
Until now, I had never tested a pjsip extension without a SIP secret, and I see the same thing. FreePBX generates an auth line for the endpoint even tho the secret is null, which causes the call to fail. Removing the auth line from the endpoint definition resolves this, but it’s not easily done by the end user. Since there are a non-zero quantity of SIP endpoints that don’t support authorization, so you may want to file a feature request for pjsip to support this.
I managed to do it by deleting the auth-part in the pjsip.endpoint.conf file.
I think this is really bad practice because it gets overwritten whenever I press the “Reload Config” button on the web interface.
I hope somebody knows a better way. the CHAN_SIP possibility did not work.
What goes wrong? Did you remember to have the device send to port 5160 (or whatever you have bind port set to)?
Other options:
Set up your device as a pjsip trunk w/no registration or authentication. You’ll be able to make and receive calls, but you won’t have voicemail, follow-me, forwarding, DND, etc. What kind of device is this? A trunk might be more suitable.
Set it up as a custom extension and put the config in the pjsip custom config files.
Possibly, you can modify the existing config as shown in
What goes wrong? Did you remember to have the device send to port 5160 (or whatever you have bind port set to)?
The problem is, my device can’t change the port from 5060 to 5160.
Other options:
Set up your device as a pjsip trunk w/no registration or authentication.
That’s actually not the correct way. My devices are normal SIP telephones - They are just really old and they run bad firmware (No Authentication, not many options,…)
Set it up as a custom extension and put the config in the pjsip custom config files.
Possibly, you can modify the existing config as shown in
I now managed to switch CHAN_SIP to port 5060 now and configurated my extensions from PJSIP to CHAN_SIP.
I am actually able to call FROM the devices now. But I can’t call TO them.
I always get “503 service unavailable” with reason “Subscriber absent”. Do you know how I can fix that?