- Joined
- Jul 16, 2017
- Messages
- 14
- Reaction score
- 0
The setup is follows:
Cisco 2600 series model 2620 router running Cisco IOS version 12.3 or earlier, with 2 first generation FXO VWIXCs installed, setup as a POTS to SIP trunk gateway.
The latest 3CX running in a virtual host on ESXi and one of the free 3CX softphones on a PC registered into 3CX.
The latest FreePBX 13 running in another virtual host on the same ESXi system and the free x-lite softphone running on a PC registered into FreePBX.
The short summary:
FreePBX works, 3CX does not.
The long explanation - and request for further things to investigate:
Cisco voice version IOS 12.3 and earlier DO NOT support sip authentication with a userID/password. They ALSO do not support SIP registration. This feature was first introduced in IOS version 12.3T (technology release) In short, every "cisco config for Asterisk" you see floating around out there on the Internet that lacks an authorization statement under the sip grouping is probably from IOS 12.2 or earlier. (IOS 12.3 was a very limited release and it's main interest to Asterisk is that it added in RFC2388 compliance for dtmf relaying) Unfortunately, Cisco dropped support for the Cisco 2600 series hardware in IOS 12.4 and every newer Cisco router (2800, etc.) in that line requires a next generation version 2 VWIC hardware card with the exception of the 1760.
Now getting back to the problem. Asterisk has available 2 channel drivers named chan_sip and chan_pjsip. chan_pjsip was introduced in Asterisk version 12. UNFORTUNATELY it appears that "authentication-less" SIP connections DO NOT WORK with chan_pjsip due either to bugs or configuration issues.
3CX certainly used chan_sip in the past. I do not know if it uses chan_pjsip now but if it does, then Cisco IOS version 12.3 and earlier CANNOT initiate a SIP connection to it. (3CX can initiate a connection to IOS 12.3 and earlier for outbound calling, however) This is true even if the trunk is specifically defined as a "Generic with authentication determined by IP address"
FreePBX by contrast allows the user to run BOTH the channel drivers. BY default pjsip listens on the traditional 5060 port. chan_sip listens on port 5160. So, it is possible to manually define a trunk in FreePBX that will connect to these devices that will work for both in and outbound calls.
But, it is not possible (not that I can see) to define one in 3CX that functions. You can define it - but it still expects to have registration coming in from the device. This limits 3CX pretty significantly in my view. FreePBXs Linux .iso distribution includes a driver for a hardware voice card, the idea I suppose is you can install it on a PC and install a card in that and plug your trunks in there. But, 3CX is very much optimized for running in a virtual host. Thus, trunks can only be connected via SIP in that configuration, thus a FXO gateway is a requirement unless you are going full SIP trunks (which people may not want to for call quality reasons)
Obviously, a solution is to update to newer Cisco gear, or newer firmware or whatever on that side. And possibly there is a buried configuration option in 3CX that will allow register-less and authorization-based-on-IP-address to work. If so, I would greatly appreciate someone posting this. Otherwise, I would ask the 3CX developers to review the distro and make whatever fixes are needed - whether this is additional configuration options in 3CX or a fix of the pjsip driver.
Cisco 2600 series model 2620 router running Cisco IOS version 12.3 or earlier, with 2 first generation FXO VWIXCs installed, setup as a POTS to SIP trunk gateway.
The latest 3CX running in a virtual host on ESXi and one of the free 3CX softphones on a PC registered into 3CX.
The latest FreePBX 13 running in another virtual host on the same ESXi system and the free x-lite softphone running on a PC registered into FreePBX.
The short summary:
FreePBX works, 3CX does not.
The long explanation - and request for further things to investigate:
Cisco voice version IOS 12.3 and earlier DO NOT support sip authentication with a userID/password. They ALSO do not support SIP registration. This feature was first introduced in IOS version 12.3T (technology release) In short, every "cisco config for Asterisk" you see floating around out there on the Internet that lacks an authorization statement under the sip grouping is probably from IOS 12.2 or earlier. (IOS 12.3 was a very limited release and it's main interest to Asterisk is that it added in RFC2388 compliance for dtmf relaying) Unfortunately, Cisco dropped support for the Cisco 2600 series hardware in IOS 12.4 and every newer Cisco router (2800, etc.) in that line requires a next generation version 2 VWIC hardware card with the exception of the 1760.
Now getting back to the problem. Asterisk has available 2 channel drivers named chan_sip and chan_pjsip. chan_pjsip was introduced in Asterisk version 12. UNFORTUNATELY it appears that "authentication-less" SIP connections DO NOT WORK with chan_pjsip due either to bugs or configuration issues.
3CX certainly used chan_sip in the past. I do not know if it uses chan_pjsip now but if it does, then Cisco IOS version 12.3 and earlier CANNOT initiate a SIP connection to it. (3CX can initiate a connection to IOS 12.3 and earlier for outbound calling, however) This is true even if the trunk is specifically defined as a "Generic with authentication determined by IP address"
FreePBX by contrast allows the user to run BOTH the channel drivers. BY default pjsip listens on the traditional 5060 port. chan_sip listens on port 5160. So, it is possible to manually define a trunk in FreePBX that will connect to these devices that will work for both in and outbound calls.
But, it is not possible (not that I can see) to define one in 3CX that functions. You can define it - but it still expects to have registration coming in from the device. This limits 3CX pretty significantly in my view. FreePBXs Linux .iso distribution includes a driver for a hardware voice card, the idea I suppose is you can install it on a PC and install a card in that and plug your trunks in there. But, 3CX is very much optimized for running in a virtual host. Thus, trunks can only be connected via SIP in that configuration, thus a FXO gateway is a requirement unless you are going full SIP trunks (which people may not want to for call quality reasons)
Obviously, a solution is to update to newer Cisco gear, or newer firmware or whatever on that side. And possibly there is a buried configuration option in 3CX that will allow register-less and authorization-based-on-IP-address to work. If so, I would greatly appreciate someone posting this. Otherwise, I would ask the 3CX developers to review the distro and make whatever fixes are needed - whether this is additional configuration options in 3CX or a fix of the pjsip driver.
Last edited: