• Please review our updated Terms and Rules here

MoIP: How do we make modem calls over IP? (and general chat about phone networks and modems, T1, E1, BRI 56k etc)

However I would think that there must had taken place some work on modem standards elsewhere too.
To my knowledge, by the time this problem had been discovered, modem standards had basically all converged under the ITU, excluding a few high speed protocols that were available in the states. It is also my understanding that around WWII most of the world's telephone systems were modified (or had converters to interoperate with) for the Bell system to make international calling easier. Many other countries already had existing Bell networks anyways.
Sure, Europe was way more split with different countries having different telecom monopolies, and later different competing telecom companies, using different hardware suppliers and whatnot. But I would think that many of these would had used better "sound" quality ADCs than those you mention, simply due to the switch to digital taking place later on.
The "problem" is that when these standards were being put in black and white for equipment to be made, long distance trunks used FDM, like L carrier, to transmit multiple calls on a line. This means you have rather close tolerances (and often crosstalk!) for your frequency band. The Bell system already included filters in phones, so it was a reasonable expectation to just filter out what you wanted for the trunk anyways. The design was intended for I believe 300-4000hz or so. Thus, lines were always designed for that frequency band, and when digital trunks came around with T carrier by the late 60s, the DACs were built to sample at the almquist frequency to help with clipping.
Besides, the carbon microphones in actual Bell phones (the only phones that were allowed to be connected to the network by law for the better part of a century) didn't have that kind of frequency response anyways.

I've heard tales of local calls in the 60s and 70s being unfiltered because the local exchange had a crossbar or something, but I'm doubtful that went anywhere meaningful. By the time modems started hitting these barriers in the late 80s it was already far too late for any major population to be able to reliably use a "clear line" like that, and so modems are simply not designed to operate in this way. The expectation has always been that they will be filtered, or have load coils, etc etc since it was always set in stone. The exception to this was leased lines but that's a whole other story.

Patton also makes a couple series of ATAs - they call them SmartNode. If the grandstream doesn't produce favorable results I might give one of them a try. They are in a higher price tier which 1) sucks but 2) means they might be better?

Unlike the offerings from cisco and grandstream they also have "modern" models with gig-e too.
I've never used a Patton SmartNode, but I know they're in direct competition with the Adtran Total Access, which you can get for absolutely no money. I've seen TA912s go for as low as $20 used on eBay. My setup included originally a TA924e 2G, and now a TA924e 3G, both of which have reliably passed 54666 on my local network (analog to PRI) and I've been able to get a peak of 49333 from a "real" 56K ISP through it externally. It has a lot of SIP options and it's really easy to configure, so that's the route I went. The third gen TA900e series has a gigabit port and four PRIs, network or user. If you want something smaller, I think the TA600 series can probably do all the same stuff for potentially even lower cost.

I assume you mean they never implemented it/disabled in their RAS?
Yes, USR/3Com never even tried to implement it, and Patton eventually disabled it. As far to my knowledge, all "real" v.92 modems support PCM uplink, but I've never actually seen or heard a connection made with it. One bit sent during the ans section of the call determines whether PCM uplink is available or not. If the RAS (or whatever digital modem you call) doesn't have this bit set, you don't get PCM uplink, they don't even try for it.
What about connecting two v.92 modems together on a local analog PBX? Was the PCM uplink feature deprecated in the modems as well or just the RAS?
As far to my knowledge, PCM uplink is available and enabled in most actual v.92 modems. This might be an erroneous assumption on my part, my sample size is only a few dozen. I don't really see any reason they shouldn't be able to PCM to each other at 48K, but my understanding is that if neither modem claims to be digital, they will always drop PCM as an option immediately and go for v.34bis Trellis code, regardless of line quality or other capabilities.
 
Initial results with the grandstream are disappointing. It's no worse than the cisco ATA but not really any better either. Still seeing round trip latency (as measured by the analog modems) in the 500-700ms range.

Surely there's got to be a device that will codec g.711 faster...
 
Initial results with the grandstream are disappointing. It's no worse than the cisco ATA but not really any better either. Still seeing round trip latency (as measured by the analog modems) in the 500-700ms range.

Surely there's got to be a device that will codec g.711 faster...
Is this going over IP or just port to port?
 
But I would think that many of these would had used better "sound" quality ADCs than those you mention, simply due to the switch to digital taking place later on.
They decided instead to send 30 channels down a line instead of 23 and call it E1, presumably because the lines were in better shape. And as the 64kb/s standard was already spec'd in T1, and considered good enough, why improve on it? Increase it, and you have less channels = more cost. Also the whole point of T1/E1 is to save costs by reducing the number of trunk lines. T1 was designed in '62 E1 was the '70s, so 64kb/s and 8bit PCM may have been the most they could afford to deploy.

I doubt they gave much consideration for modems back then. I'm surprised they didn't improve the quality with VoIP in some kind of fat-SIP that's uncompressed PCM. But having said that, maxtherabbit's experiments (over the internet) do confirm you can do a modem call over SIP. So perhaps it's the good-enough area again.

On the raw DS0 64kb/s stream over the internet. You can send calls over ATM, and Linux has atmtcp. This is ATM over TCP. and allows for virtual circuits to be created. https://man.archlinux.org/man/atmtcp.8.en Dunno much about it though.
 
They decided instead to send 30 channels down a line instead of 23 and call it E1, presumably because the lines were in better shape. And as the 64kb/s standard was already spec'd in T1, and considered good enough, why improve on it? Increase it, and you have less channels = more cost. Also the whole point of T1/E1 is to save costs by reducing the number of trunk lines. T1 was designed in '62 E1 was the '70s, so 64kb/s and 8bit PCM may have been the most they could afford to deploy.
I were thinking about the analogue/filter quality of the ADCs. Don't know when digitization happened in various places in Europe, but I know that there were analogue mechanical exchanges in use in the mid 1990's in Sweden, at least at the time 14400bps modems were in use. I remember that when the unannounced changeover happened I couldn't dial with the pulse rating set at 38 (IIRC default/standard = 70) with my 14k4 modem, and a bit of experimentation showed that 40 was the lowest value that worked. Or perhaps this was how fast DTMF tones could be sent? Most, probably all, electromechanical exchanges got add-on tone-to-pulse converters and I think it was faster to use DTMF and let the converters do their thing than pulse dial myself, or maybe I just imagined that.

Re improved sound for VoIP: Afaik at least cell phones got better quality eventually. I remember when enhanced full rate and half rate for GSM were a new thing. I wonder if it's possible anywhere to connect via VoIP and achieve better sound quality than what 64kbps 8kHz uncompressed can do? I.E. is it possible to use any of the better sounding cell phone encodings over VoIP?

I think it's a bit confusing that there is ATM, T1/E1 and ISDN PRI which seems to be somewhat the same thing, but perhaps not really fully, kind of sort of, perhaps.
 
Is this going over IP or just port to port?
IP. The way I've been testing is to register each FXS port to a different subaccount on voip.ms and then use the internal extension number to call one from the other. So it's still a "loopback call" in the sense that I'm calling my own equipment but it is traversing the voip.ms server.

As a baseline, I did the same test from my premise through the same voip.ms server using MicroSIP (softphone app which logs latency and jitter metrics) and my desktop Cisco IP phone. Round trip latency was 10ms. I don't know if MicroSIP includes the decode latency in this metric (I suspect not) but this at least tells us that the packets are not spending an unreasonable amount of time in da cloud.

I made a lowball offer on a Patton SmartNode 4112 on ebay last night and the guy accepted it. So I'll be able to compare that one soon. I did look for any cheap TA900 series stuff, but there was nothing available right now that wasn't broken.
 
Last edited:
I am able to connect to WebTV using the original box with its dial up modem on Comcast land line.
 

Attachments

  • webtv1.JPG
    webtv1.JPG
    39.1 KB · Views: 5
Still doing testing with the Grandstream device but so far it seems consistently about 200ms WORSE than the Cisco ATA. I have both of them setup side by side on my PBX and make modem calls back to back to a BBS on a "real" landline using each ATA. The GS gives me a RTT of about 200ms higher on average.

I've poured over all the configuration options to see if there's anything I'm missing, but there are 50000 of them so it's possible I've overlooked something. I've also tried a few different firmware revisions, including the latest.
 
Last edited:
Ok it would seem the drastic swings in latency were not attributable to the ATA but instead to the voip.ms servers. Both of the Washington servers give wildly variable results but I am tentatively getting more consistent results with one of the New York ones. It's shaping up like the cisco and grandstream ATAs have roughly the same performance for modem use. Which is still less than I'd hoped - best case to a real landline is still about 375ms RTT
 
How about a DIY solution using a sound card and some analog circuitry (plus a few I/O pins) to make it act as a phone line?

You could emulate two lines with every sound card as it's in stereo, and for those "home studio" type cards you could emulate more lines. The latency would just be whatever the PCI bus and whatnot introduces, i.e. negligible. I don't know how hard/easy it would be to write software for it to interface with for example Asterisk. The analogue circuit is fairly easy. Either use a transformer or OP amps for echo cancellation, or just ignore that and do it fully in software, and then just a voltage/current detector to indicate on/off hook to the computer, and an output that drives a relay that connects ring AC voltage, plus a circuit that immediately disconnects the ring voltage if the connected phone/modem goes off hook, and also a circuit that disables the ring signal as long as the connected device is off hook. Perhaps add some sanity check for the ring signal to avoid it being switched on by the wrong software (if using some generic port for the control signals).

Especially some of the home studio type cards can sync their clocks via S/PDIF and thus you can sync up a bunch of cards to run at an identical clock, and if you also use some E1/T1 card or whatnot with Asterisk you could also take the clock from that card somehow and use it to generate an idle S/PDIF signal if you want everything to use the same clock.
 
The Patton Smartnode 4112 is nice. I'd say for anyone wanting to setup a basic analog ATA for modem use this is definitely the one to get. Much better choice than the Cisco ATA191 or Grandstream HT802.

That being said, it is a professional device and that shows. Both in the quality and in the learning curve for setup. If anyone is interested I can post my config file for use with voip.ms.

I think I'm going to look into Anveo direct though, they don't proxy the media stream like voip.ms does - it's a direct RTP connection to whomever terminates the calls, which should reduce latency and jitter even further.

Next step is to start looking for a deal on an upgraded Patton which has FXS and BRI. They seem significantly less available on the secondary market than the FXS-only models
 
They decided instead to send 30 channels down a line instead of 23 and call it E1, presumably because the lines were in better shape.
E1 is a European standard and runs at 2Mbit instead of 1.544Mbit.
But having said that, maxtherabbit's experiments (over the internet) do confirm you can do a modem call over SIP. So perhaps it's the good-enough area again.
Oh, there are entire ISPs these days that run on VoIP if you want.

I remember that when the unannounced changeover happened I couldn't dial with the pulse rating set at 38 (IIRC default/standard = 70) with my 14k4 modem, and a bit of experimentation showed that 40 was the lowest value that worked. Or perhaps this was how fast DTMF tones could be sent?
That only affects pulse dialing. If your make/break ratio is wrong, electromechanical ORs won't step correctly.
Most, probably all, electromechanical exchanges got add-on tone-to-pulse converters and I think it was faster to use DTMF and let the converters do their thing than pulse dial myself, or maybe I just imagined that.
That sounds about right. Tone dialing is much faster, and SXS ORs could be stepped really fast with the right setup (usually used for trunks).
I wonder if it's possible anywhere to connect via VoIP and achieve better sound quality than what 64kbps 8kHz uncompressed can do? I.E. is it possible to use any of the better sounding cell phone encodings over VoIP?
I'm not sure about VoIP specifically but you can most definitely do high bitrate audio between certain brands of cellphones.
I think it's a bit confusing that there is ATM, T1/E1 and ISDN PRI which seems to be somewhat the same thing, but perhaps not really fully, kind of sort of, perhaps.
ATM is a little bit different. T1 and E1 are essentially US and Euro versions of the same standard. PRI is a protocol that runs on top of a T1 or E1 link.

IP. The way I've been testing is to register each FXS port to a different subaccount on voip.ms and then use the internal extension number to call one from the other. So it's still a "loopback call" in the sense that I'm calling my own equipment but it is traversing the voip.ms server.

As a baseline, I did the same test from my premise through the same voip.ms server using MicroSIP (softphone app which logs latency and jitter metrics) and my desktop Cisco IP phone. Round trip latency was 10ms. I don't know if MicroSIP includes the decode latency in this metric (I suspect not) but this at least tells us that the packets are not spending an unreasonable amount of time in da cloud.
I would think this would be QoS, but if it really is only 10ms for the packet delivery, your ATA is really really slow. Not sure why that would be.
I made a lowball offer on a Patton SmartNode 4112 on ebay last night and the guy accepted it. So I'll be able to compare that one soon. I did look for any cheap TA900 series stuff, but there was nothing available right now that wasn't broken.
Fair enough, best of luck with it. Hope it doesn't need manuals or software, because Patton is ridiculously tight-fisted with that stuff.

I am able to connect to WebTV using the original box with its dial up modem on Comcast land line.
Nice. I have not been able to get into ReDialed because their primary number is intermittent at best and there are exactly zero good instructions for making it work on a local RAS, or in Windows with PRI cards. The Discord is mostly full of children with RPis and USB modems with a battery, and the few people who seem to actually know what they're talking about have never seen a Windows install in their life, apparently. Someday I'll get mine working.

The Patton Smartnode 4112 is nice. I'd say for anyone wanting to setup a basic analog ATA for modem use this is definitely the one to get. Much better choice than the Cisco ATA191 or Grandstream HT802.

That being said, it is a professional device and that shows. Both in the quality and in the learning curve for setup. If anyone is interested I can post my config file for use with voip.ms.
Please do post your config. Did it have a web UI setup or was it all command line?
I think I'm going to look into Anveo direct though, they don't proxy the media stream like voip.ms does - it's a direct RTP connection to whomever terminates the calls, which should reduce latency and jitter even further.
Let us know how that turns out, I'm still looking for a VoIP provider. Have you looked into The Serial Port's VoIP phone system? Being set up by hobbyists specifically for modems might help your chances.
Next step is to start looking for a deal on an upgraded Patton which has FXS and BRI. They seem significantly less available on the secondary market than the FXS-only models
Wait, there are BRI ones? I would really like to get some BRI ports on my phone network. I've got PRIs and FXS but no BRI since that is unusually difficult to get economically. I've got a Teltone ILS-1000 so I can actually make connections, but it's rather inflexible and I have no way to tie it into the rest of my network.

How about a DIY solution using a sound card and some analog circuitry (plus a few I/O pins) to make it act as a phone line?

You could emulate two lines with every sound card as it's in stereo, and for those "home studio" type cards you could emulate more lines. The latency would just be whatever the PCI bus and whatnot introduces, i.e. negligible. I don't know how hard/easy it would be to write software for it to interface with for example Asterisk. The analogue circuit is fairly easy. Either use a transformer or OP amps for echo cancellation, or just ignore that and do it fully in software, and then just a voltage/current detector to indicate on/off hook to the computer, and an output that drives a relay that connects ring AC voltage, plus a circuit that immediately disconnects the ring voltage if the connected phone/modem goes off hook, and also a circuit that disables the ring signal as long as the connected device is off hook. Perhaps add some sanity check for the ring signal to avoid it being switched on by the wrong software (if using some generic port for the control signals).
Feel free to attempt it. I've never heard of this being done, personally, but I don't really see a good reason why it couldn't be done? Just sounds like a lot of work to me at least. If you get one up and running that will work under Windows, I'd be happy to give it a try and help debug.
Especially some of the home studio type cards can sync their clocks via S/PDIF and thus you can sync up a bunch of cards to run at an identical clock, and if you also use some E1/T1 card or whatnot with Asterisk you could also take the clock from that card somehow and use it to generate an idle S/PDIF signal if you want everything to use the same clock.
A synced clock is absolutely essential for any of the digital telephony connections. Sadly, Asterisk does an absolutely deplorable job at handling TDM, compatible cards are hideously expensive, and you would still need to generate your clock somewhere else as most of those cards can only act as a TE, not as NT. I've seen a few that can act as NT, but they usually require an external clock source. I've seen people using GPS clock sources for T1s, though. Maybe that's worth a look.
 
I would think this would be QoS, but if it really is only 10ms for the packet delivery, your ATA is really really slow. Not sure why that would be.
Well, voip.ms does proxy all the media so some of that is probably latency on their server turning the call around. But after thorough testing I can confidently say the Grandstream HT802 is much worse in the latency department than the Cisco ATA 191. The Patton is better still than the Cisco, but the margin is smaller. Of course, I don't know exactly how much of this is attributable to the dejitter buffer settings, since Cisco doesn't feel the need to disclose how many ms each "high, very high" etc. setting represents. Patton of course has direct numeric configuration. One interesting thing to note with the HT802 is that when you set the dejitter buffer to "fixed" the "low, meduim, high" settings seem to have no impact whatsoever. I wonder if "fixed" just sets it a fixed value (a high one) and leaves it at that.
Fair enough, best of luck with it. Hope it doesn't need manuals or software, because Patton is ridiculously tight-fisted with that stuff.
The firmwares are indeed paywalled. All the manuals and documentation are available by googling though. Patton has all the docs on their website, and they are publicly accessible, but you can't browse through them on the site itself without an account. Google provides direct links to the PDFs which work. I was lucky and was also able to find a off-site mirror of the latest FW by googling the filename.
Please do post your config. Did it have a web UI setup or was it all command line?
Will do, soon as I get home this evening. It does have a web UI, but the settings are not always intuitive, especially with respect to SIP registration and authentication.
Let us know how that turns out, I'm still looking for a VoIP provider. Have you looked into The Serial Port's VoIP phone system? Being set up by hobbyists specifically for modems might help your chances.
So far the latency and jitter is superior to anything I ever experienced with voip.ms, generally speaking. It does depend on the route chosen for each individual call however. Two things to be aware of with Anveo Direct:
1) They require an IP address (not hostname, so DDNS won't work) to authorize outbound calls. So you either need a static IP or a dynamic one you're willing to track manually and change the setting in the Anveo customer portal when it changes.
2) Unless you provide business credentials, the outbound call limits are somewhat strict. There is a 30-day spending limit of $2 (which will come out to 200-300 minutes depending on routes) and what's more onerous is the call frequency throttling. After about 50 outbound calls through the course of my first day testing it, they started to throttle me, in the form of getting a reorder tone on any outbound calls until some time had passed. Inbound is unaffected. I had to provide my company EIN and state corporation commission number, as well as a corporate domain email and website to get this lifted.

RE the serial port: AFAIK all their stuff is patreon subs only. I'm not opposed to throwing them a few bucks a month for network access, but I have no intention of setting up a pateron account.
Wait, there are BRI ones? I would really like to get some BRI ports on my phone network. I've got PRIs and FXS but no BRI since that is unusually difficult to get economically. I've got a Teltone ILS-1000 so I can actually make connections, but it's rather inflexible and I have no way to tie it into the rest of my network.
Yep sure are. The ebay availability on one with both BRI and FXS is abysmal though.
 
Last edited:
Code:
#----------------------------------------------------------------#
#                                                                #
# SN4112/JS/EUI                                                  #
# R6.9 2017-03-13 H323 SIP FXS FXO                               #
# 2025-07-05T19:21:51                                            #
# SN/00A0BA0F651E                                                #
# Generated configuration file                                   #
#                                                                #
#----------------------------------------------------------------#

cli version 3.20
clock local default-offset -04:00
timer PROVISIONING now + 3 minutes "provisioning execute PF_PROVISIONING_CONFIG"
webserver port 80 language en
sntp-client
sntp-client server primary 0.patton.pool.ntp.org port 123 version 4
sntp-client server secondary 1.patton.pool.ntp.org port 123 version 4

system

  ic voice 0

profile ppp default

profile call-progress-tone defaultDialtone
  play 1 1200 350 -19 440 -19

profile call-progress-tone defaultAlertingtone
  play 1 2000 440 -19 480 -19
  pause 2 4000

profile call-progress-tone defaultBusytone
  play 1 500 480 -19 620 -19
  pause 2 500

profile call-progress-tone defaultReleasetone
  play 1 250 480 -19 620 -19
  pause 2 250

profile call-progress-tone defaultCongestiontone
  play 1 250 480 -19 620 -19
  pause 2 250

profile call-progress-tone defaultStuttertone
  play 1 100 350 -19 440 -19
  pause 2 100

profile tone-set default

profile voip default
  codec 1 g711ulaw64k rx-length 20 tx-length 20
  response-preferred-codec g711ulaw64k
  dejitter-mode static-data
  dejitter-max-delay 200

profile pstn default
  no echo-canceler

profile ringing-cadence default
  play 1 2000
  pause 2 4000

profile sip default
  no autonomous-transitioning

profile aaa default
  method 1 local
  method 2 none

profile provisioning PF_PROVISIONING_CONFIG
  destination configuration
  location 1 http://redirect.patton.com/$(system.mac);mac=$(system.mac);serial=$(system.serial);hwMajor=$(system.hw.major);hwMinor=$(system.hw.minor);swMajor=$(system.sw.major);swMinor=$(system.sw.minor);swDate=$(system.sw.date);productName=$(system.product.name);cliMajor=$(cli.major);cliMinor=$(cli.minor);osName=$(cli.major>=4|Trinity|SmartWare);subDirTrinity=$(cli.major>=4|/Trinity);subDirSmartWare=$(cli.major<4|/SmartWare);dhcp66=$(dhcp.66);dhcp67=$(dhcp.67)
  location 2 $(dhcp.66)
  location 3 $(dhcp.66)/$(system.mac).cfg
  location 4 http://$(dhcp.66)/$(dhcp.67)
  location 5 http://$(dhcp.66)/$(system.mac).cfg
  location 6 tftp://$(dhcp.66)/$(dhcp.67)
  location 7 tftp://$(dhcp.66)/$(system.mac).cfg
  activation reload immediate

context ip router
  rtp-port-range 16000 16299

  interface eth0
    ipaddress dhcp
    tcp adjust-mss rx mtu
    tcp adjust-mss tx mtu

context cs switch

  routing-table called-e164 RT_FXS0_TO_SIP0
    route T dest-interface IF_SIP0

  routing-table called-e164 RT_FXS1_TO_SIP1
    route T dest-interface IF_SIP1

  interface sip IF_SIP0
    bind context sip-gateway GW_SIP0
    route call dest-interface IF_FXS_0
    remote newyork4.voip.ms 5060
    early-connect
    early-disconnect
    address-translation outgoing-call from-header user-part fix USERNAME host-part call

  interface sip IF_SIP1
    bind context sip-gateway GW_SIP1
    route call dest-interface IF_FXS_1
    remote newyork4.voip.ms 5060
    early-connect
    early-disconnect
    address-translation outgoing-call from-header user-part fix SUBUSERNAME host-part call

  interface fxs IF_FXS_0
    route call dest-table RT_FXS0_TO_SIP0
    no call-hold
    no call-waiting
    no additional-call-offering
    caller-id-presentation pre-ring
    caller-id-format bell

  interface fxs IF_FXS_1
    route call dest-table RT_FXS1_TO_SIP1
    no call-hold
    no call-waiting
    no additional-call-offering
    caller-id-presentation pre-ring
    caller-id-format bell

context cs switch
  no shutdown

authentication-service AUTH_SVC
  username USERNAME password PASSWORD
  username SUBUSERNAME password PASSWORD

location-service LOCATION0_SVC
  domain 1 newyork4.voip.ms 5060

  identity USERNAME
    display-name "YOURNAME"

    authentication outbound
      authenticate 1 authentication-service AUTH_SVC username USERNAME

    registration outbound
      registrar newyork4.voip.ms 5060
      lifetime 300
      register auto
      retry-timeout on-system-error 10
      retry-timeout on-client-error 10
      retry-timeout on-server-error 10
      nat-traversal keep-alive options 30

location-service LOCATION1_SVC
  domain 1 newyork4.voip.ms 5060

  identity SUBUSERNAME
    display-name "YOURNAME"

    authentication outbound
      authenticate 1 authentication-service AUTH_SVC username SUBUSERNAME

    registration outbound
      registrar newyork4.voip.ms 5060
      lifetime 300
      register auto
      retry-timeout on-system-error 10
      retry-timeout on-client-error 10
      retry-timeout on-server-error 10
      nat-traversal keep-alive options 30

context sip-gateway GW_SIP0

  interface LAN
    bind interface eth0 context router port 5060
    spoofed nat-address auto

context sip-gateway GW_SIP0
  bind location-service LOCATION0_SVC
  no shutdown

context sip-gateway GW_SIP1

  interface LAN
    bind interface eth0 context router port 5061
    spoofed nat-address auto

context sip-gateway GW_SIP1
  bind location-service LOCATION1_SVC
  no shutdown

port ethernet 0 0
  medium auto
  encapsulation ip
  bind interface eth0 router
  no shutdown

port fxs 0 0
  use profile fxs us
  encapsulation cc-fxs
  bind interface IF_FXS_0 switch
  no shutdown

port fxs 0 1
  use profile fxs us
  encapsulation cc-fxs
  bind interface IF_FXS_1 switch
  no shutdown

This is for use with voip.ms and two lines. Replace USERNAME with the main voip.ms account number and SUBUSERNAME with the subaccount number. Replace PASSWORD with the password for each account and YOURNAME with the display name.
 
The config in the previous post doesn't send the outbound caller ID name (just the name, the number is fine). Here is a corrected version:
Code:
#----------------------------------------------------------------#
#                                                                #
# SN4112/JS/EUI                                                  #
# R6.9 2017-03-13 H323 SIP FXS FXO                               #
# 2025-07-13T09:01:44                                            #
# SN/00A0BA0F651E                                                #
# Generated configuration file                                   #
#                                                                #
#----------------------------------------------------------------#

cli version 3.20
clock local default-offset -04:00
timer PROVISIONING now + 3 minutes "provisioning execute PF_PROVISIONING_CONFIG"
webserver port 80 language en
sntp-client
sntp-client server primary 0.patton.pool.ntp.org port 123 version 4
sntp-client server secondary 1.patton.pool.ntp.org port 123 version 4

system

  ic voice 0

profile ppp default

profile call-progress-tone defaultDialtone
  play 1 1200 350 -19 440 -19

profile call-progress-tone defaultAlertingtone
  play 1 2000 440 -19 480 -19
  pause 2 4000

profile call-progress-tone defaultBusytone
  play 1 500 480 -19 620 -19
  pause 2 500

profile call-progress-tone defaultReleasetone
  play 1 250 480 -19 620 -19
  pause 2 250

profile call-progress-tone defaultCongestiontone
  play 1 250 480 -19 620 -19
  pause 2 250

profile call-progress-tone defaultStuttertone
  play 1 100 350 -19 440 -19
  pause 2 100

profile tone-set default

profile voip default
  codec 1 g711ulaw64k rx-length 20 tx-length 20
  response-preferred-codec g711ulaw64k
  dejitter-mode static-data
  dejitter-max-delay 200

profile pstn default
  no echo-canceler

profile ringing-cadence default
  play 1 2000
  pause 2 4000

profile sip default
  no autonomous-transitioning

profile aaa default
  method 1 local
  method 2 none

profile provisioning PF_PROVISIONING_CONFIG
  destination configuration
  location 1 http://redirect.patton.com/$(system.mac);mac=$(system.mac);serial=$(system.serial);hwMajor=$(system.hw.major);hwMinor=$(system.hw.minor);swMajor=$(system.sw.major);swMinor=$(system.sw.minor);swDate=$(system.sw.date);productName=$(system.product.name);cliMajor=$(cli.major);cliMinor=$(cli.minor);osName=$(cli.major>=4|Trinity|SmartWare);subDirTrinity=$(cli.major>=4|/Trinity);subDirSmartWare=$(cli.major<4|/SmartWare);dhcp66=$(dhcp.66);dhcp67=$(dhcp.67)
  location 2 $(dhcp.66)
  location 3 $(dhcp.66)/$(system.mac).cfg
  location 4 http://$(dhcp.66)/$(dhcp.67)
  location 5 http://$(dhcp.66)/$(system.mac).cfg
  location 6 tftp://$(dhcp.66)/$(dhcp.67)
  location 7 tftp://$(dhcp.66)/$(system.mac).cfg
  activation reload immediate

context ip router
  rtp-port-range 16000 16299

  interface eth0
    ipaddress dhcp
    tcp adjust-mss rx mtu
    tcp adjust-mss tx mtu

context cs switch

  routing-table called-e164 RT_FXS0_TO_SIP0
    route T dest-interface IF_SIP0 NAME

  routing-table called-e164 RT_FXS1_TO_SIP1
    route T dest-interface IF_SIP1 NAME

  mapping-table calling-e164 to calling-name NAME
    map default to YOURNAME

  interface sip IF_SIP0
    bind context sip-gateway GW_SIP0
    route call dest-interface IF_FXS_0
    remote newyork4.voip.ms 5060
    early-connect
    early-disconnect

  interface sip IF_SIP1
    bind context sip-gateway GW_SIP1
    route call dest-interface IF_FXS_1
    remote newyork4.voip.ms 5060
    early-connect
    early-disconnect

  interface fxs IF_FXS_0
    route call dest-table RT_FXS0_TO_SIP0
    no call-hold
    no call-waiting
    no additional-call-offering
    caller-id-presentation pre-ring
    caller-id-format bell
    subscriber-number USERNAME

  interface fxs IF_FXS_1
    route call dest-table RT_FXS1_TO_SIP1
    no call-hold
    no call-waiting
    no additional-call-offering
    caller-id-presentation pre-ring
    caller-id-format bell
    subscriber-number SUBUSERNAME

context cs switch
  no shutdown

authentication-service AUTH_SVC
  username USERNAME password PASSWORD
  username SUBUSERNAME password PASSWORD

location-service LOCATION0_SVC
  domain 1 newyork4.voip.ms 5060

  identity USERNAME

    authentication outbound
      authenticate 1 authentication-service AUTH_SVC username USERNAME

    registration outbound
      registrar newyork4.voip.ms 5060
      lifetime 300
      register auto
      retry-timeout on-system-error 10
      retry-timeout on-client-error 10
      retry-timeout on-server-error 10
      nat-traversal keep-alive options 30

location-service LOCATION1_SVC
  domain 1 newyork4.voip.ms 5060

  identity SUBUSERNAME

    authentication outbound
      authenticate 1 authentication-service AUTH_SVC username SUBUSERNAME

    registration outbound
      registrar newyork4.voip.ms 5060
      lifetime 300
      register auto
      retry-timeout on-system-error 10
      retry-timeout on-client-error 10
      retry-timeout on-server-error 10
      nat-traversal keep-alive options 30

context sip-gateway GW_SIP0

  interface LAN
    bind interface eth0 context router port 5060
    spoofed nat-address auto

context sip-gateway GW_SIP0
  bind location-service LOCATION0_SVC
  no shutdown

context sip-gateway GW_SIP1

  interface LAN
    bind interface eth0 context router port 5061
    spoofed nat-address auto

context sip-gateway GW_SIP1
  bind location-service LOCATION1_SVC
  no shutdown

port ethernet 0 0
  medium auto
  encapsulation ip
  bind interface eth0 router
  no shutdown

port fxs 0 0
  use profile fxs us
  encapsulation cc-fxs
  bind interface IF_FXS_0 switch
  no shutdown

port fxs 0 1
  use profile fxs us
  encapsulation cc-fxs
  bind interface IF_FXS_1 switch
  no shutdown
 
I made a very interesting but somewhat disappointing discovery today. My analog PBX, the Panasonic KX-TA824, is causing some type of degradation when using v.90 (PCM) modulation. It doesn't seem to cause any problems with v.34 or below, but when dialing into a v.90 modem I get tons of block level errors that disappear when I connect the modem directly to my ATA. I've scoured the PBX programming software for any setting which may control line impedance or some kind of filtering, but came up with nothing.

As such, I've purchased another Patton smartnode with 8 FXS ports to use as a "modem PBX" and will relegate the Panasonic to voice only duties, and fax I suppose if I ever get into that.
 
Last edited:
I made a very interesting but somewhat disappointing discovery today. My analog PBX, the Panasonic KX-TA824, is causing some type of degradation when using v.90 (PCM) modulation. It doesn't seem to cause any problems with v.34 or below, but when dialing into a v.90 modem I get tons of block level errors that disappear when I connect the modem directly to my ATA. I've scoured the PBX programming software for any setting which may control line impedance or some kind of filtering, but came up with nothing.

As such, I've purchased another Patton smartnode with 8 FXS ports to use as a "modem PBX" and will relegate the Panasonic to voice only duties, and fax I suppose if I ever get into that.
I wonder if the Panasonic is doing some kind of compression, echo cancellation, or VAD or something that kills it. Does it make any strange sounds during the training sequence? If you have a line tap, record it and maybe a snippet where it gets errors, and I might be able to pinpoint the issue more specifically.

I have been using an Adtran TA924e as my """PBX""" for this
 
I made a very interesting but somewhat disappointing discovery today. My analog PBX, the Panasonic KX-TA824, is causing some type of degradation when using v.90 (PCM) modulation. It doesn't seem to cause any problems with v.34 or below, but when dialing into a v.90 modem I get tons of block level errors that disappear when I connect the modem directly to my ATA. I've scoured the PBX programming software for any setting which may control line impedance or some kind of filtering, but came up with nothing.

As such, I've purchased another Patton smartnode with 8 FXS ports to use as a "modem PBX" and will relegate the Panasonic to voice only duties, and fax I suppose if I ever get into that.
Incredibly enough, it seems like the full service manual including schematics are available at ElectroTanya!
https://elektrotanya.com/panasonic_kx-ta824.pdf/download.html
Thus it should be possible to see what it does to the signal.

A simple test you could do is put a switch that allows you to feed a speaker output signal instead of a connected phone to one PBX line after you have already made a call, and another switch that allows you to switch out a phone for a 600 ohm resistor and a series capacitor plus diodes for overvoltage protection feeding a line input (perhaps with a voltage divider before the overvoltage protection) to do a simple frequency and phase response measurement.
 
I wonder if the Panasonic is doing some kind of compression, echo cancellation, or VAD or something that kills it. Does it make any strange sounds during the training sequence? If you have a line tap, record it and maybe a snippet where it gets errors, and I might be able to pinpoint the issue more specifically.
The handshaking is noticeably different in volume when going through the PBX vs when not, but the tones themselves and the sequence sound the same.
 
Incredibly enough, it seems like the full service manual including schematics are available at ElectroTanya!
https://elektrotanya.com/panasonic_kx-ta824.pdf/download.html
Thus it should be possible to see what it does to the signal.
Just skimmed it briefly and it appears it has amplifiers at the CO line side for both send and receive. I'd wager this is the problem area. Since I have no desire to overhaul the design of the PBX, it's a moot point I suppose.
 
Back
Top