PBX setup: registering two SIP trunks

Contents

Email to VeVoIP

This email provides an overview of the issues I encountered in setting up two trunks as SIP peers to the same provider. It provides background to the solution detailed below.

Here’s an interesting little problem, and I’m wondering if you have any insights to offer.

I have two DIDs with VeVoIP, peered to two different peers. For ease of administration at my end, I set up both peers on my FreePBX system as PJSIP trunks.

Now I suspect I could actually route both DIDs to the same peer and in Asterisk use the inbound DID to route the call to the correct phone. However, I want outbound calls to show the correct CID based on the nature of the call, and as far as I know the only way to do that is by setting up CID and CNAM information on the VeVoIP peer. And to do that I need to set up the peer as a trunk in FreePBX and use Outbound Routes to send a call to the apporpriate trunk.

Read more (20 paragraphs) …



A tip of the hat to Mitel

Contents

A comment I left on Mitel’s web site

Here’s a bouquet! I visited mitel.com to see what you had for the old Aastra 9133i phone. You still have the documentation and firmware available! Kudos to your support and web teams. (Except for this form’s 256 character limit.)

Response from Mitel

I got the following response ten days later, on December 31:

Hi Brian,

I just received your information from the form you filled out on our website. ? Please call 1-800-722-1301 and select option 5 for product support. This will be your best resource in getting the issue resolved. I am sorry for any inconvenience.

Let me know if you need help with anything else.

Thank you,

Hailee Walker
Business Development
Phone: 469-605-2029

Mitel
5850 Granite Parkway, Suite 600
Plano, TX , 75024, US

Mitel.com
Hailee.Walker@Mitel.com

Hailee Walker
Business Development Representative
Phone: 469-605-2029

https://calendly.com/hailee-walker

Mitel
5360 Legacy Drive, Suite 300
Plano, Texas, 75024, US

Mitel.com
Hailee.Walker@Mitel.com

Due to its terseness, I’m not sure if this stricly a biolerplate response or if Hailee is referring to my comment about the 256 character limit on the form.



Sangoma portal redux

The next day, as part of writing this blog entry I visited the portal site again. This time I was able to regsiter an account … I think. After I logged out of the site and tried to log in again, it complained it couldn’t match my username and password. So I tried registering again, making sure I gave them the correct email address (they don’t do email address verification by asking me to enter it twice during registration) and the site gave me another error.

This company does business worldwide and they can’t get their customer portal working properly.

I am not confident about their stewardship of FreePBX.



FreePBX activation and a broken Sangoma portal

FreePBX activation issues

When installing FreePBX, there’s an option to activate it. You don’t have to, but activation gives access to some additional FreeBPX modules and can be useful.

But all attempts to activate my system failed. I tried Firefox and Chromium on Linux and Firefox on Windows. Every time I got the same message:

Activation Error!
Unable to display activation page Error returned was:

{"guid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","count":4,"remainingoffers":{"createacct":"createacct","activate":"activate","pbxact_ucc":"
pbxact_ucc","ip_phones":"ip_phones"},"thisoffer":"createacct","offer":{"html":

Read more (14 paragraphs) …



Google ReCAPTCHA

I loathe Google’s ReCAPTCHA. I hate the fact they’re so difficult to solve and Google gives you no feedback on how it thinks you’re doing. (Which makes sense, actually: they don’t want bots to know how well they’re doing in solving them either.) Sometimes I’ve solved eight challenges in a row and still get more! At that point I have to shut down the browser, clear everything out, and start the whole process over again.

But that’s not the least of my concerns. First, Google, one of the most profitable companies on the planet, is using my labour, without compensation, to train their image matching algortihms. Another is that I have to interact with Google. I’m not a fan of Google and the deep tendrils they have in the modern web, and the fact they’re collecting vast amounts of personal information about web users without permission or oversight.

Read more (9 paragraphs) …



PBX setup: Issues with outbound Caller ID

In the earlier part of the week I discovered that when I make a call from my FreePBX/Asterisk setup that I’m putting together for my business, the business name I set up on the outbound Caller ID/Caller Name (CID/CNAM) wasn’t appearing on my cell phone.

After a support ticket with my SIP provider and a ridiculous amount of testing, we determined it’s my cell phone carrier that’s at fault, not my PBX nor my SIP provider. The provider is passing along both the CID and CNAM to the cell phone carrier, but the carrier for some reason is not displaying the CNAM when it completes the call.

I also discovered that if I set up a spurious CID such as 1-204-555-0012, the cell phone provider actually displays the CNAM. So now I have in my phone logs a call from HRH ELIZABTH II 😊



Issues encountered setting up KDE on Fedora 31

Contents

As has been noted many times on this blog, my primary computer sparrow is running a now positively ancient Fedora 23 from 2015. One downside of Linux is the ecosystem moves forward at a rapid pace, so things get outdated and then obsolete within an uncomfortably short span of years.

Last week I embarked on a project to install Fedora 31. Because a lot has changed between 23 and 31, I decided to rebuild my KDE environment from scratch. Here are some issues I encountered along the way.

Read more (20 paragraphs) …



Old English names for the months of the year

According to Wikipedia:

English Anglo-Saxon Translation
January Æfterra Gēola After Yule
February Solmōnaþ Month of Cakes
March Hrēþ-mōnaþ (Named after the goddess Hrēþ)
April Ēastremonaþ Easter Month
May Þrimilcemōnaþ Month of Three Milkings
June Ærra Līþa First Summer
(Leap month) Þrilīþa “Third” Summer
July Æftera Līþa After Midsummer
August Weodmōnaþ Plant Month
September Hāligmōnaþ Holy Month
October Winterfylleth Winter Full Moon
November Blōtmōnaþ Month of Sacrifice
December Ærra Gēola Before Yule



Numbers-to-words benchmarks on various systems

Contents

Earlier I wrote about stress testing GNU dbm and Berkeley DB databases, and of using a program to generate the required millions of records. For keys the program outputs numbers and for data writes out the numbers as English words:

Number (key) In English (value)
o zero
1 one
2 two
3 three
(over 123 million rows not shown)
123456788 one hundred twenty-three million, four hundred fifty-six thousand, seven hundred eighty-eight
123456789 one hundred twenty-three million, four hundred fifty-six thousand, seven hundred eighty-nine
123456790 one hundred twenty-three million, four hundred fifty-six thousand, seven hundred ninety
(and so on)

I wrote the original numbers-to-words program in awk. When running it to feed records to Berkeley DB I thought it could be a limiting factor to the test; that is, Berkeley DB could possibly insert more records per second than the awk program could generate.

Read more (37 paragraphs) …



How well does a Berkeley database scale?

Once I got the basics of bdb-tool working, I decided to see how well it (and, of course, the Berkeley database itself) worked.

The initial runs were vey encouraging, averaging over 80,000 record inserts a second even up 32 million records. So I decided to go for broke and and try all 125 million. There were two twists with this test:

  • Because raven was busy re-running the 125 million record test with GNU dbm, I ran the test on sparrow
  • Because I don’t have a lot of free disk space on sparrow, I attached a USB-3 drive (hardware-wise, an unusual combination of SSD and spinning platter) and stored the database there.
[brian@sparrow bdb-tool]$ DB_FN=/mnt/HDD_1TB_USB3/numbers.db; rm -f $DB_FN
[brian@sparrow bdb-tool]$ RECORDS=125000000; time nice ionice -c3 /var/tmp/numbers.awk -vmax=$RECORDS |
    pv -ls$RECORDS | ./bdb-tool --newdb $DB_FN
 125M 0:25:23 [82.1k/s] [=======================================================================>] 100% 

real    25m23.889s
user    39m17.914s
sys     2m13.861s

25 minutes! That’s on a slower computer with a slower hard drive.

I later ran the script on my home server penguin, and it took 19 minutes 20 seconds to complete. The final file size was 21 GiB.

And finally on raven:

RECORDS=$((125*1000000)); time ./numbers-to-words $RECORDS|pv -ls$RECORDS|./bdb-tool numbers.bdb
 125M 0:07:01 [ 296k/s] [=======================================================================>] 100%

real    7m2.233s
user    7m10.390s
sys     0m40.810s